+\end_layout
+
+\begin_layout Subsection
+Macros en mode mathématique
+\begin_inset Index
+status collapsed
+
+\begin_layout Plain Layout
+Commandes personnalisées ! macros mathématiques
+\end_layout
+
+\end_inset
+
+
+\begin_inset Index
+status collapsed
+
+\begin_layout Plain Layout
+Macros
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+LyX permet la définition de macros pour les formules, ce qui est parciculièremen
+t utile pour les expressions complexes.
+ Par exemple, supposons que les solutions de l'équation du second degré
+ apparaissent souvent dans votre document sous des formes variées.
+ La forme générale de l'équation du second degré est:
+\begin_inset Formula \[
+0=\lambda^{2}+p\lambda+q\]
+
+\end_inset
+
+La forme générale de ses solutions est:
+\begin_inset Formula \[
+\lambda_{1,2}=-\frac{p}{2}\pm\sqrt{\frac{p²}{4}-q}\]
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Pour définir une commande pour la formule de la solution, les paramètres
+
+\begin_inset Formula $\lambda$
+\end_inset
+
+,
+\begin_inset Formula $p$
+\end_inset
+
+ et
+\begin_inset Formula $q$
+\end_inset
+
+ peuvent prendre des formes variées et l'indice de
+\begin_inset Formula $\lambda$
+\end_inset
+
+ doit pouvoir être donné de façon optionnelle, la ligne de préambule LaTeX
+ est
+\begin_inset Newline newline
+\end_inset
+
+
+\series bold
+
+\backslash
+newcommand{
+\backslash
+qG}[4][1,
+\backslash
+,2]{#2_{#1}=-
+\backslash
+frac{#3}{2}
+\backslash
+pm
+\begin_inset Newline newline
+\end_inset
+
+
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+
+\backslash
+hphantom{
+\end_layout
+
+\end_inset
+
+
+\backslash
+newcommand
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+}
+\end_layout
+
+\end_inset
+
+
+\backslash
+sqrt{
+\backslash
+frac{#3^{2}}{4}-#4}}
+\end_layout
+
+\begin_layout Standard
+Pour créer une formule de solution avec cette définition, on peut insérer
+ dans une formule la commande:
+\end_layout
+
+\begin_layout Standard
+
+\series bold
+
+\backslash
+qG{
+\backslash
+lambda
+\begin_inset Formula $\to$
+\end_inset
+
+
+\backslash
+{p
+\begin_inset Formula $\to$
+\end_inset
+
+
+\backslash
+{q
+\end_layout
+
+\begin_layout Standard
+La définition de la nouvelle commande n'est pas intuitive parce que l'on
+ doit connaître la syntaxe des commandes LaTeX que l'on utilise, par exemple
+ que l'on insère une fraction en faisant
+\series bold
+
+\backslash
+frac{numérateur}{dénominateur}
+\series default
+.
+ En plus on peut facilement oublier une accolade dans la définition et ne
+ pas voir dans LyX ce que la nouvelle commande va faire.
+ Pour éviter ces problèmes LyX offre la possibilité d'utiliser des macros
+ mathématiques à la place de la commande
+\series bold
+
+\backslash
+newcommand
+\series default
+.
+\end_layout
+
+\begin_layout Standard
+Une macro est créée en utilisant le menu
+\family sans
+Insérer\SpecialChar \menuseparator
+Math\SpecialChar \menuseparator
+Macro
+\family default
+ ou le bouton
+\begin_inset Graphics
+ filename ../../images/math-macro_newmacroname_newcommand.png
+ scale 85
+
+\end_inset
+
+ de la barre d'outils.
+ La barre d'outils macro apparaît alors ainsi que la boîte suivante où on
+ définit la macro:
+\begin_inset Newline newline
+\end_inset
+
+
+\begin_inset space \hspace*{\fill}
+\end_inset
+
+
+\begin_inset Graphics
+ filename ../clipart/macrobox.png
+
+\end_inset
+
+
+\begin_inset space \hspace*{\fill}
+\end_inset
+
+
+\begin_inset Newline newline
+\end_inset
+
+
+\begin_inset FormulaMacro
+\newcommand{\qG}[4][1,\,2]{#2_{#1}=-\frac{#3}{2}\pm\sqrt{\frac{#3^{2}}{4}-#4}}
+\end_inset
+
+
+\backslash
+newmacroname est le nom qui est donné par défaut à la macro et qui doit
+ être remplacé par quelquechose de raisonable.
+ La formule voulue est insérée dans la première boîte bleue.
+ On insère une réservation pour un argument avec la commande
+\series bold
+
+\backslash
+#numéro_argument
+\series default
+, par exemple
+\series bold
+
+\backslash
+#1
+\series default
+, ou en utilisant le bouton
+\begin_inset Graphics
+ filename ../../images/math-macro-add-param.png
+ scale 85
+
+\end_inset
+
+ de la barre d'outils macro.
+ On peut avoir au maximum 9 arguments.
+ Les arguments optionnels sont créés avec le bouton
+\begin_inset Graphics
+ filename ../../images/math-macro-add-optional-param.png
+ scale 85
+
+\end_inset
+
+de la barre d'outils.
+ Le prenier argument non optionnel peut être transformé en argument optionnel
+ avec le bouton
+\begin_inset Graphics
+ filename ../../images/math-macro-make-optional.png
+ scale 85
+
+\end_inset
+
+.
+ On peut utiliser la deuxième boîte bleue pour décrire l'apparence de la
+ macro dans LyX.
+ En principe, vous voudrez la voir comme vous l'avez définie, la boîte est
+ alors laissée vide.
+ Mais quand vous avez créé une macro qui demande beaucoup de place à l'écran,
+ vous pouvez par exemple, insérer dans la boîte quelquechose comme ceci
+\begin_inset Newline newline
+\end_inset
+
+
+\series bold
+qG:
+\backslash
+#1
+\series default
+
+\series bold
+,
+\series default
+
+\series bold
+
+\backslash
+#2
+\series default
+
+\series bold
+,
+\series default
+
+\series bold
+
+\backslash
+#3,
+\backslash
+#4
+\begin_inset Newline newline
+\end_inset
+
+
+\series default
+Au niveau de la macro on n'affichera que les arguments, précédés du nom
+ de la macro, ce qui facilitera la lisibilité.
+ La formule sera imprimée sur la sortie conformément à la description de
+ la première boîte.
+\begin_inset Newline newline
+\end_inset
+
+L'apparence d'une macro dans une formule peut être modifiée en déplaçant
+ le curseur dans la macro et en utilisant le menu
+\family sans
+Visualiser\SpecialChar \menuseparator
+Déplier/Replier la macro mathématique
+\family default
+.
+\end_layout
+
+\begin_layout Standard
+Pour utiliser une macro, son nom est inséré dans une formule comme une commande,
+ dans notre cas, on met
+\series bold
+
+\backslash
+qG
+\series default
+.
+ Dans Lyx, notre macro va ressembler à ceci:
+\begin_inset Newline newline
+\end_inset
+
+
+\begin_inset space \hspace*{\fill}
+\end_inset
+
+
+\begin_inset Graphics
+ filename ../clipart/macrouse.png
+
+\end_inset
+
+
+\begin_inset space \hspace*{\fill}
+\end_inset
+
+
+\begin_inset Newline newline
+\end_inset
+
+Voici notre exemple avec les arguments
+\begin_inset Formula $x$
+\end_inset
+
+,
+\begin_inset Formula $\ln(x)$
+\end_inset
+
+ et
+\begin_inset Formula $B$
+\end_inset
+
+:
+\end_layout
+
+\begin_layout Standard
+\begin_inset Formula \[
+\qG x{\ln(x)}B\]
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+En interne, une macro est transformée en une commande
+\series bold
+
+\backslash
+newcommand
+\series default
+ au moment de l'exportation du document.
+ Les commandes
+\series bold
+
+\backslash
+newcommand
+\series default
+ qui sont ainsi générées ne sont pas placées dans le préambule LaTeX, ce
+ qui fait que les macros ne peuvent être utilisées que dans des formules
+ qui suivent leur boîte de définition dans le document.
+\end_layout
+
+\begin_layout Standard
+On peut aussi créer une macro mathématique directement à partir d'une commande
+
+\series bold
+
+\backslash
+newcommand
+\series default
+.
+ Écrivez par exemple la commande
+\begin_inset Newline newline
+\end_inset
+
+
+\series bold
+
+\backslash
+newcommand{
+\backslash
+larrow}[2]{
+\backslash
+xleftarrow[#2]{#1}}
+\series default
+
+\begin_inset Newline newline
+\end_inset
+
+dans LyX, en texte normal, sélectionnez-la et ensuite utilisez la raccourci
+ clavier
+\family sans
+Ctrl+M
+\family default
+, la commande sera transformée en macro mathématique.
+ En utilisant cette méthode, vous devez faire attention au fait que la commande
+
+\series bold
+
+\backslash
+newcommand
+\series default
+ soit tapée correctement, sinon vous obtiendrez une macro corrompue qui
+ amènera des erreurs LaTeX.
+\end_layout
+
+\begin_layout Standard
+Les macro mathématiques ont encore actuellement un problème qui fait que
+ les formules supplémentaires dans une définition de macro ne sont pas gérées
+ correctement.
+ Ce qui fait que l'exemple
+\series bold
+
+\backslash
+fb
+\series default
+ de la sous-section
+\begin_inset space ~
+\end_inset
+
+
+\begin_inset CommandInset ref
+LatexCommand ref
+reference "sub:La-commande-newcommand"
+
+\end_inset
+
+ ne peut pas être créée comme macro.
+\end_layout
+
+\begin_layout Standard
+Quand le curseur se trouve dans la boîte de définition d'une macro, vous
+ verrez dans la fenêtre de LyX, la barre d'outils macro :
+\end_layout
+
+\begin_layout Standard
+\begin_inset VSpace defskip
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+\begin_inset Graphics
+ filename ../clipart/MacroToolbar.png
+
+\end_inset
+
+
+\begin_inset Index
+status collapsed
+
+\begin_layout Plain Layout
+Macros ! Barre d'outils
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+\begin_inset VSpace defskip
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+La barre d'outils macro contient de la gauche vers la droite les boutons
+ suivants :
+\end_layout
+
+\begin_layout Standard
+\begin_inset VSpace defskip
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+\begin_inset Tabular
+<lyxtabular version="3" rows="9" columns="2">
+<features islongtable="true">
+<column alignment="left" valignment="top" width="0">
+<column alignment="left" valignment="top" width="85col%">
+<row interlinespace="2.5mm">
+<cell alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+\begin_inset Graphics
+ filename ../../images/math-macro-remove-param.png
+ BoundingBox 0bp 5bp 20bp 25bp
+ rotateOrigin center
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\family sans
+Éditer\SpecialChar \menuseparator
+Math\SpecialChar \menuseparator
+Définition
+\begin_inset space ~
+\end_inset
+
+de
+\begin_inset space ~
+\end_inset
+
+macro\SpecialChar \menuseparator
+Supprimer
+\begin_inset space ~
+\end_inset
+
+le
+\begin_inset space ~
+\end_inset
+
+dernier
+\begin_inset space ~
+\end_inset
+
+argument
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row interlinespace="2.5mm">
+<cell alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+\begin_inset Graphics
+ filename ../../images/math-macro-add-param.png
+ BoundingBox 0bp 5bp 20bp 25bp
+ rotateOrigin center
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\family sans
+Éditer\SpecialChar \menuseparator
+Math\SpecialChar \menuseparator
+Définition
+\begin_inset space ~
+\end_inset
+
+de
+\begin_inset space ~
+\end_inset
+
+macro\SpecialChar \menuseparator
+Ajouter
+\begin_inset space ~
+\end_inset
+
+un
+\begin_inset space ~
+\end_inset
+
+argument
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row interlinespace="2.5mm">
+<cell alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+\begin_inset Graphics
+ filename ../../images/math-macro-make-optional.png
+ BoundingBox 0bp 5bp 20bp 25bp
+ rotateOrigin center
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\family sans
+Éditer\SpecialChar \menuseparator
+Math\SpecialChar \menuseparator
+Définition
+\begin_inset space ~
+\end_inset
+
+de
+\begin_inset space ~
+\end_inset
+
+macro\SpecialChar \menuseparator
+Rendre optionnel le premier
+\begin_inset Newline newline
+\end_inset
+
+
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+
+\backslash
+hphantom{
+\end_layout
+
+\end_inset
+
+Éditer\SpecialChar \menuseparator
+Math\SpecialChar \menuseparator
+Définition
+\begin_inset space ~
+\end_inset
+
+de
+\begin_inset space ~
+\end_inset
+
+macro\SpecialChar \menuseparator
+
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+}
+\end_layout
+
+\end_inset
+
+argument
+\begin_inset space ~
+\end_inset
+
+non
+\begin_inset space ~
+\end_inset
+
+optionnel
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row interlinespace="2.5mm">
+<cell alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+\begin_inset Graphics
+ filename ../../images/math-macro-make-nonoptional.png
+ BoundingBox 0bp 5bp 20bp 25bp
+ rotateOrigin center
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\family sans
+Éditer\SpecialChar \menuseparator
+Math\SpecialChar \menuseparator
+Définition
+\begin_inset space ~
+\end_inset
+
+de
+\begin_inset space ~
+\end_inset
+
+macro\SpecialChar \menuseparator
+Rendre non optionnel le dernier
+\begin_inset Newline newline
+\end_inset
+
+
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+
+\backslash
+hphantom{
+\end_layout
+
+\end_inset
+
+Éditer\SpecialChar \menuseparator
+Math\SpecialChar \menuseparator
+Définition
+\begin_inset space ~
+\end_inset
+
+de
+\begin_inset space ~
+\end_inset
+
+macro\SpecialChar \menuseparator
+
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+}
+\end_layout
+
+\end_inset
+
+argument
+\begin_inset space ~
+\end_inset
+
+optionnel
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row interlinespace="2.5mm">
+<cell alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+\begin_inset Graphics
+ filename ../../images/math-macro-remove-optional-param.png
+ BoundingBox 0bp 5bp 20bp 25bp
+ rotateOrigin center
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\family sans
+Éditer\SpecialChar \menuseparator
+Math\SpecialChar \menuseparator
+Définition
+\begin_inset space ~
+\end_inset
+
+de
+\begin_inset space ~
+\end_inset
+
+macro\SpecialChar \menuseparator
+Supprimer
+\begin_inset space ~
+\end_inset
+
+un
+\begin_inset space ~
+\end_inset
+
+argument
+\begin_inset space ~
+\end_inset
+
+optionnel
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row interlinespace="2.5mm">
+<cell alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+\begin_inset Graphics
+ filename ../../images/math-macro-add-optional-param.png
+ BoundingBox 0bp 5bp 20bp 25bp
+ rotateOrigin center
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\family sans
+Éditer\SpecialChar \menuseparator
+Math\SpecialChar \menuseparator
+Définition
+\begin_inset space ~
+\end_inset
+
+de
+\begin_inset space ~
+\end_inset
+
+macro\SpecialChar \menuseparator
+Insérer
+\begin_inset space ~
+\end_inset
+
+un
+\begin_inset space ~
+\end_inset
+
+argument
+\begin_inset space ~
+\end_inset
+
+optionnel
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row interlinespace="2.5mm">
+<cell alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+\begin_inset Graphics
+ filename ../../images/math-macro-remove-greedy-param.png
+ BoundingBox 0bp 5bp 20bp 25bp
+ rotateOrigin center
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\family sans
+Éditer\SpecialChar \menuseparator
+Math\SpecialChar \menuseparator
+Définition
+\begin_inset space ~
+\end_inset
+
+de
+\begin_inset space ~
+\end_inset
+
+macro\SpecialChar \menuseparator
+Enlever
+\begin_inset space ~
+\end_inset
+
+le
+\begin_inset space ~
+\end_inset
+
+dernier
+\begin_inset space ~
+\end_inset
+
+argument
+\begin_inset space ~
+\end_inset
+
+en
+\begin_inset Newline newline
+\end_inset
+
+
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+
+\backslash
+hphantom{
+\end_layout
+
+\end_inset
+
+Éditer\SpecialChar \menuseparator
+Math\SpecialChar \menuseparator
+Définition
+\begin_inset space ~
+\end_inset
+
+de
+\begin_inset space ~
+\end_inset
+
+macro\SpecialChar \menuseparator
+
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+}
+\end_layout
+
+\end_inset
+
+éjectant
+\begin_inset space ~
+\end_inset
+
+par
+\begin_inset space ~
+\end_inset
+
+la
+\begin_inset space ~
+\end_inset
+
+droite
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row interlinespace="2.5mm">
+<cell alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+\begin_inset Graphics
+ filename ../../images/math-macro-append-greedy-param.png
+ BoundingBox 0bp 5bp 20bp 25bp
+ rotateOrigin center
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\family sans
+Éditer\SpecialChar \menuseparator
+Math\SpecialChar \menuseparator
+Définition
+\begin_inset space ~
+\end_inset
+
+de
+\begin_inset space ~
+\end_inset
+
+macro\SpecialChar \menuseparator
+Ajouter
+\begin_inset space ~
+\end_inset
+
+l'argument
+\begin_inset space ~
+\end_inset
+
+en
+\begin_inset space ~
+\end_inset
+
+intégrant
+\begin_inset Newline newline
+\end_inset
+
+
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+
+\backslash
+hphantom{
+\end_layout
+
+\end_inset
+
+Éditer\SpecialChar \menuseparator
+Math\SpecialChar \menuseparator
+Définition
+\begin_inset space ~
+\end_inset
+
+de
+\begin_inset space ~
+\end_inset
+
+macro\SpecialChar \menuseparator
+
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+}
+\end_layout
+
+\end_inset
+
+depuis
+\begin_inset space ~
+\end_inset
+
+la
+\begin_inset space ~
+\end_inset
+
+droite
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row interlinespace="2.5mm">
+<cell alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+\begin_inset Graphics
+ filename ../../images/math-macro-add-greedy-optional-param.png
+ BoundingBox 0bp 5bp 20bp 25bp
+ rotateOrigin center
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\family sans
+Éditer\SpecialChar \menuseparator
+Math\SpecialChar \menuseparator
+Définition
+\begin_inset space ~
+\end_inset
+
+de
+\begin_inset space ~
+\end_inset
+
+macro\SpecialChar \menuseparator
+Ajouter
+\begin_inset space ~
+\end_inset
+
+l'argument
+\begin_inset space ~
+\end_inset
+
+optionnel
+\begin_inset space ~
+\end_inset
+
+en
+\begin_inset Newline newline
+\end_inset
+
+
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+
+\backslash
+hphantom{
+\end_layout
+
+\end_inset
+
+Éditer\SpecialChar \menuseparator
+Math\SpecialChar \menuseparator
+Définition
+\begin_inset space ~
+\end_inset
+
+de
+\begin_inset space ~
+\end_inset
+
+macro\SpecialChar \menuseparator
+
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+}
+\end_layout
+
+\end_inset
+
+intégrant
+\begin_inset space ~
+\end_inset
+
+depuis
+\begin_inset space ~
+\end_inset
+
+la
+\begin_inset space ~
+\end_inset
+
+droite
+\end_layout
+
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+\begin_inset Newpage newpage
+\end_inset
+
+