首先,大家好。我是新来的:)
我正在使用 MikTeX + TeXnicCenter 撰写我的博士论文,一切进展顺利,直到今天我更新了 MikTeX。
我的问题:
该程序对“相同的旧”命令给出了错误消息:
\printbibliography[prefixnumbers={},notkeyword={Eigene}, notkeyword={Datenblatt},
title={Fremdliteratur}, heading=subbibliography]
错误信息如下:
Undefined control sequence.
<argument> ...nameprefix {van~der}\isdot }\ifprefchar
调查
我发现这个错误来自名称前缀“van der”。如果我在*.bib
文件中将它们写在一起且不留空格并进行编译,它就会再次正常工作。
修复或解决此问题的最佳方法是什么?这是一个错误吗?
答案1
该错误已在 3.3 版中修复
biblatex
。如果可能的话,请更新biblatex
。
以下 MWE 重现了该问题
\documentclass{article}
\usepackage[backend=bibtex,style=authoryear]{biblatex}
\addbibresource{biblatex-examples.bib}
\nocite{vangennep}
\begin{document}
\printbibliography
\end{document}
一个人
! Undefined control sequence. <argument> ...nameprefix {van}\isdot }\ifprefchar {}{\bibnamedelimc }
这告诉我们这\ifprefchar
是未定义的。
此命令已在 3.2 版中添加biblatex
,但忽略了将该命令添加到 BibTeX-backend 文件中biblatex1.sty
。此问题已知(github 上的 #365) 并且已经解决。
因此,只有在使用 BibTeX 作为后端时才会出现问题。如果您使用 Biber,则一切正常。(在大多数情况下,建议使用 Biber,因此可能值得考虑切换。)
与此同时
\newcommand{\ifprefchar}{\ifpunctmark{'}}
在等待下一个版本时,应该恢复 BibTeX 的功能作为解决方法。
\documentclass{article}
\usepackage[backend=bibtex,style=authoryear]{biblatex}
\addbibresource{biblatex-examples.bib}
\newcommand{\ifprefchar}{\ifpunctmark{'}}
\nocite{vangennep}
\begin{document}
\printbibliography
\end{document}
答案2
我只是重复张步伟的评论在文件中将完整姓氏括在花括号中是一个完全足够的解决方案.bib
:
author = "Julius Ceasar and Harry {van de Mond}",
该解决方案与 配合良好biblatex
,与 相比有其理由biber
,并且不需要额外的命令,从而可以轻松地在其他文档中应用参考书目。