使用时,\footcites
所有引用都用 等距分隔\multicitedelim
。但是,我希望最后两个引用用“and”分隔。在某些限制下,使用 可以实现这一点,\textcites
解决方法是使用\footnote{\textcites{}.}
。奇怪的是,这仅适用于两个引用。如果包含三个或更多引用,则会产生“, and”而不是“and”。考虑到这一点,我想知道要使用 获得所需的结果,必须做些什么\footcites
。
这是一个最小的工作示例:
\documentclass{article}
\usepackage[style=authoryear-icomp]{biblatex}
\usepackage{filecontents}
\begin{filecontents}{references.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}
}
@book{Knuth86,
author = {Knuth, Donald E.},
year = {1986},
title = {The \TeX book}
}
\end{filecontents}
\addbibresource{references.bib}
\begin{document}
How it should look like.\footnote{\cites{goossens93}{greenwade93} and \cite{Knuth86}.}
How it should not look like.\footcites{goossens93}{greenwade93}[and][]{Knuth86}
\printbibliography
\end{document}
多谢!
答案1
幸运的是,biblatex
已经提供了我们所需要的一切(以至于我很惊讶这实际上还没有实现 - 其他\multi...delim
已经有\final...delim
版本了)。
我们只需要利用 的biblatex
测试 \iflastcitekey
来确定我们是否处于最后一项,如果是的话,稍微改变一下\multicitedlim
\renewcommand*{\multicitedelim}{%
\iflastcitekey
{\addspace\bibstring{and}}
{\addsemicolon}%
\space}
就是这样!
这种方法并不适用于所有情况(尤其是引用压缩的情况),在这些情况下,最好\textcite
直接在脚注中使用。例如
\footnote{\textcite{geer,knuth:ct:a,knuth:ct:b,knuth:ct:c}}
根据您对牛津逗号的立场,您将需要调整\finalandcomma
/ \finalandsemicolon
。
平均能量损失
\documentclass{article}
\usepackage[style=authoryear-icomp]{biblatex}
\addbibresource{biblatex-examples.bib}
\renewcommand*{\multicitedelim}{%
\iflastcitekey
{\addspace\bibstring{and}}
{\addsemicolon}%
\space}
\begin{document}
How it should look like.\footcites{geer}{sigfridsson}{worman} vs this\footcites{geer,sigfridsson,worman}
\printbibliography
\end{document}