[XeTeX] Problem with apacite and fontspec
Erik Meijer
apacite at gmail.com
Fri Oct 3 05:54:52 CEST 2008
Diederick, Ross,
Thanks for pointing this out and solving it. The next release of
apacite will include this improvement and a few other bug fixes.
I hope I'll be able to upload it soon.
Note that (as indicated in the latest release of apacite) my current
email address is apacite at gmail.com
Thanks,
Erik
Ross Moore wrote:
> Hi Diedrick,
>
> On 03/10/2008, at 2:09 AM, Diederick C. Niehorster wrote:
>
>> Dear Xetex Users,
>>
>>
>>
>> I’ve just discovered XeteX and got very excited by it. So I decided
>> to practice and convert a work in progress from plain LateX to XeteX
>> (well, just add some fontspec stuff to select a different (OpenType)
>> font). I ran into the following problem:
>>
>> When both the packages apacite and fontspec are loaded and I cite
>> more than one paper by the same authors from the same year, I get an
>> error message during compilation.
>>
>> If I don’t load either apacite (just use plainnat.bst with natbib) or
>> fontspec, this error does not occur.
>>
>> The error message occurring is:
>>
>> ------
>>
>> ! Undefined control sequence.
>>
>> \@calc at post@scan ...fi \fi \fi \fi \fi \calc at next
>>
>>
>>
>> l.16 ...e item works fine: \citet{Wertheimer1967a}
>>
>
> I've tested your example and found that the incompatibility
> is triggered by the use of the calc.sty package,
> which is loaded by fontspec.sty .
>
>
> More specifically, calc.sty changes the way \setcounter works.
> The programming in apacite.sty does not take this into account.
> The problem occurs when using \citet and other \cite command variants
> defined by natbib.sty , since these require significant extra parsing
> beyond what LaTeX would do without natbib .
>
>
> Here's a simple fix that seems to work:
>
>
> \usepackage[tocbib]{apacite}
> %% ---- RRM 2008/10/03
> %% for compatibility with calc.sty
> %% we need an extra \protect as below before \setcounter
> %%
> \renewcommand{\BCnt}[1]{\protect\setcounter{BibCnt}{#1}\protect \theBibCnt}
> \renewcommand{\BCntIP}[1]{\protect\setcounter{BibCnt}{#1}\mbox{-
> \protect\theBibCnt}}
> \renewcommand{\BCntND}[1]{\protect\setcounter{BibCnt}{#1}\mbox{-
> \protect\theBibCnt}}
>
> \usepackage[sort]{natbib}
> %\usepackage{calc}
> \usepackage{fontspec} % provides font selecting commands
> ...
>
>
> This avoids \setcounter being expanded too early, at a place
> where it isn't actually being used.
> All still works correctly at the place where it *is* required.
>
>
>
> An alternative solution, and perhaps a better one, would be
> to have made the commands \BCnt \BCntIP \BCntND robust
> in the first place; e.g. apacite.sty should use
>
> \DeclareRobustCommand{\BCnt}[1]{\setcounter{BibCnt}{#1}\theBibCnt}
> \DeclareRobustCommand{\BCntIP}[1]{\setcounter{BibCnt}{#1}\mbox{-
> \theBibCnt}}
> \DeclareRobustCommand{\BCntND}[1]{\setcounter{BibCnt}{#1}\mbox{-
> \theBibCnt}}
>
>
> You can patch this solution cleanly into existing documents,
> as follows:
>
>
> \usepackage[tocbib]{apacite}
> \DeclareRobustCommand{\robustBCnt}[1]{\setcounter{BibCnt}{#1}\theBibCnt}
> \DeclareRobustCommand{\robustBCntIP}[1]{\setcounter{BibCnt}{#1}\mbox{-
> \theBibCnt}}
> \DeclareRobustCommand{\robustBCntND}[1]{\setcounter{BibCnt}{#1}\mbox{-
> \theBibCnt}}
> \let\BCnt\robustBCnt
> \let\BCntIP\robustBCntIP
> \let\BCntND\robustBCntND
>
> \usepackage[sort]{natbib}
> %\usepackage{calc}
> \usepackage{fontspec} % provides font selecting commands
> ...
>
>
> Furthermore, if a future version of apacite.sty makes its own fix,
> as suggested above, then documents with this modification should continue
> to work properly. However, a danger is if \BCnt \BCntIP \BCntND
> are changed in a *different way*, to solve this or any other problem.
>
>
> This analysis is based on:
>
> \ProvidesPackage{apacite}
> [2007/09/03 v4.00 APA citation]
>
> which is the latest version available at CTAN.
>
>
>
>
>> ------
>>
>>
>>
>> This error is not specific to the two papers I cite in the example,
>> it occurs with others also.
>>
>> Any ideas on how to fix this or is this a bug incompatibility in one
>> of the packages that has to be fixed?
>>
>
>
> Hope this helps,
>
> Ross
>
>>
>>
>> Thanks,
>>
>> Diederick
>>
>
> ------------------------------------------------------------------------
> Ross Moore ross at maths.mq.edu.au
> Mathematics Department office: E7A-419
> Macquarie University tel: +61 (0)2 9850 8955
> Sydney, Australia 2109 fax: +61 (0)2 9850 8114
> ------------------------------------------------------------------------
>
>
>
>
More information about the XeTeX
mailing list