List of Names
\documentclass{scrartcl}
\usepackage{etoolbox}
% set up defaults so we don't get an error
% when we try to redefine these commands
\newcommand*{\surnamesep}{}%
\newcommand*{\lastsurname}{}%
\newcommand*{\prelastsurname}{}%
% define the handler macro:
\newcommand*{\dodisplayname}[1]{%
\surnamesep
\lastsurname
\renewcommand{\lastsurname}{%
\renewcommand{\surnamesep}{, }%
\renewcommand{\prelastsurname}{ and }%
#1%
}}%
% define the new command to process a list of names:
\newcommand*{\displaynames}[1]{%
% initialise:
\renewcommand*{\surnamesep}{}%
\renewcommand*{\lastsurname}{}%
\renewcommand*{\prelastsurname}{}%
% Iterate through list
\forcsvlist{\dodisplayname}{#1}%
% Finish off:
\prelastsurname \lastsurname
}
\begin{document}
\displaynames{Parrot,Canary,Zebra,Arara,Duck}
\end{document}
Download namelist.tex or namelist.pdf.
