djvused(1) 多目的 DjVu 文書エディタ。

SYNOPSIS

djvused [options] djvufile

説明

プログラム djvused はマルチページ文書を作成したり、アノテーションチャンクやテキストレイヤの編集、 サムネイルの作成などを行うための強力なコマンドラインツールです。プログラムは djvufile に指定された DjVu 文書を読み込み、djvused の様々なコマンドを実行します。

djvused のコマンドは特定のファイルから読み込んだり(オプション -f が指定されている場合)、コマンドラインから読み込んだり(オプション -e が指定されている場合)、標準入力から読み込む(デフォルト)ことが可能です。

オプション

-v
djvused はコマンドを読み込む前にコマンドラインプロンプトを出力し、 コマンドの処理状況を示すメッセージを出力します。このオプションは djvused のスクリプトをデバッグしたり、 djvused のコマンドを標準入力から入力したりするのに非常に便利です。
-f scriptfile
djvused はファイル scriptfile からコマンドを読み込みます。
-e command
djvused はオプション引数 commands に指定されたコマンドを実行します。 シェルが不必要にコマンドを展開するのを防ぐために コマンドをシングルクォーテーションで 囲むことをお勧めします。
-s
djvused は指定されたコマンドを実行した後、ファイル djvufile に保存します。 これはプログラムの終了直前に save コマンドを実行するのと同じです。
-n
djvused は save コマンドを無視します。 これはローカルディスクのファイルを上書きせずに
 djvused スクリプトをデバッグするのに便利です。

使用方法

djvused の使い方はたくさんあります。 以下の例ではいくつかの代表的な使用方法 をご紹介します。

   ページサイズの取得

コマンド sizeHTML のような書式で選択したページの幅と高さを返します。 たとえば、以下のコマンドは myfile.djvu3
djvused myfile.djvu -e 'select 3; size'

   テキストの書き出し

コマンド print-pure-txt はページまたは文書に関連付けられたテキストを出力します。 たとえば、以下のコマンドは文書全体のテキストを出力します。 行やページは通常のコントロール文字で区切られます。
djvused myfile.djvu -e 'print-pure-txt'

コマンド print-txt はテキストコンポーネントの構造や位置を示す情報を持った拡張テキストを 出力します。書式はこの man page の後半で解説します。たとえば、以下 のコマンドは myfile.djvu3 ページ目の拡張テキスト情報を出力します。

djvused myfile.djvu -e 'select 3; print-txt'

   アノテーションの書き出し

アノテーションデータはコマンド print-ant で書き出すことが出来ます。 アノテーションデータの書式はこの man page の後半で解説します。たとえば、 以下のコマンドは myfile.djvu の最初のページのアノテーションデータを出力します。
djvused myfile.djvu -e 'select 1; print-ant'

コマンド print-ant は選択されたコンポーネントファイルに含まれるアノテーションだけを 出力します。 コマンド print-merged-ant は現在のページが( INCL を使用して)参照している全てのコンポーネントファイルから アノテーションを取得し、マージした情報を返します。

   アノテーションやテキストのダンプとリストア

3 つのコマンド output-txtoutput-antoutput-all は djvused スクリプトを生成します。たとえば、以下のコマンドは djvused スクリプト myfile.dsed を生成します。このスクリプトは myfile.djvu に含まれる全てのテキストとアノテーションデータを再作成します。
djvused myfile.djvu -e 'output-all' > myfile.dsed

スクリプト myfile.dsed は簡単に編集することが出来るテキストファイルです。以下のコマンドは ファイル myfile.djvu のテキストとアノテーション情報を再作成します。

djvused myfile.djvu -f myfile.dsed -s

   ページの書き出し

2 つのコマンド save-pagesave-page-with は分書中の選択されたコンポーネントファイルを示す DjVu ファイルを作成します。 たとえば、以下のコマンドは文書 myfile.djvu5 ページ目を含むファイル p05.djvu
djvused myfile.djvu -e 'select 5; save-page p05.djvu'

