为什么 [alldates=terse] 会导致 biblatex 出现错误?

为什么 [alldates=terse] 会导致 biblatex 出现错误?

我在用着2019 年美国国际纺织展览会作为我的 LaTeX 环境。除了这个之外,一切似乎都正常工作。出于某种原因,底部的最小示例给出了以下错误:

main.tex:23: Undefined control sequence.
\lbx@us@mkdaterangetrunc@short ...}}}}}\endngroup 

如果我将选项更改为或以外alldates的其他选项,错误就会消失。terselongshort

我该如何让该terse选项起作用,因为这是我想要使用的格式?我在这里做错了什么吗?

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage{csquotes}
\usepackage{filecontents}

\begin{filecontents*}{ref.bib}
@online{foo,
  title={Foo},
  url={https://example.com},
}
\end{filecontents*}

\usepackage[backend=biber, alldates=terse]{biblatex}

\addbibresource{ref.bib}

\begin{document}
\section{Introduction}

Introduction \cite{foo}.
\printbibliography

\end{document}

答案1

该问题是由 3.13 中解决的一个错误引起的biblatex

请更新您的 TeX 发行版以获取当前版本的biblatexBiber。

这是一个令人尴尬的拼写错误,将 改为english.lbx。此问题已在版本中修复(\endngroup\endgroupdevbiblatexhttps://github.com/plk/biblatex/commit/c33c966736762a6158830512f65f5a54c745952b),此修复已包含在biblatexv3.13 中。

暂时,您可以修补相关的宏(请注意,您必须在 中\AtBeginDocument或之后执行此操作\begin{document},因为补丁必须在english.lbx加载之后进行)。

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage{csquotes}
\usepackage[backend=biber, alldates=terse]{biblatex}

\addbibresource{biblatex-examples.bib}

\makeatletter
\AtBeginDocument{%
  \patchcmd{\lbx@us@mkdaterangetrunc@short}
    {\endngroup}
    {\endgroup}
    {}{}%
}
\makeatother

\begin{document}
\cite{sigfridsson}
\printbibliography
\end{document}

相关内容