当页码以某些字母结尾时,Biblatex 不会打印“p”。

当页码以某些字母结尾时,Biblatex 不会打印“p”。

使用biblatex.sty 2013/01/10 v2.5biber 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}

在此处输入图片描述

相关内容