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.

My supervisor just came with an idea to use the ampersand in citations and bibliography, so e.g.

Smith and Watson (1992)

should become

Smith & Watson (1992)

How can I make it work with bibtex and bibliography style apa?

share|improve this question
7  
Tell your advisor that book authors are not a firm. :) –  egreg Sep 15 '11 at 10:59
    
Do you want the ampersand to appear only in the text citations or in the bibliography as well? –  Gonzalo Medina Sep 15 '11 at 12:09
    
@Gonzalo, I would like it to appear everywhere consistently. However, if it is considerably easier to get it in citations only than I can start with that. –  Grzenio Sep 15 '11 at 12:34
    
i know this post is a year old, but FYI this is not apa style. In-text references to authors should spell out the word "and". Ampersands are used only for the bibliography and parenthetical citations. –  Jeff Nov 28 '12 at 1:31
add comment

1 Answer

up vote 9 down vote accepted

Make a copy of apa.bst. (In a current TeX Live distribution it is located in /usr/local/texlive/2011/texmf-dist/bibtex/bst/beebe/apa.bst ). Call it myapa.bst or something appropriate, and save it in your local texmf folder: <path to local texmf>/bibtex/bst.

Edit the function {format.names}

Change line 250

 { " and " * t * }

to

 { " \& " * t * }

Edit the function {format.lab.names}

Change line 876

{ " and " * s #2 "{vv~}{ll}" format.name$ * }

to

{ " \& " * s #2 "{vv~}{ll}" format.name$ * }

Now use \bibliographystyle{myapa} in your document.

The current version of the APA style uses "&" in the bibliography, but not in the citations, I think. So if you really need to conform, you should change only the format.names function, not the format.lab.names.

Alternatively, switch to using biblatex-apa, and redefine the \finalnamedelim macro:

\documentclass{article}
\usepackage[american]{babel}
\usepackage{csquotes}
\usepackage[style=apa]{biblatex}
\DeclareLanguageMapping{american}{american-apa}
\addbibresource{<your-bib-file>}
\newcommand*{\finalnamedelim}{%
   \ifnumgreater{\value{liststop}}{2}{\finalandcomma}{}%
   \addspace\&\space}
\begin{document}

...

\printbibliography

\end{document}

The redefinition of \finalnamedelim is not required if you don't change in-text citation "and"; the bibliography entries will automatically use "&".

share|improve this answer
    
It would be better to say: renewcommand*{\finalnamedelim}{\addthinspace\&\addthinspace}. This works only for the last name. To influence the other names you nee \multinamedelim. –  Marco Daniel Sep 15 '11 at 12:50
    
@Marco Thanks, I'll fix that. There shouldn't be any need to change \multinamedelim, which is usually a punctuation mark rather than 'and'. –  Alan Munn Sep 15 '11 at 12:59
    
You are right. \multinamedelim is normally a comma. –  Marco Daniel Sep 15 '11 at 13:08
    
I get the error Package biblatex Error: Style 'apa' not found. if I try the second method. Can I put the modified sty file somewhere locally in the first method? –  Grzenio Sep 15 '11 at 13:50
    
You need to install the biblatex-apa package, if it's not installed. For the first method, you can put the modified .bst file in the same directory as your .tex file and it should be found. (I assume that's what you mean by locally, since that's the only thing more local than your local texmf directory.) –  Alan Munn Sep 15 '11 at 14:49
add comment

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.