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
2_programmation:macros:que_sont_les_macros [2018/06/03 15:35]
d.p.carlisle
2_programmation:macros:que_sont_les_macros [2021/10/21 10:27] (Version actuelle)
bdumont [Les commandes avec des arguments] Ajout lien
Ligne 1: Ligne 1:
---- +====== Comment définir des commandes? ======
-title: What are (TeX) macros +
-category: concepts +
-permalink: /​FAQ-whatmacros +
----+
  
-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 italiqueMais si elle est utilisée dans un texte déjà en italiqueelle 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 gras, un 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 +
-overridden, and 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).)+
  
-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 `\ ` 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 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 »)
-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. +
-orin 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);​ once you're under +
-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.+
  
 +<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 [[2_programmation:​macros:​delimiteurs_speciaux|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.1528032905.txt.gz · Dernière modification: 2018/06/03 15:35 par d.p.carlisle
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0