問題はある程度解決しましたが、なぜこのような動作をするのかについて、洞察を求めています。質問はコンパイルプロセスに関係しているので、MWE は実際には必要ないと思いますが、念のため最後に 1 つ用意しました。この投稿はかなり長くなりましたので、ストーリーについてはあらかじめお詫びしますが、現在のジレンマに至った経緯に関連しているように感じます。
コンテキスト: 私は、質問のライブラリ、含める質問の種類の選択、試験の長さなどを考慮し、基準に一致する質問を選択して xelatex ドキュメントにインポートすることで、試験と解答を作成する Python を使用した「試験ジェネレーター」を設計しようとしています。次に、ユーザー向けにドキュメントをコンパイルし、すぐに使用できる PDF を用意します。
ドキュメントの大部分は問題なく作成されていますが、私は Tikz を使用して多くの質問に対して一連のグリッドを作成しました。すべての質問を Overleaf と TeXstudio で実行すると、グリッドはまさに私が望むとおりの外観になります。しかし、Python プログラムを実行すると、代わりにヘッダーのどこかに作成されるようです。
これを達成するために私が実行したプロセスは次のとおりです。
xelatex Exam_Qs.tex
これを修正するために、TeXstudio が使用していたプロセスをコピーし、代わりにこれを実行し始めました:
xelatex.exe -synctex=1 -interaction=nonstopmode "Exam_Qs".tex
これにより、グリッドが正しいページに表示されますが、ずれることがあります。実験してみると、常に正しく表示されるものが 1 つあるようですが、どれが正しく表示されるかは一定ではありません。私は通常 IDE のみを使用するため、プロセスを別の方法で実行することに不安を感じています。私の理解では、nonstopmode は TeX エンジンにエラーをできるだけ多く実行するように指示し、synctex オプションは IDE がソースと PDF の位置を関連付けることを可能にします。synctex オプションは、最終的な目的にはあまり役に立たないと思いますが、うまくいかないときは、TeXstudio プロセス全体をコピーするのが理にかなっています。
本当に困惑しているのは、プロセスを直接実行した場合と TeXstudio 内で実行した場合では、少なくとも私の考えでは、同じドキュメントが生成されるはずだということです。しかし、同じ .tex ドキュメントを TeXstudio でコンパイルすると、毎回期待どおりのグリッドが生成されますが、Python でプロセスを呼び出すと、毎回間違った表示になり、常に異なる表示になります。
これらすべてを入力し、問題を再現して完全に説明できるようにした後、Python でプロセスを 2 回実行したところ、なんと、グリッドが期待どおりに表示されました。それでは最後に、私の質問は次のとおりです。
プロセスを 2 回実行するとドキュメントが正しく表示されるのはなぜですか。/ プロセスを 1 回実行するとドキュメントが正しく表示されないのはなぜですか。
呼び出しているプロセスを変更して、2 回呼び出さなくても済むようにすることはできますか?
私が作成しているグリッドの MWE をいくつか示します。
\documentclass[11pt,twoside,a4paper]{article}
\usepackage[margin=2cm, headheight=1.25cm, headsep=0.5cm]{geometry}
\usepackage{tikz} % for creating pictures using tikzpicture
\begin{document}
\begin{tikzpicture}[remember picture,overlay]
\label{grid}
% Define the size of the grid squares
\def\minorsize{2mm} % Minor grid size
\def\majorsize{1cm} % Major grid size
% Calculate the adjusted positions for the grid
\path (current page.south west) ++(20mm,23mm) coordinate (grid sw); % bottom left point
\path (current page.north east) ++(-20mm,-23.8mm) coordinate (grid ne); % top right point
% Draw the minor grid
\draw[black!20, step=\minorsize] (grid sw) grid (grid ne);
% Draw the major grid
\draw[black!50, step=\majorsize] (grid sw) grid (grid ne);
\end{tikzpicture}\newpage
\vspace{10mm}\begin{tikzpicture}[remember picture, overlay]
\label{grid}
% Define the size of the grid squares
\def\minorsize{2mm} % Minor grid size
\def\majorsize{1cm} % Major grid size
% Calculate the adjusted positions for the grid
\path (current page.south west) ++(20mm,25.8mm) coordinate (grid sw); % bottom left point
\path (current page.north east) ++(-20mm,-41mm) coordinate (grid ne); % top right point
% Draw the minor grid
\draw[black!20, step=\minorsize] (grid sw) grid (grid ne);
% Draw the major grid
\draw[black!50, step=\majorsize] (grid sw) grid (grid ne);
\end{tikzpicture}\newpage
\begin{tikzpicture}[remember picture, overlay]
\label{grid}
% Define the size of the grid squares
\def\minorsize{2mm} % Minor grid size
\def\majorsize{1cm} % Major grid size
% Calculate the adjusted positions for the grid
\path (current page.south west) ++(20mm,123mm) coordinate (grid sw); % bottom left point
\path (current page.north east) ++(-20mm,-23.8mm) coordinate (grid ne); % top right point
% Draw the minor grid
\draw[black!20, step=\minorsize] (grid sw) grid (grid ne);
% Draw the major grid
\draw[black!50, step=\majorsize] (grid sw) grid (grid ne);
\end{tikzpicture}\vspace{153mm}
\end{document}
(スペースやジオメトリの設定が問題に影響するとは思いませんが、これが再発する場合に備えて記載しました)