[texhax] Weird citations when using the documentclass and Bibtex stylefile of the Association for Symbolic Logic

Pierre Boutry boutry.pierre at gmail.com
Fri Feb 27 10:52:50 CET 2015


Thanks a lot for this solution. It works just fine.

Best regards,
Pierre Boutry

2015-02-27 4:07 GMT+01:00 Donald Arseneau <asnd at triumf.ca>:

> On Tue, February 24, 2015 4:15 am, Pierre Boutry wrote:
>
> > when I do a citation using \cite{key} together with the documentclass and
> > Bibtex stylefile of the Association for Symbolic Logic together with the
> > package pstricks I get a weird output.
>
> aka: [1, ]
>
> I was ready to swear that this was a manifestation of an old
> LaTeX version containing the bug latex/4092, viz
> http://www.latex-project.org/cgi-bin/ltxbugs2html?pr=latex/4092
> because the \cite defined by asl.cls contains font commands.
>
> But no.  In fact both asl and pstricks boldly (foolishly)
> redefine the internal general-purpose \@for loop for their
> own purposes, inserting some private hacks.  This prevents
> them working together.
>
> The \cite macros in asl.cls are quite tortuous.
>
> The redefinition in pstricks is done in the "generic" pstricks.tex,
> so it may be provided to use pstricks outside of LaTeX, but it also
> includes a strange initialization "\pst at cntm=0" that I see no use for.
> Does anybody know if this is used for anything?
>
> As an ugly solution to the problem, the definitions can be made with
> both sets of hacks.  Insert the following just before \begin{document}.
>
> Neither package should be redefining the \@for loop.
>
>
> \makeatletter
> \long\def\@for#1:=#2\do#3{%
>     \pst at cntm=0%                          %   !insertion for pstricks
>     \@soltrue%                            %   !insertion: \@sol inited.
>     \@eolfalse%                           %   !insertion: \@eol inited.
>     \expandafter\def\expandafter\@fortmp\expandafter{#2}%
>     \ifx\@fortmp\@empty \else
>         \expandafter\@forloop#2,\@nil,\@nil\@@#1{#3}\fi}
> \long\def\@forloop#1,#2,#3\@@#4#5{%
>     \@update at eol{#2,#3}%                  %  !insertion: \@eol updated.
>     \def#4{#1}%
>     \ifx #4\@nnil \else%
>         #5%
>         \@solfalse%                       %  !insertion: \@sol updated.
>         \@update at eol{#3}%                 %  !insertion: \@eol updated.
>         \def#4{#2}%
>         \ifx #4\@nnil \else%
>             #5%
>             \@iforloop #3\@@#4{#5}%
>         \fi%
>     \fi%
> }
> \long\def\@iforloop#1,#2\@@#3#4{%
>     \@update at eol{#2}%                     %  !insertion: \@eol updated.
>     \def#3{#1}%
>     \ifx #3\@nnil%
>         \expandafter\@fornoop%
>     \else%
>         #4\relax%
>         \expandafter\@iforloop%
>     \fi%
>     #2\@@#3{#4}%
> }
> \makeatother
>
>
>
> Donald Arseneau, TRIUMF CMMS, asnd at triumf.ca
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://tug.org/pipermail/texhax/attachments/20150227/d000b948/attachment.html>


More information about the texhax mailing list