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 261Macros 239Les commandes \write, \message, \errmessage, \wlog et \csnamedévelopp<strong>en</strong>t leurs listes de tok<strong>en</strong> <strong>en</strong> utilisant les même règles que \edefutilise <strong>pour</strong> développer son texte de remplacem<strong>en</strong>t.Exemple :\def\aa{xy} \count255 = 1\edef\bb{w\ifnum \count255 > 0\aa\fi z}% equival<strong>en</strong>t to \def\bb{wxyz}\def\aa{} \count255 = 0 % leaves \bb unaffected\bbproduit :wxyz\gdef 〈séqu<strong>en</strong>ce de contrôle〉 〈texte de paramètre〉 { 〈texte de remplacem<strong>en</strong>t〉}Cette commande est équival<strong>en</strong>te à \global\def.\xdef 〈séqu<strong>en</strong>ce de contrôle〉 〈texte de paramètre〉 { 〈texte de remplacem<strong>en</strong>t〉}Cette commande est équival<strong>en</strong>te à \global\edef.\longCette commande est utilisée comme préfixe d’une définition de macro.Elle dit à <strong>TEX</strong> que les argum<strong>en</strong>ts de la macro peuv<strong>en</strong>t inclure des tok<strong>en</strong>s\par (p. 116), qui indiqu<strong>en</strong>t normalem<strong>en</strong>t la fin d’un paragraphe. Si <strong>TEX</strong>essaye de développer une macro définie sans \long et qu’un des argum<strong>en</strong>tsde la macro compr<strong>en</strong>d un tok<strong>en</strong> \par, <strong>TEX</strong> se plaindra par un “runawayargum<strong>en</strong>t”. Le but de ce comportem<strong>en</strong>t est de vous fournir des protectionscontre des argum<strong>en</strong>ts de macro non terminés. \long vous donne un moy<strong>en</strong>d’outrepasser la protection.Exemple :\long\def\aa#1{\par\hrule\smallskip#1\par\smallskip\hrule}\aa{This is the first line.\parThis is the second line.}% without \long, TeX would complainproduit :This is the first line.This is the second line.\outerCette commande est utilisée comme préfixe d’une définition de macro.Elle dit à <strong>TEX</strong> que la macro est externe (p. 84) et ne peut pas être utilisée

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

Saved successfully!

Ooh no, something went wrong!