从 Overleaf 上传时,参考文献中的所有引用在 ArXiv 中均被编号为“0”

从 Overleaf 上传时,参考文献中的所有引用在 ArXiv 中均被编号为“0”

我使用 arXiv 的提交选项卡从 overleafv2 编译了 latex 源代码,并使用这个下载的 zip 文件进行提交。提交的 pdf 预览显示所有参考文献的计数均为“0”。我使用 biblatex 包进行引用。不确定问题出在哪里,因此欢迎提出任何建议。

编辑1:

ArXiv 的输出: 提交已成功处理。请找到 arXiv 输出的链接。 https://docs.google.com/document/d/12uoDIo0JePOjZ_5Ul3huuRwt8QZ3Ix7FPhkJCFERdY0/edit?usp=sharing

Overleaf 的输出: 有很多Overfull警告Underfull和其他一些问题。据我所知,它没有任何与参考书目相关的问题。请查看背面输出的链接。 https://docs.google.com/document/d/1yKgqkmkQmdeb_S8CFJLrAAKvxIerFPJZLdJ_PD3YqI0/edit?usp=sharing

答案1

正如评论中所确认的,您的项目使用了defernumbers。使用该选项时,从文件读取条目数据时不会在文档开头分配条目的标签编号.bbl,而是仅在将条目打印到参考书目中后才分配标签编号。考虑以下带有和不带有的示例defernumbers

\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}

\usepackage[style=numeric, defernumbers, backend=biber]{biblatex}

\addbibresource{biblatex-examples.bib}


\begin{document}
\cite{sigfridsson,moraux,worman,nussbaum,geer,cicero}
\printbibliography[keyword=secondary]
\printbibliography[notkeyword=secondary]
\end{document}

为了defernumbers正常工作,编译周期必须包括

  1. LaTeX(在生成的 PDF 中,所有引用键均以粗体显示)
  2. 比贝尔
  3. LaTeX(生成的 PDF 中的所有引用均为 0)
  4. LaTeX(在生成的 PDF 中显示所有引用)

如果.bbl已经存在适当的文件(即,如果你按照上述方法编译示例,然后删除除.tex.bbl文件之外的所有文件),则编译周期仍然(可能出乎意料地)需要包含LaTeX 运行

  1. LaTeX(生成的 PDF 中的所有引用均为 0)
  2. LaTeX(生成的 PDF 中的所有引用均为 0)
  3. LaTeX(在生成的 PDF 中显示所有引用)

这是因为biblatex的启发式方法用于确定是否需要 Biber 运行,它将在第一次 LaTeX 编译中请求 Biber 运行。如果请求 Biber 运行,则不会将一些辅助位写入文件,.aux因为预计后续请求的 Biber 运行可能会更改相关信息。这意味着相关数据仅.aux在第二次 LaTeX 运行时写入文件,此时biblatex已放弃请求新的 Biber 运行。

您的 arXiv 提交的日志文件显示 arXiv 仅运行两次 LaTeX,因此您只得到 0,而不是正确的引用标签。

defernumbers文件中包含有关生命的相关信息.aux。它可能也可以将.aux文件上传到 arXiv(我不确定他们是否接受这一点,或者是否会自动拒绝.aux上传;上传的.aux文件可能会导致版本或其他软件包不兼容),在这种情况下,您只需运行一次 LaTeX 即可获得所需的结果。此解决方案更像是最后的手段。

一个不同的、更好的解决方案是告诉 LaTeX 在你将文件上传到 arXiv 时根本不要求运行 Biber。只需添加

\makeatletter
\let\blx@rerun@biber\relax
\makeatother

到您的序言。由于 arXiv 无论如何都不会为您运行 Biber,因此请求biblatex运行 Biber 是没有意义的。在这种情况下,我们绕过了一些测试,这些测试会阻止在 Biber 运行后可能发生变化的信息写入文件.aux。最后,两次 LaTeX 运行应该足以让您的引文正确显示。

相关内容