我在三台不同的机器上安装了 MikTex 2.9.6022 和 TeXMaker 4.5。全部更新到最新的 win10 版本 1511。我有两台用了多年的旧机器,我的简历在上面编译得非常好,但我刚刚重新镜像的新机器无法生成输出 PDF。据我所知,日志文件没有显示任何严重错误,只是以警告结束,警告说 PDF 可能无效。
LaTeX Font Warning: Some font shapes were not available, defaults substituted.
Package atveryend Info: Empty hook `AtVeryVeryEnd' on input line 222.
)
Here is how much of TeX's memory you used:
37010 strings out of 428409
676491 string characters out of 3159522
700789 words of memory out of 3000000
40034 multiletter control sequences out of 15000+200000
6119 words of font info for 56 fonts, out of 3000000 for 9000
1328 hyphenation exceptions out of 8191
73i,9n,66p,10417b,965s stack positions out of 5000i,500n,10000p,200000b,50000s
Error 1 (driver return code) generating output;
file resume.pdf may not be valid.
我也在我的工作机器上尝试过这个,我经常用它来写 LaTeX,结果是一样的。它运行的是旧版本的 MikTex、相同版本的 TeXMaker 和 Win7 SP1。我必须使用 XeLaTeX 进行编译,因为我使用了 fontspec 包。有什么想法我可以做什么或下一步可以去哪里解决这个问题吗?
完整日志:http://pastebin.com/RYP4y0nH
编辑:我仍然需要帮助解决一个明显的环境问题,但问题已经基本解决了。我已在下面发布了答案!
答案1
上面的 Ulrike Fischer 通过更详细的输出日志帮助我找到正确的方向,谢谢!
...如果这不是问题的根源,请在命令行上运行 xelatex --no-pdf 文件和 xdvipdfmx -vv 文件以获取更好的错误消息。
运行xelatex --no-pdf test.tex
顺利完成,没有错误
跑步xdvipdfmx -vv test.xdv
返回跟随误差:
xdvipdfmx:warning: Invalid CMap
xdvipdfmx:fatal: pdf_ref_obj(): passed invalid object.
Output file removed.
我能够将其追溯到 FontAwesome 的问题。如果我删除字形,它就可以正常编译。我能够通过添加以下两行来纠正它(我已对它们进行了注释)
\documentclass{article}
\RequirePackage{xcolor}
\definecolor{customgold}{HTML}{D6BC55}
% Why do I need this one some computers and not others?
\usepackage{fontspec} % Was able to fix it with this line
\defaultfontfeatures{Extension = .otf} % ...and this line
\usepackage{fontawesome}
\newfontfamily{\FA}[Color=customgold]{FontAwesome}
\begin{document}
\title{Fun with \LaTeX{}} \author{Author}
\maketitle
\section{Introduction} Introductions aren't important.
\section{Conclusion} Sad conclusion... {\FA \faUniversity}
\end{document}
答案2
我刚刚想起来:不久前我在 UserData-texmf 树中添加了这个...\fontconfig\config\localfonts2.conf
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<selectfont>
<rejectfont>
<glob>D:/MiKTeX2.9/fonts/type1/public/fontawesome/*</glob>
</rejectfont>
</selectfont>
<!-- REMOVE THIS LINE
<dir>Your font directory here</dir>
<dir>Your font directory here</dir>
<dir>Your font directory here</dir>
REMOVE THIS LINE -->
</fontconfig>
这应该可以避免 xetex 找到字体的 type1 版本(它不应该找到)。