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 263Macros 241d’une définition de macro parce qu’elle vous donne un moy<strong>en</strong> de regarderau-delà du tok<strong>en</strong> que <strong>TEX</strong> est <strong>en</strong> train d’exécuter avant de continuer.Exemple :\def\predict#1{\toks0={#1}\futurelet\next\printer}% \next will acquire the punctuation mark after the% argum<strong>en</strong>t to \predict\def\printer#1{A \punc\ lies ahead for \the\toks0. }\def\punc{%\ifx\next;semicolon\else\ifx\next,comma\else‘‘\next’’\fi\fi}\predict{March}; \predict{April}, \predict{July}/produit :A semicolon lies ahead for March. A comma lies ahead for April. A“/” lies ahead for July.\csname 〈liste de tok<strong>en</strong>〉 \<strong>en</strong>dcsnameCette commande produit une séqu<strong>en</strong>ce de contrôle à partir de 〈liste detok<strong>en</strong>〉. Elle procure un moy<strong>en</strong> de synthétiser des séqu<strong>en</strong>ces de contrôle,<strong>en</strong> incluant celles que vous ne pouvez normalem<strong>en</strong>t pas écrire. 〈listede tok<strong>en</strong>〉 peut elle-même inclure des séqu<strong>en</strong>ces de contrôle : elle estdéveloppable de la même manière que le texte de remplacem<strong>en</strong>t d’unedéfinition \edef (p. 238). Si le développem<strong>en</strong>t final produit quelque chosequi n’est pas un caractère, <strong>TEX</strong> se plaindra. \csname transforme uneliste de tok<strong>en</strong>s <strong>en</strong> séqu<strong>en</strong>ce de contrôle ; vous pouvez faire l’inverse avec\string (p. 234).Exemple :\def\capTe{Te}This book purports to be about \csname\capTe X\<strong>en</strong>dcsname.produit :This book purports to be about <strong>TEX</strong>.Contrôler le développem<strong>en</strong>t\expandafter 〈tok<strong>en</strong> 1 〉 〈tok<strong>en</strong> 2 〉Cette commande dit à <strong>TEX</strong> de développer 〈tok<strong>en</strong> 1 〉 <strong>en</strong> accord avec sesrègles de développem<strong>en</strong>t de macro après avoir développé 〈tok<strong>en</strong> 2 〉 d’unniveau. C’est pratique quand 〈tok<strong>en</strong> 1 〉 est quelque chose comme ‘{’ ou\string qui inhibe les expansions de 〈tok<strong>en</strong> 2 〉, mais que vous voulezdévelopper 〈tok<strong>en</strong> 2 〉 quand même.

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

Saved successfully!

Ooh no, something went wrong!