![xelatex と xelatexmk のコンパイルの違いは何ですか?](https://rvso.com/image/266421/xelatex%20%E3%81%A8%20xelatexmk%20%E3%81%AE%E3%82%B3%E3%83%B3%E3%83%91%E3%82%A4%E3%83%AB%E3%81%AE%E9%81%95%E3%81%84%E3%81%AF%E4%BD%95%E3%81%A7%E3%81%99%E3%81%8B%3F.png)
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 にのみ必要です。そのため、多くの人はスクリプトを使用せず、必要な追加実行を手動で行うことに満足しています。つまり、中間実行が高速になります。他の人は、スクリプトがこの「バックエンド」作業を実行することを好むのです。