
XeLaTeX で使用したい.ttf
フォントがいくつかあるのですが、見つからないようです。たとえば、次のようにコンパイルします。~/Library/Fonts
\documentclass[]{article}
\usepackage{fontspec}
\setmainfont{Times New Roman}
\begin{document}
The quick brown fox jumps over the lazy dog.
\end{document}
しかし、これは起こりません:
\documentclass[]{article}
\usepackage{fontspec}
\setmainfont{Times New Roman.ttf}
\begin{document}
The quick brown fox jumps over the lazy dog.
\end{document}
はい、Times New Roman.ttf
です~/Library/Fonts
。
答え1
のフォント検索について誤解しているようですxetex
。さまざまな検索メカニズムについては、XeTeX マニュアルですが、答えるためにもう少し要約してみたいと思います。
最初の例のように、フォント名(例えばTimes New Roman)を指定すると、
\setmainfont{Times New Roman}
すると、XeTeX はシステムのフォント ユーティリティを使用してフォントを検索します。GNU/Linux では、これは通常 ですfontconfig
。XeTeX はfontconfig
「Times New Roman という名前のフォントはどこにありますか?」と尋ね、fontconfig
次のように応答します。「 にあります.fonts/Times New Roman/Times New Roman.ttf
。」その後、XeTeX は を呼び出し、xdvipdfm
そのファイルからフォントをロードします。
フォント名の代わりにファイル名を指定する場合、例えば次Times New Roman.ttf
のようにします。
\setmainfont{Times New Roman.ttf}
すると、XeTeX は直ちにユーティリティに引き継いで、そのファイル (つまり、現在のディレクトリから、またはツリー経由)からxdvipdfm
フォントを含めます。Times New Roman.ttf
kpathsea
texmf
フォントをシステムフォントとしてインストールすることをお勧めします。そうすることで、ディレクトリ内に同じフォントのコピーが複数存在することがなくなります。何らかの理由でこれが不可能な場合は、フォントファイルをドキュメントと同じディレクトリに配置するか、多くのフォントを使用する場合は、フォント専用のサブフォルダに配置する必要があります。その後、次のように相対パスでフォントを読み込むことができます。
\setmainfont{fonts/Times New Roman.ttf}
注意: ファイル名にスペースを入れるのは好きではありません。スペースを適切にエスケープしないと、一部のソフトウェアが壊れる傾向があるからです。