将参考书目 .bbl 直接插入 .tex 文件会导致未定义的控制序列

将参考书目 .bbl 直接插入 .tex 文件会导致未定义的控制序列

我正在尝试在线提交论文,但由于在线编译器只运行一次 pdfLaTeX,因此 BibTex 出现错误。期刊建议将 .bbl 直接包含在 .tex 文件中,由于我使用的是 Overleaf,所以我遵循了这些方向。不幸的是,我未定义控制序列复制粘贴的 .bbl 文本有错误。


我的代码

\documentclass[titlepage, 10pt, a4paper, twocolumn]{article}
\usepackage{url}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{authblk}
\usepackage[backend=biber]{biblatex}
\usepackage{graphicx}
\usepackage[none]{hyphenat}
\usepackage{tikz}
\usepackage{mathtools}
\usepackage{standalone}
\usepackage{etoolbox}

\addbibresource{sample.bib}
\makeatletter
\patchcmd{\thebibliography}{
  \chapter*{\bibname}\@mkboth{\MakeUppercase\bibname}{\MakeUppercase\bibname}}{
  \section{References}}{}{}
\makeatother

...

\let\stdsection\section
\def\section*#1{\stdsection{#1}}

\printbibliography[title={References}]

\let\section\stdsection

我注释掉了从\addbibresource{sample.bib}\makeatother和从\let\stdsection\section到的所有内容\let\section\stdsection,然后我将 .bbl 文件的内容粘贴到 下方...


除了其他问题之外,我在 Overleaf 中遇到的第一个错误是

l.401 \sortlist[entry]{nty/global/} 错误消息顶行末尾的控制序列从未被\def'ed 过。如果拼写错误(例如,\hobx'),请输入I' 和正确拼写(例如,I\hbox')。否则请继续,我会忘记未定义的内容。

我遗漏了什么?解释中没有提到我复制 .bbl 文件后必须包含任何额外的包,但现在看起来有数千个未定义的控制序列。

答案1

Overleaf 中的说明(https://www.overleaf.com/help/219) 专门用于基于 BibTeX 的书目。赫伯特的回答 Biblatex:向期刊投稿解释了如何使用 做类似的事情biblatex

然而,在大多数情况下,这不会按预期工作。与基于 BibTeX 的参考书目不同,其中文件.bbl包含可排版的材料,biblatex而 的.bbl文件包含 LaTeX 可读格式的重新散列的原始数据。biblatex.bbl文件的确切格式取决于biblatex和 Biber 版本。.bbl您机器上的文件只能由具有相同版本的系统理解biblatex(嗯,实际上是相同的内部.bbl文件版本;biblatex开发仍在进行中,因此目前还没有稳定状态)。请参阅在两台机器上匹配 biblatex让 arXiv 接受 BibTeX BBL(2018 年 5 月)哪个 biblatex/biber 版本可以生成 BBL 格式 2.8?了解更多背景信息。

事实上,将文件复制biblatex.bbl你的.tex文档中会使你的文档便携性较差。通过在文件中使用内部命令,您可以有效地限制可以使用的.tex可能版本,因为对这些内部宏的更改很敏感。另一方面,用户界面在高级功能方面是稳定的,并且通常以向后兼容的方式尝试更改(不幸的是,这并不总是奏效)。因此,虽然可以将包含在文件中,但通常弊大于利。biblatexbiblatexbiblatex .bbl.tex

此外,出版商不一定能处理biblatex投稿(见约瑟夫的回答Biblatex:向期刊投稿)。对于期刊投稿,使用提供的类(如果有)或使用标准类和简单的 BibTeX 或手册通常更安全thebibliography

底线是,对于期刊投稿来说,最好的机会仍然是使用老牌的 BibTeX\bibliographystyle\bibliography

arXiv 的困难表明,如果出版商想要支持,biblatex他们应该接受上传.bib文件。用户提交的.bbl文件只会导致版本冲突和麻烦。然而,这意味着他们必须在提交的文件上运行 LaTeX 和 Biber,这将大大复杂化他们的工作流程。我不认为这种情况会很快发生。

请注意,使用 BibTeX 作为后端biblatex与使用 Biber 存在同样的问题,因为文件的用途.bbl相同,格式仅略有不同,因此简单地切换backend=bibtexbiblatex不会带来可衡量的改进。

相关内容