Biblatex:如果页面字段包含冒号,则页面前面没有“pp.”

Biblatex:如果页面字段包含冒号,则页面前面没有“pp.”

我注意到,如果条目的 -field 形状为 ,则biblatex 类型条目的输出@inproceedings缺少页面前面的“pp。” 。我强烈认为这是因为冒号被检测为标点符号,但我可能错了。我如何确保得到“pp。”?pagesx:1--x:15

例子:

\documentclass{scrbook}
\begin{filecontents}{bibfile.bib}
@inproceedings{Test1,
    author    = {Author One},
    title     = {Papertitle},
    booktitle = {Proceedingstitle},
    year      = {2000},
    volume    = {1},
    series    = {Series},
    pages     = {1--5},
}
@inproceedings{Test2,
    author    = {Author Two},
    title     = {Another Papertitle},
    booktitle = {Another Proceedingstitle},
    year      = {2020},
    volume    = {2},
    series    = {Series},
    pages     = {3:1--3:15},
}
\end{filecontents}
\usepackage[style=alphabetic]{biblatex}
\addbibresource{bibfile.bib}
\begin{document}
\nocite{*}
\printbibliography
\end{document}

的输出Test1符合预期并包含“pp.”:

作者一。“Papertitle”。在:Proceedingstitle。第 1 卷。系列。2000 年,第 1-5 页。

的输出Test2缺少“pp.”:

第二作者。“Another Papertitle”。在:Another Proceedingstitle。第 2 卷。系列。2020 年,3:1–3:15。

答案1

biblatex通常会在放置“p.”/“pp.”之前检查某个内容是否为有效页面/页面范围。冒号不属于默认的“数字”字符集,因此会告诉biblatex我们处理的不是页面范围。

我们可以biblatex用以下方式接受冒号

\documentclass{scrbook}

\usepackage[style=alphabetic]{biblatex}

\DeclareNumChars*{:}

\begin{filecontents}{\jobname.bib}
@inproceedings{Test1,
    author    = {Author One},
    title     = {Papertitle},
    booktitle = {Proceedingstitle},
    year      = {2000},
    volume    = {1},
    series    = {Series},
    pages     = {1--5},
}
@inproceedings{Test2,
    author    = {Author Two},
    title     = {Another Papertitle},
    booktitle = {Another Proceedingstitle},
    year      = {2020},
    volume    = {2},
    series    = {Series},
    pages     = {3:1--3:15},
}
\end{filecontents}
\addbibresource{\jobname.bib}

\begin{document}
\nocite{*}
\printbibliography
\end{document}

作者一。“Papertitle”。在:Proceedingstitle。第 1 卷。系列。2000 年,第 1-5 页。作者二。“Another Papertitle”。在:Another Proceedingstitle。第 2 卷。系列。2020 年,第 3:1-3:15 页。

通常,这两部分的页码应该告诉我们“文章/论文编号”以及该论文的页数,在这种情况下,您可以将信息分成eid文章/论文编号和pages纯页码范围的字段(在这些情况下这通常是没有意义的,除非您绝对想表明论文的长度)。

\documentclass{scrbook}

\usepackage[style=alphabetic]{biblatex}

\begin{filecontents}{\jobname.bib}
@inproceedings{Test1,
    author    = {Author One},
    title     = {Papertitle},
    booktitle = {Proceedingstitle},
    year      = {2000},
    volume    = {1},
    series    = {Series},
    pages     = {1--5},
}
@inproceedings{Test2,
    author    = {Author Two},
    title     = {Another Papertitle},
    booktitle = {Another Proceedingstitle},
    year      = {2020},
    volume    = {2},
    series    = {Series},
    eid       = {3},
    pages     = {1-15},
}
\end{filecontents}
\addbibresource{\jobname.bib}

\begin{document}
\nocite{*}
\printbibliography
\end{document}

第二作者。“Another Papertitle”。在:Another Proceedingstitle。第 2 卷。系列。2020 年,3,第 1-15 页。

相关内容