12.07.2015 Views

TEX pour l'Impatient - Apprendre en ligne.net

TEX pour l'Impatient - Apprendre en ligne.net

TEX pour l'Impatient - Apprendre en ligne.net

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

24 Sep 2004 2:48 p.m.<strong>TEX</strong> <strong>pour</strong> l’Impati<strong>en</strong>t N o 9674 Concepts \ §4Si une macro n’a que des paramètres non délimités, ces paramètresdoiv<strong>en</strong>t apparaître l’un après l’autre dans la définition de macro sansri<strong>en</strong> <strong>en</strong>tre eux ou <strong>en</strong>tre le dernier paramètre et l’accolade gauche au débutdu texte de remplacem<strong>en</strong>t. Un appel d’une telle macro consiste <strong>en</strong> le nomde la macro suivi par les argum<strong>en</strong>ts de l’appel, un <strong>pour</strong> chaque paramètre.Chaque argum<strong>en</strong>t est soit :un tok<strong>en</strong> simple autre qu’un accolade gauche ou droite ouune séqu<strong>en</strong>ce de tok<strong>en</strong>s <strong>en</strong>globé <strong>en</strong>tre une accolade gauche et uneaccolade droite correspondante 10 .Quand <strong>TEX</strong> r<strong>en</strong>contre une macro, il développe la macro dans son œsophage(voir “Anatomie de <strong>TEX</strong>”, p. 48) <strong>en</strong> substituant chaque argum<strong>en</strong>tpar le paramètre correspondant dans le texte de remplacem<strong>en</strong>t. Le texterésultant peut cont<strong>en</strong>ir d’autres appels de macro. Quand <strong>TEX</strong> r<strong>en</strong>contreun tel appel de macro imbriqué, il développe cet appel immédiatem<strong>en</strong>tsans regarder ce qui suit l’appel 11 . Quand l’œsophagede <strong>TEX</strong> tombesur une commande primitive qui ne peut être développée plus loin, <strong>TEX</strong>passe cette commande à l’estomac de <strong>TEX</strong>. L’ordre de développem<strong>en</strong>t estparfois critique, donc de façon à vous aider à le compr<strong>en</strong>dre, nous vousdonnons un exemple de <strong>TEX</strong> au travail.Supposez que vous procurez à <strong>TEX</strong> l’<strong>en</strong>trée suivante :\def\a#1#2{\b#2#1\kern 2pt #1}\def\b{bb}\def\c{\char49 cc}\def\d{dd}\a\c{e\d} % Call on \a.Alors l’argum<strong>en</strong>t correspondant à #1 est \c, et l’argum<strong>en</strong>t correspondantà #2 est e\d. <strong>TEX</strong> développe l’appel de macro d’après les étapes suivantes :\b e\d\c\kern 2pt \cbbe\d\c\kern 2pt \c\d\c\kern 2pt \c (‘b’, ‘b’, ‘e’ <strong>en</strong>voyés vers l’estomac)dd\c\kern 2pt \c\c\kern 2pt \c (‘d’, ‘d’ <strong>en</strong>voyés vers l’estomac)\char49 cc\kern 2pt \c\c (‘\char’, ‘4’, ‘9’, ‘c’, ‘c’, ‘\kern’, ‘2’, ‘p’, ‘t’ <strong>en</strong>voyés vers l’estomac)\char49 cc(‘\char49’, ‘c’, ‘c’ <strong>en</strong>voyés vers l’estomac)Notez que les lettres ‘b’, ‘c’, ‘d’ et ‘e’ et les séqu<strong>en</strong>ces de contrôle ‘\kern’et ‘\char’ sont toutes des commandes primitives qui ne peuv<strong>en</strong>t êtredéveloppées.10 L’argum<strong>en</strong>t peut avoir des paires d’accolades <strong>en</strong>globantes et chacune de ces pairespeut désigner soit un groupe soit un autre argum<strong>en</strong>t de macro.11 En terminologie informatique, le développem<strong>en</strong>t est “profondeur d’abord” plutôtque “largeur d’abord”. Notez que vous pouvez modifier l’ordre du développem<strong>en</strong>tavec des commandes telles que \expandafter.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!