TeX pour l’Impatient

Page 260

24 Sep 2004

2:48 p.m.

No 260

TEX pour l’Impatient

238

Commandes pour des op´erations g´en´erales

\

§9

Macros

D´efinir des macros

\def hs´equence de contrˆ olei htexte de param`etrei { htexte de remplacementi } Cette commande d´efinit hs´equence de contrˆ olei comme une macro avec les htexte de param`etrei et htexte de remplacementi sp´ecifi´es. Voir page 73 pour une explication compl`ete sur la fa¸con d’´ecrire une d´efinition de macro. Exemple : \def\add#1+#2=?{#1+#2&= \count255=#1 \advance\count255 by #2 \number\count255\cr} $$\eqalign{ \add 27+9=? \add -5+-8=?}$$ produit : 27 + 9 = 36 −5 + −8 = −13

\edef hs´equence de contrˆ olei htexte de param`etrei { htexte de remplacementi } Cette commande d´efinit une macro de la mˆeme mani`ere g´en´erale que \def. La diff´erence est que TEX d´eveloppe le htexte de remplacementi d’un \edef imm´ediatement (mais sans rien ex´ecuter). Ainsi toutes d´efinitions du htexte de remplacementi sont d´evelopp´ees, mais des assignements et commandes qui produisent des choses telles que boˆıtes et des ressorts sont laiss´es tels quels. Par exemple, une commande \hbox dans le htexte de remplacementi d’un \edef reste comme une commande et n’est pas transform´ee en une boˆıte quand TEX ex´ecute la d´efinition. Il n’est pas toujours ´evident de savoir ce qui est d´evelopp´e et ce qui ne l’est pas, mais vous trouverez une liste compl`ete des s´equences de contrˆole d´eveloppables sur les pages 212–215 de The TEXbook et 249–252 de la traduction fran¸caise. Vous pouvez inhiber le d´eveloppement d’une s´equence de contrˆole qui devrait ˆetre d´evelopp´ee en utilisant \noexpand (p. 242). Vous pouvez diff´erer le d´eveloppement d’une s´equence de contrˆole en utilisant la commande \expandafter (p. 241).


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.