在 Windows 上將 OTF 與 MiKTeX、XeLaTeX 結合使用

在 Windows 上將 OTF 與 MiKTeX、XeLaTeX 結合使用

在您的主目錄中安裝免費的 Cabin Open Type 字型。考慮使用 XeLaTeX 編譯此文件:

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

\begin{document}

{\scshape test}

\end{document}

在 Windows 上使用 MiKTeX。cabin安裝軟體包後,小型大寫字母將被忽略。當沒有安裝時,結果就是我們想要的。

當使用 TeX Live 在 Linux 上編譯時,無論是否安裝了該軟體包,結果總是如您所願。

同樣的問題也存在於FiraSans.有什麼想法如何解決這個問題嗎?

答案1

正如烏爾里克·費舍爾(Ulrike Fischer)在評論中建議的那樣以及如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 設定中的格式。之後用 XeLaTeX 編譯 MWE(替換CabinFiraSans)產生了預期的結果。

相關內容