xelatex と xelatexmk のコンパイルの違いは何ですか?

xelatex と xelatexmk のコンパイルの違いは何ですか?

Windows環境でTeX Live 2012を使用しています。

私は以前、TeX Live の「処理ツール」に含まれていない でコンパイルしていましたxelatexmk。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 でコンパイルを 2 回繰り返す必要がある理由、またはこれxelatexmkを含める必要がある理由になるでしょうか。繰り返しますが、これは初心者ユーザーの視点からのものであり、初心者ユーザーは通常、.texデフォルトの組み込みコンパイラを使用してドキュメントを簡単にコンパイルできると期待 (または希望) していることを強調する必要があります。

答え1

コマンドxelatexは XeLaTeX を 1 回だけ実行します。つまり、タイプセッティングを 1 回実行して PDF を生成します。対照的に、 はxelatexmkスクリプトを使用して、必要な実行を決定 (しようと) しながら、XeLaTeX と他のツールを 1 回以上実行します。相互参照などを導入して「単純な」ドキュメントを超えると、ドキュメントを「完全に」コンパイルするには少なくとも 2 回の XeLaTeX 実行が必要です (ここでは、出力内の位置に関する「ラベル」のようなものがあります)。一方、スクリプトは常に正しく動作するとは限らず、すべてのリンクを解決しても、通常、最終的な「製品版」PDF にのみ必要です。そのため、多くの人はスクリプトを使用せず、必要な追加実行を手動で行うことに満足しています。つまり、中間実行が高速になります。他の人は、スクリプトがこの「バックエンド」作業を実行することを好むのです。

関連情報