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 259Groupem<strong>en</strong>t 237\aftergroup 〈tok<strong>en</strong>〉Quand <strong>TEX</strong> r<strong>en</strong>contre cette commande dans une <strong>en</strong>trée, il sauve 〈tok<strong>en</strong>〉.Après la fin du groupe courant, il réinsère 〈tok<strong>en</strong>〉 dans l’<strong>en</strong>trée et ledéveloppe. Si un groupe conti<strong>en</strong>t plusieurs \aftergroups, les tok<strong>en</strong>s correspondantssont tous insérés suivant la fin du groupe, dans l’ordre danslequel ils apparaiss<strong>en</strong>t à l’origine.L’exemple qui suit vous montre comm<strong>en</strong>t vous pouvez utiliser \aftergroup<strong>pour</strong> différer le traitem<strong>en</strong>t d’un tok<strong>en</strong> que vous avez généré dansun test conditionnel.Exemple :\def\neg{negative} \def\pos{positive}% These definitions are needed because \aftergroup applies% to a single tok<strong>en</strong>, not to a sequ<strong>en</strong>ce of tok<strong>en</strong>s or ev<strong>en</strong>% to a brace-delimited text.\def\arith#1{Is $#1>0$? \begingroup\ifnum #1>-1 Yes\aftergroup\pos\else No\aftergroup\neg\fi, it’s \<strong>en</strong>dgroup. }\arith 2\arith {-1}produit :Is 2 > 0? Yes, it’s positive. Is −1 > 0? No, it’s negative.\afterassignm<strong>en</strong>t 〈tok<strong>en</strong>〉Quand <strong>TEX</strong> r<strong>en</strong>contre cette commande il sauve 〈tok<strong>en</strong>〉 dans un <strong>en</strong>droitspécial. Après qu’il ait exécuté l’assignm<strong>en</strong>t suivant, il insère 〈tok<strong>en</strong>〉dans l’<strong>en</strong>trée et le développe. Si vous appelez \afterassignm<strong>en</strong>t plusd’une fois avant un assignem<strong>en</strong>t, seul le dernier appel a un effet. Uneutilisation de \afterassignm<strong>en</strong>t est dans l’écriture de macros <strong>pour</strong> descommandes devant être écrites sous la forme d’assignem<strong>en</strong>ts, comme dansl’exemple suivant.Voir la page 279 de The <strong>TEX</strong>book et 325 de la traduction française <strong>pour</strong>un description précise du fonctionnem<strong>en</strong>t d’\afterassignm<strong>en</strong>t.Exemple :\def\setme{\afterassignm<strong>en</strong>t\setmeA\count255}\def\setmeA{$\number\count255\advance\count255 by 10+10=\number\count255$}Some arithmetic: \setme = 27% After expanding \setme, TeX sets \count255 to 27 and% th<strong>en</strong> calls \setmeA.produit :Some arithmetic: 27 + 10 = 37

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

Saved successfully!

Ooh no, something went wrong!