在您的主目錄中安裝免費的 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(替換Cabin
為FiraSans
)產生了預期的結果。