xelatex 与 xelatexmk 编译 – 有什么区别?

xelatex 与 xelatexmk 编译 – 有什么区别?

我在 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 必不可少。因此,许多人乐意不使用脚本,而是手动进行必要的额外运行,这意味着中间运行速度更快。其他人则更乐意让脚本为他们完成这些“后端”工作。

相关内容