
Ich habe ein Problem mit folgendem: Ich benötige folgenden Zitierstil:
- wenn ein Autor nur diesen Autor zeigt,
- Wenn drei Autoren vorhanden sind, zeigen Sie beim ersten Mal alle drei an, bei nachfolgenden Zitaten jedoch nur den ersten undet al.
- wenn mehr als drei Autoren vorhanden sind, wird nur der erste angezeigt.et al.
Das folgende Dokument funktioniert korrekt, indem es beim ersten Mal die Autoren anzeigt, wenn es mehr als drei sind, und dann anschließend den ersten Autor pluset al.
ABER das Problem, wenn es mehr als vier Autoren gibt, wie man nur den ersten Autor anzeigen kann, dannet al.
\documentclass{article}
\usepackage{etoolbox}
\usepackage{natbib}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@article{test1,
author = {Author, A. and Buthor, B and Cuthor, C and Duthor, D},
title = {Title},
journal = {Journal},
year = 2013
}
@article{test2,
author = {Author, A. and Buthor, B and Cuthor, C and Duthor, D},
title = {Title},
journal = {Journal},
year = 2012
}
@article{test3,
author = {Author, A. and Buthor, B and Cuthor, C and Duthor, D and wael , mohamed and yafooz },
title = {Title},
journal = {Journal},
year = 2013
}
\end{filecontents}
\newcommand{\citelist}{}
\newcounter{currentcite}
\newcounter{currentcitetotal}
\newcommand{\mycite}[1]{
\setcounter{currentcitetotal}{0}
\renewcommand{\do}[1]{\addtocounter{currentcitetotal}{1}}
\docsvlist{#1}
\renewcommand{\do}[1]{%
\addtocounter{currentcite}{1}%
\ifinlist{##1}{\citelist}
{\citet{##1}}
{\citet*{##1}\listadd{\citelist}{##1}}%
\ifnumcomp{\value{currentcitetotal}}{>}{\value{currentcite}}
{, }
{}%
}
\docsvlist{#1}
}
\begin{document}
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
\mycite{test1,test2}
ffffffffffffffffff
\mycite{test1}
yyyyyyyyyyyyyyyyyyyyyyyyyyyy
\mycite{test2}
ffffffffffffffffff\mycite{test3}
\bibliographystyle{plainnat}
\bibliography{\jobname}
\end{document}