文書の各ページは、いわゆる inclusion チャンク( INCL )を使用して別のコンポーネントファイルからのデータを インポートすることがあります。 そして、コマンド save-page はインポートされたデータへの未解決の参照を含んだファイルを作成します。 このようなファイルは、別のコンポーネントファイルが必要とするデータ をもつマルチページ文書の一部として作成されます。 これに対して、コマンド save-page-with は全てのインポートされたデータを出力ファイルにコピーします。 このファイルは直接使うことが出来ます。しかし、そのようなファイルを 1 つのマルチページ文書に集めると不必要にデータを複製してしまう可能性があります。

   サムネイルの作成

コマンド set-thumbnails は DjVu ビューアが表示に使用するサムネイルを作成します。 たとえば、以下の例は、ファイル myfile.djvu の全てのページにサイズ 64x64 ピクセルでサムネイルを作成します。
djvused myfile.djvu -e 'set-thumbnails 64'

コマンド

コマンドラインには一つまたは複数の djvused コマンドやオプションコメント が含まれていたり、全く含まれていないこともあります。複数の djvused コマンド はセミコロン「;」で区切ります。コメントは「#」に続けて記述し、行末まで コメントとして認識されます。

   選択コマンド

マルチページの DjVu 文書は複数のコンポーネントファイルで構成されます。 ほとんどのコンポーネントファイルは、文書の特定のページに相当します。 コンポーネントの中には共有画像データや共有アノテーション、サムネイルのように 複数のページで共有されるものもあります。多くの djvused コマンドは 選択したコンポーネントファイルに有効です。全てのコンポーネントファイルは 最初は選択されています。以下のコマンドは選択状態を変更するのに使用します。
ls
文書中の全てのコンポーネントファイルを選択します。各行は オプションのページ番号や、コンポーネントファイルのタイプを示す文字、 コンポーネントファイルのサイズ、コンポーネントファイルの識別子を含みます。 コンポーネントファイルのタイプを示す文字 PIAT はそれぞれページデータ、共有画像データ、共有アノテーションデータ、サムネイルデータ を示します。ページ番号はページデータを含むコンポーネントファイルにのみ リストされています。
select [fileid]
引数 fileid で認識されたコンポーネントを選択します。 引数 fileid はページ番号またはコンポーネントファイルの識別子を指定します。 select コマンドは引数 fileid が省略された場合、 全てのコンポーネントファイルを選択します。
select-shared-ant
共有アノテーションを含むコンポーネントファイルを選択します。 現バージョンの DjVu ソフトウェアではこのようなファイルは一つだけ サポートされています。このコンポーネントファイルは通常特定のページ ではなく文書全体に属するアノテーションを保持します。このコンポーネント ファイルが存在しないとエラーが発生します。
create-shared-ant
共有アノテーションを含むコンポーネントファイルを作成して選択します。 このコマンドは共有アノテーションコンポーネントが既に存在する場合は 共有アノテーションコンポーネントのみを選択します。存在しない場合は、 新しい共有アノテーションコンポーネントを作成し、文書中の全てのページ からインポートされていることを確認します。

   様々なコマンド

help
djvused がサポートする全てのコマンドのヘルプメッセージを表示します。
n
文書中の総ページ数を表示します。
dump
文書または選択されたコンポーネントファイルの EA IFF 85 構造を表示します。 同様の機能はプログラム djvudump でも提供されています。
size
選択されたページの幅と高さを表示します。各ページのサイズは <EMBED...></EMBED> タグで直接挿入するのに適した書式で表示されます。

   テキストおよびアノテーションコマンド

