使用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}