我正在尝试编译此代码:
\documentclass{book}
\usepackage{fontspec}
\setmainfont{CMU Serif}
\begin{document}
text
\end{document}
但收到此错误
l.17 \setmainfont{CMU Serif}
?
在 miktex-maketfm.log 中显示:
2017-10-08 23:57:03,239+0200 INFO miktex-maketfm - starting with command line: miktex-maketfm -v "CMU Serif"
2017-10-08 23:57:03,259+0200 INFO maketfm - Running miktex-makemf.exe...
2017-10-08 23:57:03,259+0200 INFO maketfm - running: miktex-makemf.exe --verbose "CMU Serif"
2017-10-08 23:57:03,449+0200 INFO maketfm - Running miktex-hbf2gf.exe...
2017-10-08 23:57:03,449+0200 INFO maketfm - running: miktex-hbf2gf.exe -g "CMU Serif" 300
2017-10-08 23:57:03,600+0200 FATAL miktex-maketfm - No creation rule for font "CMU Serif".
之前我在编译 fontspec 时遇到了问题;似乎通过更新 miktex 解决了这个问题,但这两者可能仍然有联系。谢谢。
答案1
只有当字体作为系统字体安装(或使用 LuaLaTeX)时,您才可以使用该调用\setmainfont{CMU Serif}
。如何安装取决于系统。
否则,您可以“通过字体名称”调用字体:
\setmainfont{cmun}[
Extension=.otf,
UprightFont=*rm,
ItalicFont=*ti,
BoldFont=*bx,
BoldItalicFont=*bi,
]
\setsansfont{cmun}[
Extension=.otf,
UprightFont=*ss,
ItalicFont=*si,
BoldFont=*sx,
BoldItalicFont=*so,
]
\setmonofont{cmun}[
Extension=.otf,
UprightFont=*btl,% light version
ItalicFont=*bto,% light version
BoldFont=*tb,
BoldItalicFont=*tx,
]
对于 Typewriter Text 字体,也可以使用tt
和代替和(如果您不打算使用粗体等宽字体)it
btl
bto