使用同一作者的多个无日期条目时 BibLaTeX 崩溃

使用同一作者的多个无日期条目时 BibLaTeX 崩溃

我和我的朋友正在写一篇大论文,我们使用了很多没有指定日期的在线资源。我们不断收到错误,经过很长时间我才找到问题所在。看起来 BibLaTeX 不知道当同一作者的两个条目(或更多)都没有日期时该怎么做。只有当这两个条目都在论文中被引用时才会出现错误。

当引用两个具有相同作者和相同年份的条目时,BibLaTeX 会为它们分配一个字母:
(One, 2017a) 和 (One, 2017b)。
按照 APA 格式,没有日期的多个条目也应该收到一个字母:
(One, nd-a) 和 (One, nd-b),
但 BibLaTeX 会失败并给出以下错误消息。

梅威瑟:

\documentclass{article}

\usepackage[utf8]{inputenc}
\usepackage[backend=biber,style=authoryear,citestyle=apa,sorting=nyt]{biblatex}
\addbibresource{sources.bib}

\begin{document}
Content. \parencite{something_one} More content \parencite{something-else_one} more content.
\printbibliography
\end{document}

sources.bib如下:

@online{something_one,
author      =   {Some One},
title       =   {Something},
year        =   {nodate},
url         =   {https://somesite.org/somepage},
urldate     =   {2017-12-19}
}

@online{something-else_one,
author      =   {Some One},
title       =   {Something else},
year        =   {nodate},
url         =   {https://somesite.org/someotherpage},
urldate     =   {2017-12-19}
}

编译此代码会出现以下错误:

未定义控制序列。
\apashortdash
\mknumalph {1}
l.8 内容。\parencite{something_one}
更多内容 \parencite{something-els...

如果您指定日期、更改作者或删除 sources.bib 文件中的某个条目,LaTeX 将正常工作。

有人知道我们应该做什么吗?

答案1

您只使用了 citestyle=apa —— 这有点不寻常 ——,因此缺少一些定义。您可以为缺少的命令提供定义:

\documentclass{article}

\usepackage[utf8]{inputenc}
\usepackage[backend=biber,bibstyle=authoryear,citestyle=apa,sorting=nyt]{biblatex}
\addbibresource{test.bib}
\providecommand{\apashortdash}{-}


\begin{document}
Content. \parencite{something_one} More content \parencite{something-else_one} more content.
\printbibliography
\end{document}

在此处输入图片描述

您可以在 biblatex-apa 跟踪器上报告该问题:https://github.com/plk/biblatex-apa/issues

相关内容