# Customize \citeauthor* to show full author name but UpperCase only the first letter

I'm using biblatex with the verbose-trad1 style. When I use the command \citeauthor* I get the author's full name and the last name in SmallCaps. That is nice but I'd like to create a NEW command from \citeauthor* that would allow me to cite the author's full name with only the first letters in uppercase.

Exemple : currently : \citeauthor* gives me John SKA (small caps) I wish : \somenewcommand that gives me John Ska BUT keeps all my other citations (\autocite) as they are, i.e.: names in small caps.

EDIT: I've modified a little bit @moewe's answer to get precisely what I wanted. The final result is :

\documentclass[12pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

\usepackage{csquotes}
backend=bibtex,
bibencoding=inputenc,
language=french,
natbib=true,
sortcites=true,
autopunct=true,
babel=hyphen,
hyperref=true,
block=space,
citetracker=true,
ibidpage=true,
ibidtracker=context,
idemtracker=true,
pagetracker=true,
url=false,
]{biblatex}

\bibliography{/Users/lucianocouto/Documents/Chartres/bibliographie.bib}

\DeclareCiteCommand*{\citeauthor}
{\defcounter{maxnames}{99}%
\defcounter{minnames}{99}%
\defcounter{uniquename}{2}%
\boolfalse{citetracker}%
\boolfalse{pagetracker}%
\usebibmacro{prenote}}
{\ifciteindex{\indexnames{labelname}}{}%
\printnames{labelname}}
{\multicitedelim}
{\usebibmacro{postnote}}

\DeclareCiteCommand*{\citeauthornsc}
{\renewcommand*{\mkbibnamelast}[1]{####1}  % avoid SmallCaps for the name
\defcounter{maxnames}{99}%
\defcounter{minnames}{99}%
\defcounter{uniquename}{2}%
\boolfalse{citetracker}%
\boolfalse{pagetracker}%
\usebibmacro{prenote}}
{\ifciteindex{\indexnames{labelname}}{}%
\printnames{labelname}}
{\multicitedelim}
{\usebibmacro{postnote}}

\DeclareCiteCommand{\citeauthornsc}
{\renewcommand*{\mkbibnamelast}[1]{####1}  % avoid SmallCaps for the name
\boolfalse{citetracker}%
\boolfalse{pagetracker}%
\usebibmacro{prenote}}
{\ifciteindex
{\indexnames{labelname}}
{}%
\printnames{labelname}}
{\multicitedelim}
{\usebibmacro{postnote}}

\begin{document}

Standard small caps : \citeauthor{Milgrom:1991aa}

The new standard command : \citeauthornsc{Milgrom:1991aa}\autocite{Milgrom:1991aa}

Full name smallcaps : \citeauthor*{Milgrom:1991aa}

The new full name small caps : \citeauthornsc*{Milgrom:1991aa}\autocite{Milgrom:1991aa}

\enddocument


Thanks a lot !!!

• Please add an MWE of what you have right now. By default biblatex (in english) does not add small caps (it does in french though). – moewe May 20 '14 at 5:27

We can very easily define a new command \citeauthornsc and \citeauthornsc* from the standard definitions of \citeauthor that does not print last names in small caps by adding \renewcommand*{\mkbibnamefamily}[1]{####1}% to the pre-code hook (the vast number of #s is necessary due to the way commands are redefined within commands); the pre-code hook has only local scope, so that the redefinition applies only to this cite command. The two commands are basically a copy of biblatex.def's definitions with that one line added to the precode.

\documentclass{article}
\usepackage[french]{babel}
\usepackage{csquotes}

\DeclareCiteCommand{\citeauthornsc}
{\renewcommand*{\mkbibnamefamily}[1]{####1}%
\boolfalse{citetracker}%
\boolfalse{pagetracker}%
\usebibmacro{prenote}}
{\ifciteindex
{\indexnames{labelname}}
{}%
\printnames{labelname}}
{\multicitedelim}
{\usebibmacro{postnote}}

\DeclareCiteCommand*{\citeauthornsc}
{\renewcommand*{\mkbibnamefamily}[1]{####1}%
\boolfalse{citetracker}%
\boolfalse{pagetracker}%
\usebibmacro{prenote}}
{\ifciteindex
{\indexnames{labelname}}
{}%
\printnames[][1-1]{labelname}}
{\multicitedelim}
{\usebibmacro{postnote}}

\begin{document}
Standard small caps:
\citeauthor{wilde}
our new command:
\citeauthornsc{wilde}
small caps again:
\citeauthor{wilde}
\autocite{wilde}
\end{document}


As of March 2016 (biblatex 3.3), you need to change

\mkbibnamefamily


\mkbibnamelast