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
Prochaine révision
Révision précédente
Dernière révision Les deux révisions suivantes
2_programmation:macros:que_sont_les_macros [2018/05/25 21:33]
joseph.wright
2_programmation:macros:que_sont_les_macros [2021/04/27 13:52]
yannick.tanguy Traduction de l'article anglais, mise à jour et ajout de liens.
Ligne 1: Ligne 1:
---- +====== Comment définir des commandes? ======
-category: concepts +
-permalink: /​FAQ-whatmacros +
-date: 2014-06-10 +
----+
  
-# What are (TeXmacros+<​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 exemple, la commande ​''​\emph{//​texte//​}'' de <​latex>​\LaTeX</​latex>​ produit un texte en italique. Mais si elle est utilisée dans un texte déjà en italique, elle produit un texte en romain ​(dans les deux cascela 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&​nbsp;&​ndash;​ see [TeX-related logos](/​FAQ-logos).)+
  
-Macro names are conventionally built from a `\\` +Les noms de commande débutent traditionnellement par un ''​\''​ suivi d'une séquence de lettresqui peuvent être majuscules ou minusculesIls 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 letterswhich 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 ​<code>\ </codemeaning ​''​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&​nbsp;&​mdash;​ you'll hardly need to be +
-told that: +
-```latex +
-\def\foo{bar} +
-``` +
-replaces each instance of `\foo` with the text ''​bar''​. ​ The +
-command `\def` is Plain TeX syntax for defining commands; +
-LaTeX offers a macro `\newcommand` that goes some way towards +
-protecting users from themselves, but basically does the same thing: +
-```latex +
-\newcommand{\foo}{bar} +
-``` +
-Macros may have ''​arguments''​ , which are used to substitute for marked +
-bits of the macro expansion:​ +
-```latex +
-\def\foo#​1{This is a #1 bar} +
-... +
-\foo{2/​4}. +
-``` +
-which produces: +
-  This is a 2/4 bar. +
-or, in LaTeX speak: +
-```latex +
-\newcommand{\foo}[1]{This is a #1 bar} +
-... +
-\foo{3/​4}. +
-``` +
-which produces: +
-  This is 3/4 bar. +
-(LaTeX users waltz through life, perhaps?)+
  
-You will have noticed that the argumentsabovewere enclosed in +La programmation de commandes peut être parfois compliquée maisréduite à sa plus simple expressionelle est assez intuitive : 
-braces (`{`&​hellip;​`}`);​ this is the +
-normal way of typing arguments, though TeX is enormously flexible, +
-and you may find all sorts of other ways of passing arguments (if you +
-stick with it).+
  
-Macro writing can get very complicated,​ very quickly. ​ If you are a +<code latex> 
-beginner (La)TeX programmer, you are well advised to read something +\def\truc{élément d'intérêt majeur} 
-along the lines of the [TeXbook](/​FAQ-tex-books);​ once you're under +</code>
-way, [TeX by Topic](/FAQ-ol-books) 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.+
  
 +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 : 
  
 +<code latex>
 +\newcommand{\truc}{élément d'​intérêt majeur}
 +</​code>​
 +
 +===== 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>
 +\def\truc#​1{élément vraiment #1}
 +Un \truc{exceptionnel}.
 +</​code>​
 +</​WRAP>​
 +
 +<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>
 +\newcommand{\truc}[1]{élément vraiment #1}
 +Un \truc{génial}.
 +</​code>​
 +</​WRAP>​
 +
 +<WRAP column 45ex>
 +<​latex>​
 +\newcommand{\truc}[1]{élément vraiment #1}
 +Un \truc{génial}.
 +</​latex>​
 +</​WRAP>​
 +<WRAP clear />
 +
 +Vous aurez remarqué que les arguments ci-dessus étaient entre accolades « ''​{''​ ... ''​}''​ ». Il s'agit là de la manière normale de taper des arguments, bien 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).
 +
 +===== 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]]
 +
 +{{htmlmetatags>​metatag-keywords=(LaTeX,​concepts)
 +metatag-og:​title=(Comment définir des commandes)
 +metatag-og:​site_name=(FAQ LaTeX francophone)
 +}}
2_programmation/macros/que_sont_les_macros.txt · Dernière modification: 2021/10/21 10:27 par bdumont
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0