DVI (ファイルフォーマット)
DVI(device-independent file format: デバイス独立フォーマット)は TeX の出力ファイルフォーマットであり、1979年にデイビッド・R・フックスによって設計された。TeX の入力ファイルと異なり、DVI ファイルは人間が読むようには設計されていない。その内容はバイナリデータで、文書の見た目のレイアウトを画像形式・表示デバイス・プリンタにまったく依存しない形で記録している。通常 DVI ファイルは「DVI ドライバ」と呼ばれる別のプログラムの入力として用いられ、画像イメージに変換される。例えば、DVI ファイルは xdvi や dviout for Windows などのドライバを用いて画面上にイメージとして表示させることができる(この場合はしばしば DVI プレビューアとも呼ばれる)。あるいは別のドライバ、たとえば dvips や dvipdfm(x) などを用いて他の通常の文書形式(たとえば PostScript や PDF)に変換し印刷することもできる。MediaWiki では、内部で TeX と PNG ドライバを用いて文書内の数式の画像を生成している。 DVI はバイナリデータであるとはいえ、文書を難読化・暗号化するフォーマットではなく、DVI ファイルからある程度元の文書を復元することが可能である。 DVI は PostScript や PDF とは違い、フォントを埋め込むための機構を(少なくとも仕様上では)持っていない。DVI ファイルを印刷、あるいは単にプレビューする場合であっても、その文書内で使われるフォントは予めシステムにインストールしてある必要がある。また、DVI ファイルの内部データは単純な仮想機械への命令群で構成されているとはいえ、PostScript とは異なり DVI 言語は チューリング完全な言語ではない。 仕様DVI ファイルのフォーマットはコンパクトで機械的に簡単に解釈できるように設計されている。DVI ファイルの内容は単純なある仮想機械へのコマンドの列で構成されている。各コマンドは8ビットの命令と、命令毎に異なる数バイトの引数からなる。たとえば、命令0から127は おおざっぱに言うと、DVI ファイルはプリアンブル、複数のページ、ポストアンブルで構成されている。仮想機械は6つの32ビット符号付き整数 h、v、w、x、y、z を状態変数として持っていて、h と v が現在のカーソルのページ左上の基準点からの相対位置(1/65,536 インチ単位)を保持し、w と x は左右方向のスペースを管理する変数として、y と z は上下方向のスペースを管理する変数として使われる。これらの値は内部にあるスタックに待避することができる。またそれとは別にフォント変数 f が存在し、現在利用しているフォントの番号(番号と実フォントの対応はファイル中で DVI フォーマット中で参照される文字番号は、システム上の文字番号とは無関係に、利用するフォントのエンコーディングによって決まる。たとえ EBCDIC ベースのシステムであっても、フォントが通常使われる ASCII 配列のものである限り、出力される DVI ファイルの文字番号は ASCII 配列に沿ったものとなる。 日本語 TeX における利用日本語化された TeX システムにおいても、DVI ファイルフォーマットは基本的にそのまま利用されている。もともと、DVI が設計された当時の TeX は7ビットコードしか扱うことができず、全ての文字が また、縦書き対応に拡張された pTeX では、未使用であった命令コードの一つに 一方、NTT によって拡張された NTT JTeX では、日本語の文字集合を複数のフォントに仮想的に分割して、出力時にフォント切り替えを行う命令を挟みながら出力するように実装されていた。そのため、分割したフォントが準備されている環境では、DVI ドライバは日本語拡張のない(1バイト幅の文字番号しか扱えない)ものをそのまま用いることができた。 関連ソフトウェア脚注
外部リンク
|
Portal di Ensiklopedia Dunia