我想知道如何正确使用在线期刊(例如 PLoS Computational Biology)上发表的文章所提供的页面字段。
尽管在线期刊上发表的文章没有实际的页码,但期刊本身和 Google Scholar 都提供了一个pages
包含诸如e1000112
(PLoS) 和20122863
(Proceedings of the Royal Society) 等值的字段。
除了语义之外,使用该pages
字段不会带来任何问题,但第二个值不以字母开头这一事实意味着打印的引用显示p. 20122863
是错误的,因为该数字不是实际的页码。
此外,在我看来,该pages
领域不应该用于此目的,所以我试图寻找替代方案,并发现eid
[来源]:
开斋节
电子识别码适用于印刷版的电子期刊。此编号取代页码,用于在印刷版中查找文章。有时也称为引文编号。
但我不确定这是否合适,因为其中提到了印刷卷,而且我确信并不是每本在线期刊最终都会出版印刷卷。
问题:
natbib
对于与+bibtex
和biblatex
+兼容的在线期刊提供的页面字段,我应该使用哪个字段biber
?
答案1
总结:通用的解决方案几乎是不可能的,biblatex
提供bookpagination
(和pagination
字段)并且良好编码的风格将利用这些,所以这bookpagination = {none}
似乎是一个很好的方法biblatex
。
详细答案
一个适用于两者的解决方案natbib
几乎biblatex
是不可能的(有人可能会说几乎不可能),原因很简单,它不是natbib
决定biblatex
打印什么以及书目是什么样子的,而是书目样式(\bibliographystyle
在“BibTeX 包”中,因为没有更好的名字[.bst
样式];,style
用bibstyle
[biblatex
样式.bbx
]);所以一个通用的解决方案必须与全部如今可用的款式(.bst
以及.bbx
)——款式相当多。
虽然大多数样式都遵循通用语义和最佳实践,但我们不能确定所有样式都会pages
以某种方式显示字段(好吧,我们可以非常确定字段,pages
因为它是如此重要和标准,但字段eid
完全是另一回事)。
大多数“奇特”字段(如等eid
)eprint
注定不受多种样式的支持 - 甚至更基本的(可以说非常不奇特 - 至少按照现代标准)URL 字段也缺少某些样式,仅仅是因为它们是在 URI 出现之前完成的,而 URI 于 1994 年标准化(RFC1738),例如:ieeetr.bst
自 1988 年以来似乎一直如此(除了许可证的澄清)。
话虽如此,该pages
领域可能是您获得广泛适用的解决方案的最佳选择,而且从语义上看,它似乎并不太遥远。
但即使对该字段的处理pages
在参考书目样式中也不是标准化或规范化的:某些.bst
样式会检查该pages
字段是否包含多页,以决定是否打印“p.”或“pp。”(plain.bst
和ieeetr.bst
),但德语中无需这么做,因为在两种情况下缩写都是“S.”,因此natdin.bst
并不关心检查“多个页面”,但如果存在 URL,则其行为会有所不同。
biblatex
提供了许多开箱即用的功能,因此几乎所有风格都会使用它们(这也是因为很多风格biblatex
都编码得很好),我还没有遇到过尝试自己实现这些检查的风格。
biblatex
将检查pages
字段是否实际包含“页面范围”,页面范围由识别为数字的字符(参见\DeclareNumChars
)和识别为范围分隔符/指示符的字符(参见\DeclareRangeChars
)以及某些其他命令(参见\DeclareRangeCommands
和\DeclarePageCommands
)组成。如果pages
字段仅包含在此处声明的字符和命令,则通过测试\ifpages
。如果pages
字段通过\ifpages
测试并使用打印\mkpageprefix
,则将添加页面前缀“p。”/“pp。”如果没有,则字段pages
按原样打印,不带前缀。事实上,我们可以控制添加到字段的前缀,pages
如§2.3.10 中所述分页,第 35 页,biblatex
文档,我们甚至可以定义自己的前缀(如下图所示)引用演示文稿中的特定幻灯片)。
甚至可以根据每个条目设置“分页方案”,使用pagination
(控制文内引用如何格式化(postnote
如果它通过\ifpages
))和bookpagination
(控制pages
和pagetotal
字段)。
因此,您可以对这些特殊pages
字段执行的操作是添加bookpagination = {none}
到相应的条目(或希望出现抛出 false 的字符\ifpages
,e
PLoS 条目中就是这样做的)。
例如bookpagination = {none}
:
@article{Clune22032013,
author = {Clune, Jeff and Mouret, Jean-Baptiste and Lipson, Hod},
title = {The Evolutionary Origins of Modularity},
volume = {280},
number = {1755},
pages = {20122863},
bookpagination = {none},
date = {2013},
doi = {10.1098/rspb.2012.2863},
eprint = {http://rspb.royalsocietypublishing.org/content/280/1755/20122863.full.pdf+html},
journal = {Proceedings of the Royal Society B: Biological Sciences}
}
数学家协会
\documentclass{article}
\usepackage[style=authoryear, backend=biber]{biblatex}
\usepackage{filecontents}
\usepackage{hyperref}
\begin{filecontents*}{\jobname.bib}
@article{Clune22032013,
author = {Clune, Jeff and Mouret, Jean-Baptiste and Lipson, Hod},
title = {The Evolutionary Origins of Modularity},
volume = {280},
number = {1755},
pages = {20122863},
bookpagination = {none},
date = {2013},
doi = {10.1098/rspb.2012.2863},
eprint = {http://rspb.royalsocietypublishing.org/content/280/1755/20122863.full.pdf+html},
journal = {Proceedings of the Royal Society B: Biological Sciences}
}
\end{filecontents*}
\addbibresource{\jobname.bib}
\begin{document}
\cite[3]{Clune22032013}
\printbibliography
\end{document}
产量,请注意,对于文内引用,页面前缀是启用的(也是默认的page
),而期刊页面的前缀是禁用的。