「DVI (ファイルフォーマット)」の版間の差分

削除された内容 追加された内容
Oiwa (会話 | 投稿記録)
英語版 17:27, 17 September 2006 版を翻訳・補充。
Oiwa (会話 | 投稿記録)
日本語化 TeX の出力フォーマットに関する記述の追加。
15行目:
DVI フォーマット中で参照される文字番号は、システム上の文字番号とは無関係に、利用するフォントのエンコーディングによって決まる。例えば、たとえ EBCDIC ベースのシステムであっても、フォントが通常使われる ASCII 配列のものである限り、出力される DVI ファイルの文字番号はASCII配列に沿ったものとなる。
 
== 日本語TeXにおける利用 ==
=== 関連ソフトウェア ===
(この項は日本語版独自の追加。)
 
日本語化された TeX システムにおいても、DVI ファイルフォーマットは基本的にそのまま利用されている。もともと、DVI が設計された当時のTeXは7ビットコードしか扱うことができず、全ての文字が <tt>set_char_''i''</tt> で扱えるにも関わらず、DVI には予め1バイトから4バイトまでの幅の文字番号を取ることのできる<tt>set1〜4</tt> (128〜131) が用意されていた。[[アスキー_(企業)|アスキー]] によって日本語化された「日本語 TeX」では、この機能をそのまま使う形で、日本語のJIS X0208の文字コードをそのまま <tt>set2</tt> 命令でDVIファイル中に出力する形を取っていて、ファイルフォーマットは拡張されていない。なお、DVIファイル中の日本語文字の文字コードは、システム文字コードが Shift_JIS の場合も EUC-JP の場合も、(16進の)JIS X0208 コードになっている。また、文字幅情報を記録するTFMファイルについては、日本語のほとんどの文字が同じ幅であることを勘案して改変された一部互換性の無いフォーマットを用いている。
 
また、縦書き対応に拡張された「[[pTeX]]」では、未使用であった命令コードの1つに<tt>tate</tt>命令 (255) を追加し、縦書きと横書きの切り替えを行うように拡張されている。そのため、ドライバに下位互換性のない拡張の有無が判断つくよう、縦書き機能を用いた際にはポストアンブルに含まれるファイルフォーマット番号が変更されるようになっている。
 
一方、[[NTT]] によって拡張された NTT jTeX では、日本語の文字集合を複数のフォントに仮想的に分割して、出力時にフォント切り替えを行う命令を挟みながら出力するように実装されていた。そのため、分割したフォントが準備されている環境では、DVIドライバは日本語拡張のないものをそのまま用いることができた。
 
* 参考URL: [http://www.ascii.co.jp/pb/ptex/ アスキー日本語TeX(pTeX)]: 具体的な拡張 DVI, TFM フォーマットについての仕様が掲載されている。
 
=== 関連ソフトウェア ===
*DVIビューワ: [[xdvi]] , [[dviout]] , [[YAP]] , [[Evince]]
*DVI-PS変換: [[dvips]]