![Компиляция xelatex и xelatexmk — в чем разница?](https://rvso.com/image/266421/%D0%9A%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%86%D0%B8%D1%8F%20xelatex%20%D0%B8%20xelatexmk%20%E2%80%94%20%D0%B2%20%D1%87%D0%B5%D0%BC%20%D1%80%D0%B0%D0%B7%D0%BD%D0%B8%D1%86%D0%B0%3F.png)
Я использую 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. Таким образом, многие люди рады не использовать скрипт и выполнять необходимые дополнительные запуски вручную, что означает, что промежуточные запуски выполняются быстрее. Другие более довольны скриптом, который делает эту «бэк-энд» работу за них.