![Tikz grid sobre compilación de proceso directo versus compilación dos veces versus compilación en IDE](https://rvso.com/image/472695/Tikz%20grid%20sobre%20compilaci%C3%B3n%20de%20proceso%20directo%20versus%20compilaci%C3%B3n%20dos%20veces%20versus%20compilaci%C3%B3n%20en%20IDE.png)
De alguna manera solucioné mi problema, pero busqué información sobre por qué las cosas se comportan como lo hacen. La pregunta se relaciona con los procesos de compilación, por lo que no creo que realmente se requiera un MWE, pero proporcioné uno al final por si acaso. Esta publicación terminó siendo bastante larga, lo siento de antemano por la historia, pero parece relevante en relación con cómo llegué a mi dilema actual.
Contexto: estoy tratando de diseñar un "generador de exámenes" a través de Python que toma una biblioteca de preguntas, una selección del tipo de preguntas a incluir y la duración del examen, y luego crea el examen y las soluciones seleccionando preguntas que coincidir con los criterios e importarlos a un documento xelatex. Luego, compila el documento para que el usuario tenga el pdf listo para usar.
La mayor parte del documento se crea sin problemas; sin embargo, he creado una serie de cuadrículas para muchas preguntas usando Tikz. Al ejecutar cada pregunta al dorso y TeXstudio, las cuadrículas se ven exactamente como quiero que se vean. Sin embargo, cuando se ejecuta el programa Python, parece que se crean en algún lugar del encabezado.
El proceso que ejecuté y que logró esto es:
xelatex Exam_Qs.tex
Para intentar solucionar este problema, copié el proceso que estaba usando TeXstudio y comencé a ejecutar esto en su lugar:
xelatex.exe -synctex=1 -interaction=nonstopmode "Exam_Qs".tex
Esto hace que las cuadrículas se muestren en la página correcta, pero ahora a veces están desplazadas. Experimentar sugiere que uno siempre se mostrará correctamente, pero no es consistente cuál es. Normalmente solo uso IDE, por lo que no me siento cómodo ejecutando el proceso de manera diferente. Tengo entendido que el modo continuo le dice al motor TeX que corrija los errores anteriores tanto como pueda, y que la opción synctex permite al IDE correlacionar la fuente y la posición del PDF. Estoy seguro de que la opción synctex no hace mucho para mi propósito final, pero cuando las cosas no funcionaban, tenía sentido copiar el proceso de TeXstudio por completo.
Lo que realmente me confunde es que ejecutar el proceso directamente o dentro de TeXstudio debería producir, al menos en mi opinión, el mismo documento. Sin embargo, compilar el mismo documento .tex en TeXstudio produce la cuadrícula como espero que se vea CADA vez, mientras que llamar al proceso en Python parece hacer que se vea mal CADA vez, y siempre de diferentes maneras.
Después de escribir todo esto y recrear mis problemas para poder describirlos completamente, terminé haciendo que Python ejecutara el proceso dos veces y, he aquí, las cuadrículas se muestran exactamente como esperaba. Entonces, finalmente, mis preguntas:
¿Por qué ejecutar el proceso dos veces hace que el documento se muestre correctamente? ¿Por qué ejecutar el proceso una vez hace que el documento no se muestre correctamente?
¿Puedo modificar el proceso al que estoy llamando para no tener que llamarlo dos veces?
Algunas MWE de las grillas que estoy haciendo:
\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}
(No espero que la configuración de espacio o geometría afecte el problema que tengo, pero lo he incluido en caso de que esto sea lo que vuelva a ocurrir)