9

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

enter image description here

Thanks a lot !!!

1
  • 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
    Commented May 20, 2014 at 5:27

2 Answers 2

8

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}
\usepackage[backend=biber,style=verbose-trad1]{biblatex}

\addbibresource{biblatex-examples.bib}

\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}

enter image description here

0
2

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

\mkbibnamefamily

instead of

\mkbibnamelast
2
  • 3
    Thank you for the reminder. I have updated the answer accordingly.
    – moewe
    Commented Jun 11, 2018 at 14:39
  • 4
    Welcome to TeX.SX! Thanks for the contribution, although it probably should have been a comment to the existing answer.
    – TeXnician
    Commented Jun 11, 2018 at 14:53

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .