CMU Serif 字体错误

CMU Serif 字体错误

我正在尝试编译此代码:

\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和代替和(如果您不打算使用粗体等宽字体)itbtlbto

相关内容