Utilice un archivo auxiliar "precompilado" para evitar límites en arxiv

Utilice un archivo auxiliar "precompilado" para evitar límites en arxiv

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.auxarchivo, pero arXiv lo elimina automáticamente. También intenté crear un archivo main_backup.auxque 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:

  1. localmente, se compila sin errores y mis documentos se ven mejor... ¡excepto por la tabla de contenido que ahora está vacía!
  2. 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 il88tiene sangría después de Kpero 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@citesolo 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 a4paperla 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={},
}

información relacionada