当我使用 XeLaTeX 进行编译并使用 时\setmainfont{CMU Serif}
,生成的字符会偏离一个。这意味着A变成b, A1变成2, ETC。
\documentclass{article}
\usepackage{fontspec}
\setmainfont{CMU Serif}
\begin{document}
Test test2
12345
\end{document}
但是,当我使用\setmainfont{cmunrm.otf}
文件名时,输出是正确的:
当我使用 时\setmainfont{CMU Sans Serif}
,输出也是正确的,但是如果我使用\setmainfont{CMU Serif Extra}
,例如,输出再次错误,所以看起来Serif CMU 字体有问题?
是什么原因导致的?我该如何解决?
编辑:运行后的控制台输出xelatex -output-driver="xdvipdfmx -v" test.tex
为http://pastebin.com/nb19aPuc.The登录http://pastebin.com/qgSC07YY。有趣的东西似乎从第 349 行开始。
的输出fc-list | grep 'CMU Serif'
(http://pastebin.com/BNWzyRkH) 似乎表明字体的安装没有任何问题。
我在 Windows 10 x64 上运行 MikTex 2.9,所有软件包都已更新到最新版本(至少根据 MikTex 更新工具)。
答案1
可能 type1 字体被用作原生字体。旧版 xdvipdfmx 无法处理原生 type1 字体。即将在 TeX Live 2016 中推出的 xdvipdfmx 中修复了这些错误。无论如何,即使在修复了错误的新版 xdvipdfmx 中,我也建议您隐藏
C:/MiKTeX-2.9/fonts/type1
对于字体配置。如果您隐藏 type1 字体,即使使用损坏的 xdvipdfmx,您也将获得所需的结果。
答案2
我检查了你的文件。它运行正常,并给出了正确的结果。
\begin{document}
\setmainfont{CMU Serif Extra}
\noindent Test test2 \\
12345 \\
\setmainfont{CMU Serif}
Test test2 \\
12345
\end{document}
检查:MiKTeX Options -> Formats -> xelatex (non exclude) -> Build
。进一步:
更新格式,刷新 FNDB。应该没有错误。否则,请尝试以管理员身份登录。
我的设置:这是 XeTeX,版本 3.14159265-2.6-0.99998(MiKTeX 2.9.6500 64 位)