Biber/BibLaTeX \printbibliography 在后续行中导致“未定义的控制序列”

Biber/BibLaTeX \printbibliography 在后续行中导致“未定义的控制序列”

我使用 biblatex 和 biber 作为后端来编写文档。没有\printbibliography,所有引文都运行良好,并出现在文档中,因此我认为我的文件没有问题。然而,当我在文档末尾(就在 之前)bibliography.bib包含以下行时,问题就出现了:突然每次我尝试编译时,我都会得到\printbibliography\end{document}“未定义的控制序列”引用之后的任何一行\printbibliography

根据互联网上其他地方的建议,我仔细检查了文档中的“智能”引号和其他奇怪的字符,但一无所获。我的引文是从 ADSABS 下载的,偶尔也会从@ONLINE资源中下载。不过,正如我所说,所有参考资料都很好用,只是命令\printbibliography出了问题。

为了说明(除非有人认为有帮助,否则我不会在这里粘贴整个文档):

\usepackage[style=authoryear-icomp,sorting=anyt]{biblatex}
\addbibresource{bibliography.bib}

...

\printbibliography

答案1

我遇到过类似的问题。我确定问题出在文件中.bib。我的建议是仔细检查.bib文件是否存在歧义语法。就我而言,有问题的语法是:

...
title = {A 70~kW stationary fuel cell system},
...

未定义的控制序列当将其更改为以下内容时,问题已解决(即,带有波浪号的表达式括在花括号中):

...
title = {A {70~kW} stationary fuel cell system},
...

简短的评论(也许有人会觉得有用)。就我而言,问题发生在matlab-prettifier加载包之后,这也加载了listings包。在加载这些包之前,我没有遇到任何问题。

答案2

bibliography.bib 文件中的问题(https://gist.github.com/gfarrell/9892791) 毕竟是一个未定义的控制序列:ADSABS 为类似 的日志插入控制序列\aap

删除这些并用实际的期刊名称替换它们可以解决问题。

(如果有人知道定义所有这些的包,那将会非常有帮助)。

答案3

就我而言,它是使用 jabref 自动导入的条目中 booktitle 中的 $\mathsemicolon$。

修复它,重新运行 biber,重新编译并现在可以工作。

答案4

我在通过 DOI(使用 Jabref)导入的 bibtex 条目中遇到了同样的问题。

一篇文章的标题中包含一个{\textquotesingle}。这导致biblatex中断。

删除它之后,编译再次有效。

相关内容