Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

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

share|improve this question
    
See tex.stackexchange.com/q/43085/5001 for a somewhat related question. –  Mico Dec 2 '13 at 0:17

2 Answers 2

up vote 9 down vote accepted

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

share|improve this answer
    
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 2 '13 at 2: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 2 '13 at 3:55

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

share|improve this answer
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 at 15:56

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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