Specifying author pseudonyms in BibLaTeX

I am not aware of a biblatex standard solution for pseudonyms. Normally a name consists of the following four parts

  • family (last) name
  • given (first) name
  • name suffix (Sr, Jr.)
  • name prefix ("von part")

If you type in the name as Clark "Superman" Kent "Superman" will just be parsed as a second given name. For many intents and purposes that probably works alright, though the result with giveninits might be subpar.


It is possible to work out a more semantic solution with Biber's extensible name format.

The idea is to add a fifth name part, the pseudonym. It can be treated differently from all other name parts. In the example below the pseudonym is not used for sorting and it is only shown when the name is displayed in given-fmaily order.

See Bibtex/Biber: how to cite an author using Ethiopian conventions? for another more involved application of the extended name format with more explanations. CJK Bibliography Problem, Biblatex-Chicago and Chicago-style citations of CJK documents #2 may also be interesting.

\documentclass{article}
\usepackage{filecontents}

% This defines a new data model
% that is necessary to make the new name part known to Biber.
% In a production environment one would put pseudonym.dbx where
% LaTeX can find it and would not use filecontents.
\begin{filecontents*}{pseudonym.dbx}
\DeclareDatamodelConstant[type=list]{nameparts}{prefix,family,suffix,given,pseudonym}
\end{filecontents*}

