7

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]?

Jeff
  • 569

2 Answers2

10

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

Alan Munn
  • 218,180
  • This works, but for reasons of compatibility with provided style files I need to work in BibTeX. I will try to convert the style file later, but is there a similar approach with LaTeX's built in bibliography? – Jeff Dec 02 '13 at 02:59
  • Maybe you could edit your question to show what bibliography methods you are required to use. As I mentioned, I don't think this can be done with regular bibtex without some trouble. – Alan Munn Dec 02 '13 at 03:55
5

For reference, another method for achieving what the OP asks for is with Bibulous' style templates. An advantage is that templates provide a more direct view of the formatting elements. Thus, for a database file

@article{Rayleigh1892,
    author = {Strutt, John William},
    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}
}

a template file of the form

TEMPLATES:
article = <au>[ (<nameaddon>)], \enquote{<title>}. In:{ }...
          \textit{<journal>} <volume> (<year>),{ }...
          [pp.~<startpage>--<endpage>|p.~<startpage>|].[ <note>]

SPECIAL-TEMPLATES:
authorlist = <author.to_namelist()>
editorlist = <editor.to_namelist()>
authorname.n = [<authorlist.n.first> ][<authorlist.n.middle> ]...
               [<authorlist.n.prefix> ]<authorlist.n.last>...
               [, <authorlist.n.suffix>]
au = <authorname.0>, ...,{ and }<authorname.9>
citelabel = [<shortauthor.0:2><year.2:3>|<authorlist.0.last.0:2><year.2:3>|]
sortkey = <authorlist.0.last>

makes use of the nameaddon and shortauthor fields provided in the database entry. Here the 0:2 grabs the first three letters of the shortauthor field, and the 2:3 index grabs the last two numbers in the year field. Compiling the *.tex file

\documentclass{article}

\begin{document}

\nocite{*}
\bibliographystyle{example6}
\bibliography{example6}

\end{document}

gives the formatted result desired:

Formatted result PDF

nzh
  • 1,085
  • 8
  • 13
  • 1
    Thanks for this answer. It looks like an interesting project. And welcome to TeX.sx Perhaps you might want to make a more user-friendly user name :) – Alan Munn Feb 28 '14 at 15:56