
Parece que o arXiv não compila vezes suficientes o meu documento (em alguns pontos ele para, dizendo que atingiu o número máximo de tentativas). Como consequência, algumas partes do meu documento não parecem boas (embora se eu compilar com o latexmk do meu lado, ele funcionará conforme o esperado).
Tentei adicionar um main.aux
arquivo, mas o arXiv remove meu arquivo automaticamente. Também tentei criar um arquivo main_backup.aux
contendo uma cópia main.aux
(este não foi removido) e, em vez disso, adicionei logo 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
}{}
No entanto, isso tem dois problemas:
- localmente, ele compila sem erros e meus documentos ficam melhores… exceto pelo índice que está vazio agora!
- no arxiv, ele falha com um erro logo após carregar o arquivo aux:
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.
Observe que esses erros parecem chegar nesta linha do meu arquivo aux:
\@writefile{toc}{\authcount {1}}
\abx@aux@cite{0}{Kil88_FoundingCrytpographyOblivious}
que menciona novamente o índice… então ambos os meus problemas podem estar relacionados.
EDITAR Eu também tentei:
\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
}{}
mas parece que o patch não está funcionando.
EDITAR
Eu também tentei:
%%%% 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}
...
Isso funciona localmente, mas não no servidor arxiv, ele falha novamente com este mesmo erro irritante…
Responder1
Você pode reproduzir com
\documentclass{article}
\usepackage{biblatex}
\makeatletter
\@writefile{toc}{\authcount {1}}
\abx@aux@cite{0}{Kil88_FoundingCrytpographyOblivious}
\begin{document}
x
\end{document}
que roda sem erros no texlive 2022 e 2023 mas em 2020 dá
! 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}
?
Observe que este não é o formato que você mostrou, pois il88
está recuado, K
mas suspeito que seja o erro que você obteve. (Não consegui pensar em nenhuma maneira de obter o erro que você mostrou.)
A versão antiga \abx@aux@cite
tinha apenas um argumento, então parece que você pode simplesmente editar o arquivo salvo para excluir o primeiro argumento numérico, ele deve estar próximo o suficiente para uma primeira execução, a segunda execução pegará um aux 2020 real.
\documentclass{article}
\usepackage{biblatex}
\makeatletter
\@writefile{toc}{\authcount {1}}
\abx@aux@cite{Kil88_FoundingCrytpographyOblivious}
\begin{document}
x
\end{document}
funciona sem erros em 2020; em 2023 dá
Runaway argument?
! Paragraph ended before \abx@aux@cite was complete.
<to be read again>
\par
l.6
?
Responder2
OK depoiscavando mais, o problema é que o arXiv usa uma ferramenta chamada autotex que não lida com alguns tipos de imagens dinâmicas ao usar a saída DVI (mesmo que em meus testes o DVI estivesse funcionando bem localmente, o problema parece ser o autotex), então as imagens do tikz podem dar errado. Colocando:
\pdfoutput=1
na primeira linha, você força o arXiv a compilar em um pdf. Colocar a4paper
a classe também pode impedir que o arXiv tente brincar com a geometria.
Se por algum motivo você não conseguir fazer funcionar mesmo com o texto acima, o mais simples pode ser enviar diretamente um PDF, com o seguinte para esconder o fato de que o pdf é produzido por LaTeX (caso contrário o arXiv não permitirá que você envie o pdf):
\usepackage{hyperref}
% Hide to arXiv that this pdf is produced by LaTeX:
\pdfsuppressptexinfo=-1
\hypersetup{
pdfproducer={},
pdfcreator={},
}