1

I am using BibLatex with the configuration below:

\usepackage[backend = biber,  
        language = english ,
        style    = alphabetic ,  
        firstinits = true,
        isbn = false,
        url = false,
        doi = false,
        sorting = nyt,
        backref=true
        ]{biblatex}

Is it possible to change the current \citeauthor 'lastname style' (e.g. "Doe") by an 'abbreviated-firstname lastmane' style (e.g. "J. Doe")?

1 Answer 1

2

By default \citeauthor uses the labelname format. With your set-up you could simply use

\DeclareNameAlias{labelname}{given-family}

That works well since you don't use the labelname format in citations (your style is alphabetic) and you already have giveninits=true (giveninits was called firstinits in older versions) so we only ever get initials.

With other styles that use labelname you might need

\DeclareCiteCommand{\citeauthor}
  {\boolfalse{citetracker}%
   \boolfalse{pagetracker}%
   \usebibmacro{prenote}}
  {\ifciteindex
     {\indexnames{labelname}}
     {}%
   \printnames[given-family]{labelname}}
  {\multicitedelim}
  {\usebibmacro{postnote}}

instead.

If you don't have giveninits=true enabled, use

\DeclareNameFormat{g-family}{%
  \usebibmacro{name:given-family}
    {\namepartfamily}
    {\namepartgiveni}
    {\namepartprefix}
    {\namepartsuffix}%
  \usebibmacro{name:andothers}}

\DeclareCiteCommand{\citeauthor}
  {\boolfalse{citetracker}%
   \boolfalse{pagetracker}%
   \usebibmacro{prenote}}
  {\ifciteindex
     {\indexnames{labelname}}
     {}%
   \printnames[g-family]{labelname}}
  {\multicitedelim}
  {\usebibmacro{postnote}}
5
  • Your first suggestion outputs "DoeD.JohnJ." instead of "J. Doe". Moreover, it does not separate multiple authors. Is there something I am missing?
    – suitangi
    Commented Feb 1, 2017 at 12:59
  • It works just fine for me. Maybe you are using an older version of biblatex, the code will only work with versions >= 3.3. If you can't update, try \DeclareNameAlias{labelname}{first-last} instead.
    – moewe
    Commented Feb 1, 2017 at 13:33
  • @suitangi ^^^^^
    – moewe
    Commented Feb 1, 2017 at 13:33
  • Works great after updating. Thank you very much!
    – suitangi
    Commented Feb 1, 2017 at 14:33
  • The first simple approach \DeclareNameAlias{labelname}{given-family} works well with ieee style as well, thanks for your explanation! Commented Apr 22, 2022 at 8:39

You must log in to answer this question.

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