多语症和 biblatex-apa

多语症和 biblatex-apa

我正在尝试使用 XeLaTeX、Polyglossia 和 BibLaTeX 排版一份英式英语文档,并附带 APA 风格的参考文献。

不幸的是,我收到以下错误:

! Undefined control sequence.
<argument> \mkbibdateapalongextra

以下是一个最小的工作示例:

\begin{filecontents}{mwe.bib}
@online{test2012,
    author={John Doe},
    title={It is not working},
    date={2012-02-03},
    url={http://google.com/},
    urldate={2012-03-18}
}
\end{filecontents}

\documentclass[12pt,a4paper]{article}

\usepackage{polyglossia}
\setdefaultlanguage[variant=british]{english}
\usepackage{csquotes}
\usepackage[backend=biber, style=apa]{biblatex}
\DeclareLanguageMapping{british}{british-apa}

\bibliography{mwe.bib}

\begin{document}

This is a reference. \cite{test2012}

\clearpage
\printbibliography

\end{document}

在附加命令后此解决方案,我收到一个不同的错误:

! Undefined control sequence.
<argument> \mkbibdateapalongmdy

尽管英式英语是一种通用语言,并且存在 lbx 文件,但该问题似乎与上面提到的问题有关。

答案1

这个问题与多语种没有直接关系。问题在于没有english-apa.lbx。现有的british-apa.lbx为英国人定义了额外内容。正如 biblatex 文档中提到的那样,“\DeclareLanguageMapping不打算处理语言变体(例如,美式英语与英式英语)或 babel 语言别名(例如,美式英语与美式英语)。”

因此这也会中断:

\usepackage[english]{babel}
\usepackage{csquotes}
\usepackage[backend=biber, style=apa]{biblatex}
\DeclareLanguageMapping{english}{british-apa}

虽然这里工作正常:

\usepackage[british]{babel}
\usepackage{csquotes}
\usepackage[backend=biber, style=apa]{biblatex}
\DeclareLanguageMapping{british}{british-apa}

一个解决方案是复制一份british-apa.lbx并将其命名为例如,english-apa.lbx然后至少将british后面的\DefineBibliographyExtras和改为\ProvidesFile英文。然后这个就可以了:

\usepackage{polyglossia}
\setdefaultlanguage[variant=british]{english}
\usepackage{csquotes}
\usepackage[backend=biber, style=apa]{biblatex}
\DeclareLanguageMapping{english}{english-apa}

也许可以编写一个更短的lbx程序来重用大部分的定义british-apa.lbx,但我对 biblatex 了解不够,无法直接编写此文件。

解决这个问题的另一种方法可能是编写一个gloss-british.ldf多语版本。

相关内容