apa.cls style. It defaults to using apacite for citations and references, which works well enough.
But if I have a URL field in the BibTeX, like I always do in JabRef to remember where I found things, it prints it for each reference wasting a lot of space and not breaking lines properly. I also like the URLs I do show to be clickable hyperlinks, and my citations and cross-references as well. You can usually do this using hyperref, but a lot of things break when using apacite and hyperref together. Here's the top of the file:
\documentclass[jou]{apa}And here is the output of pdflatex:
\usepackage{hyperref}
! Undefined control sequence.Other people have had this problem before, but there aren't any great solutions. See the end for a good solution using biblatex-apa instead of apacite. If you insist on using apacite, there are instructions here for how to make things mostly work:
\hyper@@link ->\let \Hy@reserved@a
\relax \@ifnextchar [{\hyper@link@ }{\hyp...
l.83 \cite{Aris09Visual}
...
! Argument of \@@cite has an extra }.
\par
l.83 \cite{Aris09Visual}
...
Runaway argument?
>{\hyper@link@ }\def \reserved@b {\hyper@link@ [link]}\futurelet \@let@token \E
TC.
! Paragraph ended before \@@cite was complete.
\par
l.83 \cite{Aris09Visual}
The simplest way to fix the problem is to put a singlebut this breaks the citations. Later they added additional code to the tex file:
instance of\protect
intohyperref.sty
.
Turn this:\def\bibcite#1#2{%into this:
\@newl at bel{b}{#1\@extra at binfo}{%
\hyper@@link[cite]{}{cite.#1\@extra at b@citeb}{#2}%\def\bibcite#1#2{%This occurs at
\@newl at bel{b}{#1\@extra at binfo}{%
\protect\hyper@@link[cite]{}{cite.#1\@extra at b@citeb}{#2}%
line 3972 inhyperref.sty [2007/02/07 v6.75r
and at
line 4939 inhyperref.sty [2008/04/05 v6.77l
(line 8328 of the correspondinghyperref.dtx
).
It's really just a matter of executing APA's version ofThis fixes most problems, but there are still warnings and ampersands missing in the references.\bibcite
before doing the extra stuff that hyperref needs to create the hyper-linking (which seems to work just fine).
For example, the following coding seems to work OK.\usepackage{apacite}
\let\APAbibcite\bibcite %%%% add this line
\usepackage{color}
\definecolor{darkblue}{rgb}{0.0,0.0,0.3}
\usepackage[bookmarks=true]{hyperref}
\hypersetup{
pdfauthor={Salvatore Enrico Indiogine},
pdftitle={},
pdfsubject={TAMU EDCI},
pdfkeywords={},
pdfcreator={LaTeX with hyperref package},
pdfproducer={dvips + ps2pdf},
colorlinks,breaklinks,
linkcolor={darkblue},
urlcolor={darkblue},
anchorcolor={darkblue},
citecolor={darkblue}}
%%%% add the following 2 lines
\let\HYPERbibcite\bibcite
\def\bibcite#1#2{\APAbibcite{#1}{#2}\HYPERbibcite{#1}{#2}}
A better solution for me was to use biblatex-apa with biblatex instead of apacite.
First replace
\bibliography{...}
at the end of your tex file with \printbibliography
. Then modify the the top to look like this (note the noapacite
option for apa.cls). \documentclass[jou,noapacite]{apa} %%%% apacite is buggy with hyperref
\usepackage{color}
\usepackage[]{hyperref}
\hypersetup{
pdfauthor={AUTHORS},
pdftitle={TITLE},
pdfkeywords={KEYWORDS},
colorlinks,breaklinks,
linkcolor={blue},
urlcolor={blue},
anchorcolor={blue},
citecolor={blue}}
%%%% bilatex-apa
\usepackage[american]{babel}
\usepackage{csquotes}
\usepackage[style=apa,hyperref,doi,url]{biblatex}
\DeclareLanguageMapping{american}{american-apa}
\bibliography{}