抑制书内书引用中的非标准页面

抑制书内书引用中的非标准页面

我需要引用选集中的一本未使用标准页码的书。

在参考书目中,应给出整部作品的页码。

在引文中,只应列出我所指的页码。通常使用选项 citepages=omit 来完成此操作。不幸的是,当“postnote”字段中的页面非标准时,此选项似乎不起作用。

以下是 MWE:

\documentclass{book}

\usepackage[backend=biber,
                style=verbose-ibid,
                citepages=omit,
                ibidpage=true]{biblatex}

\usepackage{filecontents}

\begin{filecontents}{pages.bib}

@bookinbook{a,
  author    = {An Author},
  title     = {A Book With Nonstandard Pages},
  booktitle = {A Bigger Book},
  pages     = {123A--131D},
}

\end{filecontents}
\addbibresource{pages.bib}

\begin{document}

I want to cite this book with only the pages I am referring to.\footcite[130B]{a}

\end{document}

脚注中的当前结果如下:

1一位作者。一本页面不标准的书。 在:更大的书、123A–131D、130B。

期望的结果是

1一位作者。一本页面不标准的书。 在:更大的书,130B.

(事实上​​,它没有添加“pp”,这对我来说没问题。)

对于如何做到这一点有什么想法吗?

答案1

verbose-ibid风格指南状态

citepages=omit仅在第三种情况下抑制pages/ pagetotal[第三种情况是使用通过postnote测试的调用 cite 时的情况\ifpages]。如果没有,postnote或者 不是postnote数字或范围,它们仍会打印出来。

您可以\ifpages在第 177 页(§4.6.2独立测试) 的biblatex文档

所以你有两个选择

  1. 确信biblatex“A”、“B”、“C”和“D”实际上是有效的页码
  2. 始终抑制该pages场,无论其性质如何postnote

解决方案 1

您可以使用\DeclareNumChars{ABCD}来将biblatex包含这些字符的“数字”视为数字。因此,postnote诸如 这样的113B现在将通过\ifpages测试。(另一个好处是,现在包含这些字符的pagespagetotal字段也将添加“pp。”)。

阅读更多内容\DeclareNumChars和相关命令,请参阅§4.6.4杂项命令,第 186 页biblatex文档

解决方案 2

或者你可以citepages=suppress使用citepages=omit指南verbose-ibid风格):

citepages=suppress无条件地抑制引文中的pages/pagetotal 字段,无论postnote

解决方案 1 的 MWE

\documentclass{article}
\usepackage[backend=biber,
                style=verbose-ibid,
                citepages=omit,
                ibidpage=true]{biblatex}
\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@bookinbook{a,
  author    = {An Author},
  title     = {A Book With Nonstandard Pages},
  booktitle = {A Bigger Book},
  pages     = {131A--123D},
}
\end{filecontents*}
\addbibresource{\jobname.bib}
\DeclareNumChars{ABCD}
\begin{document}
I want to cite this book with only the pages I am referring to.\footcite[1311B]{a}.
\printbibliography
\end{document}

在此处输入图片描述

答案2

我按如下方式解决了我的问题:

在序言中,我添加了以下内容以允许将字母视为“数字”:

\DeclareNumChars{ABCDE}

我在复杂条目之前添加了以下钩子:

\AtNextCitekey{\clearfield{pages}}

这将抑制pages下一个引用的字段(并且只抑制那一个)。

相关内容