![一个参考书目条目中包含两个页面范围](https://linux22.com/image/313136/%E4%B8%80%E4%B8%AA%E5%8F%82%E8%80%83%E4%B9%A6%E7%9B%AE%E6%9D%A1%E7%9B%AE%E4%B8%AD%E5%8C%85%E5%90%AB%E4%B8%A4%E4%B8%AA%E9%A1%B5%E9%9D%A2%E8%8C%83%E5%9B%B4.png)
我在处理书目条目(已编辑卷中的一章)时遇到了问题,我必须为其提供两个页面范围,一个用于章节本身,另一个用于注释。我得到了“页面”作为输出,但没有显示页面范围。请参见下面的示例:
\documentclass{memoir}
\usepackage[authordate,backend=biber]{biblatex-chicago}
\addbibresource{\jobname.bib}
\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@incollection{Payne2006,
author = {Payne, Richard K},
year = {2006},
title = {Introduction},
booktitle = {Tantric Buddhism in East Asia},
editor = {Richard K. Payne},
location = {Somerville, MA},
publisher = {Wisdom Publications},
pages = {1–31 (notes on 227–234)},
}
\end{filecontents*}
\begin{document}
\nocite{*}
\printbibliography
\end{document}
输出:
答案1
pages
是一个范围字段。文档说biblatex
:
范围字段由一个或多个范围组成,其中所有破折号都经过规范化并由命令替换
\bibrangedash
。范围是可选的,后面跟着一个或多个破折号,后面跟着一些非破折号(例如 5-7)。[...] 使用 Biber,如果范围字段不由一个或多个范围组成,则会跳过它们并生成警告。[...]
表达式1--31 (notes on 227--234)
不包含逗号,因此它是一个页面范围,但具有二破折号序列(我在这里使用了 ASCII 字母)。这会导致biber
警告:
WARN - Range field 'pages' in entry 'Payne2006' is malformed, skipping
然后pages
条目就消失了。
可以使用命令 隐藏第二个破折号序列\bibrangedash
,该命令将代替破折号序列放置在正确的页面范围内。 然后1
是页面范围的起始页,整个表达式是31 (notes on 227\bibrangedash234)
页面范围的结束页。
\documentclass{memoir}
\usepackage[authordate,backend=biber]{biblatex-chicago}
\addbibresource{\jobname.bib}
\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@incollection{Payne2006,
author = {Payne, Richard K},
year = {2006},
title = {Introduction},
booktitle = {Tantric Buddhism in East Asia},
editor = {Richard K. Payne},
location = {Somerville, MA},
publisher = {Wisdom Publications},
pages = {1--31 (notes on 227\bibrangedash234)},
}
\end{filecontents*}
\begin{document}
\nocite{*}
\printbibliography
\end{document}