使用 biblatex,可以轻松更改引用样式,例如更改来源和页码之间的分隔符。我使用的引用样式是作者年份类型的变体,要求我以 Author (2000: 123) 或 (Author 2000:123) 的形式引用,因此我更改了
\renewcommand{\postnotedelim}{\addcolon\space}% change the standard ", "
\DeclareFieldFormat{postnote}{#1}% no "p. "
不幸的是,这会与诸如 之类的多引用命令混淆\parencites
,因为它还会更改一系列引用项后的分隔符。例如,
\parencite(see)(etc){greenwade93,goossens93}
结果是
(参见 Goossens、Mittelbach 和 Samarin,1993;Greenwade,1993:等)
显然,postnotedelim 既可用于单引号命令,也可用于多引号命令。我希望此处使用“,etc”,而不是“:etc”。
但是,如何根据 postnote 分隔符是在单个还是多个引用命令中使用来更改它的行为?我搜索了 biblatex 手册并找到了该multipostnote
字段,但没有办法更改它的分隔符。我想我正在寻找的是multipostnotedelim
,但我对 biblatex 的经验不足,无法自己集成它。
\documentclass{article}
\usepackage[style=authoryear-comp,backend=biber,natbib=true]{biblatex}
\renewcommand{\postnotedelim}{\addcolon\space}
\DeclareFieldFormat{postnote}{#1}
\usepackage{filecontents}
\begin{filecontents}{bibliography.bib}
@article{greenwade93,
author = "George D. Greenwade",
title = "The {C}omprehensive {T}ex {A}rchive {N}etwork ({CTAN})",
year = "1993",
journal = "TUGBoat",
volume = "14",
number = "3",
pages = "342--351"
}
@book{goossens93,
author = "Michel Goossens and Frank Mittelbach and Alexander Samarin",
title = "The LaTeX Companion",
year = "1993",
publisher = "Addison-Wesley",
address = "Reading, Massachusetts"
}
\end{filecontents}
\bibliography{bibliography.bib}
\begin{document}
\citep[342]{greenwade93}
\parencites(see)(etc.){greenwade93,goossens93}
\end{document}
答案1
biblatex
3.13multipostnotedelim
除了 之外还实现了postnotedelim
。请注意,这些命令现在是上下文相关的分隔符,因此应使用 重新定义\DeclareDelimFormat
。
\documentclass{article}
\usepackage[style=authoryear-comp, backend=biber, natbib=true]{biblatex}
\DeclareDelimFormat{postnotedelim}{\addcolon\space}
\DeclareFieldFormat{postnote}{#1}
\DeclareDelimFormat{multipostnotedelim}{\addcomma\space}
\addbibresource{biblatex-examples.bib}
\begin{document}
\citep[342]{sigfridsson}
\parencites(see)(etc.){sigfridsson,nussbaum}
\end{document}
如果您使用的是过时的版本,请查看编辑历史记录以寻找解决方案biblatex
。