更新后 biblatex-chicago 出现问题

更新后 biblatex-chicago 出现问题

今天更新我的 TeXLive 2020 发行版后,biblatex-chicago 对我来说已经停止工作了。

以下 MWE:

\documentclass{article}
\usepackage[authordate]{biblatex-chicago}

\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{test2020,
  title = {Test title},
  author = {Author},
  date = {2020},
  publisher = {test},
  location = {test},
}
\end{filecontents}
\addbibresource{\jobname.bib}

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

产生此错误:

Runaway argument?
{
! Paragraph ended before \blx@defformat@i was complete.
<to be read again> 
                   \par 
l.2523 \DeclareFieldFormat{annotation}{\par
                                           \nobreak \vskip \bibitemsep #1}

我认为罪魁祸首肯定是这些包中的一个,但我无法检测出哪一个:

[ 5/24, 00:31/15:37] update: biber.x86_64-darwin [27659k] (53064 -> 56144) ... done
[ 6/24, 02:37/05:09] update: biber [1165k] (53064 -> 56144) ... done
[ 7/24, 02:42/05:07] update: biblatex [7408k] (53063 -> 56143) ... done
[ 8/24, 02:54/04:26] update: biblatex-ext [617k] (56081 -> 56150) ... done
[ 9/24, 02:57/04:26] update: biblatex-jura2 [367k] (53243 -> 56133) ... done

我在 Mac 和 Linux 机器上遇到了这个问题(自今天更新以来)。 (我还没有更新另一台仍能顺利编译 MWE 的 Linux 机器。)

有任何想法吗?

答案1

更新

biblatex56165修复了此错误的 v3.15a 于 2020-08-23 发布,并于同一天晚上进入 CTAN 和 TeX live(您至少需要修订版)。

如果您仍然遇到此错误,请更新您的系统。


这是biblatex3.15 中的一个错误(它被跟踪到https://github.com/plk/biblatex/issues/1037并被引入https://github.com/plk/biblatex/commit/089ce33f1e3cbde9433fda6e8ab4c82e96018b80其中之前隐含的参数被明确化并且只是很短,因为所讨论的宏使用了\def而不是\long\def)。

我会看看最好的解决方案。与此同时,这里有一个临时且快速的解决方法。解决方法使用新的文件加载钩子(因此该功能很方便)。您需要为使用长字段格式的每个加载文件.bbx添加钩子代码。.cbx

\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}

\makeatletter
\csdef{blx@filehook@[email protected]}{%
\def\blx@defformat@i##1##2##3[##4]##5{%
  \notblank{##3}
    {\blx@resetformat{##2}{##5}}
    {}%
  \def\blx@defformat@a{##2}%
  \def\blx@defformat@b{##4}%
  \blx@xsanitizeafter{\def\blx@defformat@c}{##5}%
  \afterassignment\blx@defformat@ii
  ##1}}
\makeatother

\usepackage{biblatex-chicago}

\addbibresource{biblatex-examples.bib}


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

相关内容