
나는 및 와 biblatex
함께 사용하고 있습니다 . 저자가 2명 이상인 경우 \cite 명령을 사용하면 다음이 생성됩니다.style=authoryear
maxcitenames=2
Erkuset al. 2010
\textcite 명령은 다음을 생성합니다.
Erkuset al. (2010)
et al.
명령에만 \cite
(명령에는 해당하지 않음 ) 과 연도 사이에 쉼표를 추가하고 싶습니다 \textcite
. 즉,
에르쿠스 외, 2010
Erkuset al. (2010)
\renewcommand*{\nameyeardelim}{\addcomma\space}
단일 저자 참조에만 작동합니다(이 질문을 참조하세요et al.
), 그러나 저자가 2명 이상인 참고 문헌의 경우 약칭으로 사용하는 경우에는 작동하지 않습니다 . 다음 에 쉼표를 추가하기 때문에 뒤에 쉼표를 \DefineBibliographyStrings
재정의 andothers
하고 추가하는 데 사용하고 싶지 않습니다.et al.
\textcite
. 나는 원하지 않는 인용
나는 다음을 시도했습니다 (이 질문을 참조하세요) 그러나 작동하지 않았습니다.
\renewcommand*{\nameyeardelim}{%
\ifnumgreater{\value{listcount}}{2}{\nameyeardelim}{\addcomma\space}%
\ifnumequal{\value{listcount}}{1}{\nameyeardelim}{\addcomma\space}%
}
답변1
for natbib=true
에서 옵션을 설정하면 이를 달성할 수 있습니다 .\usepackage
biblatex
MWE:
\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
(에서 제안한대로알렉스'답변) 또한 원하는 쉼표를 생성합니다.