
我正在使用biblatex
和style=authoryear
。maxcitenames=2
對於超過兩位作者的參考文獻 \cite 指令產生
埃爾庫斯等人。 2010年
和 \textcite 命令產生
埃爾庫斯等人。 (2010)
我想在et al.
年份和命令之間添加一個逗號,僅用於命令\cite
(但不用於\textcite
命令),即
埃爾庫斯等人,2010
埃爾庫斯等人。 (2010)
\renewcommand*{\nameyeardelim}{\addcomma\space}
僅適用於單一作者參考(看到這個問題),但不適用於et al.
兩位以上作者的參考文獻的速記使用。我不想用來\DefineBibliographyStrings
重新定義andothers
並在後面添加逗號,et al.
因為它還會在\textcite
引文中添加逗號,這是我不想要的。
我嘗試了以下(看到這個問題)但沒有工作:
\renewcommand*{\nameyeardelim}{%
\ifnumgreater{\value{listcount}}{2}{\nameyeardelim}{\addcomma\space}%
\ifnumequal{\value{listcount}}{1}{\nameyeardelim}{\addcomma\space}%
}
答案1
您可以透過設定fornatbib=true
中的選項來實現此目的。\usepackage
biblatex
微量元素:
\begin{filecontents*}{database.bib}
@inproceedings{erkus_2010,
title = {Title},
booktitle = {Book Title},
date = {2010},
author = {Erkus, Firstname and Lastname, Firstname and Lastname Anotherfirstname}
}
\end{filecontents*}
\documentclass[]{article}
\usepackage{filecontents}
\usepackage[style=authoryear, maxcitenames=2, backend=biber, natbib=true] {biblatex}
\addbibresource{database.bib}
\begin{document}
Cite: \cite{erkus_2010}
Textcite: \textcite{erkus_2010}
\end{document}
其產生:
答案2
\renewcommand*{\nameyeardelim}{\addcomma\space}
無論您是否引用一位或多位作者,都應該適用。在最新版本中biblatex
nameyeardelim
是一個上下文相關的分隔符,這意味著您應該使用\DeclareDelimFormat
它來修改它
\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[style=authoryear, maxcitenames=2, backend=biber]{biblatex}
\DeclareDelimFormat{nameyeardelim}{\addcomma\space}
\addbibresource{biblatex-examples.bib}
\begin{document}
\cite{sigfridsson,aksin,herrmann,nussbaum}
\textcite{sigfridsson,aksin,herrmann,nussbaum}
\printbibliography
\end{document}
如果你看一下blx-natbib.def
,您會發現它使用與此處建議的命令完全相同的命令。這就是為什麼natbib=true
(如建議的亞歷克斯'回答) 也會產生所需的逗號。