[Tex/LaTex] Peerage titles in the author field in BibTeX

bibliographiesbibtex

I am citing "The Theory of Sound" by John William Strutt (more commonly known as Baron Rayleigh). How should his name appear in the author field in BibTeX? Currently I have:

@book{Ray94,
        title = "The Theory of Sound",
        author = "John William Strutt, Baron Rayleigh",
        year = 1894,
        publisher = "Dover" 
}

It is necessary to include his title as most people know him simply as Rayleigh.

Although not critical, if I were to use the alpha style, how would I make this entry appear as [Ray94]?

Best Answer

Typically such names are listed with the real name (i.e. in this case, Strutt). With an alphabetic style, however, you can have the best of both worlds, I suppose, by using the commonly known name as the citation label. Here's how to do this in biblatex. Doing it in natbib is probably not possible without a lot of work.

The biblatex package has a field nameaddon which can be used to add extra material to a name. It also has a shortauthor field, which can be used to override the regular citation label based on the author. We use both of these fields to get the desired result:

% !BIB TS-program = biber
\begin{filecontents}{\jobname.bib}
@article{Rayleigh1892,
    Author = {Strutt, John William},
    Date-Added = {2013-12-01 23:58:46 +0000},
    Date-Modified = {2013-12-02 00:29:31 +0000},
    Journal = {Philosophical Magazine},
    Nameaddon = {3rd Baron Rayleigh},
    Pages = {481-502},
    Shortauthor = {Rayleigh},
    Title = {On the influence of obstacles arranged in rectangular order upon the properties of a medium},
    Volume = {34},
    Year = {1892}}
\end{filecontents}

\documentclass{article}
\usepackage[style=alphabetic]{biblatex}
\addbibresource{\jobname.bib}
\renewbibmacro*{author}{%
  \ifboolexpr{
    test \ifuseauthor
    and
    not test {\ifnameundef{author}}
  }
    {\printnames{author}\space\printfield[parens]{nameaddon}%
     \iffieldundef{authortype}
       {}
       {\setunit{\addcomma\space}%
    \usebibmacro{authorstrg}}}
    {}}

\begin{document}

\textcite{Rayleigh1892} wrote some stuff about obstacles.
\printbibliography
\end{document}

output of code