print-pure-txt
選択したページのテキストレイヤのテキストを出力する。同様の機能は プログラム djvutxt も提供しています。 構造化情報はコントロール文字で表されることがあります。ページ毎のテキストは フィード文字「\f」で区切られます。行は改行コード「\n」で区切られます。 カラムや、領域、パラグラフはそれぞれ、タブ文字「\013」、グループセパレータ「\035」、 ユニットセパレータ「\037」で区切られます。
print-txt
選択されたページのテキスト情報を出力します。 この情報は文書中のページのテキスト構造を表し、ページ画像中の構造化要素 の位置を特定します。 出力の書式は、この man page の後半で解説します。
remove-txt
選択されたコンポーネントファイルからテキスト情報を削除します。 たとえば、コマンド selectおよびremove-txt を実行すると、DjVu 文書中の全てのテキスト情報が削除されます。
set-txt [djvusedtxtfile]
選択したページにテキスト情報を挿入します。 オプション引数 djvusedtxtfile はテキスト情報を含むファイルの名前です。 このファイルはコマンド print-txt で作成される内容と同じでなければなりません。 オプション引数が省略された場合、 プログラムはピリオドか EOF が見つかるまで djvused スクリプトから テキスト情報を読み続けます。
output-txt
選択したページのテキスト情報を再構築する djvused スクリプトを 出力します。このスクリプトは djvused プログラムを -f オプション付で起動することで、後で編集したり実行することが出来ます。
print-ant
選択されたコンポーネントファイルのアノテーションを出力します。 アノテーションデータは後述するシンプルな書式で出力されます。
print-merged-ant
選択されたコンポーネントファイルに保存されたアノテーションを 共有アノテーションファイルなどからインポートしたアノテーションへ マージします。 アノテーションデータは後述するシンプルな書式で出力されます。
remove-ant
選択されたコンポーネントファイルからアノテーション情報を削除します。 たとえば、コマンド selectおよびremove-ant を実行すると DjVu 文書から全てのアノテーション情報を削除します。
set-ant [djvusedantfile]
選択したコンポーネントファイルのアノテーションを設定します。 オプション引数の djvusedantfile はアノテーションデータを含むファイルの名前です。 このファイルはコマンド print-ant が出力する内容と同じでなくてはなりません。 オプション引数が省略された場合、 プログラムはピリオドか EOF が見つかるまで djvused スクリプトから テキスト情報を読み続けます。
output-ant
選択したページのアノテーション情報を再構築する djvused スクリプトを出力します。このスクリプトは djvused プログラムを -f オプション付で起動することで、後で編集したり実行することが出来ます。
print-meta
選択したコンポーネントファイルののアノテーションからメタデータの部分を出力します。 このコマンドは print-ant コマンドが出力する情報のサブセットを異なる書式で表示します。メタデータは キーと値のペアで構成されています。各行は authortitle などのキー名を含み、その後にタブ文字「\t」とダブルクォーテーションで囲まれた UTF-8 エンコードのメタデータ文字列が続きます。
set-meta djvusedmetafile
選択したコンポーネントファイルのアノテーションからメタデータの部分を設定します。 アノテーションの他の部分は変更されません。 オプション引数 djvusedmetafile はメタデータを含むファイルの名前です。 このファイルはコマンド print-meta が出力する内容と同じでなくてはなりません。 オプション引数が省略された場合、 プログラムはピリオドか EOF が見つかるまで djvused スクリプトから テキスト情報を読み続けます。
output-all
選択したページのテキストおよびアノテーション情報を再構築する djvused スクリプトを出力します。このスクリプトは djvused プログラムを -f オプション付で起動することで、後で編集したり実行することが出来ます。

   サムネイルコマンド

set-thumbnails sz
サムネイルサイズ szxsz ピクセルを計算し文書に挿入します。 DjVu ビューアは各ページのデータをダウンロードしなくても 非常に効果的にサムネイルを表示することが出来ます。 通常サムネイルサイズは 48 から 128 の間で指定します。
remove-thumbnails
DjVu 文書からサムネイルを削除します。 コマンド set-thumbnails で新しいサムネイルを作成することが出来ます。

   Save commands

