biblatex-chicago 包中的 bookseries 和 authordate 选项是否兼容?

biblatex-chicago 包中的 bookseries 和 authordate 选项是否兼容?

以下代码会引发错误“ Package keyval Error: bookseries undefined. \ExecuteBibliographyOptions{bookseries=false}”:

\documentclass{memoir}
\usepackage{lipsum}
\usepackage[authordate,backend=biber]{biblatex-chicago}
\ExecuteBibliographyOptions{bookseries=false}
\begin{document}
\lipsum[1-2]
\end{document}

但是如果我不使用 authordate,则不会出现错误消息。从表面上看,没有明显的理由bookseries不应用 author-date 格式。那么我是否遗漏了什么,或者这是一个错误?

答案1

在里面biblatex-chicago文档在第 61 页我们发现

根据手册(14.128),series书籍类条目中的字段“可以省略以节省空间(尤其是在脚注中)”。

您会发现该选项仅适用于具有该样式的引文(文内或脚注)noteseries无论设置如何,该样式始终会出现在参考书目中。

因此,在作者-日期样式中添加此选项确实没有多大意义。采用该样式的文档中可能不会有(很多)完整引文,而可能series出现的参考书目则不受此选项的影响。

但我们可以让该选项适用于参考书目authordate

\providetoggle{cms@bookseries}
\DeclareBibliographyOption{bookseries}[true]{%
  \settoggle{cms@bookseries}{#1}}%

\DeclareEntryOption{bookseries}[true]{%
  \settoggle{cms@bookseries}{#1}}%

\renewbibmacro*{ser+num}{%
  \iftoggle{cms@bookseries}%
  {\printfield{series}%
    \printfield[sernum]{number}}%
  {}}%

注意:如果您使用notes样式,则只需要最后一个\renewbibmacro,其余部分可以删除。然后该bookseries选项也将应用于参考书目。

请记住在实际执行参考书目选项之前输入代码。

在全

\documentclass{article}
\usepackage[authordate,backend=biber]{biblatex-chicago}

\providetoggle{cms@bookseries}
\DeclareBibliographyOption{bookseries}[true]{%
  \settoggle{cms@bookseries}{#1}}%

\DeclareEntryOption{bookseries}[true]{%
  \settoggle{cms@bookseries}{#1}}%

\newbibmacro*{ser+num}{%
  \iftoggle{cms@bookseries}%
  {\printfield{series}%
    \printfield[sernum]{number}}%
  {}}%

\ExecuteBibliographyOptions{bookseries=false}
\addbibresource{biblatex-examples.bib}
\begin{document}
\cite{coleridge}
\printbibliography
\end{document}

相关内容