如何调试 bibtex 的引用?

如何调试 bibtex 的引用?

我将 LaTexila 与 latexmk、pdflatex 和 bibtex 一起使用。

但是:编译有时会失败,显然是因为我插入了引用。下面的示例完全破坏了编译,我不知道为什么。

\citep{moebius_2011}

我的 bib 文件中有以下条目。bib 条目来自 Zotero。

@book{moebius_2011,
    address = {Wiesbaden},
    title = {Kultur - Theorien der Gegenwart},
    isbn = {3531167758 9783531167756},
    language = {German},
    publisher = {{VS}, Verlag für Sozialwissenschaften},
    author = {Moebius, Stephan},
    year = {2011}
}

如果我注释掉引用,一切就都正常了。

以下是相关的文档类别:

\documentclass[12pt,a4paper]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[german]{babel}
\usepackage{jurabib}
\usepackage{pdfpages}
\usepackage{microtype}

加上参考书目的命令:

\bibliographystyle{jurabib}

错误日志中的相关行应为:

! Missing number, treated as zero.
<to be read again> 
                   \l@German 
l.99   {{Moebius}{Stephan}{S.}{}{}} {} {}
                                          \bibAnnoteFile {moebius_2011}
? 
! Emergency stop.
<to be read again> 
                   \l@German 
l.99   {{Moebius}{Stephan}{S.}{}{}} {} {}
                                          \bibAnnoteFile {moebius_2011}
End of file on the terminal!

完整版日志请见此 Pastebin关联

答案1

你的错误在于你German在条目中使用了语言bib。你必须使用一种babel你知道的语言。在你的情况下:(german旧拼写)或ngerman(新拼写)。

以下 MWE 为我编译(下次在这里询问时请使用类似的 MWE):

%http://tex.stackexchange.com/questions/84515/how-to-debug-citations-for-bibtex
\RequirePackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@book{moebius_2011,
  address   = {Wiesbaden},
  title     = {Kultur -- Theorien der Gegenwart},
  isbn      = {3531167758 9783531167756},
  language  = {ngerman},
  publisher = {{VS}, Verlag für Sozialwissenschaften},
  author    = {Moebius, Stephan},
  year      = {2011},
}
\end{filecontents*}

\documentclass[12pt,ngerman]{scrartcl} % paper=a4 Voreinstellung
\usepackage[utf8]{inputenc}
\usepackage{babel}                     % load before jurabib!
\usepackage{jurabib}

\begin{document}

Here is a citation~\cite{moebius_2011}. 
Here is citep~\citep{moebius_2011}.

\bibliographystyle{jurabib}
\bibliography{\jobname}
\end{document}

查找此错误的提示来自您发布的错误消息,请参阅部分:\l@German。来自文件中的German条目。未定义,但或定义为数字。这就是您收到错误消息的原因:languagebib\l@German\l@german\l@ngerman! Missing number, treated as zero.

据我所知,它jurabib不再维护,所以您应该考虑更改为biblatexbiber(已在@Timothée Poisot 的评论中提到)。

相关内容