上記のコマンドはメモリ上の DjVu 文書を変更するだけです。 以下のコマンドは変更したデータをファイルシステムに保存する方法を 提供します。
save
プログラム djvused の引数に指定された入力ファイル djvufile に変更された DjVu 文書を保存しなおします。 DjVu ファイルが変更されなかった場合は何もしません。 オプション -s を指定するのはプログラム終了前にコマンド save を実行するのと同じです。
save-bundled filename
現在の DjVu 文書をバンドルド形式の DjVu 文書 として filename に指定された名前で保存します。 同様の機能はプログラム djvmcvt でも提供されています。
save-indirect filename
現在の DjVu 文書をインダイレクト形式のマルチページ文書として 保存します。インダイレクト形式のインデックスファイル名は filename です。 同様の機能は djvmcvt でも提供されています。
save-page filename
選択されたコンポーネントファイルを filename という DjVu ファイルに保存します。 選択されたコンポーネントファイルはいわゆる inclusion チャンク( INCL )を使用して他のコンポーネントファイルからインポート されたデータである可能性があります。このコマンドは インポートされたデータへの未解決の参照を含むファイルを作成します。 このようなファイルは、他のコンポーネントファイルに必要なデータを含む マルチページ文書の一部にしておく必要があります。
save-page-with filename
選択されたコンポーネントファイルを filename という DjVu ファイルに保存します。 別のコンポーネントファイルからインポートされた全てのデータは出力ファイル にも同様にコピーされます。このコマンドは常に使用可能な DjVu ファイルを作成します。 一方、このようなページをマルチページ文書内に複数集めることと、不必要にデータを 重複させてしまう可能性があります。

djvused ファイル形式

djvused はアノテーションやテキストをあらわすのにシンプルな 括弧付の書式を使用します。

*
この書式は DjVu がアノテーションを保存するのに使用される標準の書式です。 プログラム djvused は単に bzz(1) アルゴリズムを使用してアノテーションデータを圧縮するだけです。
*
この書式は DjVu がテキストを保存するのに使用する書式とは異なります。 プログラム djvused は DjVu が使用するコンパクトなバイナリ形式と編集が容易な括弧付の形式の 間で変換を行います。

   一般的な書式

djvused ファイルは ASCII テキストファイルです。djvused ファイルで有効な文字は 印字可能な ASCII 文字とスペース、タブ、cr、nl 文字です。 これ以外の文字を使用した場合の結果は見て意義です。

djvused ファイルは空白文字(文字、スペース、タブ、cr、nl)で区切られた 一続きの式で構成されます。 式には整数、シンボル、文字列、リストの 4 種類があります。

整数:
製数値は通常通り複数の桁で表現されます。
シンボル:
シンボルつまり識別子は名前やキーワードを示す一続きの印刷可能な文字です。使用できる 文字はアルファベットおよび数字、アンダースコア「_」、マイナス「-」、シャープ「#」 (全て半角)です。名前は、数字やマイナス記号ではじめてはいけません。
文字列:
文字列は任意のバイトシーケンス、通常は S.SM UTF-8 エンコードの文字として認識されるシーケンスを表示します。 djvused ファイルの文字列は C 言語の文字列に似ています。文字列はダブルクォーテーション で囲まれた文字です。バックスラッシュ(「\」)で始まる文字シーケンスには 特別な意味があります。 1 から 3 桁の数字の前のバックスラッシュは、バイト値の 10 進数表現です。 abtnvfr に続くバックスラッシュはそれぞれ文字コード 8 から 13 を示しています。その他の文字 の前のバックスラッシュはそれぞれの文字を示します。特に、ダブルクォーテーションの 前のバックスラッシュはダブルクォーテーションを示し、文字列の終了位置を示すものでは ありません。
リスト:
リストはブランクと括弧で囲まれた一続きの式です。全てのタイプの式をリストに含めることが可能で、 サブリストを含めることもできます。

   テキストの書式

テキストの書式は基本的にはテキストの各構造化コンポーネント を表すリストです。構造化コンポーネントは以下の形式です:
(type xmin xmax ymin ymax ... )

シンボル type は、 pagecolumnregionparalinewordchar (優先度順)のうちのどれか一つでなくてはなりません。 整数 xminxmaxyminymax は四角形の座標を示し、ページ中の構造化コンポーネントの位置を表します。 座標の単位はピクセルで、起点はページの左下隅です。リスト中の他の式は、いずれも この構造化コンポーネントに関連付けられたエンコード済みのテキストを表す一つの 文字列か、より順位の低いタイプの構造化コンポーネントです。