\begin{filecontents*}{\jobname.bib}
@online{kent2016,
  author  = {family=Kent, given=Clark, pseudonym=Superman},
  title   = {Mindset of a Winner},
  year    = {2016},
  url     = {https://www.supermanhomepage.com/},
  urldate = {2019-03-14}
}
\end{filecontents*}

\usepackage[style=numeric,backend=biber, datamodel=pseudonym]{biblatex}

\addbibresource{biblatex-examples.bib}
\addbibresource{\jobname.bib}


% use name:given-pseudonym-family instead of standard name:given-family 
% and add another argument {\namepartpseudonym} at the end
\DeclareNameFormat{given-family}{%
  \ifgiveninits
    {\usebibmacro{name:given-pseudonym-family}
      {\namepartfamily}
      {\namepartgiveni}
      {\namepartprefix}
      {\namepartsuffix}
      {\namepartpseudonym}}
    {\usebibmacro{name:given-pseudonym-family}
      {\namepartfamily}
      {\namepartgiven}
      {\namepartprefix}
      {\namepartsuffix}
      {\namepartpseudonym}}%
  \usebibmacro{name:andothers}}

\newcommand*{\mkbibcompletenamegivenpseudonymfamily}[1]{#1}

\renewcommand*{\mkbibnamepseudonym}{\mkbibquote}

% Name formatting macro
% mostly copied from standard name:given-family
% but with the bits for #5 added
% {<family>}{<given>}{<prefix>}{<suffix>}{<pseudonym>}
\newbibmacro*{name:given-pseudonym-family}[5]{%
  \usebibmacro{name:delim}{#2#5#3#1}%
  \usebibmacro{name:hook}{#2#5#3#1}%
  \mkbibcompletenamegivenpseudonymfamily{%
    \ifdefvoid{#2}
      {}
      {\mkbibnamegiven{#2}\isdot\bibnamedelimd}%
    \ifdefvoid{#5}
      {}
      {\mkbibnamepseudonym{#5}\isdot\bibnamedelimd}%
    \ifdefvoid{#3}
      {}
      {\mkbibnameprefix{#3}\isdot
       \ifprefchar
         {}
         {\ifuseprefix{\bibnamedelimc}{\bibnamedelimd}}}%
    \mkbibnamefamily{#1}\isdot
    \ifdefvoid{#4}{}{\bibnamedelimd\mkbibnamesuffix{#4}\isdot}}}

\begin{document}
\textcite{sigfridsson,knuth:ct:a,knuth:ct:b,knuth:ct:c,cicero,geer}

\textcite{kent2016}

\printbibliography
\end{document}

The output is not spectacular

Citation: "Kent [3]" Bibliography: [3] Clark “Superman” Kent. Mindset of a Winner. 2016. url: https://www.supermanhomepage.com/ (visited on 03/14/2019).


I implemented pseudonyms in my style biblatex-fiwi. I don't think any other style supports this. I try to briefly summarise what I did.

BEWARE: THIS IS MESSY CODE, I AM SURE THIS COULD BE DONE IN A MUCH CLEANER WAY

For declaring the name, I make the distinction between the pseudonym which is the name which is normally used on the book (or whatever document it is) and the real name. For this I introduce new name parts: trueprefix,truefamily,truesuffix,truegiven.

These have to be defined with \DeclareDatamodelConstant:

\DeclareDatamodelConstant[type=list]{nameparts}{prefix,family,suffix,given,trueprefix,truefamily,truesuffix,truegiven} 

I then defined a test whether an entry actually has a pseudonym:

\newrobustcmd{\ifpseudo}[2]{%
\ifboolexpr{%
        ( not test {\ifdefvoid{\nameparttruefamily}} or not test
        {\ifdefvoid{\nameparttruegiven}})}%
        {#1}{#2}%
}

Now the definition of the name format has to be adapted:

\DeclareNameFormat{family-given}{%
  \ifgiveninits
    {\usebibmacro{name:family-given}
      {\namepartfamily}
      {\namepartgiveni}
      {\namepartprefix}
      {\namepartsuffix}
      \ifpseudo%
        {\usebibmacro{name:true:family-given}
        {\nameparttruefamily}
        {\nameparttruegiveni}
        {\nameparttrueprefix}
        {\nameparttruesuffix}}
        {}}
    {\usebibmacro{name:family-given}
      {\namepartfamily}
      {\namepartgiven}%
      {\namepartprefix}%
      {\namepartsuffix}%
      \ifpseudo%
        {\usebibmacro{name:true:family-given}%
        {\nameparttruefamily}%
        {\nameparttruegiven}%
        {\nameparttrueprefix}%
        {\nameparttruesuffix}}%
        {}}%
  \usebibmacro{name:andothers}}

Now we need the macro name:true:family-given:

\newbibmacro*{name:true:family-given}[4]{%
\addthinspace\bibopenbracket{=}%
  \ifuseprefix%
    {\usebibmacro{name:delim}{#3#1}%
    \usebibmacro{name:hook}{#3#1}%
    \ifdefvoid{#3}{}{%
       \ifcapital
         {\mkbibnametrueprefix{\MakeCapital{#3}}\isdot}%
         {\mkbibnametrueprefix{#3}\isdot}%
       }%\ifpunctmark{'}{}{\addhighpenspace}}%
       \mkbibnametruefamily{#1}\isdot%
       \ifdefvoid{#2}
        {}{\addcomma\addlowpenspace\mkbibnametruegiven{#2}\isdot}%
        \ifdefvoid{#4}
        {}{\addcomma\addlowpenspace\mkbibnametruesuffix{#4}\isdot}}%
            {\usebibmacro{name:delim}{#1}%
            \usebibmacro{name:hook}{#1}%
    \mkbibnametruefamily{#1}\addspace\isdot
     \ifdefvoid{#4}
        {}
        {\addlowpenspace\mkbibnametruesuffix{#4}\isdot}%
     \addcomma\ifdefvoid{#3}{}{\addcomma}%
     \ifdefvoid{#2}{}{\addlowpenspace\mkbibnametruegiven{#2}\isdot}%
     \ifdefvoid{#4}{}{\addlowpenspace\mkbibnametruesuffix{#4}\isdot}%
        \addspace\ifdefvoid{#3}
        {}
     {\addlowpenspace\mkbibnametrueprefix{#3}\isdot}}%
     \bibclosebracket
}

The actual entry for a name with a pseudonym looks like this:

@book{Blish.J:1973a,
    Address = {Chicago},
    Author = {given=William, family=Atheling, suffix=Jr., truefamily=Blish, truegiven=James},
    Edition = {2},
    Origdate = {1964},
    Publisher = {Advent Publishers},
    Subtitle = {Studies in Contemporary Magazine Science Fiction},
    Title = {The Issue at Hand},
    Year = {1973}}

The printed bibiliography looks like this with biblatex-fiwi:

enter image description here

Note that I only print the real name in the bibliography and not in the in-text citation

IME there can also be problems with BibTeX GUIs. BibDesk which I use to manage my bibliographic data has a hard time dealing with the unfamiliar name entries.

As I said: I am sure this can be done in a much neater way, but it works …

EDIT If you actually are going to use biblatex-fiwi, simply add the truenameparts to the name, the style will take care of the rest. But in its current form, the style is heavily geared toward German speaking humanities.

Tags:

Biblatex