以下代码会引发错误“ 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
书籍类条目中的字段“可以省略以节省空间(尤其是在脚注中)”。
您会发现该选项仅适用于具有该样式的引文(文内或脚注)note
。series
无论设置如何,该样式始终会出现在参考书目中。
因此,在作者-日期样式中添加此选项确实没有多大意义。采用该样式的文档中可能不会有(很多)完整引文,而可能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}