Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
2_programmation:macros:que_sont_les_macros [2018/12/04 00:30]
jejust
2_programmation:macros:que_sont_les_macros [2021/04/27 13:52] (Version actuelle)
yannick.tanguy Traduction de l'article anglais, mise à jour et ajout de liens.
Ligne 1: Ligne 1:
-====== ​What are (TeX) macros ​======+====== ​Comment définir des commandes? ​======
  
 +<​latex>​\TeX</​latex>​ est un //​processeur de macros// : il compose le texte au fur et à mesure en développant chaque commande (ou macro) qu'il trouve. Les commandes <​latex>​\TeX</​latex>​ peuvent inclure des instructions à <​latex>​\TeX</​latex>​ lui-même, en plus de la simple génération de texte à laquelle on peut s'​attendre.
  
-TeX is a //macro processor//: this is a computer-science-y term +Les commandes sont //une bonne chose// car elles permettent à l'​utilisateur de manipuler des documents en fonction du contexte. Par exemplela commande ''​\emph{//texte//}''​ de <​latex>​\LaTeX</​latex>​ produit un texte en italiqueMais si elle est utilisée dans un texte déjà en italique, elle produit un texte en romain (dans les deux cas, cela fait met en valeur le texte que la commande encadre). Mieux, vous pouvez changer le comportement de cette commande en changeant sa définition,​ par exemple faire en sorte qu'elle produise un texte en grasun texte en couleur ou un texte soulignéEt ce comportement sera alors appliqué à tout votre document ! 
-meaning "text expander"​ (more or less); TeX typesets text as it +
-goes alongbut //expands// each macro it finds TeX's macros +
-may include instructions to TeX itselfon top of the simple text +
-generation one might expect.+
  
-Macros are a //good thing//, since they allow the user to +===== Le format des commandes =====
-manipulate documents according to context. ​ For example, the macro +
-''​\TeX''​ is usually defined to produce "​TEX"​ with the "​E"​ lowered +
-(the original idea was Knuth'​s),​ +
-but in these FAQs the default definition of the macro is +
-overridden, and it simply expands to the letters "​TeX"​. ​ (//You// +
-may not think this a good thing, but the author of the macros has his +
-reasons -- see [[FAQ-logos|TeX-related logos]].)+
  
-Macro names are conventionally built from a ''​\''​ +Les noms de commande débutent traditionnellement par un ''​\'' ​suivi d'une séquence de lettres, qui peuvent être majuscules ou minuscules. Ils peuvent également être « n'importe quel caractère unique », ce qui permet toutes sortes de bizarreries (intégrées à la plupart des ensembles de commandes <​latex>​\TeX</​latex>​tel ''​''​ (''​\'' ​suivi d'une espace) signifiant « insérer une espace ici »). 
-followed by a sequence of letters, which may be upper or lower case +
-(as in ''​\TeX''​mentioned above). ​ They may also be  +
-''​<any single character>​''​, which allows all +
-sorts of oddities ​(many built in to most TeX macro sets, all the +
-way up from the apparently simple ​''​\ '' ​meaning "​insert a space +
-here").+
  
-Macro programming can be a complicated business, but at their very +===== Les commandes de définition ===== 
-simplest they need little introduction --- you'll hardly need to be + 
-told that:+La programmation de commandes peut être parfois compliquée mais, réduite à sa plus simple expression, elle est assez intuitive ​
  
 <code latex> <code latex>
-\def\foo{bar}+\def\truc{élément d'​intérêt majeur}
 </​code>​ </​code>​
-replaces each instance of ''​\foo'' ​with the text "​bar"​ The + 
-command ​''​\def'' ​is Plain TeX syntax for defining commands; +Cette instruction remplace chaque commande ​''​\truc'' ​par le texte « élément d'​intérêt majeur »La commande ​''​\def'' ​est, de fait, la syntaxe ​Plain <​latex>​\TeX</​latex>​ pour définir les commandes. Pour sa part, <​latex>​\LaTeX</​latex>​ propose une commande ​''​\newcommand'' ​qui permet de prendre un peu plus de précaution pour l'​utilisateur mais qui fait fondamentalement la même chose 
-LaTeX offers a macro ''​\newcommand'' ​that goes some way towards +
-protecting users from themselves, but basically does the same thing:+
  
 <code latex> <code latex>
-\newcommand{\foo}{bar}+\newcommand{\truc}{élément d'​intérêt majeur}
 </​code>​ </​code>​
-Macros may have "​arguments"​ , which are used to substitute for marked 
-bits of the macro expansion: 
  
 +===== Les commandes avec des arguments =====
 +
 +Les commandes peuvent avoir des //​arguments//​. Représentés par la notation ''#''​ suivi d'un chiffre dans les commandes de définitions,​ ces derniers vont s'​insérer aux emplacements indiqués lors du développement de la commande : 
 +
 +<WRAP column 45ex>
 <code latex> <code latex>
-\def\foo#1{This is a #1 bar+\def\truc#1{élément vraiment ​#1} 
-... +Un \truc{exceptionnel}.
-\foo{2/4}.+
 </​code>​ </​code>​
-which produces: +</WRAP>
-  This is a 2/4 bar. +
-or, in LaTeX speak:+
  
 +<WRAP column 45ex>
 +<​latex>​
 +\def\truc#​1{élément vraiment #1}
 +Un \truc{exceptionnel}.
 +</​latex>​
 +</​WRAP>​
 +<WRAP clear />
 +
 +En <​latex>​\LaTeX</​latex>,​ cette définition serait écrite de la manière suivante : 
 +
 +<WRAP column 45ex>
 <code latex> <code latex>
-\newcommand{\foo}[1]{This is a #1 bar+\newcommand{\truc}[1]{élément vraiment ​#1} 
-... +Un \truc{génial}.
-\foo{3/4}.+
 </​code>​ </​code>​
-which produces: +</WRAP>
-  This is 3/4 bar. +
-(LaTeX users waltz through life, perhaps?)+
  
-You will have noticed that the arguments, above, were enclosed in +<WRAP column 45ex> 
-braces (''​{''​...''​}''​);​ this is the +<​latex>​ 
-normal way of typing arguments, though TeX is enormously flexible, +\newcommand{\truc}[1]{élément vraiment #1
-and you may find all sorts of other ways of passing arguments (if you +Un \truc{génial}. 
-stick with it).+</​latex>​ 
 +</​WRAP>​ 
 +<WRAP clear />
  
-Macro writing can get very complicated,​ very quickly. ​ If you are a +Vous aurez remarqué que les arguments ci-dessus étaient entre accolades « ''​{''​ ... ''​}''​ ». Il s'agit là de la manière normale de taper des argumentsbien que <​latex>​\TeX</​latex>​ soit extrêmement flexible, et vous pouvez trouver toutes sortes d'​autres façons de passer des arguments (si nécessaire).
-beginner (La)TeX programmer, you are well advised to read something +
-along the lines of the [[FAQ-tex-books|TeXbook]];​ once you're under +
-way[[FAQ-ol-books|TeX by Topic]] is possibly a more satisfactory +
-choice. ​ Rather a lot of the answers in these FAQs tell you +
-about various issues of how to write macros.+
  
 +===== Apprendre à faire des commandes =====
 +
 +L'​écriture de commandes peut devenir rapidement très compliquée. Si vous êtes un programmeur débutant en <​latex>​\TeX</​latex>​ ou <​latex>​\LaTeX</​latex>,​ il est conseillé d'​observer des exemples de code de commande ou de lire des manuels pratiques (sur [[1_generalites:​documentation:​documents:​documents_sur_tex|TeX]] ou sur [[1_generalites:​documentation:​documents:​documents_sur_latex2e|LaTeX]]). Ceci dit, plus vous voudrez modifier le comportement de base de <​latex>​\TeX</​latex>,​ plus vous devrez analyser des sources avancées comme le [[1_generalites:​documentation:​livres:​documents_sur_tex|TeXbook]].
  
 ----- -----
- +//Source :// [[faquk>​FAQ-whatmacros|What are (TeX) macros]]
-//Source:// [[faquk>​FAQ-whatmacros|What are (TeX) macros]]+
  
 {{htmlmetatags>​metatag-keywords=(LaTeX,​concepts) {{htmlmetatags>​metatag-keywords=(LaTeX,​concepts)
-metatag-og:​title=(What are (TeX) macros)+metatag-og:​title=(Comment définir des commandes)
 metatag-og:​site_name=(FAQ LaTeX francophone) metatag-og:​site_name=(FAQ LaTeX francophone)
 }} }}
- 
2_programmation/macros/que_sont_les_macros.1543879838.txt.gz · Dernière modification: 2018/12/04 00:30 par jejust
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0