我在 Windows 环境中使用 TeX Live 2012。
我以前用 进行编译xelatexmk
,但 TeX Live 的“处理工具”中不包含 。当我想从 LaTeX 切换到 XeLaTeX 时,我在某处看到必须用 进行编译xelatexmk
,并且它提供了配置说明。
我的xelatexmk
配置如下:
然后我最近切换到 TeX Live 的内置XeLaTeX
编译器,因为我注意到它更快并且总是给出相同的结果。该配置如下所示:
但是当我用 绘制箭头时,我注意到了差异TikZ
。下面是 MWE:
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tabular}{cc}
\tikz[baseline, remember picture] \node[inner sep = 0pt, anchor = base] (finisharrow) {a}; & \tikz[baseline, remember picture] \node[inner sep = 0pt, anchor = base] (startarrow) {c};
\end{tabular}
\begin{tikzpicture}[remember picture, overlay, shorten <=.1ex, shorten >=.1ex]
\draw [semithick, ->] (startarrow) -- (finisharrow);
\end{tikzpicture}
\end{document}
当我用 进行编译时xelatexmk
,它给了我这个:
XeLaTeX
另一方面,当我用 进行编译时,它给了我以下内容:
我需要XeLaTeX
第二次编译才能获得正确的结果:
我确信这种行为有充分的理由XeLaTeX
,但对于像我这样的新手用户来说,这导致了很多挫败感,因为我无法弄清楚为什么我的箭头没有像以前那样(当我使用时xelatexmk
)。
XeLaTeX
这是否可能是TeX Live 未来版本应该进行两次编译迭代的原因,或者为什么xelatexmk
应该包括这一点?再次强调,这是从新手用户的角度出发的,他们通常期望(或希望)他们的.tex
文档能够通过使用一些默认的内置编译器轻松编译。
答案1
该xelatex
命令只运行一次 XeLaTeX:它执行一次排版运行并生成 PDF。相反,xelatexmk
运行 XeLaTeX 和其他工具一次或多次,使用脚本(尝试)确定需要运行哪些运行。一旦您超越了“简单”的文档,引入交叉引用或类似内容,则至少需要两次 XeLaTeX 运行才能“完全”编译文档(这里我们在输出中的位置方面有一个“标签”)。另一方面,脚本并不总是正确,解析所有链接,ETC。通常只对最终的“生产” PDF 必不可少。因此,许多人乐意不使用脚本,而是手动进行必要的额外运行,这意味着中间运行速度更快。其他人则更乐意让脚本为他们完成这些“后端”工作。