Windows で MiKTeX、XeLaTeX で OTF を使用する

Windows で MiKTeX、XeLaTeX で OTF を使用する

無料の Cabin Open Type フォントをホーム ディレクトリにインストールします。このファイルを XeLaTeX でコンパイルすることを検討してください。

\documentclass{article}
\usepackage{fontspec}
\setmainfont{Cabin}

\begin{document}

{\scshape test}

\end{document}

Windows で MiKTeX を使用します。パッケージcabinがインストールされている場合、小文字の大文字は無視されます。インストールされていない場合は、結果は希望どおりになります。

これを Linux 上で TeX Live を使用してコンパイルすると、パッケージがインストールされているかどうかに関係なく、結果は常に期待どおりになります。

同じ問題がありますFiraSans。これを解決する方法はありますか?

答え1

ウルリケ・フィッシャーがコメントで示唆したように、そしてhttps://tex.stackexchange.com/a/87906/2388問題は、MiKTeX がtexmfツリーを検索し、最初に Type 1 フォントを使用していることです。pdfTeX と XeLaTeX の両方でフォントを使用する場合、最善の解決策は MiKTeX が Type 1 フォントを使用しないようにすることです。(ただし、XeLaTeX でのみフォントを使用する場合は、ツリー内のフォントとともに関連するパッケージを削除するだけですtexmf。)

FiraSansこれは私が(Windows 7 で)で行ったことです。localfont2.confのファイルを見つけてC:\Documents and Settings\UserName\Application Data\MikTeX\2.9\fontconfig\config、次の行を追加しました (MiKTeX は にインストールされていますC:\miktex29)。

<selectfont>
<rejectfont>
<glob>C:/miktex29/fonts/type1/public/fira/*</glob>
</rejectfont>
</selectfont>

次に、FNDB を更新し、MiKTeX 設定でフォーマットを更新しました。その後、MWE (Cabinに置き換えFiraSans) を XeLaTeX でコンパイルすると、期待どおりの結果が得られました。

関連情報