![Biblatex:如果页面字段包含冒号,则页面前面没有“pp.”](https://linux22.com/image/450351/Biblatex%EF%BC%9A%E5%A6%82%E6%9E%9C%E9%A1%B5%E9%9D%A2%E5%AD%97%E6%AE%B5%E5%8C%85%E5%90%AB%E5%86%92%E5%8F%B7%EF%BC%8C%E5%88%99%E9%A1%B5%E9%9D%A2%E5%89%8D%E9%9D%A2%E6%B2%A1%E6%9C%89%E2%80%9Cpp.%E2%80%9D.png)
我注意到,如果条目的 -field 形状为 ,则biblatex 类型条目的输出@inproceedings
缺少页面前面的“pp。” 。我强烈认为这是因为冒号被检测为标点符号,但我可能错了。我如何确保得到“pp。”?pages
x: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}
通常,这两部分的页码应该告诉我们“文章/论文编号”以及该论文的页数,在这种情况下,您可以将信息分成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}