在作者和年份之間加上逗號,如 et al

在作者和年份之間加上逗號,如 et al

我正在使用biblatexstyle=authoryearmaxcitenames=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中的選項來實現此目的。\usepackagebiblatex

微量元素:

\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}

其產生:

引用時在「et al」之間用逗號分隔。和年份,並在文中引用不含逗號的內容。

答案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}

西格弗里德森和賴德,1998;阿克森等人,2006;赫爾曼等人,2006; Nussbaum,1978//Sigfridsson 和 Ryde (1998)、Aksın 等人。 (2006),赫曼等人。 (2006) 和努斯鮑姆 (1978)

如果你看一下blx-natbib.def,您會發現它使用與此處建議的命令完全相同的命令。這就是為什麼natbib=true(如建議的亞歷克斯'回答) 也會產生所需的逗號。

相關內容