感谢您阅读这个问题。
我以用户身份(而不是管理员)安装了 miktex(由于公司有严格的网络安全标准,我别无选择,只能使用 texlive 或安装新字体)并尝试运行此示例
\documentclass{ctexart}
\setCJKmainfont[
AutoFakeBold,AutoFakeSlant
]{SimSun}
\begin{document}
hello world, \textbf{你好}
\end{document}
我用 TeXworks 运行它,然后控制台输出抱怨
! Package fontspec Error: The font "SimHei" cannot be found.
它应该能够通过AutoFakeBold
和来绕过错误AutoFakeSlant
,因为它在我的个人电脑上运行良好。
我查看了 TeXworks 的控制台输出,发现有很多不同之处
Sorry, but miktex-makemf did not succeed.
和
Sorry, but miktex-maketfm did not succeed.
编译失败,所以我尝试了这个问题的解决方案,但它们不起作用。当我updmap.exe
单独输入时,问题仍然存在,当我使用选项force
或admin
cmd返回
C:\Users\Test Virtual Machine>updmap.exe --force
Incorrect usage: --force: unknown option
C:\Users\Test Virtual Machine>updmap.exe --admin
Sorry, but: option --admin only makes sense for a shared MiKTeX setup
答案1
答案最初来自@Ulrike Fischer 的评论。谢谢你,Ulrike Fischer。
我试了一下,成功了。CTeX 软件包文档(2022/07/14 v2.5.10)上是这么写的(我把它翻译成了英文,可能不太准确)
如果要在序言中设置字体
\ctexset
,则需要fontset = none
在声明文档类时设置
也许这就是 Ulrike Fischer 的方法有效的原因。此外,我尝试fontset = none
在声明文档类时设置并简单地使用
\setCJKmainfont[
AutoFakeBold,AutoFakeSlant
]{SimSun}
然后控制台输出不抱怨
! Package fontspec Error: The font "SimHei" cannot be found.
还有很多Sorry, but miktex-makemf did not succeed.
,我不知道为什么,但这些并不妨碍编译,你仍然可以得到所需的输出