当使用 格式化包含series
and的引文number
(即,属于编号书籍系列的书籍)时,我发现在系列标题之后以及后者是列表或范围时biblatex-chicago
的内容之前会添加一个额外的逗号。number
number
当字段包含简单整数时,不会出现这样的问题。
梅威瑟:
\documentclass{article}
\usepackage[notes]{biblatex-chicago}
\usepackage{biblatex-source-division}
\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@book{Graf:GCAL,
Address = {Vatican City},
Author = {Graf, Georg},
Number = {118, 133, 146, 147, 172},
Publisher = {Biblioteca Apostolica Vaticana},
Series = {Studi e Testi},
Shorttitle = {GCAL},
Title = {Geschichte der christlichen arabischen Literatur},
Volumes = {5},
Year = {1944--1953}
}
\end{filecontents*}
\addbibresource{\jobname.bib}
\begin{document}
\cite{Graf:GCAL}
\printbibliography
\end{document}
该\cite
命令产生
乔治·格拉夫,基督教阿拉伯文学史,5 卷,Studi e Testi,118,133,146,147,172(梵蒂冈:梵蒂冈宗座图书馆,1944–1953 年)
正确的输出是:
乔治·格拉夫,基督教阿拉伯文学史,5 卷,Studi e Testi 118,133,146,147,172(梵蒂冈:梵蒂冈宗座图书馆,1944–1953 年)
唯一的区别是“Studi e Testi”后面的逗号。
number
当字段包含范围(例如)时也会发生同样的情况3--5
,但对于带有点(例如20.1
)或罗马数字(例如II.1
)的条目则不会发生这种情况。
有没有简单的方法可以解决这个问题?
答案1
这是因为字段格式有\ifnumeral
测试sernum
。如果字段中有逗号,则为 false number
。
我们可以将测试改为\ifnumerals
适合您情况的测试。
此外,year={1944--1953}
您还应该使用date={1944/1953}
。
以下是 MWE:
\documentclass{article}
\usepackage[notes]{biblatex-chicago}
\usepackage{biblatex-source-division}
\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@book{Graf:GCAL,
Address = {Vatican City},
Author = {Graf, Georg},
Number = {118, 133, 146, 147, 172},
Publisher = {Biblioteca Apostolica Vaticana},
Series = {Studi e Testi},
Shorttitle = {GCAL},
Title = {Geschichte der christlichen arabischen Literatur},
Volumes = {5},
date = {1944/1953}
}
\end{filecontents*}
\addbibresource{\jobname.bib}
\DeclareFieldFormat{sernum}{%
\ifnumerals{#1}% change from \ifnumeral to \ifnumerals
{\addnbspace #1}%
{\addcomma\addspace #1}}
\begin{document}
\cite{Graf:GCAL}
\printbibliography
\end{document}