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}
\usepackage[style=verbose-trad1,
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 !!!
Best Answer
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 ofbiblatex.def
's definitions with that one line added to the precode.