<div dir="ltr">Thanks a lot for this solution. It works just fine.<div><br></div><div>Best regards,</div><div>Pierre Boutry</div></div><div class="gmail_extra"><br><div class="gmail_quote">2015-02-27 4:07 GMT+01:00 Donald Arseneau <span dir="ltr"><<a href="mailto:asnd@triumf.ca" target="_blank">asnd@triumf.ca</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Tue, February 24, 2015 4:15 am, Pierre Boutry wrote:<br>
<br>
> when I do a citation using \cite{key} together with the documentclass and<br>
> Bibtex stylefile of the Association for Symbolic Logic together with the<br>
> package pstricks I get a weird output.<br>
<br>
</span>aka: [1, ]<br>
<br>
I was ready to swear that this was a manifestation of an old<br>
LaTeX version containing the bug latex/4092, viz<br>
<a href="http://www.latex-project.org/cgi-bin/ltxbugs2html?pr=latex/4092" target="_blank">http://www.latex-project.org/cgi-bin/ltxbugs2html?pr=latex/4092</a><br>
because the \cite defined by asl.cls contains font commands.<br>
<br>
But no.  In fact both asl and pstricks boldly (foolishly)<br>
redefine the internal general-purpose \@for loop for their<br>
own purposes, inserting some private hacks.  This prevents<br>
them working together.<br>
<br>
The \cite macros in asl.cls are quite tortuous.<br>
<br>
The redefinition in pstricks is done in the "generic" pstricks.tex,<br>
so it may be provided to use pstricks outside of LaTeX, but it also<br>
includes a strange initialization "\pst@cntm=0" that I see no use for.<br>
Does anybody know if this is used for anything?<br>
<br>
As an ugly solution to the problem, the definitions can be made with<br>
both sets of hacks.  Insert the following just before \begin{document}.<br>
<br>
Neither package should be redefining the \@for loop.<br>
<br>
<br>
\makeatletter<br>
\long\def\@for#1:=#2\do#3{%<br>
    \pst@cntm=0%                          %   !insertion for pstricks<br>
    \@soltrue%                            %   !insertion: \@sol inited.<br>
    \@eolfalse%                           %   !insertion: \@eol inited.<br>
    \expandafter\def\expandafter\@fortmp\expandafter{#2}%<br>
    \ifx\@fortmp\@empty \else<br>
        \expandafter\@forloop#2,\@nil,\@nil\@@#1{#3}\fi}<br>
\long\def\@forloop#1,#2,#3\@@#4#5{%<br>
    \@update@eol{#2,#3}%                  %  !insertion: \@eol updated.<br>
    \def#4{#1}%<br>
    \ifx #4\@nnil \else%<br>
        #5%<br>
        \@solfalse%                       %  !insertion: \@sol updated.<br>
        \@update@eol{#3}%                 %  !insertion: \@eol updated.<br>
        \def#4{#2}%<br>
        \ifx #4\@nnil \else%<br>
            #5%<br>
            \@iforloop #3\@@#4{#5}%<br>
        \fi%<br>
    \fi%<br>
}<br>
\long\def\@iforloop#1,#2\@@#3#4{%<br>
    \@update@eol{#2}%                     %  !insertion: \@eol updated.<br>
    \def#3{#1}%<br>
    \ifx #3\@nnil%<br>
        \expandafter\@fornoop%<br>
    \else%<br>
        #4\relax%<br>
        \expandafter\@iforloop%<br>
    \fi%<br>
    #2\@@#3{#4}%<br>
}<br>
\makeatother<br>
<br>
<br>
<br>
Donald Arseneau, TRIUMF CMMS, <a href="mailto:asnd@triumf.ca">asnd@triumf.ca</a><br>
<br>
</blockquote></div><br></div>