在 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安装该软件包后,小写字母将被忽略。未安装时,结果符合要求。

当在 Linux 上使用 TeX Live 进行编译时,无论是否安装了该包,结果总是符合预期。

也有同样的问题FiraSans。有什么解决办法吗?

答案1

正如 Ulrike Fischer 在评论中所建议的以及https://tex.stackexchange.com/a/87906/2388,问题在于 MiKTeX 正在搜索树texmf并首先使用 Type 1 字体。如果您想在 pdfTeX 和 XeLaTeX 中使用这些字体,那么最好的解决方案是阻止 MiKTeX 使用 Type 1 字体。(但是,如果您只想在 XeLaTeX 中使用字体,那么只需将相关包与树中的字体一起删除即可texmf。)

这是我在 Windows 7 上所做的FiraSans。找到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)得到了预期的结果。

相关内容