Ich verwende TeX Live 2012 in einer Windows-Umgebung.
Ich habe früher mit kompiliert xelatexmk
, das nicht in den „Verarbeitungstools“ von TeX Live enthalten ist. Als ich von LaTeX auf XeLaTeX umsteigen wollte, habe ich irgendwo gelesen, dass ich mit kompilieren muss xelatexmk
, und es gab Anweisungen für die Konfiguration.
Meine xelatexmk
Konfiguration sieht folgendermaßen aus:
Dann bin ich vor kurzem auf den integrierten XeLaTeX
Compiler von TeX Live umgestiegen, weil ich festgestellt habe, dass dieser schneller ist und immer das gleiche Ergebnis liefert. Diese Konfiguration sieht folgendermaßen aus:
Aber ich habe einen Unterschied bemerkt, wenn ich Pfeile mit zeichne TikZ
. Unten ist ein 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}
Wenn ich mit kompiliere xelatexmk
, erhalte ich Folgendes:
XeLaTeX
Wenn ich dagegen mit kompiliere , erhalte ich Folgendes:
Ich muss es XeLaTeX
ein zweites Mal kompilieren, um das richtige Ergebnis zu erhalten:
Ich bin sicher, dass es einen guten Grund dafür gibt, warum XeLaTeX
sich dieses Verhalten zeigt, aber für unerfahrene Benutzer wie mich war dies sehr frustrierend, da ich nicht herausfinden konnte, warum meine Pfeile nicht mehr so wurden wie früher (als ich verwendet habe xelatexmk
).
Könnte dies vielleicht ein Grund sein, warum XeLaTeX
in zukünftigen Versionen von TeX Live zwei Kompilierdurchgänge durchgeführt werden sollten oder warum dies xelatexmk
eingeschlossen werden sollte? Ich muss noch einmal betonen, dass dies aus der Perspektive eines unerfahrenen Benutzers geschieht, der im Allgemeinen erwartet (oder hofft), dass sein .tex
Dokument mithilfe eines standardmäßig integrierten Compilers problemlos kompiliert werden kann.
Antwort1
Der xelatex
Befehl führt XeLaTeX genau einmal aus: Er führt einen Satzdurchlauf durch und erzeugt ein PDF. Im Gegensatz dazu xelatexmk
führt XeLaTeX und andere Tools ein- oder mehrmals aus und verwendet ein Skript, um (zu versuchen) zu bestimmen, welche Durchläufe erforderlich sind. Sobald Sie über ein „triviales“ Dokument hinausgehen und Querverweise oder Ähnliches einführen, sind mindestens zwei XeLaTeX-Durchläufe erforderlich, um ein Dokument „vollständig“ zu kompilieren (hier haben wir eine Art „Etikett“ in Bezug auf die Position in der Ausgabe). Andererseits machen Skripte nicht immer alles richtig, und das Auflösen aller Links,usw.ist normalerweise nur für das endgültige „Produktions“-PDF erforderlich. Daher sind viele Leute froh, kein Skript zu verwenden und die notwendigen zusätzlichen Durchläufe von Hand durchzuführen, was bedeutet, dass Zwischendurchläufe schneller sind. Andere sind zufriedener, wenn ein Skript diese „Backend“-Aufgaben für sie erledigt.