\XeLaTeX
带有的 Bold/Italic/BoldItalic 字体\setmainfont
无法正常工作。例如(下面), 和\textbf{English}
看起来\textit{English}
像 normalfont。使用\LuaLaTex
它就可以正常工作。
\documentclass[twoside]{article}
\usepackage{fontspec}
\usepackage{polyglossia}
\setmainlanguage{english}
\setmainfont{CMU Serif}
\setsansfont{CMU Sans Serif}
\setmonofont{CMU Typewriter Text}
\begin{document}
\noindent
\textbf{English}\\
\texttt{English}\\
\textit{English}\\
\end{document}
具有某些其他定义
\setmainfont[
Ligatures=TeX,
Extension=.otf,
BoldFont=cmunbx,
ItalicFont=cmunti,
BoldItalicFont=cmunbi,
]{cmunrm}
两者\XeLaTeX
均可\LuaTeX
正确显示字体。
我正在使用 WinXP SP3、Miktex 2.9(已更新)
一些补充
我找到了问题的临时解决方案。我注意到运行\setmainfont{Times New Roman}
\XeLaTeX
良好。然后我将字体从安装到文件夹\MikTex\fonts\opentype\public\cm-unicode\
中Windows\Fonts
。
事实证明,只有MiKTeX
可以xelatex.exe
看到系统文件夹中的字体,而看不到自己文件夹中的字体,尽管LaTeX\MikTex\fontconfig\config\*fonts*.conf
包含了自己字体文件夹的路径。
另外补充
正如我所注意到的,除了 CMU Serif 系列之外,他们还xelatex.exe
了解许多 Human 字体系列名称。\MikTex\fonts\opentype\public\cm-unicode\
\setmainfont{CMU Bright}
显示粗体/斜体/粗体斜体字体。
看来问题不在于xelatexxelatex.exe
包,而可能在于 xelatex 包fontspec
,或者更可能在于字体文件cmun*.otf
。可能里面cmun*.otf
没有其他文件之间的关系,它们属于同一个家族。但奇怪的是,LuaLaTeX
显示CMU Serif
家族是正确的。
答案1
使用最新的 TL 2014xelatex
和lualatex
*File List*
article.cls 2014/09/29 v1.4h Standard LaTeX document class
size10.clo 2014/09/29 v1.4h Standard LaTeX file (size option)
fontspec.sty 2014/06/21 v2.4a Font selection for XeLaTeX and LuaLaTeX
expl3.sty 2014/11/25 v5471 L3 programming layer (loader)
expl3-code.tex 2014/11/25 v5471 L3 programming layer
etex.sty 1998/03/26 v2.0 eTeX basic definition package (PEB)
l3unicode-data.def 2014/11/23 v5465 L3 Unicode data
l3xdvipdfmx.def
xparse.sty 2014/11/25 v5471 L3 Experimental document command parser
fontspec-patches.sty 2014/06/21 v2.4a Font selection for XeLaTeX and LuaLaTe
X
fontspec-xetex.sty 2014/06/21 v2.4a Font selection for XeLaTeX and LuaLaTeX
fontenc.sty
[ ... ]
您应该更新您的系统。