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 至關重要。因此,許多人很樂意不使用腳本並手動執行必要的額外運行,這意味著中間運行速度更快。其他人則喜歡腳本為他們做這些「後端」工作。

相關內容