我使用 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
正常工作,编译周期必须包括
- LaTeX(在生成的 PDF 中,所有引用键均以粗体显示)
- 比贝尔
- LaTeX(生成的 PDF 中的所有引用均为 0)
- LaTeX(在生成的 PDF 中显示所有引用)
如果.bbl
已经存在适当的文件(即,如果你按照上述方法编译示例,然后删除除.tex
和.bbl
文件之外的所有文件),则编译周期仍然(可能出乎意料地)需要包含三LaTeX 运行
- LaTeX(生成的 PDF 中的所有引用均为 0)
- LaTeX(生成的 PDF 中的所有引用均为 0)
- 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 运行应该足以让您的引文正确显示。