最近,我更新到了 MiKTeX 2.9,之后 xelatex 编译器在编译包含该fontspec
包的文档时失败。换句话说,以下代码无法编译:
\documentclass{article}
\usepackage{fontspec}
\setmainfont{Cambria}
\begin{document}
Hello world!
\end{document}
我不知道更新到 MiKTeX 2.9 后发生了什么变化,但我在 TeXnicCenter 中收到以下构建日志消息:
(“C:\Program Files\MiKTeX 2.9\tex\latex\euenc\eu11mr.fd”) xelatex.exe:Windows API 错误 1113:没有 Unicode 字符的映射 存在于目标多字节代码页中。
在 TeXWorks 中编译时似乎也存在同样的问题。
我尝试重新安装 MiKTeX 2.9 以确保一切都是最新的,但这没有帮助。
有人知道我该如何解决这个问题吗?非常感谢您的回答。
编辑:
以下是具体内容的列表:
- 所有过时的软件包都已更新,并且文件名数据库也已刷新。
- 我在编译时确实得到了一个日志文件。唯一没有得到的文件是 pdf 输出。
- 我使用的操作系统是Windows Vista。
- cmd
xelatex --no-pdf file
(终端)命令给出与上面引用相同的错误消息。 - 我的用户名确实包含非 ASCII 字符。但是这些字符均不在 Latin-1 字符集范围之内。
- 没有其他文件或文件夹具有非 ASCII 字符。
答案1
我收到了相同的错误信息:
pdflatex:Windows API 错误 1113:目标多字节代码页中不存在 Unicode 字符的映射。
安装了最新更新(Miktex 2.9 和所有可用更新,安装于 2011-12-24)。大约半年前,该文件运行正常。
出现该问题的原因是我在使用 \includegraphics 时在文件名中使用了斯堪的纳维亚字符:
\includegraphics[width=8cm,height=7cm,keepaspectratio]{å}
当我将文件从 å.jpg 重命名为 ae.jpg 时,错误消息消失了:
\includegraphics[width=8cm,height=7cm,keepaspectratio]{ae}
您遇到的问题可能与文件名中的字符编码有关。
希望这可以帮助任何因类似原因而收到该错误消息的人。
答案2
这肯定是 Windows 中 xetex 的构建问题 — 我以前从未见过这种错误。尝试加载没有 fontspec 的字体:
\font\x="Cambria" at 12 pt \x hello
这应该会产生类似的问题,您可以向 MiKTeX 支持报告。
答案3
您的计算机上没有 Cambria 字体。请尝试一些标准字体,例如 Tahoma。如果可以,则与 MiKTeX 2.9 无关。