I'm using biblatex and I need author's last name in small caps, so I do this:


So I get "SMITH, John" and that's what I needed. But I also get for example:

ALCINOOS (1990). Enseignement des doctrines de Platon. Ed. por J. WHITTAKER y P. LOUIS. Paris: Belles Lettres.

And the problem is I don't want that editors, translators, etc in small caps, because in spanish is not correct.

Edit: As of March 2016 (biblatex 3.3), you need \mkbibnamefamily


Small capitals can be applied selectively using \ifcurrentname. The example below applies \textsc only to the last names of the fields labelname, author (or editor, in the absence of author). The results are demonstrated with verbose-trad1, but the solution should work for most styles.



  \ifboolexpr{ test {\ifmknamesc} and test {\ifuseprefix} }

  \ifboolexpr{ test {\ifcurrentname{labelname}}
               or test {\ifcurrentname{author}}
               or ( test {\ifnameundef{author}} and test {\ifcurrentname{editor}} ) }}


Filler text \autocites[10--15]{aristotle:poetics}{aristotle:rhetoric,companion,cicero}.
Filler text \autocites[11]{companion}[10--15]{aristotle:poetics}{aristotle:rhetoric,gaonkar,vangennep}.

enter image description here

Note that applying the format to labelname makes \citeauthor set in small capitals. To avoid this under styles with citation tracking enabled, \ifmknamesc can be refined:

  \ifboolexpr{ ( test {\ifbibliography} or test {\ifbool{citetracker}} )
               and ( test {\ifcurrentname{labelname}}
                     or test {\ifcurrentname{author}}
                     or ( test {\ifnameundef{author}}
                          and test {\ifcurrentname{editor}} ) ) }}

Under styles without tracking, \citeauthor can be modified directly:


To avoid use of small capitals in citations entirely, we can use the test \ifbibliography. The following definition also limits \textsc to the first author (or editor).

  \ifboolexpr{ test {\ifnumequal{\value{listcount}}{1}}
               and test {\ifbibliography}
               and ( test {\ifcurrentname{author}}
                     or ( test {\ifnameundef{author}}
                          and test {\ifcurrentname{editor}} ) ) }}

One style-specific consideration is the idem abbreviation. In the example it is not set in small capitals. To change this you can redefine the cite:idem bibliography macro.

| improve this answer | |
  • It doesn't work for me. I get this error ! Undefined control sequence. \iffirstname ->\ifboolexpr { test {\ifnumequal {\value {listcount}}{1}} and ... What am I doing wrong? I've tried it with my tex file and with the code you've posted in your answer. – Gastón Sep 29 '11 at 14:59
  • @Mario For your attempt with the example I posted - did you use an exact copy of the code? It's generally hard to troubleshoot without more information (MWE, biblatex version, etc). – Audrey Sep 29 '11 at 16:22
  • biblatex version is biblatex.sty,v 0.8i and latex is LaTeX2e I didn't forget to include \def\iffirstname cause I 've made a copy/paste of your code. – Gastón Sep 29 '11 at 16:23
  • 1
    Thank you. I think I need to update texlive, not only biblatex.sty. ;) – Gastón Sep 30 '11 at 3:00
  • 3
    It would be helpful to edit the answer to use \mkbibnamefamily now that this is required. – jcr Apr 25 '16 at 9:34

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.