“未定义的控制序列”-使用 Biblatex 与 APA 样式时出错

“未定义的控制序列”-使用 Biblatex 与 APA 样式时出错

apa6.cls今天我开始在我的文档中第一次尝试 biblatex :

\documentclass[ngerman,man,12pt,a4paper,noextraspace,donotrepeattitle]{apa6}
\usepackage[latin1]{inputenc} 
\usepackage[english,ngerman]{babel}
\usepackage[T1]{fontenc}    
\usepackage{lmodern}        
\usepackage{etoolbox}

\usepackage{csquotes}
\usepackage[style=apa,sortcites=true,sorting=nyt,backend=biber]{biblatex}
\DeclareLanguageMapping{ngerman}{ngerman-apa}
\addbibresource{Literatur.bib}

\begin{document}

\cite{vonDavier2011}

\printbibliography

\end{document}

bibliography.bib我只是从示例文件中复制了 .bib 文件的内容apa6.cls进行了一些测试,所以 .bib 内容是没问题的。

只要我biblatex仅使用 加载,此方法即可正常工作\usepackage[backend=biber]{biblatex}。但是当我另外指定 apa 引用样式(如上例所示)时,我收到错误

未定义的控制序列

紧接着那条\printbibliography线。

我必须指出,我并不是资深 latex 用户,甚至不是 biblatex 用户。例如,我刚刚将输出配置文件从 bibtex 更改为 biber,不知道我在其他主题中读到的“biber %”是什么意思。我应该在任何地方包含它吗?

谢谢您的回答!

答案1

错误在于ngerman该行中声明了选项\documentclass

事情是这样的。当babel被加载时,它会被传递所有的全局选项,因此ngerman; 然后它会检查本地选项,english并且ngerman; 因为后者已经被加载,所以它没有任何效果并且主要语言变成英语。

\languagename您可以通过在后面添加来检查这一点\begin{document},它将打印“english”。

解决方案:不要使用ngermanin\documentclass或同时使用两者。如果你使用的是babel3.9 版本,也可以通过发出以下命令来解决问题

\usepackage[english, main=ngerman]{babel}

并且,在这种情况下,ngerman选项\documentclass不会造成损害。

相关内容