![当页码以某些字母结尾时,Biblatex 不会打印“p”。](https://linux22.com/image/270996/%E5%BD%93%E9%A1%B5%E7%A0%81%E4%BB%A5%E6%9F%90%E4%BA%9B%E5%AD%97%E6%AF%8D%E7%BB%93%E5%B0%BE%E6%97%B6%EF%BC%8CBiblatex%20%E4%B8%8D%E4%BC%9A%E6%89%93%E5%8D%B0%E2%80%9Cp%E2%80%9D%E3%80%82.png)
使用biblatex.sty 2013/01/10 v2.5
和biber version: 1.5
,给定
\documentclass{article}
\usepackage{biblatex}
\addbibresource{pages.bib}
\begin{document}
\nocite{*}
\printbibliography
\end{document}
和 .bib 文件
@Article{A,
author = {Some author},
title = {Some title},
journal = {Some journal},
year = 2013,
pages = {1A}
}
页码生成为“1A”而不是“p. 1A”。
注 1:如果我将“1A”中的“A”替换为不属于罗马数字的字母,即 I、V、X、L、C、D 或 M,也会发生同样的情况。
biber
注2:如果我将后端替换为一个,也会发生同样的情况bibtex
。
注 3:如果我删除biblatex
并改用bibtex
,我会得到正确的结果。
答案1
biblatex
使用命令\mkpageprefix
打印页码。此命令内部检查输入是否为数字。这是通过以下方式完成的\ifnumeral
:
在文档中您可以找到以下解释:
\ifnumeral{⟨string⟩}{⟨true⟩}{⟨false⟩}
⟨true⟩
如果⟨string⟩
是阿拉伯数字或罗马数字,则执行,⟨false⟩
否则执行。此命令很强大。另请参阅§ 4.6.4 中的\DeclareNumChars
和。\NumCheckSetup
该标记A
不是阿拉伯数字也不是罗马数字。如前所述,您可以通过以下方式添加此标记\DeclareNumChars
\documentclass{article}
\usepackage{biblatex}
\DeclareNumChars{A}
\usepackage{filecontents}
\begin{filecontents}{pages.bib}
@Article{A,
author = {Some author},
title = {Some title},
journal = {Some journal},
year = 2013,
pages = {1A}
}
\end{filecontents}
\addbibresource{pages.bib}
\begin{document}
\nocite{*}
\printbibliography
\end{document}