各ページのテキストは単にタイプ page の一つの構造化要素で表します。 様々な構造化情報のレベルが使用可能です。たとえば、ページレベルのコンポーネントは ページレベルの文字列を定義するだけかもしれないし、行のリストかもしれないし、 あるいは文字レベルまでの完全なヒエラルキーを提供するかもしれません。

   アノテーションの書式

アノテーションは一連のアノテーション式で表します。以下のアノテーション式が 有効です:
(background color)
DjVu 画像の周りの部分の色を指定します。色は X11 の 16 進数表記 #RRGGBB で指定します。 たとえば、 #000000 は黒、 #FFFFFF は白。
(zoom zoomvalue)
画像の最初の拡大率を指定します。 引数 zoomvaluestretchone2onewidthpage のいずれかか、文字 d に続けて 1 から 999 間での拡大率を示す数字 (.BR d300 "とか" d150 など) を指定します。
(mode modevalue)
画像の初期表示モードを指定します。 引数 modevaluecolorbwforeblack のうちどれか一つを指定します。
(align horzalign vertalign)
ビューア上での画像のアラインメントを指定します。 デフォルトでは画像はセンターに表示されます。 引数 horzalignleftcenterright のうちのどれか一つです。 引数 vertaligntopcenterbottom のうちどれか一つです。
(maparea url comment area ...)
指定したリンク先へのハイパーリンクを定義します。

引数 url は以下のいずれかの形式を指定します:

href
(url href target)

href は リンク先を示す文字列で、 target HTML のアンカータグ <A> に定義されているハイパーリンクのターゲットフレームを示します。 リンク先文字列 href は任意の URL または、シャープ記号「#」に続けてコンポーネントファイルの識別子、 またはページ番号を指定することが出来ます。ページ番号には ページを置き換えるためのオプション記号をつけることが出来ます。 たとえば、 #-1 #+1 は前のページまたは次のページを表します。

引数 comment はユーザがビューアのハイパーリンク上をマウスで動かした ときに表示される文字列です。

引数 area はハイパーリンクの形や場所を定義します。 以下の形式が使用出来ます:

(rect xmin ymin width height)
(oval xmin ymin width height)
(polygon x0 y0 x1 y1 ... )

全てのパラメータは座標を示す数字です。 座標はピクセルで指定し、起点はページの左下隅です。

maparea リストのその他の式はハイパーリンクに関連付けられた 視覚効果を表します。オプションの最初の部分は ハイパーリンクエリアの境界線のタイプを定義します:

(xor)
(border color)
(shadow_in [thickness])
(shadow_out [thickness])
(shadow_ein [thickness])
(shadow_eout [thickness])

パラメータ color は上述のような #RRGGBB 形式の書式を使用し、 パラメータ thickness には 1 から 32 の整数を指定します。 最後の 4 つの境界線モードは四角形のハイパーリンクでのみ使用できます。 ユーザがハイパーリンクの上をマウスで動かすと境界線が表示されます。 以下のオプションを指定すると境界線は常に可視になります:

(border-avis)

最後に、以下のオプションを四角形のエリアに使用出来ます。 指定した色で領域全体をハイライトさせます。

(hilite color)

これは画像中の特定の箇所を強調表示するために空の URL とともに使うことがあります。

(metadata ... (key value) ... )
メタデータエントリを定義します。 シンボル key はメタデータエントリの性質を示し、エントリはこのシンボルで識別されます。 典型的なキーには yearbooktitleeditorauthor などがあります。 BibTeX 書誌システムと同じキー名を使用することが提案されています。 文字列 value は対応するキーに関連付けられた値を示します。

制限

このバージョンの djvused は一つまたは全てのコンポーネントファイルの選択のみを サポートしています。ページ一部を選択する方法は ありません。

クレジット

このプログラムは by Léon Bottou <[email protected]> が開発し、 Yann Le Cun <[email protected]> Florin Nicsa Bill Riemers <[email protected]> その他の方々により改良されました。 この man page は Nobchika Morimoto <[email protected]> が翻訳しました。

参照

djvu(1)、 djvutxt(1)、 djvmcvt(1)、 djvudump(1)、 bzz(1)