这个问题引出了包中的一个新功能:
biblatex
许多biblatex
引用样式都具有\textcite
以下命令:“旨在用于文本流,替换句子的主语”(手册,第 3.6.2 节)。目前,这对于单个作品的引用很有效——例如(假设风格authoryear
),人们可以在来源中写入
The reference work is \textcite{knuth:ct:a}.
排版为
参考文献是 Knuth (1984)。
另一方面,引用多部作品则有些繁琐。如果简单地写(1):
Important works are \textcite{knuth:ct:a,knuth:ct:b,markey}.
输出是一个列表而不是正确的句子(2):
重要作品有 Knuth (1984);Knuth (1986);Markey (2005)。
必须写(3):
Important works are \textcite{knuth:ct:a}, \textcite{knuth:ct:b}, and \textcite{markey}.
得到(4):
重要作品有 Knuth (1984)、Knuth (1986) 和 Markey (2005)。
是否可以\textcite
修改使得输入(1)产生输出(4),从而实现“在文本流中”更紧密的集成?
\documentclass{article}
\usepackage[style=authoryear]{biblatex}
\addbibresource{biblatex-examples.bib}
\begin{document}
This is how \texttt{\textbackslash textcite} currently works:\\
Important works are \textcite{knuth:ct:a,knuth:ct:b,markey}.
\bigskip
But I'd like \texttt{\textbackslash textcite} to output the following:\\
Important works are \textcite{knuth:ct:a}, \textcite{knuth:ct:b}, and \textcite{markey}.
\printbibliography
\end{document}
答案1
升级到最新的 biblatex 版本。从 biblatex 2.7 开始,此功能已纳入所有标准样式,包括authoryear
及其变体。以下是示例。
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[american]{babel}
%\usepackage[ngerman]{babel}
\usepackage{csquotes}
\usepackage[style=authoryear]{biblatex}
%\usepackage[style=authoryear-comp]{biblatex}
\addbibresource{biblatex-examples.bib}
\begin{document}
\subsection*{\texttt{authoryear} and \texttt{\textbackslash textcite}}
%\subsection*{\texttt{authoryear-comp} and \texttt{\textbackslash textcite}}
\textcite{knuth:ct:a,knuth:ct:b} \\
\textcite{knuth:ct:b,markey} \\
\textcite{bertram,knuth:ct:a,knuth:ct:b} \\
\textcite{knuth:ct:a,knuth:ct:b,markey} \\
\textcite{markey,knuth:ct:a,knuth:ct:b,bertram}
\subsection*{\texttt{authoryear} and \texttt{\textbackslash textcites}}
%\subsection*{\texttt{authoryear-comp} and \texttt{\textbackslash textcites}}
\textcites(See)(for example){knuth:ct:a}{knuth:ct:b} \\
\textcites(See)(for example)[cf.][]{knuth:ct:b}[9--18]{markey} \\
\textcites[10--15]{knuth:ct:a}[cf.][]{knuth:ct:b}[9--18]{markey} \\
\textcites{bertram}{markey}{knuth:ct:a}{knuth:ct:b} \\
\textcites{companion}{knuth:ct:a}{knuth:ct:b} \\
\textcites{aristotle:poetics}{aristotle:rhetoric}{knuth:ct:a}{knuth:ct:b}
\end{document}
authoryear
以下是使用和本地化后的输出american
,它启用了连续逗号:
authoryear-comp
以下是带有本地化的输出american
:
在嵌套列表中使用连续逗号并不简单,特别是在详细样式中。改进建议可以提交给biblatex github 仓库。