我使用 citation 命令\cite[00X1]{stacksproject}
。这会产生结果[p. 00X1, SP]
,但应该是[00X1, SP]
可选参数是标签而不是页码。
我必须使用哪个 biblatex 参数来禁用在开头自动添加这个“p。”?
设置
我的 biblatex 设置是
\usepackage{csquotes}
\usepackage[
backend=bibtex,
style=alphabetic,
citestyle=alphabetic
]{biblatex}
备注/尝试
我可以全局禁用它。\cite[p.~3]{...}
当我确实需要页码时,我很乐意使用它。
我尝试添加以下命令,但我认为这不是我想要的。
\DeclareFieldFormat{pages}{\mkpageprefix[...][...]{#1}}
使用时\printbibliography
,它仍应自动打印页面范围,类似pp. 312-345
。
如果这个问题已经得到解答,我很抱歉,但我在这里和 biblatex 的文档,如果能提供一个参考链接就更好了。
答案1
biblatex
有一个启发式方法来检查postnote
参数是否是页面(范围),00X1
通过该测试,因为biblatex
尝试允许阿拉伯数字和罗马数字,并且00X1
只包含罗马和阿拉伯数字中允许的字符。
如果您写了00Y1
,那么您将不会在输出中看到“p.”,因为Y
不能是罗马数字或阿拉伯数字的一部分。
您可以提供帮助biblatex
,并使用命令明确地告诉它后记不是页面范围\nopp
Lorem \autocite[\nopp 00X1]{sigfridsson}
这将抑制任何“p。”/“pp。”前缀。
如果某部作品的引用没有提及页码范围,您可以通过向具有值的条目biblatex
添加字段来告知这一点。pagination
.bib
none
\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[
backend=bibtex,
style=alphabetic,
]{biblatex}
\begin{filecontents}{\jobname.bib}
@article{sigfridsson,
author = {Sigfridsson, Emma and Ryde, Ulf},
title = {Comparison of methods for deriving atomic charges from the
electrostatic potential and moments},
journal = {Journal of Computational Chemistry},
date = 1998,
volume = 19,
number = 4,
pages = {377-395},
doi = {10.1002/(SICI)1096-987X(199803)19:4<377::AID-JCC1>3.0.CO;2-P},
}
@book{nussbaum,
author = {Nussbaum, Martha},
title = {Aristotle's \mkbibquote{De Motu Animalium}},
date = 1978,
publisher = {Princeton University Press},
location = {Princeton},
pagination = {none},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
Lorem \autocite[\nopp 00X1]{sigfridsson} % suppress page prefix
Lorem \autocite[00X1]{sigfridsson} % passes "pages test"
Lorem \autocite[00Y1]{sigfridsson} % doesn't pass "pages test"
Lorem \autocite[00X1]{nussbaum} % pagination=none
Lorem \autocite[00Y1]{nussbaum} % pagination=none
\end{document}
如果要全局删除所有条目的所有引用中的 pages 前缀,请使用
\DeclareFieldFormat{postnote}{\mknormrange{#1}}
\DeclareFieldFormat{volcitepages}{\mknormrange{#1}}
\DeclareFieldFormat{multipostnote}{\mknormrange{#1}}
如果你仍想biblatex
解析和格式化数字范围,或者
\DeclareFieldFormat{postnote}{#1}
\DeclareFieldFormat{volcitepages}{#1}
\DeclareFieldFormat{multipostnote}{#1}
如果根本不应该进行这样的解析和格式化。
无论如何,您都可以手动添加“p.”或“pp. \pno
”\ppno
\autocite[\pno~380]{sigfridsson}
\autocite[\ppno~380-382]{sigfridsson}
如果你愿意的话。
这在 §3.14.3 中有记录引文中的页码(v3.14 中的第 146-147 页)和 §2.3.12分页(第 3.14 版第 41 页)biblatex
手动的。但是,如果您已经知道答案,那么在文档中找到相关页面会更加容易。