默认情况下,biblatex-chicago
(在作者-标题模式下)第一次引用@article
s 和@incollection
s 时会使用完整的页面范围,除非 cite 命令包含特定的页面引用,在这种情况下只会打印后者。
我如何调整样式以使首次引用打印整个页面范围,然后在适用时使用逗号 + “at” + 所引用的特定页面?(当首次引用没有页面引用时,输出将相同。)
梅威瑟:
\documentclass{article}
\usepackage[notes]{biblatex-chicago}
\addbibresource{biblatex-examples.bib}
\begin{document}
\cite[162]{hyman}.
\cite[220--222]{doody}.
\cite[163]{hyman}.
\cite[223]{doody}.
\end{document}
默认输出:
Arthur Hyman,《亚里士多德的智力理论及其由阿威罗伊的诠释》,亚里士多德研究Dominic J. O'Meara 编,《哲学和哲学史研究》9(华盛顿特区:美国天主教大学出版社,1981 年),162。
特伦斯·杜迪,《海明威的风格和杰克的叙述》叙事技巧杂志4,第3期(1974):220-222。
Hyman,“亚里士多德的智力理论”,163。Doody,“海明威的风格和杰克的叙述”,223。
所需输出(添加粗体以标记差异):
Arthur Hyman,《亚里士多德的智力理论及其由阿威罗伊的诠释》,亚里士多德研究Dominic J. O'Meara 主编,《哲学和哲学史研究》9(华盛顿特区:美国天主教大学出版社,1981 年),161–191, 162.
特伦斯·杜迪,《海明威的风格和杰克的叙述》叙事技巧杂志4,第3期(1974年):212–225,220–222。
Hyman,“亚里士多德的智力理论”,163。Doody,“海明威的风格和杰克的叙述”,223。
答案1
标准verbose
样式有一个名为“ citepages
this”的选项。biblatex-chicago
似乎没有类似的选项。
类似下面的东西似乎有效,但一如既往,修改高度定制的风格是很棘手的biblatex-chicago
。
\documentclass{article}
\usepackage[notes]{biblatex-chicago}
\DefineBibliographyStrings{english}{
thiscite = {at},
}
\newtoggle{cbxchic:hadpages}
\renewbibmacro*{fullpostnote}{%
\global\toggletrue{cbxchic:hadpages}%
\iffieldundef{chapter}%
{\iffieldundef{pages}%
{\global\togglefalse{cbxchic:hadpages}}%
{\postnotedelim%
\printfield{pages}}}%
{\postnotedelim%
\printfield{chapter}}%
\ifboolexpr{
test {\ifnumequal{\value{citecount}}{\value{citetotal}}}
and
test {\iffieldpages{postnote}}
and
togl {cbxchic:hadpages}
}
{\setunit{\addcomma\space}%
\bibstring{thiscite}%
\setunit{\addspace}}
{}%
\usebibmacro{semel:postnote}}
\renewbibmacro*{eid+fullpostnote}{%
\global\toggletrue{cbxchic:hadpages}%
\iffieldundef{chapter}%
{\iffieldundef{pages}%
{\iffieldundef{eid}%
{\global\togglefalse{cbxchic:hadpages}}%
{\postnotedelim%
\printfield{eid}%
\clearfield{eid}}}%
{\postnotedelim%
\printfield{pages}}}%
{\postnotedelim%
\printfield{chapter}}%
\ifboolexpr{
test {\ifnumequal{\value{citecount}}{\value{citetotal}}}
and
test {\iffieldpages{postnote}}
and
togl {cbxchic:hadpages}
}
{\setunit{\addcomma\space}%
\bibstring{thiscite}%
\setunit{\addspace}}
{}%
\usebibmacro{semel:postnote}}
\addbibresource{biblatex-examples.bib}
\begin{document}
\cite[162]{hyman}.
\cite[220--222]{doody}.
\cite[163]{hyman}.
\cite[223]{doody}.
\end{document}