\documentclass{article} \usepackage[utf8]{inputenc} \usepackage{csquotes} \usepackage[ngerman]{babel} \usepackage[style=authoryear-icomp, natbib=true, maxbibnames=50, maxcitenames=5, uniquelist=false, backend=biber]{biblatex} \usepackage{filecontents} \begin{filecontents}{\jobname.bib} @book{SechsNamen, author = {Ersternachname, Erstervorname and Zweiternachname, Zweitervorname and Drittervorname, Dritternachname and Vierternachname, Viertrevorname and Fuenfternachname, Fuenftervorname and Sechsternachname, Sechstervorname}, title = {Sechs Namen}, date = {2011}, } @book{FuenfNamen, author = {Ersternachname, Erstervorname and Zweiternachname, Zweitervorname and Drittervorname, Dritternachname and Vierternachname, Viertrevorname and Fuenfternachname, Fuenftervorname}, title = {Fuenf Namen}, date = {2011}, } } \end{filecontents} \addbibresource{\jobname.bib} \begin{document} \section{Wie gewünscht} Beim ersten Vorkommen sollen alle 5 Autoren angezeigt werden. \citep{FuenfNamen}. Nun kommt ein anderes Zitat mit 6 Namen von \citep{SechsNamen}. \section{Hier weiss ich nicht weiter} Beim zweiten Aufruf soll nur noch der erste Autor mit u.a. angezeigt werden und nicht mehr alle 5 Namen: \citep{FuenfNamen} \printbibliography \end{document}
Ab zweiter Referenz nur noch der erste Autor
Ab zweiter Referenz nur noch der erste Autor
Bei meiner Masterarbeit besteht folgende Anforderung: Stammt ein Werk von drei bis fünf AutorInnen, werden bei der ersten Nennung dieser Quelle alle Namen aufgeführt, bei jeder weiteren Nennung nur noch der Name des ersten Autors / der ersten Autorin, gefolgt von „u.a..“. Ich arbeite mit Natbib. Gibt es eine Möglichkeit das zu realisieren? Hier einmal das Minimalbeispiel:
Dankenswerterweise benutzt Du nicht natbib, sondern biblatex (das allerdings mit dem natbib-Kompatibilitätsmodus).
Als ersten Vorschlag hätte ich
anzubieten. Dazu brauchst Du als Option maxcitenames=2.
Der Stil biblatex-apa implementiert etwas der Art und von dort könntest Du
klauen.
Ich hätte gesagt, dass meine erste Lösung eigentlich schon tun sollte, was Du brauchst, Aber es kann sein, dass bei bestimmten Sonderfällen die Lösung von biblatex-apa stabiler ist. (Ich wüsste allerdings wirklich nicht, wo und wie.)
Als ersten Vorschlag hätte ich
\AtEveryCitekey{\ifciteseen{}{\defcounter{maxnames}{5}}}
Der Stil biblatex-apa implementiert etwas der Art und von dort könntest Du
\makeatletter \newbibmacro*{labelname:doname}[8]{% \ifboolexpr{test {\ifnumcomp{\value{listcount}}{>}{1}} or test {\ifuniqueprimaryauthor}} {\setcounter{uniquename}{0}} {}% \ifcase\value{uniquename}% \ifuseprefix {\usebibmacro{name:family}{#1}{#3}{#5}{\relax}} {\usebibmacro{name:family}{#1}{#3}{\relax}{\relax}}% \or \ifuseprefix {\usebibmacro{name:given-family}{#1}{#4}{#5}{\relax}} {\usebibmacro{name:given-family}{#1}{#4}{\relax}{\relax}}% \or \ifuseprefix {\usebibmacro{name:given-family}{#1}{#3}{#5}{\relax}} {\usebibmacro{name:given-family}{#1}{#3}{\relax}{\relax}}% \fi \usebibmacro{name:andothers}} \DeclareNameFormat{labelname}{% % First set the truncation point \ifthenelse{\value{uniquelist}>1} {\numdef\cbx@min{\value{uniquelist}}} {\numdef\cbx@min{\value{minnames}}}% % Always print the first name and the second if there are only two since % "et al" must always be plural \ifboolexpr{test {\ifnumcomp{\value{listcount}}{=}{1}} or test {\ifnumcomp{\value{listtotal}}{=}{2}}} {\usebibmacro{labelname:doname}% {\namepartfamily}% {\namepartfamilyi}% {\namepartgiven}% {\namepartgiveni}% {\namepartprefix}% {\namepartprefixi}% {\namepartsuffix}% {\namepartsuffixi}} % We are looking at name >=3 % If the list is 6 or more names or we have seen citation before, potential truncation {\ifboolexpr{test {\ifnumcomp{\value{listtotal}}{>}{5}} or test {\ifciteseen}} % Less than the truncation point, print normally {\ifnumcomp{\value{listcount}}{<}{\cbx@min + 1} {\usebibmacro{labelname:doname}% {\namepartfamily}% {\namepartfamilyi}% {\namepartgiven}% {\namepartgiveni}% {\namepartprefix}% {\namepartprefixi}% {\namepartsuffix}% {\namepartsuffixi}} {}% % At potential truncation point ... \ifnumcomp{\value{listcount}}{=}{\cbx@min + 1} % but enforce plurality of et al - only truncate here if there is at % least one more element after the current potential truncation point % so that "et al" covers at least two elements. {\ifnumcomp{\value{listcount}}{<}{\value{listtotal}} {\andothersdelim\bibstring{andothers}} {\usebibmacro{labelname:doname}% {\namepartfamily}% {\namepartfamilyi}% {\namepartgiven}% {\namepartgiveni}% {\namepartprefix}% {\namepartprefixi}% {\namepartsuffix}% {\namepartsuffixi}}} {}% % After truncation point, do not print name \ifnumcomp{\value{listcount}}{>}{\cbx@min + 1} {\relax}% {}}% % We are looking at name >=3 % Name list is < 6 names or we haven't seen this citation before, print normally {\usebibmacro{labelname:doname}% {\namepartfamily}% {\namepartfamilyi}% {\namepartgiven}% {\namepartgiveni}% {\namepartprefix}% {\namepartprefixi}% {\namepartsuffix}% {\namepartsuffixi}}}} \newbibmacro*{cite}{% \iffieldundef{shorthand} {\ifthenelse{\ifciteibid\AND\NOT\iffirstonpage} {\usebibmacro{cite:ibid}} {\ifthenelse{\ifnameundef{labelname}\OR\iffieldundef{labelyear}} {\usebibmacro{cite:label}% \setunit{\printdelim{nonameyeardelim}}% \usebibmacro{cite:labelyear+extrayear}% \usebibmacro{cite:reinit}} {\iffieldequals{namehash}{\cbx@lasthash} {\ifthenelse{\iffieldequals{labelyear}{\cbx@lastyear}\AND \(\value{multicitecount}=0\OR\iffieldundef{postnote}\)} {\setunit{\addcomma}% \usebibmacro{cite:extrayear}} {\setunit{\compcitedelim}% \usebibmacro{cite:labelyear+extrayear}% \savefield{labelyear}{\cbx@lastyear}}} {\printnames[labelname][-\value{listtotal}]{labelname}% \setunit{\printdelim{nameyeardelim}}% \usebibmacro{cite:labelyear+extrayear}% \savefield{namehash}{\cbx@lasthash}% \savefield{labelyear}{\cbx@lastyear}}}}} {\usebibmacro{cite:shorthand}% \usebibmacro{cite:reinit}}% \setunit{\multicitedelim}} \makeatother
Ich hätte gesagt, dass meine erste Lösung eigentlich schon tun sollte, was Du brauchst, Aber es kann sein, dass bei bestimmten Sonderfällen die Lösung von biblatex-apa stabiler ist. (Ich wüsste allerdings wirklich nicht, wo und wie.)