DVI ファイル形式とは?
.dvi ファイルは、TeX および LaTeX 組版システムによって生成されるバイナリ形式の組版ドキュメントです。名称は «Device Independent»(デバイス独立)の略であり、プリンター、画面、写真植字機などの特定の出力デバイスに依存することなく、すべてのページのすべてのグリフ位置とルールを正確にエンコードするという設計目標を反映しています。
DVI ファイルはシーケンシャルなオペコードストリームです。最初のバイトは常に 0xF7(pre プリアンブルオペコード)で、2番目のバイトはフォーマットバージョンです。標準の DVI の場合は 0x02、双方向テキストをサポートする Omega/Lambda 拡張バリアントの場合は 0x03 となります。bop と eop オペコードで区切られたページブロックには、絶対的なグリフ位置、フォント選択、およびボックスルールが記録されます。その後、フォントテーブルとページ寸法を含むポストアンブルが続き、末尾の 0xDF バイトがファイルを4バイト境界にパディングします。
重要な特徴として、DVI ファイルはフォントを名前と TFM チェックサムで参照しますが、フォント自体を埋め込むことはありません。ビューアやコンバータは、通常 TeX ディストリビューションを通じて、参照されているフォントをローカルで利用できる状態にする必要があります。これは、自己完結型のレンダリングのためにフォントサブセットを埋め込む PDF とは異なります。
現代の TeX エンジンは、.dvi を完全にバイパスすることが増えています。pdfLaTeX や LuaLaTeX は PDF を直接生成し、XeTeX は中間ファイルとして拡張 DVI である .xdv ファイルを出力します。クラシックなチェーンである «.tex → .dvi → dvips → .ps → PDF» は、TeX Live や MiKTeX の下で引き続き完全に機能します。Plain TeX や標準の LaTeX(非 PDF エンジン)は、引き続きネイティブ出力として .dvi を出力します。
セキュリティと安全性
リスク: LOWDVI ファイルには埋め込みスクリプトやマクロは含まれていません。「xxx」(special)コマンドはドライバ固有の文字列(例:dvips を介した PostScript スペシャル)を埋め込みますが、これらは DVI ドライバによってのみ解釈され、コードとして実行されることはありません。学術および TeX の文脈でのみ使用される低リスクなフォーマットです。
形式の詳細
概要- Digital Video Interface(ハードウェアコネクタ) - DVI はディスプレイコネクタ規格(DVI-D、DVI-I、DVI-A)も指しますが、これは全く無関係なハードウェアであり、ファイル形式ではありません。
DVI ファイルを開くプログラム
技術的詳細
詳細仕様| エンコーディング | バイナリオペコードストリーム。マルチバイト整数はビッグエンディアン |
| マジックバイト | オフセット 0 に 0xF7(pre プリアンブルオペコード)、標準 DVI フォーマットバージョンの場合はオフセット 1 に 0x02 |
| フォーマットバリアント | バージョンバイト 0x02 = 標準 DVI、0x03 = Omega/Lambda 拡張 DVI(RTL/LTR 双方向)、XDV = XeTeX 拡張 |
| ファイル構造 | プリアンブル → ページブロック(bop/eop オペコード) → ポストアンブル(フォントテーブル、ページ数、寸法) → 0xDF パディングバイト |
| フォント処理 | フォントは名前と TFM チェックサムによって参照され、埋め込まれません。ビューアにはローカルのフォントインストールが必要です |
| フォントチェックサム | フォント定義レコードごとに TFM チェックサムが埋め込まれます。不一致があるとビューアの警告がトリガーされます |
| ファイルの終端 | 末尾の 0xDF バイトがファイル全体の長さを4バイトの倍数にパディングします |
| 典型的なファイルサイズ | 10 KB - 5 MB(学術論文から書籍一冊まで) |
| 座標系 | 寸法は DVI 単位(デフォルトの1000倍拡大で 1 DVI 単位 = 100 nm)。絶対的なページ位置指定 |
| 関連 OS | Linux, Windows, macOS, Unix(TeX Live, MiKTeX, MacTeX を介したクロスプラットフォーム) |
| 後処理チェーン | dvips は PostScript に変換、dvipdfm/dvipdfmx は PDF に変換、dvisvgm は SVG に変換 |
| バイト順序 | DVI オペコード内のすべてのマルチバイト整数でビッグエンディアン |
| リリース日 | 1979 (with TeX; first described in TUGboat 1982) |
| 最新バージョン | DVI format 2 (standard); format 3 = DVItype with mixed RTL/LTR (Omega/Lambda); XDV = extended DVI used by XeTeX |
| オープンスタンダード | はい · ロイヤリティフリー |
| 仕様書 | www.mn.uio.no |
DVI の変換
コミュニティ Q&A
ユーザーからの質問まだ質問はありません。DVI ファイルについて最初の質問をしてみましょう。