无法将 apa 定义为 bibstyle“未定义的控制序列。\mkbibdateapalongextra”

无法将 apa 定义为 bibstyle“未定义的控制序列。\mkbibdateapalongextra”

我必须使用 APA 样式参考书目撰写一份报告,并使用这个最简单的例子:

\documentclass{article}

\usepackage[backend=biber,
bibstyle=apa,
]{biblatex}

\usepackage{filecontents}

\begin{filecontents*}{\jobname.bib}
  @book{Knu86,
    author = {Knuth, Donald E.},
    year = {1986},
    title = {The \TeX book},
  }
\end{filecontents*}

\addbibresource{\jobname.bib}

\begin{document}

\cite{*}

\printbibliography

\end{document}

不会结束处理,也不会打印参考书目,而是:

Package biblatex Info: No input encoding detected.
(biblatex)             Assuming 'ascii'.
Package biblatex Info: Automatic encoding selection.
(biblatex)             Assuming data encoding 'ascii'.
\openout3 = `test.bcf'.

Package biblatex Info: Trying to load bibliographic data...
Package biblatex Info: ... file 'test.bbl' found.
(./test.bbl)
Package biblatex Info: Reference section=0 on input line 19.
Package biblatex Info: Reference segment=0 on input line 19.


LaTeX Warning: Citation '*' on page 1 undefined on input line 21.

! Undefined control sequence.
<argument> \mkbibdateapalongextra 
                                  {year}{month}{day}\iffieldundef {endyear}{...
l.24 

在日志文件中找到。如果我使用citestyle,则不会出现此错误。style产生同样的问题。这个答案暗示我需要在 babel 中定义一种语言,但language=american按照建议使用会产生相同的结果。

答案1

在拥有以后再次阅读手册,我在“使用”部分看到:

加载 BibLATEX 时以通常的方式指定样式。如果您使用 babel:

\usepackage[american]{babel}
\usepackage{csquotes}
\usepackage[style=apa]{biblatex}
\DeclareLanguageMapping{american}{american-apa}

我没有使用与\DeclareLanguageMapping我的 babel 偏好设置相匹配的命令。使用

\usepackage[spanish]{babel}
\usepackage{csquotes}
\usepackage{url}

\usepackage[backend=biber,
sorting=none,
citestyle=numeric,
url=true,
backref=true,
bibstyle=apa
]
{biblatex}
\DeclareLanguageMapping{spanish}{spanish-apa}

已修复此问题。必须确保 babel 和 DeclareLanguageMapping 语言匹配,并且<texmf>/tex/latex/biblatex/lbx/<language>-apa.lbx存在该语言。

相关内容