Компиляция xelatex и xelatexmk — в чем разница?

Компиляция xelatex и xelatexmk — в чем разница?

Я использую TeX Live 2012 в среде Windows.

Я использовал для компиляции xelatexmk, который не входит в "Processing tools" TeX Live. Когда я хотел перейти с LaTeX на XeLaTeX, я где-то прочитал, что мне нужно компилировать с xelatexmk, и там были инструкции по его настройке.

Моя xelatexmkконфигурация выглядит так:

введите описание изображения здесь

Затем я недавно перешел на встроенный XeLaTeXкомпилятор TeX Live, потому что заметил, что он быстрее и всегда дает тот же результат. Эта конфигурация выглядит так:

введите описание изображения здесь

Но я заметил разницу, когда рисую стрелки с помощью 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. С другой стороны, скрипты не всегда делают все правильно, и разрешение всех ссылок,и т. д.обычно необходим только для финального «производственного» PDF. Таким образом, многие люди рады не использовать скрипт и выполнять необходимые дополнительные запуски вручную, что означает, что промежуточные запуски выполняются быстрее. Другие более довольны скриптом, который делает эту «бэк-энд» работу за них.

Связанный контент