我需要文内引用格式为作者-年份,即:“Author1, 1999”。我已经实施
\renewcommand{\citep}[1]{(\citeauthor{#1},~\citeyear{#1})}
(从这个帖子) 如果只有一位作者,它将返回我想要的内容。但如果有多个作者,它将返回:
(Author1, Author2, 1999, 1998)
我需要的是:
(Author1, 1999, Author2, 1998)
我怎样才能做到这一点?
答案1
您不应该更改引用命令,而应该设置引用样式。据我从示例中推断,您的情况应该是:
\setcitestyle{authoryear,comma,aysep{,}}
第一个选项表示使用作者年份,第二个选项表示引用之间需要用逗号分隔,最后一个选项表示作者和年份之间需要用逗号分隔。
答案2
biblatex
如果您按照标记建议的方式使用,请使用authoryear
样式、设置nameyeardelim
和\multicitedelim
引用\autocite
。
\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[backend=biber, style=authoryear]{biblatex}
\renewcommand*{\multicitedelim}{\addcomma\space}
\DeclareDelimFormat[parencite]{nameyeardelim}{\addcomma\space}
\addbibresource{biblatex-examples.bib}
\begin{document}
Lorem \autocite{sigfridsson,worman}
dolor \autocite{nussbaum}
\printbibliography
\end{document}
\...cite
将几个命令组合成一个命令几乎总是一个坏主意\newcommand
,因为这样定义的命令无法处理多个引用,需要额外的帮助来处理前后注释,并且会混淆各种引用跟踪功能。