Le Sat, 10 Nov 2007 15:24:02 -0500,
mluque5130@aol.com a écrit :
> Toujours dans le même esprit que la précédente, mais en plus
> compliqué ! Il s'agit d'introduire une option et des arguments
> supplémentaires : j'avoue que je tourne en rond sans succès :-(
J'ai laissé tombé la partie dictionnaire pour y voir plus clair.
Voilà ce que ça donne, façon rustique !
\documentclass{minimal}
%% Cahier des charges
% \deffunctionR{f}(uvw){1}{2}{3}
% /f{ /w exch def /v exch def /u exch def 1 2 3 } def
% \deffunctionR{f}(uv){1}{2}{3}
% /f{ /v exch def /u exch def 1 2 3 } def
% \deffunctionR{f}(u){1}{2}{3}
% /f{ /u exch def 1 2 3 } def
\usepackage{pstricks-add}
\makeatletter
\def\deffunctionR{\@ifnextchar[{\deffunctionR@i}{\deffunctionR@i[]}}
\def\deffunctionR@i[#1]#2(#3)#4#5#6{%
\pst@killglue
\psset{#1}
\def\arg@i{#2\space}
\def\arg@iii{#4\space}
\def\arg@iv{#5\space}
\def\arg@v{#6\space}
\deffunctionR@ii#3\end}
\def\deffunctionR@ii#1#2\end{
\def\arg@ii@i{#1\space}
\ifx\relax#2\relax
\pstVerb{/\arg@i { /\arg@ii@i exch def \arg@iii\arg@iv\arg@v } def}
\else
\deffunctionR@iii#2\end
\fi}
\def\deffunctionR@iii#1#2\end{
\def\arg@ii@ii{#1\space}
\def\arg@ii@iii{#2\space}
\ifx\relax#2\relax
\pstVerb{/\arg@i {
/\arg@ii@i exch def /\arg@ii@ii exch def \arg@iii\arg@iv\arg@v
} def}
\else
\pstVerb{/\arg@i {
/\arg@ii@i exch def /\arg@ii@ii exch def /\arg@ii@iii exch def
\arg@iii\arg@iv\arg@v
} def}
\fi}
\makeatother
\begin{document}
Test
\deffunctionR{f}(uvw){1}{2}{3}
\deffunctionR{f}(uv){1}{2}{3}
\deffunctionR{f}(u){1}{2}{3}
\end{document}
-- 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 Sat Nov 10 23:27:56 2007
Cette archive a été créée par hypermail 2.1.8 : dim nov 11 2007 - 10:37:04 CET