Verwenden Sie eine „vorkompilierte“ AUX-Datei, um Beschränkungen des Arxiv zu vermeiden

Verwenden Sie eine „vorkompilierte“ AUX-Datei, um Beschränkungen des Arxiv zu vermeiden

Es scheint, dass arXiv mein Dokument nicht oft genug kompiliert (an manchen Stellen bricht es ab und sagt, dass die maximale Anzahl von Versuchen erreicht ist). Infolgedessen sehen einige Teile meines Dokuments nicht gut aus (während es wie erwartet funktioniert, wenn ich es mit latexmk kompiliere).

Ich habe versucht, eine Datei hinzuzufügen , aber arXiv entfernt meine Datei automatisch. Ich habe auch versucht, eine Datei mit einer Kopie von main.auxzu erstellen (diese wird nicht entfernt), und stattdessen habe ich direkt davor Folgendes hinzugefügt :main_backup.auxmain.aux\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
}{}

Dies bringt jedoch zwei Probleme mit sich:

  1. Lokal wird es ohne Fehler kompiliert und meine Dokumente sehen besser aus … abgesehen vom Inhaltsverzeichnis, das jetzt leer ist!
  2. auf dem Arxiv schlägt es direkt nach dem Laden der AUX-Datei mit einem Fehler fehl:
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.

Beachten Sie, dass dieser Fehler in dieser Zeile meiner AUX-Datei aufzutreten scheint:

\@writefile{toc}{\authcount {1}}
\abx@aux@cite{0}{Kil88_FoundingCrytpographyOblivious}

darin wird erneut das Inhaltsverzeichnis erwähnt … also könnten meine beiden Probleme zusammenhängen.

BEARBEITEN Ich habe auch versucht:

\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
}{}

aber es scheint, als würde der Patch nicht funktionieren.

BEARBEITEN

Ich habe auch versucht:

%%%% 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}
...

Dies funktioniert zwar lokal, aber nicht auf dem Arxiv-Server. Dort tritt erneut der gleiche nervige Fehler auf …

Antwort1

Sie können reproduzieren mit

\documentclass{article}
\usepackage{biblatex}
\makeatletter
\@writefile{toc}{\authcount {1}}
\abx@aux@cite{0}{Kil88_FoundingCrytpographyOblivious}


\begin{document}
x
\end{document}

die ohne Fehler in Texlive 2022 und 2023 läuft, aber in 2020 gibt

! 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}
?

Beachten Sie, dass dies nicht das von Ihnen angezeigte Format ist, da das il88hinter dem eingerückt ist, Kaber ich vermute, dass dies der Fehler ist, den Sie erhalten haben. (Mir ist keine Möglichkeit eingefallen, den von Ihnen angezeigten Fehler zu erhalten.)

Die alte Version \abx@aux@citehatte nur ein Argument, daher sieht es so aus, als könnten Sie Ihre gespeicherte Datei einfach bearbeiten, um das erste numerische Argument zu löschen. Für einen ersten Durchlauf sollte es nahe genug herankommen, beim zweiten Durchlauf wird ein echtes 2020-Aux abgerufen.

\documentclass{article}
\usepackage{biblatex}
\makeatletter
\@writefile{toc}{\authcount {1}}
\abx@aux@cite{Kil88_FoundingCrytpographyOblivious}


\begin{document}
x
\end{document}

läuft 2020 fehlerfrei; 2023 gibt es

Runaway argument?
! Paragraph ended before \abx@aux@cite was complete.
<to be read again> 
                   \par 
l.6 
    
? 

Antwort2

Okay, danachmehr graben, das Problem war, dass arXiv ein Tool namens Autotex verwendet, das einige Arten dynamischer Bilder bei Verwendung des DVI-Ausgangs nicht verarbeitet (auch wenn DVI bei meinen Tests lokal einwandfrei funktionierte, scheint das Problem an Autotex zu liegen), sodass die Bilder von Tikz fehlerhaft sein können. Durch Eingabe von:

\pdfoutput=1

In der allerersten Zeile zwingen Sie arXiv, in ein PDF zu kompilieren. Das Einfügen a4paperder Klasse könnte arXiv auch daran hindern, mit der Geometrie zu spielen.

Wenn es aus irgendwelchen Gründen auch mit dem obigen Text nicht funktioniert, ist es vielleicht einfacher, direkt ein PDF einzureichen. Dabei ist Folgendes zu beachten, um die Tatsache zu verbergen, dass das PDF mit LaTeX erstellt wurde (sonst lässt arXiv das Einreichen des PDF nicht zu):

\usepackage{hyperref}
% Hide to arXiv that this pdf is produced by LaTeX:
\pdfsuppressptexinfo=-1 
\hypersetup{
  pdfproducer={},
  pdfcreator={},
}

verwandte Informationen