Knuth のオリジナルの Tex 実装では、TFM ファイルを使用してフォント情報をタイプセッティングに使用します。XeTeX はfontspec
パッケージを通じて TrueType および OpenType フォントをサポートしているため、これらの種類のフォントをどのように使用するのでしょうか。タイプセッティング中に TFM ファイル レベルの情報をオンザフライで生成するのでしょうか。また、TFM 形式は、OpenType または TrueType フォントを使用してドキュメントをタイプセッティングするために必要なすべての情報を表すのに十分でしょうか。余談ですが、TFM ファイルがオンザフライで生成される場合、フォントが Linux と Mac の両方で使用できない限り、.dvi
Linux でファイルをコンパイルして Mac で表示することはできないということですか。
答え1
タイプセッティング中に TFM ファイル レベルの情報を即座に生成しますか?
いいえ、XeTeX はタイプセッティング中にフォント メトリックを直接読み取ります (サード パーティ ライブラリのサポートを使用)。XeTeX がネイティブ フォントと呼ぶものに対して「内部」TFM は生成されません。
TFM 形式は、OpenType または TrueType フォントを使用してドキュメントを組版するために必要なすべての情報を表すのに十分ですか?
いいえ、TFM ファイルによって表されるグリフの数の制限 (これは、Omega の OFM ファイルなどでは、多かれ少なかれ排除できます) を除けば、OpenType は、TFM 形式でサポートされている合字メカニズムをはるかに超える、より高度なタイポグラフィ機能を提供します。
…つまり、フォントが Linux と Mac の両方で使用できない限り、Linux で .dvi ファイルをコンパイルして Mac で表示することはできないということですか?
それは本当です。両方のシステムでまったく同じ場所にまったく同じフォント ファイルがない限り、XeTeX で生成された XDV (eXtended DVI) は他のシステムで処理できません。ただし、XeTeX の最終出力はポータブルな PDF ファイルであり、XDV ファイルは中間表現、つまり単なる実装の詳細と見なされます。これは通常の DVI ファイルにも当てはまります。両方のシステムで同じメトリック ファイルとフォントがない場合、DVI ファイルは処理できません。DVI はデバイスに依存しませんが、ポータブルではありません。
答え2
TeXでフォントを読み込むときは、プリミティブコマンドで
\font\foo=bar
すべての高レベルマクロ (たとえば LaTeX のマクロ) は最終的にこれに縮小され、TeX はファイルを読み取りbar.tfm
、そこに含まれる情報をメモリに保存します。
XeTeX では OpenType フォントと TrueType フォント用の TFM ファイルは必要ありません。必要な情報はすでにフォント テーブル内に存在し、XeTeX がそれを検査できるためです。
実際、XeTeXは、TeXの通常のフォントよりもはるかに多くのメトリック情報を保存します。TeXのフォントは通常7つのパラメータしかありません。
\font\foo="Linux Libertine O"
XeTeX はこのフォントに対して までの値を認識します\fontdimen65
。ただし、TFM 形式では 7 個のパラメータの制限は\fontdimen
固定されておらず、フォントには任意の数のパラメータを設定できます (ただし、テキスト フォントの場合は 7 個が最小値です)。
XeTeXの出力形式はDVI形式の拡張であるXDVであり、いいえプレビューアが利用可能です。XDV ファイルを Xdvi や他の DVI プレビューアでプレビューすることはできません。実際、XDV ファイルはxdvipdfmx
PDF ファイルを作成する処理中に渡され、あらゆるプラットフォームで読み取るために必要なすべての情報が含まれています。