Re: Re : [Syracuse-dev] Re : [Syracuse] Mise au point d'une macro : plus compliqué, encore des erreurs

Auteur: Arnaud Schmittbuhl <aschmittbuhl_chez_libertysurf.fr>
Date: dim nov 11 2007 - 10:49:29 CET

Le Sun, 11 Nov 2007 04:22:04 -0500,
mluque5130@aol.com a écrit :

> Beaucoup d'erreurs introduites par ma faute, ça devrait mieux marcher
> maintenant, même si je pense que postscript n'y aurait rien vu dans
> la version précédente :

J'avais laissé de côté le pb des espaces parasites (spurious spaces).
Il faut placer chirurgicalement quelques % (10 au total) pour les
éviter.

\makeatletter
\def\deffunctionR{\@ifnextchar[{\deffunctionR@i}{\deffunctionR@i[]}}
\def\deffunctionR@i[#1]#2(#3)#4#5#6{\bgroup
\pst@killglue
\psset{#1}
\def\arg@i{#2\space}%<--- 1
 \def\arg@iii{#4\space}\def\Arg@iii{#4}%<--- 2
 \def\arg@iv{#5\space}\def\Arg@iv{#5}%<--- 3
 \def\arg@v{#6\space}\def\Arg@v{#6}%<--- 4
 \deffunctionR@ii#3\end\egroup}
\def\deffunctionR@ii#1#2\end{\bgroup
 \def\arg@ii@i{#1\space}% <--- 5
 \ifx\relax#2\relax
 \pstVerb{/\arg@i { /\arg@ii@i exch def
 \ifPst@algebraic
 (\Arg@iii) tx@AlgToPs begin AlgToPs end cvx
 \ifx\Arg@iv\@empty
 \else
 (\Arg@iv) tx@AlgToPs begin AlgToPs end cvx
 \fi
 \ifx\Arg@v\@empty
 \else
 (\Arg@v) tx@AlgToPs begin AlgToPs end cvx
 \fi
 \else
 \arg@iii\arg@iv\arg@v
 \fi } def}% <--- 6
 \else
 \deffunctionR@iii#2\end
 \fi\egroup}
\def\deffunctionR@iii#1#2\end{\bgroup
 \def\arg@ii@ii{#1\space}% <--- 7
 \def\arg@ii@iii{#2\space}% <--- 8
 \ifx\relax#2\relax
 \pstVerb{/\arg@i {
 /\arg@ii@i exch def /\arg@ii@ii exch def
 \ifPst@algebraic
 (\Arg@iii) tx@AlgToPs begin AlgToPs end cvx
 \ifx\Arg@iv\@empty
 \else
 (\Arg@iv) tx@AlgToPs begin AlgToPs end cvx
 \fi
 \ifx\Arg@v\@empty
 \else
 (\Arg@v) tx@AlgToPs begin AlgToPs end cvx
 \fi
 \else
 \arg@iii\arg@iv\arg@v
 \fi } def}% <--- 9
 \else
 \pstVerb{/\arg@i {
 /\arg@ii@i exch def /\arg@ii@ii exch def /\arg@ii@iii exch def
 \ifPst@algebraic
 (\Arg@iii) tx@AlgToPs begin AlgToPs end cvx
 \ifx\Arg@iv\@empty
 \else
 (\Arg@iv) tx@AlgToPs begin AlgToPs end cvx
 \fi
 \ifx\Arg@v\@empty
 \else
 (\Arg@v) tx@AlgToPs begin AlgToPs end cvx
 \fi
 \else
 \arg@iii\arg@iv\arg@v
 \fi } def}% <--- 10
 \fi\egroup}
\makeatother

-- 
Arnaud Schmittbuhl

_______________________________________________
Liste de diffusion Syracuse
Syracuse@melusine.eu.org
http://melusine.eu.org/cgi-bin/mailman/listinfo/syracuse
Adresse alternative du site :
http://syracuse.eu.org/syracuse/
Received on Sun Nov 11 10:49:32 2007

Cette archive a été créée par hypermail 2.1.8 : dim nov 11 2007 - 13:37:03 CET