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.

A new version of the apacite package was introduced on 2012-Feb-14, with three added options to select different citation commands: apaciteclassic, natbibapa, and nocitation. I installed the package on MiKTeX 2.9 and tried to use it. The apaciteclassic option works without any issues. However, when I try natbibapa I get this error (I paste part of the log):

("C:\Program Files (x86)\MiKTeX 2.9\tex\latex\natbib\natbib.sty"
Package: natbib 2010/09/13 8.31b (PWD, AO)
\bibhang=\skip48
\bibsep=\skip49
LaTeX Info: Redefining \cite on input line 694.
\c@NAT@ctr=\count89
)
LaTeX Info: Redefining \BBA on input line 3.
! Undefined control sequence.
\apacite.sty-h@@k ...elist {\orig@mb@citenamelist 
                                                  ,citeauthort,citeauthorp,c...
l.3
?
! Emergency stop.
\apacite.sty-h@@k ...elist {\orig@mb@citenamelist 
 ,citeauthort,citeauthorp,c...
l.3 
End of file on the terminal!

Here is a minimal working example (that produces the error):

\documentclass[12pt]{report}
\usepackage[natbibapa]{apacite}

\begin{document}

Lorem ipsum dolor sit amet. \citet{shermis1999comparison} consectetur adipiscing elit.

\bibliographystyle{apacite}
\bibliography{myrefs}
\end{document}

And here is the bib entry:

@ARTICLE{shermis1999comparison,
author = {Shermis, M.D. and Lombard, D.},
title = {A comparison of survey data collected by regular mail and electronic   mail questionnaires},
 journal = {Journal of Business and Psychology},
year = {1999},
volume = {14},
pages = {341--354},
number = {2},
publisher = {Springer}
}  

Can someone install the new package and see whether he/she gets the same error while utilizing the natbibapa option? Is there something I am doing wrong?

I appreciate any help.

share|improve this question

1 Answer 1

It's quite unclear what apacite.sty does on lines 1966-1994.

It defines a command \@mb@citenamelist under the assumption that the classic option has been specified; for the natbibapa option it says

\if@APAC@natbib@apa
\AtEndOfPackage{%
\let\orig@mb@citenamelist\@mb@citenamelist
\edef\@mb@citenamelist{%
  \orig@mb@citenamelist,%
  citeauthort,citeauthorp,citefullauthort,citefullauthorp,Citeauthort,%
  <...other strings...>
}
}
\fi

but \@mb@citenamelist is not defined, so the whole thing fails. One conjecture is that the option natbibapa should augment the list, so saying

\makeatletter
\def\@mb@citenamelist{%
  cite,fullcite,shortcite,citeNP,fullciteNP,shortciteNP,%
  citeA,fullciteA,shortciteA,citeauthor,fullciteauthor,shortciteauthor,%
  citeauthorNP,fullciteauthorNP,shortciteauthorNP,%
  citeyear,citeyearNP,nocite,nocitemeta,%
  maskcite,maskfullcite,maskshortcite,maskciteNP,maskfullciteNP,%
  maskshortciteNP,maskciteA,maskfullciteA,maskshortciteA,%
  maskciteauthor,maskfullciteauthor,maskshortciteauthor,%
  maskciteauthorNP,maskfullciteauthorNP,maskshortciteauthorNP,%
  maskciteauthorA,maskfullciteauthorA,maskshortciteauthorA,%
  maskciteyear,maskciteyearNP,masknocite%
}
\makeatother

before loading apacite.sty would cure the problem.

A second possibility is that the list provided for the natbibapa option is exhaustive and in this case adding

\makeatletter\def\@mb@citenamelist{}\makeatother

before loading apacite would be the provisional solution.

Of course this is something that should be brought to attention to the developers of apacite.

share|improve this answer
3  
Another succesful microsurgery. –  percusse Feb 19 '12 at 20:39
    
It works. Thank you very much, I appreciate it! –  Bonnie Feb 19 '12 at 20:49
    
@Bonnie You should accept the answer if it worked for you. –  mc10 Nov 24 '12 at 21:10

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.