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/23 22:27]
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? ======
-ID: Q-whatmacros +
-section: Bits and pieces of (La)TeX +
-revised: 2014-06-10 +
---- +
-# What are (TeX) macros+
  
-TeX is a _macro processor_this is a computer-science-y term +<​latex>​\TeX</​latex>​ est un //​processeur de macros// ​il compose le texte au fur et à mesure en développant chaque commande ​(ou macroqu'il trouveLes commandes <​latex>​\TeX</​latex>​ peuvent inclure des instructions ​à <​latex>​\TeX</​latex>​ lui-mêmeen plus de la simple génération de texte à laquelle ​on peut s'​attendre.
-meaning ''​text expander'' ​(more or less); TeX typesets text as it +
-goes along, but _expands_ each macro it finds TeX's macros +
-may include ​instructions ​to TeX itself, on top of the simple text +
-generation one might expect.+
  
-Macros are a _good thing_, since they allow the user to +Les commandes sont //une bonne chose// car elles permettent à l'​utilisateur de manipuler des documents ​en fonction du contextePar exemplela 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 cas, cela fait met en valeur le texte que la commande encadre). Mieuxvous pouvez changer le comportement de cette commande en changeant sa définitionpar 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 ! 
-manipulate ​documents ​according to context For examplethe 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 +
-overriddenand it simply expands to the letters ​''​TeX''​. ​ (_You_ +
-may not think this a good thingbut the author of the macros has his +
-reasons&​nbsp;&​ndash;​ see [TeX-related logos](FAQ-logos.md).)+
  
-Macro names are conventionally built from a `\\` +===== Le format des commandes =====
-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 <​code>​\ </​code>​ meaning ''​insert a space +
-here''​).+
  
-Macro programming can be a complicated business, but at their very +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 »)
-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 themselvesbut 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 arguments, above, were enclosed in +===== Les commandes de définition =====
-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 +La programmation de commandes peut être parfois compliquée maisréduite à sa plus simple expressionelle est assez intuitive : 
-beginner (La)TeX programmeryou are well advised to read something +
-along the lines of the [TeXbook](FAQ-tex-books.md);​ once you're under +
-way[TeX by Topic](FAQ-ol-books.md) 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.+
  
 +<code latex>
 +\def\truc{élément d'​intérêt majeur}
 +</​code>​
  
 +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