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