
Parece que arXiv no compila suficientes veces mi documento (en algunos puntos se detiene, diciendo que alcanzó el número máximo de intentos). Como consecuencia, algunas partes de mi documento no se ven bien (mientras que si compilo con latexmk por mi parte, funciona como se esperaba).
Intenté agregar un main.aux
archivo, pero arXiv lo elimina automáticamente. También intenté crear un archivo main_backup.aux
que contenga una copia de main.aux
(ésta no se elimina) y, en su lugar, agregué justo antes \begin{document}
:
\IfFileExists{main_backup.aux}{
\message{We saw a default backup.aux file, let's use it instead of the main aux file.}
\nofiles % Disable default aux file
\makeatletter
\input{main_backup.aux}
\makeatother
}{}
Sin embargo, esto tiene dos problemas:
- localmente, se compila sin errores y mis documentos se ven mejor... ¡excepto por la tabla de contenido que ahora está vacía!
- en arxiv, falla con un error justo después de cargar el archivo auxiliar:
We saw a default backup.aux file, let's use it instead of the main aux file.
No auxiliary output files.
(./main_backup.aux
! LaTeX Error: Missing \begin{document}.
See the LaTeX manual or LaTeX Companion for explanation.
Type H <return> for immediate help.
...
l.23 \abx@aux@cite{0}{K
il88_FoundingCrytpographyOblivious}
?
! Emergency stop.
...
l.23 \abx@aux@cite{0}{K
il88_FoundingCrytpographyOblivious}
No pages of output.
Transcript written on main.log.
[verbose]: latex 'main.tex' failed.
[verbose]: TEXMFCNF is unset.
Tenga en cuenta que estos errores parecen llegar a esta línea de mi archivo auxiliar:
\@writefile{toc}{\authcount {1}}
\abx@aux@cite{0}{Kil88_FoundingCrytpographyOblivious}
que menciona nuevamente la tabla de contenido... por lo que mis dos problemas podrían estar relacionados.
EDITAR También probé:
\IfFileExists{main_backup.aux}{
\message{We saw a default backup.aux file, let's use it instead of the main aux file.}
\makeatletter
\usepackage{etoolbox}
%% Try to patch the command given in
%% https://tex.stackexchange.com/questions/285798/how-and-when-is-the-aux-file-read-and-processed
% \regexpatchcmd{\enddocument}{\@@input\jobname.aux}{\@@input{main_backup.aux}}
\patchcmd{\enddocument}{\@@input\jobname.aux}{\@@input{main_backup.aux}}{}{}
%\input{main_backup.aux}
\makeatother
}{}
pero parece que el parche no funciona.
EDITAR
También probé:
%%%% Really dirty trick because arxiv does not compile enough the document, so we need our own aux file:
\IfFileExists{main_backup.aux}{
\IfFileExists{main.aux}{}{
\message{We saw a default backup.aux file, let's use it instead of the main aux file.}
\makeatletter
\input{main_backup.aux}
\makeatother
}
}{}
\begin{document}
...
De hecho, esto funciona localmente, pero no en el servidor arxiv, vuelve a fallar con este molesto error...
Respuesta1
Puedes reproducir con
\documentclass{article}
\usepackage{biblatex}
\makeatletter
\@writefile{toc}{\authcount {1}}
\abx@aux@cite{0}{Kil88_FoundingCrytpographyOblivious}
\begin{document}
x
\end{document}
que se ejecuta sin error en texlive 2022 y 2023 pero en 2020 da
! LaTeX Error: Missing \begin{document}.
See the LaTeX manual or LaTeX Companion for explanation.
Type H <return> for immediate help.
...
l.5 \abx@aux@cite{0}{K
il88_FoundingCrytpographyOblivious}
?
Tenga en cuenta que este no es el formato que mostró ya que il88
tiene sangría después de K
pero sospecho que es el error que obtuvo. (No se me ocurre ninguna forma de obtener el error que mostraste).
La versión anterior de \abx@aux@cite
solo tenía un argumento, por lo que parece que puede simplemente editar su archivo guardado para eliminar el primer argumento numérico, debería estar lo suficientemente cerca para una primera ejecución, la segunda ejecución obtendrá un auxiliar 2020 real.
\documentclass{article}
\usepackage{biblatex}
\makeatletter
\@writefile{toc}{\authcount {1}}
\abx@aux@cite{Kil88_FoundingCrytpographyOblivious}
\begin{document}
x
\end{document}
se ejecuta sin errores en 2020; en 2023 da
Runaway argument?
! Paragraph ended before \abx@aux@cite was complete.
<to be read again>
\par
l.6
?
Respuesta2
OK, despuéscavando más, el problema fue que arXiv usa una herramienta llamada autotex que no maneja algunos tipos de imágenes dinámicas cuando se usa la salida DVI (incluso si en mis pruebas, DVI funcionó bien localmente, el problema parece ser autotex), por lo que las imágenes de tikz pueden ir mal. Poniendo:
\pdfoutput=1
en la primera línea, obliga a arXiv a compilarse en un pdf. Agregar a4paper
la clase también podría evitar que arXiv intente jugar con la geometría.
Si por alguna razón no puede hacerlo funcionar ni siquiera con el texto anterior, lo más sencillo podría ser enviar directamente un PDF, con lo siguiente para ocultar el hecho de que el pdf es producido por LaTeX (de lo contrario, arXiv no le permitirá enviar el pdf):
\usepackage{hyperref}
% Hide to arXiv that this pdf is produced by LaTeX:
\pdfsuppressptexinfo=-1
\hypersetup{
pdfproducer={},
pdfcreator={},
}