texlive[72471] Master/texmf-dist: witharrows (5oct24)

commits+karl at tug.org commits+karl at tug.org
Sat Oct 5 21:36:44 CEST 2024


Revision: 72471
          https://tug.org/svn/texlive?view=revision&revision=72471
Author:   karl
Date:     2024-10-05 21:36:44 +0200 (Sat, 05 Oct 2024)
Log Message:
-----------
witharrows (5oct24)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/generic/witharrows/witharrows-french.pdf
    trunk/Master/texmf-dist/doc/generic/witharrows/witharrows-french.tex
    trunk/Master/texmf-dist/doc/generic/witharrows/witharrows.pdf
    trunk/Master/texmf-dist/source/generic/witharrows/witharrows.dtx
    trunk/Master/texmf-dist/source/generic/witharrows/witharrows.ins
    trunk/Master/texmf-dist/tex/generic/witharrows/witharrows.sty
    trunk/Master/texmf-dist/tex/generic/witharrows/witharrows.tex

Modified: trunk/Master/texmf-dist/doc/generic/witharrows/witharrows-french.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/generic/witharrows/witharrows-french.tex
===================================================================
--- trunk/Master/texmf-dist/doc/generic/witharrows/witharrows-french.tex	2024-10-05 19:36:34 UTC (rev 72470)
+++ trunk/Master/texmf-dist/doc/generic/witharrows/witharrows-french.tex	2024-10-05 19:36:44 UTC (rev 72471)
@@ -34,6 +34,14 @@
 \titlespacing*{\subsection}{0pt}{4.5ex plus 1ex minus .2ex}{2ex plus .2ex}
 
 
+\NewDocumentCommand{\Definition}{m}
+  {{\setlength{\fboxsep}{1pt}\colorbox{gray!20}{\ttfamily \vphantom{gl}#1}}}
+
+\NewDocumentCommand{\DefinitionCommande}{m}
+  {{\setlength{\fboxsep}{1pt}\colorbox{gray!20}{\ttfamily
+        \vphantom{gl}\textbackslash #1}}}
+
+
 \labelformat{equation}{(#1)}
 
 \def\interitem{\vspace{7mm plus 2 mm minus 3mm}}
@@ -81,21 +89,23 @@
 \end{abstract}
 
 
-\vspace{1cm}
-L'extension LaTeX \pkg{witharrows} est entièrement contenue dans le fichier |witharrows.sty|. Ce
-fichier peut être placé dans le répertoire courant ou dans une arborescence |texmf|. Le mieux reste néanmoins
-d'installer \pkg{witharrows} avec une distribution TeX comme MiKTeX, TeX~Live ou MacTeX.
+\vspace{1cm} L'extension LaTeX \pkg{witharrows} est entièrement contenue dans le fichier
+|witharrows.sty|. Ce fichier peut être placé dans le répertoire courant ou dans une
+arborescence |texmf|. Le mieux reste néanmoins d'installer \pkg{witharrows} avec une
+distribution TeX comme MiKTeX, TeX~Live ou MacTeX.
 
 \medskip
-En fait, \pkg{witharrows} est aussi une extension utilisable avec plain-TeX et dans ce cas, le seul fichier
-nécessaire est le fichier |witharrows.tex| : voir à ce sujet p.~\pageref{plain-TeX}. Dans la suite, on décrira
-l'extension LaTeX.
+En fait, \pkg{witharrows} est aussi une extension utilisable avec plain-TeX et dans ce
+cas, le seul fichier nécessaire est le fichier |witharrows.tex| : voir à ce sujet
+p.~\pageref{plain-TeX}. Dans la suite, on décrira l'extension LaTeX.
 
 \medskip
-Cette extension peut être utilisée avec |xelatex|, |lualatex|, |pdflatex| mais aussi avec le cheminement classique
-|latex|-|dvips|-|ps2pdf| (ou Adobe Distiller). L'extension \pkg{witharrows} charge les extensions \pkg{l3keys2e},
-\pkg{tikz}, \pkg{varwidth} ainsi que les bibliothèques Tikz \pkg{arrows.meta} et \pkg{bending}. L'utilisateur final n'a qu'à charger l'extension \pkg{witharrows} avec
-l'instruction habituelle : |\usepackage{witharrows}|. 
+Cette extension peut être utilisée avec |xelatex|, |lualatex|, |pdflatex| mais aussi avec
+le cheminement classique |latex|-|dvips|-|ps2pdf| (ou Adobe Distiller). L'extension
+\pkg{witharrows} charge les extensions \pkg{l3keys2e}, \pkg{tikz}, \pkg{varwidth} ainsi
+que les bibliothèques Tikz \pkg{arrows.meta} et \pkg{bending}. L'utilisateur final n'a
+qu'à charger l'extension \pkg{witharrows} avec l'instruction habituelle :
+|\usepackage{witharrows}|.
 
 \medskip
 Les flèches sont tracées avec Tikz et donc \textbf{plusieurs compilations peuvent être nécessaires}.\footnote{Si
@@ -102,8 +112,8 @@
   vous utilisez Overleaf, Overleaf effectue automatiquement un nombre de compilations suffisant (en utilisant |latexmk|).}
 
 \bigskip
-Cette extension fournit un environnement |{WithArrows}| pour construire des alignements d'équations
-avec des flèches pour les explications sur le côté droit.
+Cette extension fournit un environnement |{WithArrows}| pour construire des alignements
+d'équations avec des flèches pour les explications sur le côté droit.
 
 \begin{Verbatim}
 $\begin{WithArrows}
@@ -120,23 +130,24 @@
 
 
 \medskip
-La flèche a été tracée avec la commande |\Arrow| dans la rangée dont la flèche part. La commande |\Arrow|
-doit être utilisée dans la seconde colonne (le mieux est de la mettre à la fin de la ligne comme dans l'exemple
-précédent).
+La flèche a été tracée avec la commande |\Arrow| dans la rangée dont la flèche part. La
+commande |\Arrow| doit être utilisée dans la seconde colonne (le mieux est de la mettre à
+la fin de la ligne comme dans l'exemple précédent).
 
 
 \medskip
-Comme on le voit, l'environnement |{WithArrows}| est proche de l'environnement |{aligned}| de l'\pkg{amsmath}.
-L'extension \pkg{witharrows} propose aussi un environnement |{DispWithArrows}| qui est similaire à l'environnement
-|{align}| de l'\pkg{amsmath}: cf. p. \pageref{DispWithArrows}.
+Comme on le voit, l'environnement |{WithArrows}| est proche de l'environnement |{aligned}|
+de l'\pkg{amsmath}. L'extension \pkg{witharrows} propose aussi un environnement
+|{DispWithArrows}| qui est similaire à l'environnement |{align}| de l'\pkg{amsmath}: cf.
+p. \pageref{DispWithArrows}.
 
 
 \section{Options pour la forme des flèches}
 
-La commande |\Arrow| a plusieurs options. Ces options peuvent être placées entre crochets, avant, ou après,
-l'argument obligatoire.
+La commande |\Arrow| a plusieurs options. Ces options peuvent être placées entre crochets,
+avant, ou après, l'argument obligatoire.
 
-L'option |jump| indique le nombre\footnote{Il n'est pas possible de donner une valeur négative à |jump|.
+L'option \Definition{jump} indique le nombre\footnote{Il n'est pas possible de donner une valeur négative à |jump|.
 Voir plus loin (p.~\pageref{Backwards}) la manière de tracer une flèche qui remonte.} de rangées que la flèche doit sauter (la valeur initiale est, bien
 entendu,~$1$).
 
@@ -171,9 +182,9 @@
   & = a^2 + 2ab + b^2 + 2a + 2b +1 
 \end{WithArrows}$
 
-\interitem
-L'option |xoffset| décale la flèche vers la droite (habituellement, on ne souhaite pas que les flèches soient
-collées au texte). La valeur initiale de |xoffset| est de $3$~mm.
+\interitem L'option \Definition{xoffset} décale la flèche vers la droite (habituellement,
+on ne souhaite pas que les flèches soient collées au texte). La valeur initiale de
+|xoffset| est de $3$~mm.
 \begin{Verbatim}
 $\begin{WithArrows}
 A & = \bigl((a+b)+1\bigr)^2 
@@ -190,9 +201,10 @@
 
 
 \interitem 
-Les flèches sont tracées avec Tikz. C'est pourquoi la commande |\Arrow| a une option 
-|tikz| qui peut être utilisée pour donner à la flèche (en fait, à la commande |\path| de
-Tikz) les options proposées par Tikz pour une telle flèche. L'exemple suivant fournit une flèche en trait épais.
+Les flèches sont tracées avec Tikz. C'est pourquoi la commande |\Arrow| a une option
+\Definition{tikz} qui peut être utilisée pour donner à la flèche (en fait, à la commande
+|\path| de Tikz) les options proposées par Tikz pour une telle flèche. L'exemple suivant
+fournit une flèche en trait épais. 
 \begin{Verbatim}
 $\begin{WithArrows}
 A & = (a+1)^2 \Arrow[~emphase#tikz=thick@]{on développe} \\
@@ -205,9 +217,9 @@
   & = a^2 + 2a + 1 
 \end{WithArrows}$
 
-\interitem
-Il est également possible de changer les pointes de flèche. Par exemple, nous pouvons tracer une flèche
-qui remonte vers le haut avec l'option Tikz~|<-|.\label{Backwards} 
+\interitem 
+Il est également possible de changer les pointes de flèche. Par exemple, nous pouvons
+tracer une flèche qui remonte vers le haut avec l'option Tikz~|<-|.\label{Backwards}
 
 \begin{Verbatim}
 $\begin{WithArrows}
@@ -221,8 +233,9 @@
   & = a^2 + 2a + 1 
 \end{WithArrows}$
 
-\interitem
-Il est aussi possible de supprimer les deux pointes de flèche avec l'option Tikz «|-|».\par\nobreak
+\interitem 
+Il est aussi possible de supprimer les deux pointes de flèche avec l'option Tikz
+«|-|».\par\nobreak
 \begin{Verbatim}
 $\begin{WithArrows}
 A & = (a+1)^2 \Arrow[~emphase#tikz=-@]{très classique} \\
@@ -251,14 +264,13 @@
 \end{WithArrows}$
 
 \smallskip 
-En fait, il est possible de modifier de manière plus drastique la forme des flèches avec l'option
-|tikz-code| (présentée p.~\pageref{tikz-code}).
+En fait, il est possible de modifier de manière plus drastique la forme des flèches avec
+l'option |tikz-code| (présentée p.~\pageref{tikz-code}).
 
 \interitem
-Il est possible d'utiliser l'option «|text width|» pour contrôler la largeur du texte associé à la
-flèche.
-\newcounter{fnnohyphen}
-\setcounter{fnnohyphen}{\thefootnote}
+Il est possible d'utiliser l'option «|text width|» pour contrôler la largeur du texte
+associé à la flèche. 
+\newcounter{fnnohyphen} \setcounter{fnnohyphen}{\thefootnote}
 %
 \begin{Verbatim}
 $\begin{WithArrows}
@@ -271,8 +283,9 @@
 
 $\begin{WithArrows}
 A & = \bigl((a+b)+1\bigr)^2 
-\Arrow[jump=2,tikz={text width=5.3cm}]{Nous avons développé en deux étapes mais il aurait été plus habile
-  d'utiliser la formule du multinôme.} \\
+\Arrow[jump=2,tikz={text width=5.3cm}]{Nous avons développé en deux étapes 
+                                       mais il aurait été plus habile
+                                       d'utiliser la formule du multinôme.} \\
 & = (a+b)^2 + 2(a+b) +1 \\
 & = a^2 + 2ab + b^2 + 2a + 2b +1
 \end{WithArrows}$
@@ -284,10 +297,11 @@
 automatiquement coupées sur la marge droite : voir p.~\pageref{DispWithArrows}.
 
 \interitem
-Si on veut changer la fonte du texte associé à une flèche, on peut, bien entendu, placer une commande comme
-|\bfseries|, |\large| ou |\sffamily| au début du texte. Mais, par défaut, les étiquettes sont composées avec une
-combinaison de |\small| et |\itshape|. En ajoutant |\bfseries| au début du texte, on ne va pas supprimer le
-|\small| et le |\itshape| et, par conséquent, on aura un texte en gras, italique et petite taille.
+Si on veut changer la fonte du texte associé à une flèche, on peut, bien entendu, placer
+une commande comme |\bfseries|, |\large| ou |\sffamily| au début du texte. Mais, par
+défaut, les étiquettes sont composées avec une combinaison de |\small| et |\itshape|. En
+ajoutant |\bfseries| au début du texte, on ne va pas supprimer le |\small| et le
+|\itshape| et, par conséquent, on aura un texte en gras, italique et petite taille.
 %
 \begin{Verbatim}
 $\begin{WithArrows}
@@ -307,9 +321,9 @@
 les nœuds sont construits avec l'option |align=left|, et, ainsi, cela devient possible.}. Néanmoins, si on utilise des commandes |\\|, une instruction de fonte placée au début
 du texte aura un effet seulement jusqu'à la première occurrence de~|\\| (comme
 dans un environnement |{tabular}|). C'est pourquoi Tikz fournit une option
-|font| pour modifier la fonte de tout le texte de l'étiquette. Cette fois-ci, si on utilise une option
-|tikz={font={\bfseries}}|, la spécification par défaut constituée par |\small| et |\itshape| va être
-écrasée. 
+\Definition{font} pour modifier la fonte de tout le texte de l'étiquette. Cette fois-ci, si on
+utilise une option |tikz={font={\bfseries}}|, la spécification par défaut constituée par
+|\small| et |\itshape| va être écrasée. 
 %
 \begin{Verbatim}
 $\begin{WithArrows}
@@ -324,16 +338,17 @@
 \end{WithArrows}$
 
 \medskip
-Si on veut exactement le même résultat que précédemment, on doit donner à l'option |font| la valeur
-|\itshape\small\bfseries|.
+Si on veut exactement le même résultat que précédemment, on doit donner à l'option |font|
+la valeur |\itshape\small\bfseries|.
 
 
 \interitem 
-Presque toutes les options peuvent être données entre crochets à l'environnement |{WithArrows}|. Il ne doit
-pas y avoir d'espace entre le |\begin{WithArrows}| et le crochet ouvrant (|[|) des options de
-l'environnement. Ces options s'appliquent à toutes les flèches de l'environnement.\footnote{Elles s'appliquent
-  aussi aux environnements imbriqués dans un environnement |{WithArrows}| donné (avec des exceptions attendues
-  pour les options |interline|, |code-before| et |code-after|).}
+Presque toutes les options peuvent être données entre crochets à l'environnement
+|{WithArrows}|. Il ne doit pas y avoir d'espace entre le |\begin{WithArrows}| et le
+crochet ouvrant (|[|) des options de l'environnement. Ces options s'appliquent à toutes
+les flèches de l'environnement.\footnote{Elles s'appliquent aussi aux environnements
+  imbriqués dans un environnement |{WithArrows}| donné (avec des exceptions attendues pour
+  les options |interline|, |code-before| et |code-after|).}
 %
 \begin{Verbatim}
 $\begin{WithArrows}[~emphase#tikz=blue@]
@@ -351,8 +366,9 @@
 
 
 \interitem
-L'environnement |{WithArrows}| a une option |displaystyle|. Avec cette option, tous les éléments sont composés en
-|\displaystyle| (comme dans un environnement |{aligned}| de l'\pkg{amsmath}).
+L'environnement |{WithArrows}| a une option \Definition{displaystyle}. Avec cette option,
+tous les éléments sont composés en |\displaystyle| (comme dans un environnement
+|{aligned}| de el'\pkg{amsmath}).
 
 \medskip
 Sans l'option |displaystyle|:
@@ -393,14 +409,16 @@
 
 
 \interitem 
-Presque toutes les options peuvent aussi être fixées au niveau du document avec la commande |\WithArrowsOptions|.
-Dans ce cas, la portée des déclarations est le groupe TeX courant (de telles déclarations sont parfois qualifiées
-de «semi-globales»). Par exemple, si nous voulons que tous les environnements |{WithArrows}| soient composés en
-|\displaystyle| avec des flèches bleues, nous pouvons écrire
-|\WithArrowsOptions{displaystyle,tikz=blue}|.\footnote{Il est aussi possible de configurer \pkg{witharrows} en
-  modifiant le style Tikz |WithArrows/arrow| qui est le style utilisé par \pkg{witharrows} lors du tracé d'une
-  flèche. Par exemple, pour avoir les étiquettes en bleu et en caractères droits, on peut utiliser l'instruction
-  suivante : |\tikzset{WithArrows/arrow/.append style = {blue,font = {}}}|.}
+Presque toutes les options peuvent aussi être fixées au niveau du document avec la
+commande \DefinitionCommande{WithArrowsOptions}. Dans ce cas, la portée des déclarations
+est le groupe TeX courant (de telles déclarations sont parfois qualifiées de
+«semi-globales»). Par exemple, si nous voulons que tous les environnements |{WithArrows}|
+soient composés en |\displaystyle| avec des flèches bleues, nous pouvons écrire
+|\WithArrowsOptions{displaystyle,tikz=blue}|.\footnote{Il est aussi possible de configurer
+  \pkg{witharrows} en modifiant le style Tikz |WithArrows/arrow| qui est le style utilisé
+  par \pkg{witharrows} lors du tracé d'une flèche. Par exemple, pour avoir les étiquettes
+  en bleu et en caractères droits, on peut utiliser l'instruction suivante :
+  |\tikzset{WithArrows/arrow/.append style = {blue,font = {}}}|.}
 
 \begin{Verbatim}
 ~emphase#\WithArrowsOptions{displaystyle,tikz=blue}@
@@ -422,14 +440,15 @@
 
 
 \interitem 
-La commande |\Arrow| est reconnue seulement dans les environnements de \pkg{witharrows}. Si on dispose d'une
-commande |\Arrow| précédemment définie, il est possible de continuer à l'utiliser à l'extérieur des environnements
-de \pkg{witharrows}.
+La commande |\Arrow| est reconnue seulement dans les environnements de \pkg{witharrows}.
+Si on dispose d'une commande |\Arrow| précédemment définie, il est possible de continuer à
+l'utiliser à l'extérieur des environnements de \pkg{witharrows}.
 
-Néanmoins, une commande |\Arrow| définie précédemment pourrait encore être utile dans un environnement
-|{WithArrows}|. Si vous voulez l'utiliser dans un tel environnement, il est possible de changer le nom de la
-commande |\Arrow| de l'extension \pkg{witharrows} grâce à une option |command-name| dédiée. Le nouveau nom de la
-commande doit être fourni à l'option \emph{sans} la contre-oblique.
+Néanmoins, une commande |\Arrow| définie précédemment pourrait encore être utile dans un
+environnement |{WithArrows}|. Si vous voulez l'utiliser dans un tel environnement, il est
+possible de changer le nom de la commande |\Arrow| de l'extension \pkg{witharrows} grâce à
+une option \Definition{command-name} dédiée. Le nouveau nom de la commande doit être
+fourni à el'option \emph{sans} la contre-oblique.
 %
 \begin{Verbatim}
 \NewDocumentCommand {\Arrow} {} {\longmapsto}
@@ -451,10 +470,11 @@
 
 
 \interitem 
-L'environnement |{WithArrows}| fournit aussi deux options |code-before| et |code-after| pour du code LaTeX qui sera 
-exécuté au début et à la fin de l'environnement. Ces options ne sont pas conçues pour être utilisées comme des
-\emph{hooks} (elles sont disponibles uniquement au niveau de l'environnement et ne s'appliquent pas aux
-environnements imbriqués).
+L'environnement |{WithArrows}| fournit aussi deux options \Definition{code-before} et
+\Definition{code-after} pour du code LaTeX qui sera exécuté au début et à la fin de
+l'environnement. Ces options ne sont pas conçues pour être utilisées comme des
+\emph{hooks} (elles sont disponibles uniquement au niveau de l'environnement et ne
+s'appliquent pas aux environnements imbriqués).
 %
 \begin{Verbatim}
 $\begin{WithArrows}[~emphase#code-before = \color{blue}@]
@@ -469,28 +489,32 @@
 \end{WithArrows}$
 
 \medskip 
-Des commandes spéciales sont disponibles dans le |code-after| : une commande |\WithArrowsNbLines| qui indique le
-nombre de lignes (=rangées) de l'environnement courant (pour TeX, il s'agit d'une commande et non d'un compteur),
-une forme spéciale de la commande |\Arrow| et la commande |\MultiArrow| : ces commandes sont décrites à partir de
-la page~\pageref{NestedEnv}.
+Des commandes spéciales sont disponibles dans le |code-after|: une commande
+\DefinitionCommande{WithArrowsNbLines} qui indique le nombre de lignes (=rangées) de
+l'environnement courant (pour TeX, il s'agit d'une commande et non d'un compteur), une
+forme spéciale de la commande |\Arrow| et la commande |\MultiArrow| : ces commandes sont
+décrites à partir de la page~\pageref{NestedEnv}.
 
 \section{Nombre et formats des colonnes}
 
-Jusqu'à présent, nous n'avons utilisé l'environnement |{WithArrows}| qu'avec deux colonnes. Néanmoins, il est
-possible de l'utiliser avec un nombre arbitraire de colonnes grâce à l'option |format|. La valeur donnée à cette
-option est similaire au préambule d'un environnement |{array}|: il s'agit d'une séquence de lettres |r|, |c| et
+Jusqu'à présent, nous n'avons utilisé l'environnement |{WithArrows}| qu'avec deux
+colonnes. Néanmoins, il est possible de l'utiliser avec un nombre arbitraire de colonnes
+grâce à l'option \Definition{format}. La valeur donnée à cette option est similaire au
+préambule d'un environnement |{array}|: il s'agit d'une séquence de lettres |r|, |c| et
 |l| mais aussi |R|, |C| et |L|.
 
 \smallskip
-Les lettres |R|, |C| et |L| placent des groupes vides |{}| qui permettent un espacement correct lorsque ces
-colonnes contiennent des symboles de type |\mathrel| (comme $=$, $\le$, etc.) ou |\mathbin| (comme $+$, $×$, etc.).
-Ce système est inspiré par l'environnement |{IEEEeqnarray}| de \pkg{IEEEtrantools}.
+Les lettres |R|, |C| et |L| placent des groupes vides |{}| qui permettent un espacement
+correct lorsque ces colonnes contiennent des symboles de type |\mathrel| (comme $=$,
+$\le$, etc.) ou |\mathbin| (comme $+$, $×$, etc.). Ce système est inspiré par
+l'environnement |{IEEEeqnarray}| de \pkg{IEEEtrantools}.
 
 \smallskip
 La valeur initiale du paramètre |format| est, en fait, |rL|.
 
 \bigskip
-Par exemple, si on veut seulement une colonne alignée à gauche, on peut utiliser l'option |format=l|.
+Par exemple, si on veut seulement une colonne alignée à gauche, on peut utiliser l'option
+|format=l|.
 \begin{Verbatim}
 $\begin{WithArrows}[~emphase#format = l@]
 f(x) \ge g(x) \Arrow{on élève les deux membres au carré} \\
@@ -506,8 +530,8 @@
 \end{WithArrows}$
 
 \interitem
-Dans l'exemple suivant, on utilise cinq colonnes toutes centrées (l'environnement |{DispWithArrows*}| utilisé est
-présenté p.~\pageref{DispWithArrows}).
+Dans l'exemple suivant, on utilise cinq colonnes toutes centrées (l'environnement
+|{DispWithArrows*}| utilisé est présenté p.~\pageref{DispWithArrows}).
 
 \begin{Verbatim}
 \begin{DispWithArrows*}[~emphase#format = cCcCc@,
@@ -537,11 +561,12 @@
 
 \section{Positionnement précis des flèches}
 
-L'environnement |{WithArrows}| construit, lors de la composition du tableau, deux séries de nœuds représentés en
-rouge dans l'exemple suivant.\footnote{L'option |show-nodes| peut être utilisée pour visualiser ces nœuds. Les
-  nœuds sont en fait des nœuds Tikz de forme rectangulaire et de largeur nulle. Une flèche entre deux nœuds part de
-  l'ancre sud (\emph{south anchor}) du premier nœud et arrive à l'ancre nord (\emph{north anchor}) du deuxième
-  nœud.}
+L'environnement |{WithArrows}| construit, lors de la composition du tableau, deux séries
+de nœuds représentés en rouge dans l'exemple suivant.\footnote{L'option |show-nodes| peut
+  être utilisée pour visualiser ces nœuds. Les nœuds sont en fait des nœuds Tikz de forme
+  rectangulaire et de largeur nulle. Une flèche entre deux nœuds part de l'ancre sud
+  (\emph{south anchor}) du premier nœud et arrive à l'ancre nord (\emph{north anchor}) du
+  deuxième nœud.}
 
 
 \smallskip
@@ -558,21 +583,23 @@
 \end{WithArrows}$
 
 \bigskip
-Les nœuds sur la gauche sont à la fin de chaque ligne de texte. Ces nœuds seront appelés \emph{nœuds de gauche}. Les
-nœuds du côté droit sont alignés verticalement sur le bord droit de l'alignement d'équations. Ces nœuds seront
-appelés \emph{nœuds de droite}.
+Les nœuds sur la gauche sont à la fin de chaque ligne de texte. Ces nœuds seront appelés
+\emph{nœuds de gauche}. Les nœuds du côté droit sont alignés verticalement sur le bord
+droit de l'alignement d'équations. Ces nœuds seront appelés \emph{nœuds de droite}.
 
 
-Par défaut, les flèches utilisent les nœuds de droite. Nous dirons que ces flèches sont dans le mode |rr| (\emph{r}
-for \emph{right} en anglais). Ces flèches sont verticales (nous dirons qu'une flèche est \emph{verticale} lorsque
-ses deux extrémités sont à la même abscisse).
+Par défaut, les flèches utilisent les nœuds de droite. Nous dirons que ces flèches sont
+dans le mode \Definition{rr} (\emph{r} for \emph{right} en anglais). Ces flèches sont
+verticales (nous dirons qu'une flèche est \emph{verticale} lorsque ses deux extrémités
+sont à la même abscisse).
 
 
 
 \smallskip
-Néanmoins, il est possible d'utiliser les nœuds de gauche, ou une combinaison de nœuds de gauche et de droite avec
-l'une des options |lr|, |rl| et |ll| (\emph{l} for \emph{left} en anglais). Ces flèches sont, la plupart du temps,
-non verticales.
+Néanmoins, il est possible d'utiliser les nœuds de gauche, ou une combinaison de nœuds de
+gauche et de droite avec l'une des options \Definition{lr}, \Definition{rl} et
+\Definition{ll} (\emph{l} for \emph{left} en anglais). Ces flèches sont, la plupart du
+temps, non verticales. 
 
 
 Ainsi\enskip
@@ -593,7 +620,7 @@
 
 
 \interitem 
-Il y a aussi une option nommée |i| (\emph{i} pour \emph{intermédiaire}). Avec cette option, la flèche est
+Il y a aussi une option nommée \Definition{i} (\emph{i} pour \emph{intermédiaire}). Avec cette option, la flèche est
 verticale et calée à gauche.
 
 \begin{Verbatim}
@@ -614,7 +641,7 @@
 
 
 \interitem 
-L'environnement |{WithArrows}| propose aussi une option |group|. Avec cette option,
+L'environnement |{WithArrows}| propose aussi une option \Definition{group}. Avec cette option,
 \emph{toutes} les flèches de l'environnement sont regroupées sur une même verticale calée à gauche.
 \label{group}
 %
@@ -641,14 +668,16 @@
 
 
 \bigskip
-L'environnement |{WithArrows}| fournit encore une autre option, nommée |groups| (avec un \emph{s} dans le
-nom). Avec cette option, les flèches sont divisées en plusieurs «groupes». Chaque groupe est un ensemble de flèches
-connectées entre elles\footnote{Plus précisément : pour chaque flèche $a$, notons $i(a)$ le numéro de sa rangée de
-  départ et
-  $f(a)$ le numéro de sa rangée d'arrivée ; pour deux flèches $a$ et $b$, nous noterons $a \sim b$ lorsque
-  $\llbracket i(a),f(a)\rrbracket \cap \llbracket i(b),f(b)\rrbracket \neq \varnothing$ ; les groupes sont les
-  classes d'équivalence de la clôture transitive de la relation $\sim$.}. Toutes les flèches d'un même groupe sont placées sur
-une même verticale qui est calée à gauche. 
+L'environnement |{WithArrows}| fournit encore une autre option, nommée \Definition{groups}
+(avec un \emph{s} dans le nom). Avec cette option, les flèches sont divisées en plusieurs
+«groupes». Chaque groupe est un ensemble de flèches connectées entre elles\footnote{Plus
+  précisément : pour chaque flèche $a$, notons $i(a)$ le numéro de sa rangée de départ et
+  $f(a)$ le numéro de sa rangée d'arrivée ; pour deux flèches $a$ et $b$, nous noterons
+  $a \sim b$ lorsque
+  $\llbracket i(a),f(a)\rrbracket \cap \llbracket i(b),f(b)\rrbracket \neq \varnothing$ ;
+  les groupes sont les classes d'équivalence de la clôture transitive de la relation
+  $\sim$.}. Toutes les flèches d'un même groupe sont placées sur une même verticale qui
+est calée à gauche.
 
 
 \bigskip
@@ -663,23 +692,26 @@
 \end{WithArrows}$
 
 \bigskip 
-Dans un environnement qui utilise l'option |group| ou l'option |groups|, il est encore possible de donner une
-option de position (|ll|, |lr|, |rl|, |rr| ou |i|) à une flèche individuelle\footnote{Une telle flèche est
-  qualifiée d'\emph{indépendante} (\emph{independent} en anglais) dans la documentation technique.}. Une telle
-flèche sera tracée indépendamment des groupes. Il est aussi possible de commencer un nouveau groupe avec l'option
-|new-group| pour une certaine flèche.
+Dans un environnement qui utilise l'option |group| ou l'option |groups|, il est encore
+possible de donner une option de position (|ll|, |lr|, |rl|, |rr| ou |i|) à une flèche
+individuelle\footnote{Une telle flèche est qualifiée d'\emph{indépendante}
+  (\emph{independent} en anglais) dans la documentation technique.}. Une telle flèche sera
+tracée indépendamment des groupes. Il est aussi possible de commencer un nouveau groupe
+avec l'option \Definition{new-group} pour une certaine flèche.
 
 
 \bigskip
-Si on le souhaite, on peut passer l'option |group| ou |groups| à la commande |WithArrowsOptions| de telle sorte
-qu'elle deviendra la valeur par défaut (jusqu'à la fin du groupe TeX courant). Dans ce cas, il est encore possible
-de revenir au comportement par défaut pour un environnement |{WithArrows}| donné avec l'option |rr|:
+Si on le souhaite, on peut passer l'option |group| ou |groups| à la commande
+|WithArrowsOptions| de telle sorte qu'elle deviendra la valeur par défaut (jusqu'à la fin
+du groupe TeX courant). Dans ce cas, il est encore possible de revenir au comportement par
+défaut pour un environnement |{WithArrows}| donné avec l'option |rr|:
 |\begin{WithArrows}[rr]|.
 
 
-\vspace{1cm}
-Dans l'exemple suivant, nous avons utilisé l'option |groups| pour l'environnement et l'option |new-group| pour la
-dernière flèche (c'est pourquoi cette dernière flèche n'est pas alignée avec les premières).
+\vspace{1cm} 
+Dans l'exemple suivant, nous avons utilisé l'option |groups| pour l'environnement et
+l'option |new-group| pour la dernière flèche (c'est pourquoi cette dernière flèche n'est
+pas alignée avec les premières).
 
 $\begin{WithArrows}[interline=1mm,groups]
 \sum\limits_{k=0}^n\frac{\cos kx}{\cos^k x}
@@ -710,8 +742,8 @@
 
 Considérons, dans un environnement donné, deux flèches notées formellement $a$ et $b$. 
 
-On notera $i_a$ et $i_b$ les numéros des lignes de départ de $a$ et $b$ et $f_a$ et $f_b$ les numéros de leurs
-lignes d'arrivée. On a bien entendu $i_a \le f_a$ et $i_b \le f_b$
+On notera $i_a$ et $i_b$ les numéros des lignes de départ de $a$ et $b$ et $f_a$ et $f_b$
+les numéros de leurs lignes d'arrivée. On a bien entendu $i_a \le f_a$ et $i_b \le f_b$
 
 \smallskip
 On dira que la flèche~$a$ \emph{recouvre} la flèche~$b$ lorsque $i_a \le i_b \le f_b \le f_a$
@@ -727,13 +759,14 @@
 \end{WithArrows}$
 
 \bigskip
-Au niveau local, il existe une option |o|. Cette option n'est disponible que lorsque l'on est en mode |group| ou bien
-en mode |groups| (cf. p.~\pageref{group}).
+Au niveau local, il existe une option \Definition{o}. Cette option n'est disponible que
+lorsque l'on est en mode |group| ou bien en mode |groups| (cf. p.~\pageref{group}).
 
-Une flèche de type |o| est tracée avec un décalage horizontal (comme celui fixé par |xoffset|) calculé
-automatiquement en fonction des flèches qu'elle recrouvre.\footnote{Parmi les flèches recouvertes, les flèches
-  indépendantes (c'est-à-dire celles qui ont une option explicite |rr|, |ll|, |rl|, |lr|, |i|, |up| ou |down|) ne
-  sont pas prises en compte pour le calcul du |xoffset|.}
+Une flèche de type |o| est tracée avec un décalage horizontal (comme celui fixé par
+|xoffset|) calculé automatiquement en fonction des flèches qu'elle
+recrouvre.\footnote{Parmi les flèches recouvertes, les flèches indépendantes (c'est-à-dire
+  celles qui ont une option explicite |rr|, |ll|, |rl|, |lr|, |i|, |up| ou |down|) ne sont
+  pas prises en compte pour le calcul du |xoffset|.}
 
 
 \bigskip
@@ -757,7 +790,8 @@
 
 
 \interitem
-Les flèches de type |o| peuvent elles-mêmes être recouvertes par d'autres flèches de type~|o|:\par\nobreak
+Les flèches de type |o| peuvent elles-mêmes être recouvertes par d'autres flèches de
+type~|o|:\par\nobreak
 
 \bigskip
 \begin{BVerbatim}
@@ -779,12 +813,13 @@
 \end{WithArrows}$
 
 \bigskip
-L'espace (horizontal) entre une flèche de type |o| et les flèches immédiatement recouvertes est fixé par le
-paramètre |xoffset-for-o-arrows| que l'on peut régler avec |\WithArrowsOptions| (valeur initiale : 2~mm).
+L'espace (horizontal) entre une flèche de type |o| et les flèches immédiatement
+recouvertes est fixé par le paramètre |xoffset-for-o-arrows| que l'on peut régler avec
+|\WithArrowsOptions| (valeur initiale : 2~mm).
 
 \bigskip
-\emph{Remarque} : La lettre |o| a été choisie car c'est la première lettre du mot anglais \emph{over}. Une flèche
-de type~|o| est \emph{au-dessus} des flèches qu'elle recouvre.
+\emph{Remarque} : La lettre |o| a été choisie car c'est la première lettre du mot anglais
+\emph{over}. Une flèche de type~|o| est \emph{au-dessus} des flèches qu'elle recouvre.
 
 \interitem
 
@@ -791,8 +826,8 @@
 \section{Les options « up » et « down » pour des flèches individuelles} 
 
 \label{up-and-down}
-Au niveau local, il y a deux options pour les flèches individuelles, nommées «|up|» et «|down|». L'exemple
-suivant illustre ces types de flèches: 
+Au niveau local, il y a deux options pour les flèches individuelles, nommées
+\Definition{up} et \Definition{down}. L'exemple suivant illustre ces types de flèches:
 
 
 \begin{Verbatim}
@@ -818,20 +853,25 @@
 
 
 \vspace{1cm} 
-Les options |up| et |down| nécessitent la bibliothèque Tikz \pkg{calc}. Si elle n'a pas été chargée au préalable par
-l'utilisateur, une erreur sera levée.
+Les options |up| et |down| nécessitent la bibliothèque Tikz \pkg{calc}. Si elle n'a pas
+été chargée au préalable par l'utilisateur, une erreur sera levée.
 
 \vspace{1cm}
-Les options |up| et |down| peuvent en fait prendre comme valeur une liste de couples clé-valeur. 
+Les options |up| et |down| peuvent en fait prendre comme valeur une liste de couples
+clé-valeur.  
 \begin{itemize}
-\item La clé |radius| est le rayon de l'angle arrondi de la flèche\footnote{La valeur initiale de ce paramètre est égale à
-$4$~pt, qui est la valeur par défaut du ``|rounded corners|'' de Tikz.}.
-\item La clé |width| contrôle la largeur (de la partie horizontale) de la flèche :
+\item La clé \Definition{radius} est le rayon de l'angle arrondi de la flèche\footnote{La
+  valeur initiale de ce paramètre est égale à $4$~pt, qui est la valeur par défaut du
+  ``|rounded corners|'' de Tikz.}.
+\item La clé \Definition{width} contrôle la largeur (de la partie horizontale) de la flèche :
 \begin{itemize}
-\item avec la valeur |max|, la largeur de la flèche est ajustée par rapport à la position des nœuds (c'est le
-comportement par défaut des flèches |up| et |down| comme illustré dans l'exemple précédent) ;
-\item avec une valeur numérique, la largeur de la flèche est directement fixée par cette valeur numérique ;
-\item avec la valeur |min|, la largeur de la flèche est ajustée au contenu de son étiquette.
+\item avec la valeur \Definition{max}, la largeur de la flèche est ajustée par rapport à
+la position des nœuds (c'est le comportement par défaut des flèches |up| et |down| comme
+illustré dans l'exemple précédent) ;
+\item avec une valeur numérique, la largeur de la flèche est directement fixée par cette
+valeur numérique ;
+\item avec la valeur \Definition{min}, la largeur de la flèche est ajustée au contenu de
+son étiquette. 
 \end{itemize}
 \end{itemize}
 
@@ -869,8 +909,9 @@
 \end{WithArrows}$
 
 \vspace{1cm}
-Les options relatives aux flèches |up| et |down| peuvent être fixées au niveau global ou environnemental avec la
-clé |up-and-down|. Cette clé peut aussi être utilisée comme préfixe comme illustré maintenant.
+Les options relatives aux flèches |up| et |down| peuvent être fixées au niveau global ou
+environnemental avec la clé \Definition{up-and-down}. Cette clé peut aussi être utilisée
+comme préfixe comme illustré maintenant.
 %
 \begin{Verbatim}
 \WithArrowsOptions{up-and-down/width=min}
@@ -880,16 +921,17 @@
 
 \section{Comparaison avec l'environnement \{aligned\}}
 
-L'environnement |{WithArrows}| présente des similitudes avec l'environnement |{aligned}| de l'extension
-\pkg{amsmath}. Ce sont seulement des similitudes car |{WithArrows}| n'a pas été écrit en s'appuyant sur
-|{aligned}|.\footnote{En fait, il est possible d'utiliser l'extension \pkg{witharrows} sans l'extension
-  \pkg{amsmath}.}
+L'environnement |{WithArrows}| présente des similitudes avec l'environnement |{aligned}|
+de l'extension \pkg{amsmath}. Ce sont seulement des similitudes car |{WithArrows}| n'a pas
+été écrit en s'appuyant sur |{aligned}|.\footnote{En fait, il est possible d'utiliser
+  l'extension \pkg{witharrows} sans l'extension \pkg{amsmath}.}
 
 \interitem 
-Comme dans les environnements de l'\pkg{amsmath}, il est possible de changer l'espacement entre deux rangées avec
-l'option de la commande |\\| de fin de ligne (il est aussi possible d'utiliser |\\*| mais cela a
-exactement le même effet que |\\| puisqu'un environnement |{WithArrows}| est toujours insécable). Cette
-option est conçu pour être utilisée avec des valeurs positives uniquement.
+Comme dans les environnements de l'\pkg{amsmath}, il est possible de changer l'espacement
+entre deux rangées avec l'option de la commande |\\| de fin de ligne (il est aussi
+possible d'utiliser |\\*| mais cela a exactement le même effet que |\\| puisqu'un
+environnement |{WithArrows}| est toujours insécable). Cette option est conçu pour être
+utilisée avec des valeurs positives uniquement.
 %
 \begin{Verbatim}
 $\begin{WithArrows}
@@ -906,16 +948,17 @@
 
 
 \interitem 
-Dans les environnements de l'\pkg{amsmath} (ou de \pkg{mathtools}), l'espace entre deux rangées est fixé par un
-paramètre appelé |\jot| (il s'agit d'une dimension et non d'un ressort). C'est aussi le cas pour l'environnement
-|{WithArrows}|. Une option |jot| a été ajoutée à l'environnement |{WithArrows}| dans le but de changer ce paramètre
-|\jot| pour un environnement donné.\footnote{Il est aussi possible de changer |\jot| avec l'environnement
-  |{spreadlines}| de \pkg{mathtools}.}
+Dans les environnements de l'\pkg{amsmath} (ou de \pkg{mathtools}), l'espace entre deux
+rangées est fixé par un paramètre appelé |\jot| (il s'agit d'une dimension et non d'un
+ressort). C'est aussi le cas pour l'environnement |{WithArrows}|. Une option
+\Definition{jot} a été ajoutée à l'environnement |{WithArrows}| dans le but de changer ce
+paramètre |\jot| pour un environnement donné.\footnote{Il est aussi possible de changer |\jot| avec
+  l'environnement |{spreadlines}| de \pkg{mathtools}.}
 %
 \begin{Verbatim}
 $\begin{WithArrows}[displaystyle,~emphase#jot=2ex@]
-F & = \frac12G     \Arrow{on développe}\\
-  & = H + \frac12K \Arrow{on continue}\\
+F & = \frac{1}{2}G     \Arrow{on développe}\\
+  & = H + \frac{1}{2}K \Arrow{on continue}\\
   & = K 
 \end{WithArrows}$
 \end{Verbatim}
@@ -922,15 +965,15 @@
 
 
 $\begin{WithArrows}[displaystyle,jot=2ex]
-F & = \frac12G     \Arrow{on développe}\\
-  & = H + \frac12K \Arrow{on continue}\\
+F & = \frac{1}{2}G     \Arrow{on développe}\\
+  & = H + \frac{1}{2}K \Arrow{on continue}\\
   & = K 
 \end{WithArrows}$
 
 
 \bigskip
-Néanmoins, cette nouvelle valeur de |\jot| sera aussi utilisée dans les nouveaux alignements inclus dans
-l'environnement~|{WithArrows}|:
+Néanmoins, cette nouvelle valeur de |\jot| sera aussi utilisée dans les nouveaux
+alignements inclus dans l'environnement~|{WithArrows}|:
 %
 \begin{Verbatim}
 $\begin{WithArrows}[jot=2ex]
@@ -958,8 +1001,9 @@
 \end{WithArrows}$
 
 \bigskip
-Peut-être que cela ne correspond pas au résultat souhaité. C'est pourquoi une option |interline| est fournie. Il
-est possible d'utiliser un ressort (\emph{skip}) pour cette option.
+Peut-être que cela ne correspond pas au résultat souhaité. C'est pourquoi une option
+\Definition{interline} est fournie. Il est possible d'utiliser un ressort (\emph{skip})
+pour cette option.
 %
 \begin{Verbatim}
 $\begin{WithArrows}[~emphase#interline=2ex@]
@@ -987,10 +1031,11 @@
 \end{WithArrows}$
 
 
-\interitem
-De même que l'environnement |{aligned}|, |{WithArrows}| a une option de placement qui peut prendre les valeurs |t|,
-|c| ou |b|. Néanmoins, la valeur initiale n'est pas |c| mais |t|. Si on le souhaite, il est possible d'avoir la
-valeur |c| comme valeur par défaut en utilisant l'instruction |\WithArrowsOptions{c}| au début du document.
+\interitem 
+De même que l'environnement |{aligned}|, |{WithArrows}| a une option de placement qui peut
+prendre les valeurs \Definition{t}, \Definition{c} ou \Definition{b}. Néanmoins, la valeur
+initiale n'est pas |c| mais |t|. Si on le souhaite, il est possible d'avoir la valeur |c|
+comme valeur par défaut en utilisant l'instruction |\WithArrowsOptions{c}| au début du document.
 %
 \begin{Verbatim}
 Ainsi\enskip
@@ -1074,7 +1119,7 @@
 Les environnements |{WithArrows}| peuvent être imbriqués. Dans ce cas, les options fournies
 à l'environnement englobant s'appliquent aussi aux environnements imbriqués (avec des
 exceptions tout à fait attendues pour |interline|, |code-before| et |code-after|). La commande
-|Arrow| peut être utilisée dans chaque environnement |{WithArrows}|.
+|\Arrow| peut être utilisée dans chaque environnement |{WithArrows}|.
 
 \begin{Verbatim}[formatcom=\small\color{gray}]
 $~emphase#\begin{WithArrows}@
@@ -1111,8 +1156,8 @@
 \end{WithArrows}$
 
 \bigskip
-Néanmoins, on peut souhaiter tracer une flèche entre des rangées qui ne sont pas dans le même 
-environnement. Par exemple, on pourrait souhaiter tracer la flèche suivante :
+Néanmoins, on peut souhaiter tracer une flèche entre des rangées qui ne sont pas dans le
+même environnement. Par exemple, on pourrait souhaiter tracer la flèche suivante :
 
 \bigskip
 $\begin{WithArrows}[code-after = \Arrow[v]{1-2}{2-2}{division par $2$} ]
@@ -1144,16 +1189,16 @@
 \item une spécification pour la rangée d'arrivée ;
 \item une étiquette pour la flèche.
 \end{itemize}
-Comme d'habitude, il est possible de donner des options entre crochets avant ou après les trois arguments
-obligatoires. Néanmoins, ces options sont limitées (voir plus bas).
+Comme d'habitude, il est possible de donner des options entre crochets avant ou après les
+trois arguments obligatoires. Néanmoins, ces options sont limitées (voir plus bas).
 
-\interitem
-La spécification de rangée est construite avec la position de l'environnement conidéré dans l'arbre des
-imbrications, suivie, après un trait d'union, par le numéro de la rangée.
+\interitem La spécification de rangée est construite avec la position de l'environnement
+conidéré dans l'arbre des imbrications, suivie, après un trait d'union, par le numéro de
+la rangée.
 
 \bigskip
-Dans l'exemple précédent, il y a deux environnements |{WithArrows}| imbriqués dans l'environnement
-|{WithArrows}| principal.
+Dans l'exemple précédent, il y a deux environnements |{WithArrows}| imbriqués dans
+l'environnement |{WithArrows}| principal.
 
 \medskip
 $\begin{WithArrows}[tikz-code = {\path (#1) to node {#3} (#2) ; }]
@@ -1173,10 +1218,10 @@
 \end{WithArrows}$
 
 \bigskip
-La flèche que nous voulons tracer part de la rangée~$2$ du sous-environnement \no $1$ (et, par conséquent, la
-spécification est |1-2|) et arrive à la rangée~$2$ du sous-environnement \no $2$ (et, par conséquent, la
-spécification est |2-2|). Nous pouvons tracer la flèche avec une commande |\Arrow| dans le |code-after| de la
-manière suivante :
+La flèche que nous voulons tracer part de la rangée~$2$ du sous-environnement \no $1$ (et,
+par conséquent, la spécification est |1-2|) et arrive à la rangée~$2$ du
+sous-environnement \no $2$ (et, par conséquent, la spécification est |2-2|). Nous pouvons
+tracer la flèche avec une commande |\Arrow| dans le |code-after| de la manière suivante :
 
 \begin{Verbatim}
 $\begin{WithArrows}[~emphase#code-after = \Arrow{1-2}{2-2}{division par $2$}@ ]
@@ -1203,16 +1248,16 @@
 \end{WithArrows}$
 
 \bigskip
-Les options autorisées pour une commande |\Arrow| dans le |code-after| sont : |ll|, |lr|, |rl|, |rr|, |v|,
-|xoffset|, |tikz| et |tikz-code|. Exceptée |v|, qui est spécifique à |\Arrow| dans le |code-after|, toutes ces
-options ont leur signification habituelle.
+Les options autorisées pour une commande |\Arrow| dans le |code-after| sont : |ll|, |lr|,
+|rl|, |rr|, |v|, |xoffset|, |tikz| et |tikz-code|. Exceptée |v|, qui est spécifique à
+|\Arrow| dans le |code-after|, toutes ces options ont leur signification habituelle.
 
 
-Avec l'option |v|, la flèche tracée est verticale à une abscisse calculée avec
-la rangée de départ et la rangée d'arrivée uniquement : les lignes intermédiaires ne sont pas prises en compte
-contrairement à ce qui se passe avec l'option |i|. Pour le moment, l'option |i| n'est pas disponible
-pour la commande~|\Arrow| dans le |code-after|. Néanmoins, il est toujours possible
-de déplacer une flèche avec |xoffset| (ou |xshift| de Tikz).
+Avec l'option |v|, la flèche tracée est verticale à une abscisse calculée avec la rangée
+de départ et la rangée d'arrivée uniquement : les lignes intermédiaires ne sont pas prises
+en compte contrairement à ce qui se passe avec l'option |i|. Pour le moment, l'option |i|
+n'est pas disponible pour la commande~|\Arrow| dans le |code-after|. Néanmoins, il est
+toujours possible de déplacer une flèche avec |xoffset| (ou |xshift| de Tikz).
 \begin{Verbatim}
 $\begin{WithArrows}[code-after=\Arrow~emphase#[v]@{1-2}{2-2}{division by $2$}]
 \varphi(x,y)=0
@@ -1239,10 +1284,11 @@
 
  
 \interitem 
-L'extension \pkg{witharrows} fournit une autre commande disponible dans le |code-after| : la commande
-|\MultiArrow|. Cette commande dessine un «rateau». La liste des rangées concernées par ce rateau est donnée dans le
-premier argument de la commande |\MultiArrow|. La syntaxe utilisée pour décrire cette liste est celle de la
-commande |\foreach| de \pkg{pgffor}.
+L'extension \pkg{witharrows} fournit une autre commande disponible dans le |code-after| :
+la commande \DefinitionCommande{MultiArrow}. Cette commande dessine un «rateau». La liste
+des rangées concernées par ce rateau est donnée dans le premier argument de la commande
+|\MultiArrow|. La syntaxe utilisée pour décrire cette liste est celle de la commande
+|\foreach| de \pkg{pgffor}.
 
 \begin{Verbatim}
 $\begin{WithArrows}[tikz = rounded corners,
@@ -1272,17 +1318,18 @@
 \medskip
 \section{Dessiner des flèches depuis l'extérieur des  environnements \{WithArrows\}}
 
-Si on désire dessiner des flèches depuis l'extérieur des environnements |{WithArrows}|, il est possible de le
-faire en utilisant les nœuds Tikz créés par ces environnements.
+Si on désire dessiner des flèches depuis l'extérieur des environnements |{WithArrows}|, il
+est possible de le faire en utilisant les nœuds Tikz créés par ces environnements.
 
-Le nom d'un nœud Tikz créé par \pkg{witharrows} est préfixé par |wa-|. Ensuite, on trouve une liste de nombres
-qui indique quelle est la position de l'environnement dans l'arbre d'imbrication des environnements. À la fin, on a
-le suffixe |l| pour un nœud de gauche et le suffixe |r| pour un nœud de droite.
+Le nom d'un nœud Tikz créé par \pkg{witharrows} est préfixé par |wa-|. Ensuite, on trouve
+une liste de nombres qui indique quelle est la position de l'environnement dans l'arbre
+d'imbrication des environnements. À la fin, on a le suffixe |l| pour un nœud de gauche et
+le suffixe |r| pour un nœud de droite.
 
 \smallskip
-À titre d'illustration, nous donnons un exemple d'environnements |{WithArrows}| imbriqués et, pour chaque nœud
-de droite, le nom de ce nœud.\footnote{Il existe une option |show-node-names| pour faire afficher les noms de
-  ces nœuds.}
+À titre d'illustration, nous donnons un exemple d'environnements |{WithArrows}| imbriqués
+et, pour chaque nœud de droite, le nom de ce nœud.\footnote{Il existe une option
+  |show-node-names| pour faire afficher les noms de ces nœuds.}
 
 
 \medskip
@@ -1319,19 +1366,21 @@
 \medskip
 L'extension \pkg{witharrows} fournit quelques outils pour faciliter l'utilisation de ces nœuds :
 \begin{itemize}
-\item la commande |\WithArrowsLastEnv| donne le numéro du dernier environnement de niveau~$0$ (c'est-à-dire
-non imbriqué dans un autre environnement de \pkg{witharrows}) ;
+\item la commande \DefinitionCommande{WithArrowsLastEnv} donne le numéro du dernier
+environnement de niveau~$0$ (c'est-à-dire non imbriqué dans un autre environnement de
+\pkg{witharrows}) ; 
 
-\item un nom peut être donné à un environnement avec l'option |name| et, dans ce cas, les nœuds créés dans
-l'environnement auront des alias construits en utilisant ce nom ;
+\item un nom peut être donné à un environnement avec l'option \Definition{name} et, dans
+ce cas, les nœuds créés dans l'environnement auront des alias construits en utilisant ce
+nom ;
 
-\item le style Tikz |WithArrows/arrow| est le style utilisé par \pkg{witharrows} pour dessiner une
-flèche\footnote{Plus précisément, ce style est passé à Tikz via l'option «|every path|» avant le dessin de la
+\item le style Tikz \Definition{WithArrows/arrow} est le style utilisé par
+\pkg{witharrows} pour dessiner une flèche\footnote{Plus précisément, ce style est passé à Tikz via l'option «|every path|» avant le dessin de la
   flèche (qui se fait avec l'instruction Tikz stockée dans |tikz-code|). Ce style est modifié par l'option
   |tikz| de \pkg{witharrows} (avec une portée correspondant au groupe TeX courant).} ;
 
-\item le style Tikz |WithArrows/arrow/tips| est le style utilisé pour la pointe de flèche (ce style est
-lui-même chargé par le style |WithArrows/arrow|).
+\item le style Tikz \Definition{WithArrows/arrow/tips} est le style utilisé pour la pointe
+de flèche (ce style est lui-même chargé par le style |WithArrows/arrow|).
 \end{itemize}
 
 Par exemple, nous pouvons tracer une flèche allant de  \texttt{wa-\WithArrowsLastEnv-2-1-2-r.south}
@@ -1383,13 +1432,13 @@
 \]
 
 \medskip
-Dans le cas présent, il aurait été plus facile d'utiliser une commande |\Arrow| dans le |code-after| mais
-c'était seulement un exemple pour illustrer comment les nœuds Tikz créés par \pkg{witharrows} peuvent être
-utilisés. 
+Dans le cas présent, il aurait été plus facile d'utiliser une commande |\Arrow| dans le
+|code-after| mais c'était seulement un exemple pour illustrer comment les nœuds Tikz créés
+par \pkg{witharrows} peuvent être utilisés.
 
 \bigskip
-Dans l'exemple suivant, on crée des environnements |{WithArrows}| nommés «|premier|» et «|second|» et on dessine
-une flèche entre un nœud du premier et un nœud du second.
+Dans l'exemple suivant, on crée des environnements |{WithArrows}| nommés «|premier|» et
+«|second|» et on dessine une flèche entre un nœud du premier et un nœud du second.
 
 \begin{Verbatim}
 $\begin{WithArrows}[~emphase#name=premier@]
@@ -1433,13 +1482,14 @@
 \section{L'environnement \{DispWithArrows\}}
 \label{DispWithArrows}
 
-Comme dit précédemment, l'environnement |{WithArrows}| présente des similitudes avec l'environnement |{aligned}| de
-l'\pkg{amsmath} (et de |mathtools|). L'extension \pkg{witharrows} fournit aussi un environnement |{DispWithArrows}|
-qui est similaire aux environnements |{align}| et |{flalign}| de l'\pkg{amsmath}.
+Comme dit précédemment, l'environnement |{WithArrows}| présente des similitudes avec
+l'environnement |{aligned}| de l'\pkg{amsmath} (et de |mathtools|). L'extension
+\pkg{witharrows} fournit aussi un environnement \Definition{\{DispWithArrows\}} qui est
+similaire aux environnements |{align}| et |{flalign}| de l'\pkg{amsmath}.
 
 \medskip
-L'environnement |{DispWithArrows}| doit être utilisé \emph{hors} du mode mathématique. Comme
-|{align}|, il doit être utilisé en mode horizontal.
+L'environnement |{DispWithArrows}| doit être utilisé \emph{hors} du mode mathématique.
+Comme |{align}|, il doit être utilisé en mode horizontal.
 \begin{Verbatim}
 \begin{~emphase#DispWithArrows@}
 A & = (a+1)^2 \Arrow{on développe} \\
@@ -1452,12 +1502,14 @@
 \end{DispWithArrows}
 
 \medskip
-Il est possible d'utiliser la commande |\notag| (ou |\nonumber|) pour supprimer un numéro d'équation. 
+Il est possible d'utiliser la commande \DefinitionCommande{notag} (ou |\nonumber|) pour
+supprimer un numéro d'équation.
 
-Il est possible d'utiliser la commande |\tag| pour placer une étiquette spéciale (par ex. $\star$).
+Il est possible d'utiliser la commande \DefinitionCommande{tag} pour placer une étiquette
+spéciale (par ex. $\star$). 
 
 Il est aussi possible de placer un label pour une ligne de l'environnement avec la commande 
-|\label|.
+\DefinitionCommande{label}.
 
 Ces commandes doivent être utilisées dans la dernière colonne de l'environnement.
 \begin{Verbatim}
@@ -1475,10 +1527,11 @@
 
 
 \medskip
-Si \pkg{amsmath} (ou \pkg{mathtools}) est chargée, il est possible d'utiliser |\tag*| qui compose le label
-sans les parenthèses. Par exemple, il est possible de l'utiliser pour mettre le symbole |\square| de
-\pkg{amssymb}. Ce symbole est souvent utilisé pour marquer la fin d'une démonstration.\footnote{Signalons que
-  l'environnement |{DispWithArrows}| est compatible avec la commande |\qedhere| de \pkg{amsthm}.}
+Si \pkg{amsmath} (ou \pkg{mathtools}) est chargée, il est possible d'utiliser |\tag*| qui
+compose le label sans les parenthèses. Par exemple, il est possible de l'utiliser pour
+mettre le symbole |\square| de \pkg{amssymb}. Ce symbole est souvent utilisé pour marquer
+la fin d'une démonstration.\footnote{Signalons que l'environnement |{DispWithArrows}| est
+  compatible avec la commande |\qedhere| de \pkg{amsthm}.}
 \begin{Verbatim}
 \begin{DispWithArrows}
 A & = (a+1)^2 \Arrow{on développe} \notag \\
@@ -1491,12 +1544,13 @@
 \end{DispWithArrows}
 
 \medskip
-Il est également possible de supprimer tous les numéros d'équations avec l'option booléenne |notag| (ou
-|nonumber|), au niveau global ou bien au niveau d'un environnement.
+Il est également possible de supprimer tous les numéros d'équations avec l'option
+booléenne \Definition{notag} (ou |nonumber|), au niveau global ou bien au niveau d'un
+environnement. 
 
-Enfin, il existe aussi 
-un environnement |{DispWithArrows*}| qui supprime tous les numéros.\footnote{Même dans ce cas, il est possible
-de mettre une étiquette manuellement avec la commande |\tag|.}
+Enfin, il existe aussi un environnement \Definition{\{DispWithArrows*\}} qui supprime tous
+les numéros.\footnote{Même dans ce cas, il est possible de mettre une étiquette
+  manuellement avec la commande |\tag|.}
 \begin{Verbatim}
 \begin{~emphase#DispWithArrows*@}
 A & = (a+1)^2 \Arrow{on développe} \\
@@ -1509,11 +1563,12 @@
 \end{DispWithArrows*}
 
 \medskip
-En fait, il y a une autre option, nommée |tagged-lines|, qui peut être utilisée pour contrôler quelles lignes
-seront numérotées. La valeur de cette option est la liste des numéros de lignes (dans l'environnement) qui seront
-numérotées (par le système de numérotage des équations). Par exemple, avec l'option
-|tagged-lines = {first,3,last}|, seulement la première, la troisième et la dernière lignes seront numérotées.
-Il y a aussi une valeur spéciale |all| qui signifie que toutes les lignes doivent être numérotées.
+En fait, il y a une autre option, nommée \Definition{tagged-lines}, qui peut être utilisée
+pour contrôler quelles lignes seront numérotées. La valeur de cette option est la liste
+des numéros de lignes (dans l'environnement) qui seront numérotées (par le système de
+numérotage des équations). Par exemple, avec l'option |tagged-lines = {first,3,last}|,
+seulement la première, la troisième et la dernière lignes seront numérotées. Il y a aussi
+une valeur spéciale |all| qui signifie que toutes les lignes doivent être numérotées.
 \begin{Verbatim}
 \begin{DispWithArrows}[~emphase#tagged-lines = last@]
 A & = A_1 \Arrow{première étape} \\
@@ -1528,10 +1583,11 @@
 \end{DispWithArrows}
 
 \bigskip
-Avec l'option |fleqn|, l'environnement est composé calé à gauche (d'une manière similaire
-à l'option |fleqn| des classes standard de LaTeX). Dans ce cas, la marge gauche peut être réglée avec
-l'option |mathindent| (qui a un nom inspiré du paramètre |\mathindent| de LaTeX). La valeur initiale pour cette
-option est de 25~pt. 
+Avec l'option \Definition{fleqn}, l'environnement est composé calé à gauche (d'une manière
+similaire à l'option |fleqn| des classes standard de LaTeX). Dans ce cas, la marge gauche
+peut être réglée avec l'option \Definition{mathindent} (qui a un nom inspiré du paramètre
+|\mathindent| de LaTeX). La valeur initiale pour cette option est de 25~pt. On peut y
+mettre comme valeur un ressort (= \emph{skip} = \emph{glue}).
 
 \begin{Verbatim}
 \begin{DispWithArrows}[~emphase#fleqn,mathindent = 1cm@]
@@ -1545,29 +1601,33 @@
 \end{DispWithArrows}
 
 \medskip
-\emph{Remarque} : Par conception, l'option |fleqn| de \pkg{witharrows} est 
-indépendante de l'option de classe |fleqn| de LaTeX. En effet, puisque les environnement de
-\pkg{witharrows} sont conçus pour être utilisés avec des flèches sur le côté droit, l'utilisateur
-peut souhaiter utiliser \pkg{witharrows} avec l'option |fleqn| (de manière à avoir plus de place sur la droite
-des équations pour les flèches) tout en continuant à centrer les équations classiques.
+\emph{Remarque} : Par conception, l'option |fleqn| de \pkg{witharrows} est indépendante de
+l'option de classe |fleqn| de LaTeX. En effet, puisque les environnement de
+\pkg{witharrows} sont conçus pour être utilisés avec des flèches sur le côté droit,
+l'utilisateur peut souhaiter utiliser \pkg{witharrows} avec l'option |fleqn| (de manière à
+avoir plus de place sur la droite des équations pour les flèches) tout en continuant à
+centrer les équations classiques.
 
 \medskip
-Si l'option |leqno| est utilisée comme option de classe, les labels seront composés
-à gauche également pour les environnements |{DispWithArrows}|.\footnote{L'extension \pkg{amsmath} a une option |leqno|
-mais \pkg{witharrows}, bien entendu, ne tient pas compte de cette option : \pkg{witharrows}
-vérifie seulement l'option |leqno| de la classe du document.}
+Si l'option |leqno| est utilisée comme option de classe, les labels seront composés à
+gauche également pour les environnements |{DispWithArrows}|.\footnote{L'extension
+  \pkg{amsmath} a une option |leqno| mais \pkg{witharrows}, bien entendu, ne tient pas
+  compte de cette option : \pkg{witharrows} vérifie seulement l'option |leqno| de la
+  classe du document.}
 
 
 \medskip
-Si l'extension \pkg{amsmath} est chargée, il est possible d'utiliser la commande |\intertext| dans les
-environnements |{DispWithArrows}|. Il est également possible d'utiliser l'environnement |{subequations}|.
-Néanmoins, il existe pour les environnements |{DispWithArrows}| une option |subequations| qui demande
-d'encapsuler l'environnement dans un environnement |{subequations}|. 
+Si l'extension \pkg{amsmath} est chargée, il est possible d'utiliser la commande
+|\intertext| dans les environnements |{DispWithArrows}|. Il est également possible
+d'utiliser l'environnement |{subequations}|. Néanmoins, il existe pour les environnements
+|{DispWithArrows}| une option \Definition{subequations} qui demande d'encapsuler
+l'environnement dans un environnement |{subequations}|.
 
 
 \medskip
-Dans l'exemple suivant, l'option |subequations| est fixée via la commande |\WithArrowsOptions|. Chacun
-des environnements suivants sera alors sous-numéroté (dans la portée de la commande |WithArrowsOptions|).
+Dans l'exemple suivant, l'option |subequations| est fixée via la commande
+|\WithArrowsOptions|. Chacun des environnements suivants sera alors sous-numéroté (dans la
+portée de la commande |WithArrowsOptions|).
 
 \begin{Verbatim}
 ~emphase#\WithArrowsOptions{subequations}@
@@ -1598,10 +1658,12 @@
 \end{scope}
 
 \bigskip
-S'il n'y a pas suffisamment de place pour faire appraraître le numéro d'équation à la fin de la ligne, il n'y a pas
-de positionnement automatique de ce numéro sur la ligne suivante (comme dans les environnements de
-l'\pkg{amsmath}) : il y aura surimpression de texte. Néanmoins, dans |{DispWithArrows}|, l'utilisateur peut
-utiliser la commande |\tagnextline| pour demander manuellement la composition du numéro sur la ligne suivante.
+S'il n'y a pas suffisamment de place pour faire appraraître le numéro d'équation à la fin
+de la ligne, il n'y a pas de positionnement automatique de ce numéro sur la ligne suivante
+(comme dans les environnements de l'\pkg{amsmath}) : il y aura surimpression de texte.
+Néanmoins, dans |{DispWithArrows}|, l'utilisateur peut utiliser la commande
+\DefinitionCommande{tagnextline} pour demander manuellement la composition du numéro sur
+la ligne suivante. 
 \begin{Verbatim}
 \begin{DispWithArrows}[displaystyle]
 S_{2(p+1)}
@@ -1632,8 +1694,9 @@
 
 
 \bigskip
-Les environnements |{DispWithArrows}| et |{DispWithArrows*}| fournissent également une option
-|wrap-lines|. Avec cette option, les lignes de l'étiquette sont automatiquement coupées à droite.
+Les environnements |{DispWithArrows}| et |{DispWithArrows*}| fournissent également une
+option \Definition{wrap-lines}. Avec cette option, les lignes de l'étiquette sont
+automatiquement coupées à droite.
 
 \begin{Verbatim}
 \begin{DispWithArrows*}[displaystyle,~emphase#wrap-lines@]
@@ -1663,11 +1726,12 @@
 de l'environnement englobant.
 
 \vspace{1cm}
-Nous avons dit que les environnements |{DispWithArrows}| et |{DispWithArrows*}|
-devaient être utilisés en mode horizontal et non en mode vertical. Il y a néanmoins
-une exception. Ces environnements peuvent être utilisés directement après un |\item| d'une liste
-LaTeX. Dans ce cas, aucun espace vertical n'est ajouté avant l'environnement.\footnote{Il est possible de désactiver
-  cette fonctionnalité avec l'option |standard-behaviour-with-items|.}
+Nous avons dit que les environnements |{DispWithArrows}| et |{DispWithArrows*}| devaient
+être utilisés en mode horizontal et non en mode vertical. Il y a néanmoins une exception.
+Ces environnements peuvent être utilisés directement après un |\item| d'une liste LaTeX.
+Dans ce cas, aucun espace vertical n'est ajouté avant l'environnement.\footnote{Il est
+  possible de désactiver cette fonctionnalité avec l'option
+  |standard-behaviour-with-items|.}
 
 \medskip
 Voici un exemple où, avec |{DispWithArrows}|, on peut insérer l'équation dans un environnement 
@@ -1743,21 +1807,22 @@
 
 \subsection*{L'option <...> de DispWithArrows}
 
-L'environnement |{DispWithArrows}| propose une option |left-brace|. Si cette option est présente, son
-contenu est composé à gauche, suivi d'une accolade (d'où le nom) puis du corps de
-l'environnement.\footnote{L'option |left-brace| peut aussi être utilisée sans valeur: dans ce cas, seule
-  l'accolade est tracée.}
+L'environnement |{DispWithArrows}| propose une option \Definition{left-brace}. Si cette
+option est présente, son contenu est composé à gauche, suivi d'une accolade (d'où le nom)
+puis du corps de l'environnement.\footnote{L'option |left-brace| peut aussi être utilisée
+  sans valeur: dans ce cas, seule l'accolade est tracée.}
 
-Pour la lisibilité, cette option |left-brace| est aussi disponible avec une syntaxe spéciale : on peut la
-rentrer en la mettant entre chevrons (|<| et |>|) juste après le |{DispWithArrows}| (et donc avant
-les éventuels arguments optionnels entre crochets).
+Pour la lisibilité, cette option |left-brace| est aussi disponible avec une syntaxe
+spéciale : on peut la rentrer en la mettant entre chevrons (|<| et |>|) juste après le
+|{DispWithArrows}| (et donc avant les éventuels arguments optionnels entre crochets).
 
 \bigskip
 On peut alors faire des constructions avec distinctions de cas, comme dans l'exemple
-suivant.\footnote{L'environnement |{cases}| de l'\pkg{amsmath} permet de réaliser de telles distinctions de
-  cas mais on ne peut pas utiliser la numérotation automatique des équations. L'environnement |{numcases}| de
-  l'extension \pkg{cases} (de Donald Arseneau) permet d'utiliser ces numéros d'équations, mais, bien entendu, il
-  n'y a pas de composition de flèches.}
+suivant.\footnote{L'environnement |{cases}| de l'\pkg{amsmath} permet de réaliser de
+  telles distinctions de cas mais on ne peut pas utiliser la numérotation automatique des
+  équations. L'environnement |{numcases}| de l'extension \pkg{cases} (de Donald Arseneau)
+  permet d'utiliser ces numéros d'équations, mais, bien entendu, il n'y a pas de
+  composition de flèches.}
 
 
 
@@ -1780,8 +1845,8 @@
 \end{DispWithArrows}
 
 \interitem
-Dans l'exemple suivant, on sous-numérote les équations d'un système avec l'option |subequations| (disponible
-quand l'|amsmath| est chargé).
+Dans l'exemple suivant, on sous-numérote les équations d'un système avec l'option
+|subequations| (disponible quand l'|amsmath| est chargé).
 
 \begin{Verbatim}
 \begin{DispWithArrows}~emphase#< \label{système} \ref*{système} \Leftrightarrow >@%
@@ -1800,24 +1865,39 @@
 \end{DispWithArrows}
 
 \bigskip
-Le système complet est l'équation \ref{système} (cette référence a été obtenue avec |\ref{système}|) et la
-dernière équation est l'équation \ref{dernière-équation} (référence obtenue avec
-|\ref{dernière-équation}|). Notons que |\ref*|, utilisé dans le code ci-dessus, est une variante de
-|ref| qui compose une référence sans créer de lien hypertexte (même quand \pkg{hyperref} est chargé).
+Le système complet est l'équation \ref{système} (cette référence a été obtenue avec
+|\ref{système}|) et la dernière équation est l'équation \ref{dernière-équation} (référence
+obtenue avec |\ref{dernière-équation}|). Notons que |\ref*|, utilisé dans le code
+ci-dessus, est une variante de |ref| qui compose une référence sans créer de lien
+hypertexte (même quand \pkg{hyperref} est chargé).
 
 \bigskip
-On peut souhaiter remplacer l'accolade gauche par un autre délimiteur extensible (gauche). On peut le faire avec
-l'option |replace-left-brace-by|. Par exemple, «|replace-left-brace-by = [\enskip|» va composer avec un crochet et
-ajouter aussi un espace de 1~em après le crochet.
+On peut souhaiter remplacer l'accolade gauche par un autre délimiteur extensible (gauche).
+On peut le faire avec l'option \Definition{replace-left-brace-by}. Par exemple,
+«|replace-left-brace-by = [\enskip|» va composer avec un crochet et ajouter aussi un
+espace de 1~em après le crochet.
 
 \bigskip
 \section{Fonctionnalités avancées}
 
+\subsection{Utilisation avec Beamer}
+
+\colorbox{yellow!50}{\textbf{Nouveau 2.9}}\par\nobreak
+
+\smallskip
+Si l'extension \pkg{witharrows} est utilisée avec Beamer, la commande |\Arrow| accepte un
+argument entre chevrons (après l'argument optionnel entre crochets) pour indiquer les
+«overlays» concernés.
+
+\begin{Verbatim}
+\Arrow[jump=2]~emphase#<3->@{Exemple}
+\end{Verbatim}
+
 \subsection{Utilisation avec plain-TeX}
 \label{plain-TeX}
 
-L'extension \pkg{witharrows} peut être utilisée avec plain-TeX. Pour cela, on doit charger l'extension avec
-|\input|:
+L'extension \pkg{witharrows} peut être utilisée avec plain-TeX. Pour cela, on doit charger
+l'extension avec |\input|:
 %
 \begin{Verbatim}
 \input{witharrows.tex}
@@ -1838,17 +1918,19 @@
 \end{Verbatim}
 
 \medskip
-La version pour plain-TeX de \pkg{witharrows} ne propose pas toutes les fonctionnalités proposées pour la version
-LaTeX. En particulier, les fonctionnalités concernant les numéros d'équations ne sont pas disponibles (puisqu'elles
-reposent sur le système de numérotation de LaTeX).
+La version pour plain-TeX de \pkg{witharrows} ne propose pas toutes les fonctionnalités
+proposées pour la version LaTeX. En particulier, les fonctionnalités concernant les
+numéros d'équations ne sont pas disponibles (puisqu'elles reposent sur le système de
+numérotation de LaTeX).
 
 \subsection{L'option tikz-code : comment changer la forme des flèches}
 
 \label{tikz-code}
 
-L'option |tikz-code| permet à l'utilisateur de changer la forme des flèches.\footnote{Si l'option |wrap-lines|
-  est utilisée dans un environnement |{DispWithArrows}| ou |{DispWithArrows*}|, l'option |tikz-code|
-  n'aura pas d'effet sur les flèches de cet environnement mais uniquement sur les flèches des environnements
+L'option \Definition{tikz-code} permet à l'utilisateur de changer la forme des
+flèches.\footnote{Si l'option |wrap-lines| est utilisée dans un environnement
+  |{DispWithArrows}| ou |{DispWithArrows*}|, l'option |tikz-code| n'aura pas d'effet sur
+  les flèches de cet environnement mais uniquement sur les flèches des environnements
   |{WithArrows}| imbriqués.}
 
 \smallskip
@@ -1856,13 +1938,13 @@
 p.~\pageref{up-and-down}) sont programmées en interne avec |tikz-code|.
 
 \smallskip
-La valeur de cette option doit être une instruction de tracé Tikz valide (avec le point-virgule final) où les trois
-marqueurs |#1|, |#2| et |#3| représentent le point de départ, le point d'arrivée et l'étiquette de
-la flèche.
+La valeur de cette option doit être une instruction de tracé Tikz valide (avec le
+point-virgule final) où les trois marqueurs |#1|, |#2| et |#3| représentent le point de
+départ, le point d'arrivée et l'étiquette de la flèche.
 
 
 \bigskip
-Par défaut, la valeur de |tikz-code| est la suivante :
+La valeur initiale de |tikz-code| est la suivante :
 
 \smallskip
 \qquad |\draw (#1) to node {#3} (#2) ;|
@@ -1869,8 +1951,8 @@
 
 
 \bigskip
-Dans l'exemple suivant, nous remplaçons le chemin par défaut par un chemin avec trois segments (et un 
-nœud recouvrant le deuxième segment).
+Dans l'exemple suivant, nous remplaçons le chemin par défaut par un chemin avec trois
+segments (et un nœud recouvrant le deuxième segment).
 \begin{Verbatim}
 \begin{WithArrows}[format=c,ygap=5pt,interline=4mm,
       ~emphase#tikz-code = {\draw[rounded corners]@
@@ -1912,26 +1994,29 @@
 \end{WithArrows}\]
 
 \bigskip
-L'environnement |{DispWithArrows}| et sa version étoilée |{DispWithArrows*}| fournissent une commande
-|\WithArrowsRightX| qui peut être utilisée dans l'option |tikz-code|. Cette commande fournit
-l'abscisse de la marge droite de la boîte de composition courante (en prenant en compte les éventuels numéros des
-équations). Pour un exemple d'utilisation, voir p.~\pageref{example-WithArrowsRightX}.
+L'environnement |{DispWithArrows}| et sa version étoilée |{DispWithArrows*}| fournissent
+une commande \DefinitionCommande{WithArrowsRightX} qui peut être utilisée dans l'option
+|tikz-code|. Cette commande fournit l'abscisse de la marge droite de la boîte de
+composition courante (en prenant en compte les éventuels numéros des équations). Pour un
+exemple d'utilisation, voir p.~\pageref{example-WithArrowsRightX}.
 
 
 \bigskip
 \subsection{La commande \textbackslash WithArrowsNewStyle}
 
-L'extension \pkg{witharrows} fournit une commande |\WithArrowsNewStyle| pour définir
-des styles d'une manière similaire aux «styles» de Tikz.
+L'extension \pkg{witharrows} fournit une commande \DefinitionCommande{WithArrowsNewStyle}
+pour définir des styles d'une manière similaire aux «styles» de Tikz.
 
 \smallskip
-La commande |\WithArrowsNewStyle| prend deux arguments obligatoires. Le premier est 
-le nom du style et le second est une liste de couples clé-valeur. La portée
-de la definition ainsi faite par |\WithArrowsNewStyle| est le groupe TeX courant.\footnote{On rappelle que, en
-  particulier, tout environnement LaTeX est un groupe TeX.}
+La commande |\WithArrowsNewStyle| prend deux arguments obligatoires. Le premier est le nom
+du style et le second est une liste de couples clé-valeur. La portée de la definition
+ainsi faite par |\WithArrowsNewStyle| est le groupe TeX courant.\footnote{On rappelle que,
+  en particulier, tout environnement LaTeX est un groupe TeX.}
+
 \smallskip
-Le style peut être utilisé comme une clé au niveau du document (avec |\WithArrowsOptions|), au niveau d'un
-environnement (via les arguments optionnels) ou bien encore dans une autre commande |\WithArrowsNewStyle|.
+Le style peut être utilisé comme une clé au niveau du document (avec
+|\WithArrowsOptions|), au niveau d'un environnement (via les arguments optionnels) ou bien
+encore dans une autre commande |\WithArrowsNewStyle|.
 
 \smallskip
 Pour un exemple d'utilisation, voir p.~\pageref{example-WithArrowsRightX}.
@@ -1938,33 +2023,34 @@
 
 
 \bigskip
-Il n'existe pas de style pour les flèches individuelles. Néanmoins, il reste possible de définir de nouvelles
-commandes s'appuyant sur la commande |\Arrow|. Par exemple :
+Il n'existe pas de style pour les flèches individuelles. Néanmoins, il reste possible de
+définir de nouvelles commandes s'appuyant sur la commande |\Arrow|. Par exemple :
 
 \begin{Verbatim}
 \newcommand{\ThickArrow}{\Arrow[tikz=thick]}
 \end{Verbatim}
 
-Cette nouvelle commande |\ThickArrow| garde la possibilité\footnote{Dans la version de \pkg{witharrows} pour LaTeX
-  mais pas dans la version pour plain-TeX.} d'accepter des clés entre crochets. On peut écrire
-|\ThickArrow[jump=2]| car en fait, |\Arrow[tikz=thick][jump=2]| est une syntaxe autorisée pour la commande |\Arrow|
-(on peut mettre un nombre arbitraire d'arguments optionnels entre crochets après la commande |\Arrow|). 
+Cette nouvelle commande |\ThickArrow| garde la possibilité\footnote{Dans la version de
+  \pkg{witharrows} pour LaTeX mais pas dans la version pour plain-TeX.} d'accepter des
+clés entre crochets. On peut écrire |\ThickArrow[jump=2]| car en fait,
+|\Arrow[tikz=thick][jump=2]| est une syntaxe autorisée pour la commande |\Arrow| (on peut
+mettre un nombre arbitraire d'arguments optionnels entre crochets après la commande
+|\Arrow|).
 
 \bigskip
 \subsection{La clé right-overlap}
 
-\colorbox{yellow!50}{\textbf{Nouveau 2.8}}
+La clé \Definition{right-overlap} est une clé booléenne dont la valeur initiale est
+|true|. Elle concerne uniquement les environnements |{WithArrows}|.
 
-La clé |right-overlap| est une clé booléenne dont la valeur initiale est |true|. Elle concerne uniquement les
-environnements |{WithArrows}|.
+Quand la clé |right-overlap| est active, les flèches (et leurs étiquettes) sont tracées en
+débordement et n'entrent donc pas dans le calcul de la boîte TeX contenant l'environnement
+|{WithArrows}|.
 
-Quand la clé |right-overlap| est active, les flèches (et leurs étiquettes) sont tracées en débordement et n'entrent
-donc pas dans le calcul de la boîte TeX contenant l'environnement |{WithArrows}|.
+Quand la clé |right-overlap| est mise à |false| (dans |\WithArrowsOptions| ou bien dans un
+environnement |{WithArrows}| individuel) le débord vers la droite est pris en compte dans
+le calcul des dimensions de la boîte englobante.
 
-Quand la clé |right-overlap| est mise à |false| (dans |\WithArrowsOptions| ou bien dans un environnement
-|{WithArrows}| individuel) le débord vers la droite est pris en compte dans le calcul des dimensions de la boîte
-englobante.
-
 \begin{Verbatim}
 $\left\{\begin{WithArrows}[c,format = rCrCl,~emphase#right-overlap=false@]
 2x & + & 3y & = & 5 \Arrow{on ajoute $L_1$ à $L_2$}\\
@@ -1987,17 +2073,19 @@
 \end{WithArrows}\right.$
 
 \bigskip
-Le réglage |right-overlap = false| peut aussi être utile en conjonction avec la classe |standalone|.
+Le réglage |right-overlap = false| peut aussi être utile en conjonction avec la classe
+|standalone|.
 
 \bigskip
 \subsection{Positionnement vertical des flèches}
 
 Il y a quatre paramètres pour ajuster finement la position verticale des flèches :
-|ygap|, |ystart|, |start-adjust| et |end-adjust|.
+\Definition{ygap}, \Definition{ystart}, \Definition{start-adjust} et
+\Definition{end-adjust}. 
 
 \medskip
-Nous expliquons d'abord le comportement quand les paramètres |start-adjust| et |end-adjust| sont égaux à
-zéro:
+Nous expliquons d'abord le comportement quand les paramètres |start-adjust| et
+|end-adjust| sont égaux à zéro:
 \begin{itemize}
 \item l'option |ystart| représente la distance verticale entre la ligne de base du
 texte et le début de la flèche (valeur initiale : $0.4$~ex);
@@ -2051,9 +2139,9 @@
 
 
 \bigskip
-Voici le comportement par défaut depuis la version 1.13 (les paramètres
-|start-adjust| et |end-ajust| sont utilisés avec la valeur initiale $0.4$~ex). La flèche
-est plus longue et le résultat est plus esthétique.
+Voici le comportement par défaut (les paramètres |start-adjust| et |end-ajust| sont
+utilisés avec la valeur initiale $0.4$~ex). La flèche est plus longue et le résultat est
+plus esthétique.
 
 \medskip
 $\begin{WithArrows}
@@ -2063,22 +2151,15 @@
 
 
 \bigskip
-Il est possible d'utiliser l'option |adjust| qui fixe à la fois |start-adjust| et |end-ajust|.
+Il est possible d'utiliser l'option \Definition{adjust} qui fixe à la fois |start-adjust|
+et |end-ajust|.
 
 \bigskip
-Puisque le mécanisme de |start-adjust| et |end-ajust| a été ajouté dans la 
-version 1.13 of \pkg{witharrows}, cette version n'est pas strictement compatible avec
-les versions précédentes. Néanmoins, il est possible de retrouver le comportement précédent
-en fixant simplement |start-adjust| et |end-adjust| à $0$~pt:
-\begin{Verbatim}
-\WithArrowsOptions{adjust = 0pt}
-\end{Verbatim}
+Une flèche de |jump| égal à~$1$ a une longueur\footnote{On appelle \emph{longueur} de la
+  flèche la différence entre l'ordonnée du point de départ et l'ordonnée du point
+  d'arrivée.} maximale égale au paramètre \Definition{max-length-of-arrow}. La valeur
+initiale de ce paramètre est égale à~$2$~cm.
 
-\bigskip
-Depuis la version 2.1 de \pkg{witharrows}, une flèche de |jump| égal à~$1$ a une longueur\footnote{On appelle
-  \emph{longueur} de la flèche la différence entre l'ordonnée du point de départ et l'ordonnée du point d'arrivée.}
-maximale égale au paramètre |max-length-of-arrow|. La valeur initiale de ce paramètre est égale à~$2$~cm.
-
 Dans l'exemple suivant, la valeur de |max-length-of-arrow| a été fixée à $1.5$~cm.
 \begin{Verbatim}
 \[\begin{WithArrows}[~emphase#max-length-of-arrow = 1.5cm@]
@@ -2144,28 +2225,30 @@
 vous pouvez utiliser une paire |\footnotemark|--|\footnotetext|.
 
 \smallskip
-Il est aussi possible d'extraire les notes de pieds de page avec l'extension \pkg{footnote} ou bien l'extension
-\pkg{footnotehyper}.
+Il est aussi possible d'extraire les notes de pieds de page avec l'extension
+\pkg{footnote} ou bien l'extension \pkg{footnotehyper}.
 
 \smallskip
-Si \pkg{witharrows} est chargée avec l'option |footnote| (avec |\usepackage[footnote]{witharrows}| ou
-avec |\PassOptionsToPackage|), l'extension \pkg{footnote} est chargée (si elle ne l'est pas déjà) et elle est
-utilisée pour extraire les notes de pied de page.
+Si \pkg{witharrows} est chargée avec l'option \Definition{footnote} (avec
+|\usepackage[footnote]{witharrows}| ou avec |\PassOptionsToPackage|), l'extension
+\pkg{footnote} est chargée (si elle ne l'est pas déjà) et elle est utilisée pour extraire
+les notes de pied de page.
 
 \smallskip
-Si \pkg{witharrows} est chargée avec l'option |footnotehyper|, l'extension \pkg{footnotehyper} est chargée (si
-elle ne l'est pas déjà) et elle est utilisée pour extraire les notes de pied de page.
+Si \pkg{witharrows} est chargée avec l'option \Definition{footnotehyper}, l'extension
+\pkg{footnotehyper} est chargée (si elle ne l'est pas déjà) et elle est utilisée pour
+extraire les notes de pied de page.
 
 \smallskip
 Attention : Les extensions \pkg{footnote} et \pkg{footnotehyper} sont incompatibles.
-L'extension \pkg{footnotehyper} est le successeur de l'extension \pkg{footnote}
-et devrait être utilisée préférentiellement. L'extension \pkg{footnote} a quelques défauts ;
-en particulier, elle doit être chargée après l'extension \pkg{xcolor} et elle n'est pas parfaitement
-compatible avec \pkg{hyperref}.
+L'extension \pkg{footnotehyper} est le successeur de l'extension \pkg{footnote} et devrait
+être utilisée préférentiellement. L'extension \pkg{footnote} a quelques défauts ; en
+particulier, elle doit être chargée après l'extension \pkg{xcolor} et elle n'est pas
+parfaitement compatible avec \pkg{hyperref}.
 
 \medskip
-Dans ce document, l'extension \pkg{witharrows} a été chargée avec l'option |footnotehyper| et nous donnons un
-exemple avec une note de pied de page dans l'étiquette d'une flèche :
+Dans ce document, l'extension \pkg{witharrows} a été chargée avec l'option |footnotehyper|
+et nous donnons un exemple avec une note de pied de page dans l'étiquette d'une flèche :
 
 
 \smallskip
@@ -2178,20 +2261,22 @@
 \bigskip
 \subsection{L'option no-arrows}
 
-L'option |no-arrows| est une facilité donnée à l'utilisateur. Avec cette option,
-les flèches ne sont pas tracées. Néanmoins, une analyse des flèches est effectuée et certaines erreurs sont
-détectées (par exemple, si une flèche arrive après la dernière ligne de l'environnement).
+L'option \Definition{no-arrows} est une facilité donnée à l'utilisateur. Avec cette
+option, les flèches ne sont pas tracées. Néanmoins, une analyse des flèches est effectuée
+et certaines erreurs sont détectées (par exemple, si une flèche arrive après la dernière
+ligne de l'environnement).
 
 
 \bigskip
 \subsection{Note pour les utilisateurs de AUCTeX}
 
-Dans un éditeur de texte paramétré pour éditer du LaTeX, les environnements |{DispWithArrows}| et
-|{DispWithArrows*}| devraient être formatés comme l'environnement |{equation}| de LaTeX c'est-à-dire avec un
-formatage adapté au mode mathématique. 
+Dans un éditeur de texte paramétré pour éditer du LaTeX, les environnements
+|{DispWithArrows}| et |{DispWithArrows*}| devraient être formatés comme l'environnement
+|{equation}| de LaTeX c'est-à-dire avec un formatage adapté au mode mathématique.
 
-Dans l'éditeur Emacs avec AUCTeX, cela se fait en ajoutant les chaînes |"DispWithArrows"| et |"DispWithArrows*"| à
-la variable |font-latex-math-environments|. On peut le faire en utilisant l'interface de personnalisation de Emacs :
+Dans l'éditeur Emacs avec AUCTeX, cela se fait en ajoutant les chaînes |"DispWithArrows"|
+et |"DispWithArrows*"| à la variable |font-latex-math-environments|. On peut le faire en
+utilisant l'interface de personnalisation de Emacs :
 
 |M-x customize| > |[Text]| > |[TeX]| > |[Font LaTeX]|
 
@@ -2204,17 +2289,20 @@
 non |\begin{WithArrows}|--|\end{WithArrows}|, etc.).
 
 \smallskip
-En faisant ainsi, les messages d'erreur affichés par \pkg{witharrows} mentionneront (le cas échéant) le nom de
-votre environnement et seront plus faciles à comprendre pour l'utilisateur final.
+En faisant ainsi, les messages d'erreur affichés par \pkg{witharrows} mentionneront (le
+cas échéant) le nom de votre environnement et seront plus faciles à comprendre pour
+l'utilisateur final.
 
 \smallskip
-Par exemple, vous pouvez définir un environnement |{DWA}| qui va être un alias de |{DispWithArrows}|:
+Par exemple, vous pouvez définir un environnement |{DWA}| qui va être un alias de
+|{DispWithArrows}|:
 \begin{BVerbatim}
 \NewDocumentEnvironment {DWA} {} {\DispWithArrows}{\endDispWithArrows}
 \end{BVerbatim}
 
 \smallskip
-Si vous utilisez cet environnement |{DWA}| en mode mathématique, vous aurez le message d'erreur suivant :
+Si vous utilisez cet environnement |{DWA}| en mode mathématique, vous aurez le message
+d'erreur suivant :
 
 \begin{BVerbatim}
 The environment {DWA} should be used only outside math mode.
@@ -2236,9 +2324,9 @@
 
 \subsection{\textbackslash MoveEqLeft}
 
-Il est possible d'utiliser |\MoveEqLeft| de \pkg{mathtools}. Dans ce cas, on doit se souvenir que la commande
-|\MoveEqLeft| a aussi la valeur d'une esperluette (|&|). Il faut en tenir compte pour le positionnement
-d'une éventuelle commande |\Arrow|.
+Il est possible d'utiliser |\MoveEqLeft| de \pkg{mathtools}. Dans ce cas, on doit se
+souvenir que la commande |\MoveEqLeft| a aussi la valeur d'une esperluette (|&|). Il faut
+en tenir compte pour le positionnement d'une éventuelle commande |\Arrow|.
 
 
 %
@@ -2270,8 +2358,9 @@
 \bigskip
 \subsection{Une commande \textbackslash DoubleArrow}
 
-En utilisant l'option |o| (cf. p. \pageref{option-o}) disponible au niveau local, on peut facilement écrire une
-commande |\DoubleArrow| pour deux flèches allant en sens inverse l'une de l'autre.
+En utilisant l'option |o| (cf. p. \pageref{option-o}) disponible au niveau local, on peut
+facilement écrire une commande |\DoubleArrow| pour deux flèches allant en sens inverse
+l'une de l'autre.
 
 \bigskip
 \begin{Verbatim}
@@ -2358,9 +2447,9 @@
 environnements imbriqués à l'intérieur).}
 
 \smallskip
-La valeur initiale de |tikz-code| est |\draw (#1) to node {#3} (#2) ;|
-où les trois marqueurs |#1|, |#2| et |#3| représentent le point de départ, le point d'arrivée 
-et l'étiquette de la flèche.
+La valeur initiale de |tikz-code| est |\draw (#1) to node {#3} (#2) ;| où les trois
+marqueurs |#1|, |#2| et |#3| représentent le point de départ, le point d'arrivée et
+l'étiquette de la flèche.
 
 
 \bigskip
@@ -2408,12 +2497,13 @@
 \subsubsection{Exemple 2}
 
 \label{example-WithArrowsRightX}
-Il est possible de modifier l'exemple précédent pour avoir «|text width|» calculé automatiquement en fonction 
-de la marge droite (d'une manière similaire à l'option |wrap-lines|) dans les environnements
-|{DispWithArrows}| et |{DispWithArrows*}|. Dans la définition de |tikz-code|, nous utilisons la commande 
-|\WithArrowsRightX| qui donne l'abscisse de la marge droite de la boîte de composition (pour TeX, il s'agit d'une commande
-et non d'une dimension). Pour la lisibilité, nous avons utilisé un style de \pkg{witharrows}. Cet exemple nécessite
-l'extension Tikz \pkg{calc}. 
+Il est possible de modifier l'exemple précédent pour avoir «|text width|» calculé
+automatiquement en fonction de la marge droite (d'une manière similaire à l'option
+|wrap-lines|) dans les environnements |{DispWithArrows}| et |{DispWithArrows*}|. Dans la
+définition de |tikz-code|, nous utilisons la commande  |\WithArrowsRightX| qui donne
+l'abscisse de la marge droite de la boîte de composition (pour TeX, il s'agit d'une
+commande et non d'une dimension). Pour la lisibilité, nous avons utilisé un style de
+\pkg{witharrows}. Cet exemple nécessite l'extension Tikz \pkg{calc}. 
 
 \begin{Verbatim}
 \WithArrowsNewStyle{MonStyle}       
@@ -2471,8 +2561,9 @@
 \bigskip
 \subsubsection{Exemple 3}
 
-Dans l'exemple suivant, nous changeons la forme de la flèche selon que la rangée de départ est plus longue ou
-plus courte que la rangée d'arrivée. Cet exemple nécessite l'extension \pkg{calc} de Tikz.
+Dans l'exemple suivant, nous changeons la forme de la flèche selon que la rangée de départ
+est plus longue ou plus courte que la rangée d'arrivée. Cet exemple nécessite l'extension
+\pkg{calc} de Tikz. 
 
 
 \begin{Verbatim}
@@ -2534,10 +2625,10 @@
 
 \subsection{Boucle numérotée automatique}
 
-Supposons que nous voulions tracer une boucle avec des flèches numérotées. Dans ce but, il est
-possible d'écrire une commande dédiée |\NumberedLoop| qui fera le travail quand elle 
-sera utilisée dans le |code-after|. Dans l'exemple suivant, nous avons écrit cette commande avec
-|\foreach| de \pkg{pgffor} (cette extension est chargée quand \pkg{witharrows} est chargé.).
+Supposons que nous voulions tracer une boucle avec des flèches numérotées. Dans ce but, il
+est possible d'écrire une commande dédiée |\NumberedLoop| qui fera le travail quand elle
+sera utilisée dans le |code-after|. Dans l'exemple suivant, nous avons écrit cette
+commande avec |\foreach| de \pkg{pgffor} (cette extension est chargée quand \pkg{witharrows} est chargé.).
 
 \begin{Verbatim}
 \NewDocumentCommand \NomberedLoop {}
@@ -2548,8 +2639,8 @@
 \end{Verbatim}
 
 La commande |\WithArrowsNbLines| est une commande disponible dans le |code-after| qui donne
-le nombre total de lignes (=rangées) dans l'environnement courant (pour TeX, il s'agit d'une commande et non d'un
-compteur).
+le nombre total de lignes (=rangées) dans l'environnement courant (pour TeX, il s'agit
+d'une commande et non d'un compteur).
 
 
 \bigskip
@@ -2606,10 +2697,10 @@
 
 \section*{Autre documentation}
 
-Le document |witharrows.pdf| (fourni avec l'extension \pkg{witharrows}) contient une traduction anglaise de la
-documentation ici présente, ainsi que le code source commenté et un historique des versions. 
+Le document |witharrows.pdf| (fourni avec l'extension \pkg{witharrows}) contient une
+traduction anglaise de la documentation ici présente, ainsi que le code source commenté et
+un historique des versions.  
 
-
 \tableofcontents
 
 \end{document}

Modified: trunk/Master/texmf-dist/doc/generic/witharrows/witharrows.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/source/generic/witharrows/witharrows.dtx
===================================================================
--- trunk/Master/texmf-dist/source/generic/witharrows/witharrows.dtx	2024-10-05 19:36:34 UTC (rev 72470)
+++ trunk/Master/texmf-dist/source/generic/witharrows/witharrows.dtx	2024-10-05 19:36:44 UTC (rev 72471)
@@ -1,6 +1,6 @@
 %\iffalse meta-comment
 %
-% Copyright (C) 2017-2023 by F. Pantigny
+% Copyright (C) 2017-2024 by F. Pantigny
 % -----------------------------------
 %
 % This file may be distributed and/or modified under the
@@ -15,8 +15,8 @@
 %
 % \fi
 % \iffalse
-\def\myfileversion{2.8b}
-\def\myfiledate{2023/08/24}
+\def\myfileversion{2.9}
+\def\myfiledate{2024/10/05}
 %
 %
 %<*batchfile>
@@ -26,7 +26,7 @@
 \usedir{tex/latex/witharrows}
 \preamble
 
-Copyright (C) 2017-2023 by F. Pantigny
+Copyright (C) 2017-2024 by F. Pantigny
 -----------------------------------
 
 This file may be distributed and/or modified under the
@@ -57,8 +57,17 @@
 \usepackage{amssymb}
 \usepackage[only,llbracket,rrbracket]{stmaryrd}
 \usepackage{varwidth}
+\usepackage{upquote}
 \labelformat{equation}{(#1)}
 \NewDocumentEnvironment {scope} {} {} {}
+
+\NewDocumentCommand{\Definition}{m}
+  {{\setlength{\fboxsep}{1pt}\colorbox{gray!20}{\ttfamily \vphantom{gl}#1}}}
+
+\NewDocumentCommand{\DefinitionCommand}{m}
+  {{\setlength{\fboxsep}{1pt}\colorbox{gray!20}{\ttfamily
+        \vphantom{gl}\textbackslash #1}}}
+
 \def\interitem{\vspace{7mm plus 2 mm minus 3mm}}
 \def\emphase{\bgroup\color{RoyalPurple}\let\next=}
 \fvset{commandchars=\~\#\@,formatcom={\color{gray}}}
@@ -157,10 +166,10 @@
 % The command |\Arrow| has several options. These options can be put between
 % square brackets, before, or after the mandatory argument.
 %
-% The option |jump| gives the number\footnote{It's not possible to give a
-% non-positive value to |jump|. See below (p.~\pageref{Backwards}) the way to
-% draw an arrow which goes backwards.} of rows the arrow must jump (the default
-% value is, of course,~$1$).
+% The option \Definition{jump} gives the number\footnote{It's not possible to
+% give a non-positive value to |jump|. See below (p.~\pageref{Backwards}) the
+% way to draw an arrow which goes backwards.} of rows the arrow must jump (the
+% default value is, of course,~$1$).
 %
 % 
 % \begin{Verbatim}
@@ -194,8 +203,9 @@
 % \end{WithArrows}$
 %
 % \interitem
-% The option |xoffset| shifts the arrow to the right (we usually don't want the
-% arrows to be stucked on the text). The initial value of |xoffset| is $3$~mm.
+% The option \Definition{xoffset} shifts the arrow to the right (we usually
+% don't want the arrows to be stucked on the text). The initial value of
+% |xoffset| is $3$~mm.
 % \begin{Verbatim}
 % $\begin{WithArrows}
 % A & = \bigl((a+b)+1\bigr)^2 
@@ -213,9 +223,9 @@
 %
 % \interitem 
 % The arrows are drawn with Tikz. That's why the command |\Arrow| has an option
-% |tikz| which can be used to give to the arrow (in fact, the command |\path| of
-% Tikz) the options proposed by Tikz for such an arrow. The following example
-% gives an thick arrow.
+% \Definition{tikz} which can be used to give to the arrow (in fact, the command
+% |\path| of Tikz) the options proposed by Tikz for such an arrow. The following
+% example gives an thick arrow.
 % \begin{Verbatim}
 % $\begin{WithArrows}
 % A & = (a+1)^2 \Arrow[~emphase#tikz=thick@]{we expand} \\
@@ -336,10 +346,10 @@
 % the nodes are created with the option |align=left|, and, thus, it becomes
 % possible.}. However, if we put a |\\| , a command of font placed in the
 % beginning of the text will have effect only until the first command |\\| (like
-% in an environment |{tabular}|). That's why Tikz gives an option |font| to
-% modify the font of the whole text. Nevertheless, if we use the option
-% |tikz={font={\bfseries}}|, the default specification of |\small| and
-% |\itshape| will be overwritten.
+% in an environment |{tabular}|). That's why Tikz provides an option
+% \Definition{font} to modify the font of the whole text. Nevertheless, if we
+% use the option |tikz={font={\bfseries}}|, the default specification of
+% |\small| and |\itshape| will be overwritten.
 % %
 % \begin{Verbatim}
 % $\begin{WithArrows}
@@ -382,9 +392,9 @@
 %
 %
 % \interitem
-% The environment |{WithArrows}| has an option |displaystyle|. With this option,
-% all the elements are composed in |\displaystyle| (like in an environment
-% |{aligned}| of \pkg{amsmath}).
+% The environment |{WithArrows}| has an option \Definition{displaystyle}. With
+% this option, all the elements are composed in |\displaystyle| (like in an
+% environment |{aligned}| of \pkg{amsmath}).
 %
 % \medskip
 % Without the option |displaystyle|:
@@ -426,16 +436,15 @@
 %
 % \interitem 
 % Almost all the options can also be set at the document level with the command
-% |\WithArrowsOptions|. In this case, the scope of the declarations is the
-% current TeX group (these declarations are ``semi-global''). For example, if we
-% want all the environments |{WithArrows}| composed in |\displaystyle| with blue
-% arrows, we can write
+% \DefinitionCommand{WithArrowsOptions}. In this case, the scope of the
+% declarations is the current TeX group (these declarations are
+% ``semi-global''). For example, if we want all the environments |{WithArrows}|
+% composed in |\displaystyle| with blue arrows, we can write
 % |\WithArrowsOptions{displaystyle,tikz=blue}|.\footnote{It's also possible to
 % configure \pkg{witharrows} by modifying the Tikz style |WithArrows/arrow|
 % which is the style used by \pkg{witharrows} when drawing an arrow. For
 % example, to have the labels in blue with roman (upright) types, one can use
-% the following instruction: 
-% |\tikzset{WithArrows/arrow/.append style = {blue,font = {}}}|.}
+% the following instruction: |\tikzset{WithArrows/arrow/.append style = {blue,font = {}}}|.}
 % 
 % \begin{Verbatim}
 % ~emphase#\WithArrowsOptions{displaystyle,tikz=blue}@
@@ -464,9 +473,9 @@
 % However, a previouly defined command |\Arrow| may still be useful in an
 % environment |{WithArrows}|. If we want to use it in such an environment, it's
 % possible to change the name of the command |\Arrow| of the package
-% \pkg{witharrows}: there is an option |command-name| for this purpose.
-% The new name of the command must be given to the option \emph{without} the
-% leading backslash.
+% \pkg{witharrows}: there is an option \Definition{command-name} for this
+% purpose. The new name of the command must be given to the option
+% \emph{without} the leading backslash.
 % %
 % \begin{Verbatim}
 % \NewDocumentCommand {\Arrow} {} {\longmapsto}
@@ -488,11 +497,11 @@
 %
 %
 % \interitem 
-% The environment |{WithArrows}| provides also two options |code-before| and
-% |code-after| for LaTeX code that will be executed at the beginning and at the
-% end of the environment. These options are not designed to be hooks (they are
-% available only at the environment level and they do not apply to the nested
-% environments).
+% The environment |{WithArrows}| provides also two options
+% \Definition{code-before} and \Definition{code-after} for LaTeX code that will
+% be executed at the beginning and at the end of the environment. These options
+% are not designed to be hooks (they are available only at the environment level
+% and they do not apply to the nested environments).
 % %
 % \begin{Verbatim}
 % $\begin{WithArrows}[~emphase#code-before = \color{blue}@]
@@ -507,11 +516,12 @@
 % \end{WithArrows}$
 % 
 % \medskip 
-% Special commands are available in |code-after|: a command |\WithArrowsNbLines|
-% which gives the number of lines (=rows) of the current environment (this is a
-% command and not a counter), a special form of the command |\Arrow| and the
-% command |\MultiArrow|: these commands are described in the section concerning
-% the nested environments, p.~\pageref{NestedEnv}.
+% Special commands are available in |code-after|: a command
+% \DefinitionCommand{WithArrowsNbLines} which gives the number of lines (=rows)
+% of the current environment (this is a command and not a counter), a special
+% form of the command |\Arrow| and the command |\MultiArrow|: these commands are
+% described in the section concerning the nested environments,
+% p.~\pageref{NestedEnv}.
 %
 % \interitem
 % \section{Numbers of columns}
@@ -518,9 +528,9 @@
 %
 % So far, we have used the environment |{WithArrows}| with two columns. However,
 % it's possible to use the environment with an arbitrary number of columns with
-% the option |format|. The value given to this option is like the preamble of an
-% environment |{array}|, that is to say a sequence of letters |r|, |c| and |l|,
-% but also |R|, |C| and |L|.
+% the option \Definition{format}. The value given to this option is like the
+% preamble of an environment |{array}|, that is to say a sequence of letters
+% |r|, |c| and |l|, but also |R|, |C| and |L|.
 %
 % \smallskip
 % The letters |R|, |C| and |L| add empty groups |{}| which provide correct
@@ -606,15 +616,16 @@
 % called \emph{left nodes}. The nodes of the right side are aligned vertically
 % on the right side of the array. These nodes will be called \emph{right nodes}.
 %
-% By default, the arrows use the right nodes. We will say that they are in |rr|
-% mode ($r$ for \emph{right}). These arrows are vertical (we will say that an
-% arrow is \emph{vertical} when its two ends have the same abscissa).
+% By default, the arrows use the right nodes. We will say that they are in
+% \Definition{rr} mode ($r$ for \emph{right}). These arrows are vertical (we
+% will say that an arrow is \emph{vertical} when its two ends have the same
+% abscissa).
 %
 %
 % \smallskip
 % However, it's possible to use the left nodes, or a combination of left and
-% right nodes, with one of the options |lr|, |rl| and |ll| ($l$ for
-% \emph{left}). Those arrows are, usually, not vertical.
+% right nodes, with one of the options \Definition{lr}, \Definition{rl} and
+% \Definition{ll} ($l$ for \emph{left}). Those arrows are, usually, not vertical.
 %
 %
 % Therefore
@@ -636,8 +647,9 @@
 %
 %
 % \interitem
-% There is also an option called |i| (\emph{i} for \emph{intermediate}). With
-% this option, the arrow is vertical and at the leftmost position.
+% There is also an option called \Definition{i} (\emph{i} for
+% \emph{intermediate}). With this option, the arrow is vertical and at the
+% leftmost position.
 %
 % \begin{Verbatim}
 % $\begin{WithArrows}
@@ -657,9 +669,9 @@
 %
 %
 % \interitem 
-% The environment |{WithArrows}| gives also a |group| option. With this option,
-% \emph{all} the arrows of the environment are grouped on a same vertical line
-% and at a leftmost position.
+% The environment |{WithArrows}| gives also a \Definition{group} option. With
+% this option, \emph{all} the arrows of the environment are grouped on a same
+% vertical line and at a leftmost position.
 % \label{group}
 % %
 % \begin{Verbatim}[formatcom=\small\color{gray}]
@@ -685,7 +697,7 @@
 %
 %
 % \bigskip
-% The environment |{WithArrows}| gives also a |groups| option (with a \emph{s}
+% The environment |{WithArrows}| gives also a \Definition{groups} option (with a \emph{s}
 % in the name). With this option, the arrows are divided into several
 % ``groups''. Each group is a set of connected\footnote{More precisely: for each
 % arrow $a$, we note $i(a)$ the number of its initial row and $f(a)$ the number
@@ -712,7 +724,7 @@
 % to an individual arrow\footnote{Such arrow will be called
 % \emph{independent} in the technical documentation}. Such arrow will be drawn
 % irrespective of the groups. It's also possible to start a new group by
-% applying the option |new-group| to an given arrow.
+% applying the option \Definition{new-group} to an given arrow.
 % 
 % \bigskip
 % If desired, the option |group| or the option |groups| can be given to the
@@ -773,7 +785,7 @@
 % \end{WithArrows}$
 %
 % \medskip
-% On the local level, there exists a key |o|. This key is available only when
+% On the local level, there exists a key \Definition{o}. This key is available only when
 % the option |group| or the option |groups| is in force (cf.~p.~\pageref{group}).
 %
 % An arrow of type |o| is drawn with an horizontal shift (such as those set by
@@ -836,7 +848,7 @@
 %
 % \label{up-and-down}
 % At the local level, there are also two options for individual arrows, called
-% ``|up|'' and ``|down|''. The following example illustrates these types of
+% \Definition{up} and \Definition{down}. The following example illustrates these types of
 % arrows:
 % 
 % \begin{Verbatim}
@@ -869,10 +881,10 @@
 % In fact, the options |up| and |down| may be used with a value which is a list
 % of couples key-value. 
 % \begin{itemize}
-% \item The key |radius| is the radius of the rounded corner of the
+% \item The key \Definition{radius} is the radius of the rounded corner of the
 % arrow.\footnote{The initial value of this parameter is $4$~pt, which is the
 % default value of the ``|rounded corners|'' of Tikz.}
-% \item The key |width| is the width of the (horizontal part of) the arrow:
+% \item The key \Definition{width} is the width of the (horizontal part of) the arrow:
 % \begin{itemize}
 % \item with the value |max|, the width of the arrow is ajusted with respect of
 % the position of the nodes (that's the behaviour by default of the arrows |up|
@@ -919,8 +931,8 @@
 %
 % \vspace{1cm}
 % The options relative to the arrows |up| and |down| can be fixed at the global
-% or environment level with the key |up-and-down|. This key may also be used as
-% prefix as illustrated now.
+% or environment level with the key \Definition{up-and-down}. This key may also
+% be used as prefix as illustrated now.
 % %
 % \begin{Verbatim}
 % \WithArrowsOptions{up-and-down/width=min}
@@ -960,7 +972,7 @@
 % \interitem 
 % In the environments of \pkg{amsmath} (or \pkg{mathtools}), the spacing between
 % rows is fixed by a parameter called |\jot| (it's a dimension and not a skip).
-% That's also the case for the environment |{WithArrows}|. An option |jot| has
+% That's also the case for the environment |{WithArrows}|. An option \Definition{jot} has
 % been given to the environment |{WithArrows}| in order to change the value of
 % this parameter |\jot| for a given environment.\footnote{It's also possible to
 % change |\jot| with the environment |{spreadlines}| of \pkg{mathtools}.}
@@ -1012,8 +1024,8 @@
 %
 % \bigskip
 % Maybe this doesn't correspond to the desired outcome. That's why an option
-% |interline| is proposed. It's possible to use a skip (=glue) for this option.
-% %
+% \Definition{interline} is proposed. It's possible to use a skip (=glue) for
+% this option. 
 % \begin{Verbatim}
 % $\begin{WithArrows}[~emphase#interline=2ex@]
 % \varphi(x,y) = 0  & \Leftrightarrow (x+y)^2 + (x+2y)^2 = 0 
@@ -1042,9 +1054,10 @@
 %
 % \interitem
 % Like the environment |{aligned}|, |{WithArrows}| has an option of placement
-% which can assume the values |t|, |c| or |b|. However, the initial value is not
-% |c| but |t|. If desired, it's possible to have the |c| value as the default
-% with the command |\WithArrowsOptions{c}| at the beginning of the document.
+% which can assume the values \Definition{t}, \Definition{c} or \Definition{b}.
+% However, the initial value is not |c| but |t|. If desired, it's possible to
+% have the |c| value as the default with the command |\WithArrowsOptions{c}| at
+% the beginning of the document. 
 % %
 % \begin{Verbatim}
 % So\enskip
@@ -1130,8 +1143,8 @@
 %
 % The environments |{WithArrows}| can be nested. In this case, the options given
 % to the encompassing environment applies also to the inner ones (with logical
-% exceptions for |interline|, |code-before| and |code-after|). The command |Arrow|
-% can be used as usual in each environment |{WithArrows}|.
+% exceptions for |interline|, |code-before| and |code-after|). The command
+% |\Arrow| can be used as usual in each environment |{WithArrows}|.
 % 
 % \begin{Verbatim}[formatcom=\small\color{gray}]
 % $~emphase#\begin{WithArrows}@
@@ -1295,11 +1308,11 @@
 %
 %  
 % \interitem
-% The package \pkg{witharrows} gives also another command available only in
-% |code-after|: the command |\MultiArrow|. This command draws a ``rak''. The list
-% of the rows of the environment concerned by this rak are given in the first
-% argument of the command |\MultiArrow|. This list is given with the syntax of
-% the list in a |\foreach| command of \pkg{pgffor}.
+% The package \pkg{witharrows} provides also another command available only in
+% |code-after|: the command \DefinitionCommand{MultiArrow}. This command draws a
+% ``rak''. The list of the rows of the environment concerned by this rak are
+% given in the first argument of the command |\MultiArrow|. This list is given
+% with the syntax of the list in a |\foreach| command of \pkg{pgffor}.
 %
 %
 % \begin{Verbatim}
@@ -1380,22 +1393,22 @@
 % The package \pkg{witharrows} provides some tools facilitating the use of these
 % nodes:
 % \begin{itemize}[beginpenalty=10000]
-% \item the command |\WithArrowsLastEnv| gives the number of the last
-% environment of level~$0$ (\emph{i.e.} which is not included in another
-% environment of the package \pkg{witharrows});
+% \item the command \DefinitionCommand{WithArrowsLastEnv} gives the number of
+% the last environment of level~$0$ (\emph{i.e.} which is not included in
+% another environment of the package \pkg{witharrows});
 %
-% \item a name can be given to a given environment with the option |name| and,
-% in this case, the nodes created in the environment will have aliases
-% constructed with this name;
+% \item a name can be given to a given environment with the option
+% \Definition{name} and, in this case, the nodes created in the environment will
+% have aliases constructed with this name;
 %
-% \item the Tikz style |WithArrows/arrow| is the style used by \pkg{witharrows}
-% when drawing an arrow\footnote{More precisely, this style is given to the Tikz
-% option ``|every path|'' before drawing the arrow with the code of the option
-% |tikz-code|. This style is modified (in TeX scopes) by the option |tikz| of
-% \pkg{witharrows}.};
+% \item the Tikz style \Definition{WithArrows/arrow} is the style used by
+% \pkg{witharrows} when drawing an arrow\footnote{More precisely, this style is
+% given to the Tikz option ``|every path|'' before drawing the arrow with the
+% code of the option |tikz-code|. This style is modified (in TeX scopes) by the
+% option |tikz| of \pkg{witharrows}.};
 %
-% \item the Tikz style |WithArrows/arrow/tips| is the style for the tip of the
-% arrow (loaded by |WithArrows/arrow|).
+% \item the Tikz style \Definition{WithArrows/arrow/tips} is the style for the
+% tip of the arrow (loaded by |WithArrows/arrow|).
 % \end{itemize}
 %
 % For example, we can draw an arrow from \texttt{wa-\WithArrowsLastEnv-2-1-2-r.south}
@@ -1498,9 +1511,9 @@
 % \label{DispWithArrows}
 % 
 % As previously said, the environment |{WithArrows}| bears similarities with the
-% environment |{aligned}| of \pkg{amsmath} (and |mathtools|). This extension also
-% provides an environment |{DispWithArrows}| which is similar to the
-% environments |{align}| and |{flalign}| of \pkg{amsmath}.
+% environment |{aligned}| of \pkg{amsmath} (and |mathtools|). This extension
+% also provides an environment \Definition{\{DispWithArrows\}} which is similar
+% to the environments |{align}| and |{flalign}| of \pkg{amsmath}.
 %
 % \medskip
 % The environment |{DispWithArrows}| must be used \emph{outside} math mode. Like
@@ -1517,12 +1530,14 @@
 % \end{DispWithArrows}
 %
 % \medskip
-% It's possible to use the command |\notag| (or |\nonumber|) to suppress a tag. 
+% It's possible to use the command \DefinitionCommand{notag} (or |\nonumber|) to
+% suppress a tag.  
 % 
-% It's possible to use the command |\tag| to put a special tag (e.g. $\star$).
+% It's possible to use the command \DefinitionCommand{tag} to put a special tag
+% (e.g. $\star$). 
 %
 % It's also possible to put a label to the line of an equation with the command
-% |\label|.
+% \DefinitionCommand{label}.
 % 
 % These commands must be in the second column of the environment.
 % \begin{Verbatim}
@@ -1559,7 +1574,7 @@
 %
 % \medskip
 % It's also possible to suppress all the autogenerated numbers with the boolean
-% option |notag| (or |nonumber|), at the global or environment level. There is
+% option \Definition{notag} (or |nonumber|), at the global or environment level. There is
 % also an environment |{DispWithArrows*}| which suppresses all these
 % numbers.\footnote{Even in this case, it's possible to put a ``manual tag''
 % with the command |\tag|.}
@@ -1575,7 +1590,7 @@
 % \end{DispWithArrows*}
 %
 % \medskip
-% In fact, there is also another option |tagged-lines| which can be used to
+% In fact, there is also another option \Definition{tagged-lines} which can be used to
 % control the lines that will be tagged. The value of this option is a list of
 % the numbers of the lines that must to be tagged. For example, with the option
 % |tagged-lines = {first,3,last}|, only the first, the third and the last line
@@ -1595,11 +1610,12 @@
 % \end{DispWithArrows}
 %
 % \bigskip
-% With the option |fleqn|, the environment is composed flush left (in a way
-% similar to the option |fleqn| of the standard classes of LaTeX). In this case,
-% the left margin can be controlled with the option |mathindent| (with a name
+% With the option \Definition{fleqn}, the environment is composed flush left (in
+% a way similar to the option |fleqn| of the standard classes of LaTeX). In this case,
+% the left margin can be controlled with the option \Definition{mathindent} (with a name
 % inspired by the parameter |\mathindent| of standard LaTeX. The initial value
-% of this parameter is 25~pt.
+% of this parameter is 25~pt. It's possible to use as value for that key a \emph{skip}
+% (=\emph{glue}). 
 %
 % \begin{Verbatim}
 % \begin{DispWithArrows}[~emphase#fleqn,mathindent = 1cm@]
@@ -1631,8 +1647,8 @@
 % If the package \pkg{amsmath} is loaded, it's possible to use the command
 % |\intertext| in the environments |{DispWithArrows}|. It's also possible to use
 % the environment |{subequations}|. However, there is, for the environments
-% |{DispWithArrows}|, an option |subequations| to encapsulate the environment in
-% an environment |{subequations}|.
+% |{DispWithArrows}|, an option \Definition{subequations} to encapsulate the
+% environment in an environment |{subequations}|.
 %
 % \medskip
 % In the following example, the key |{subequations}| is fixed by the command
@@ -1670,8 +1686,8 @@
 % If there is not enough space to put the tag at the end of a line, there is no
 % automatic positioning of the label on the next line (as in the environments of
 % \pkg{amsmath}). However, in |{DispWithArrows}|, the user can use the command
-% |\tagnextline| to manually require the composition of the tag on the following
-% line.
+% \DefinitionCommand{tagnextline} to manually require the composition of the tag
+% on the following line.
 % \begin{Verbatim}
 % \begin{DispWithArrows}[displaystyle]
 % S_{2(p+1)}
@@ -1703,8 +1719,9 @@
 %
 % \bigskip
 % The environments |{DispWithArrows}| and |{DispWithArrows*}| provide an option
-% |wrap-lines|. With this option, the lines of the label are automatically
-% wrapped on the right.\footnotemark[\thefnnohyphen]\label{wrap-lines}
+% \Definition{wrap-lines}. With this option, the lines of the label are
+% automatically wrapped on the
+% right.\footnotemark[\thefnnohyphen]\label{wrap-lines}
 %
 % \begin{Verbatim}
 % \begin{DispWithArrows*}[displaystyle,~emphase#wrap-lines@]
@@ -1814,10 +1831,11 @@
 %
 % \subsection{The option <...> of DispWithArrows}
 %
-% The environment |{DispWithArrows}| provides an option |left-brace|. When present,
-% the value of this option is composed on the left, followed by a curly brace
-% (hence the name) and the body of the environment.\footnote{The option
-% |left-brace| can also be used without value: in this case, only the brace is drawn...}
+% The environment |{DispWithArrows}| provides an option \Definition{left-brace}.
+% When present, the value of this option is composed on the left, followed by a
+% curly brace (hence the name) and the body of the environment.\footnote{The
+% option |left-brace| can also be used without value: in this case, only the
+% brace is drawn...}
 %
 % For lisibility, this option |left-brace| is also available with a special
 % syntax: it's possible to give this option between angle brackets  
@@ -1880,7 +1898,7 @@
 % \pkg{hyperref} is loaded).
 %
 % \bigskip
-% With the option |replace-left-brace-by|, it's possible to replace the
+% With the option \Definition{replace-left-brace-by}, it's possible to replace the
 % left curly brace by another extensible delimiter. For example,
 % ``|replace-left-brace-by = [\enskip|'' will compose with a bracket and add also a
 % |\enskip| after this bracket.
@@ -1888,6 +1906,19 @@
 % \interitem
 % \section{Advanced features}
 %
+% \subsection{Utilisation with Beamer}
+%
+% \colorbox{yellow!50}{\textbf{New 2.9}}\par\nobreak
+%
+% \smallskip
+% If \pkg{witharrows} is used with Beamer, the command |\Arrow| takes in as
+% argument between angular brackets (after the optional argument in square
+% brackets) to specify the overlays which are implied.
+%
+% \begin{Verbatim}
+% \Arrow[jump=2]~emphase#<3->@{Example}
+% \end{Verbatim}
+% 
 % \subsection{Use with plain-TeX}
 % \label{plain-TeX}
 %
@@ -1921,7 +1952,8 @@
 %
 % \label{tikz-code}
 %
-% The option |tikz-code| allows the user to change the shape of the arrows.\footnote{If the option |wrap-lines| is used in an environment
+% The option \Definition{tikz-code} allows the user to change the shape of the
+% arrows.\footnote{If the option |wrap-lines| is used in an environment
 % |{DispWithArrows}| or |{DispWithArrows*}|, the option |tikz-code| will have no
 % effect for the arrows of this environment but only for the arrows in the
 % nested environments |{WithArrows}|.}
@@ -1936,7 +1968,7 @@
 % the end point and the label of the arrow.
 %
 % \bigskip
-% By default, the value is the following:
+% The initial value is the following:
 % 
 % \smallskip
 % \qquad |\draw (#1) to node {#3} (#2) ;|
@@ -1987,10 +2019,11 @@
 %
 % \bigskip
 % The environments |{DispWithArrows}| and its starred version
-% |{DispWithArrows*}| provide a command |\WithArrowsRightX| which can be used in
-% a definition of |tikz-code|. This command gives the $x$-value of the right side
-% of the composition box (taking into account the eventual tags of the
-% equations). For an example of use, see p.~\pageref{example-WithArrowsRightX}.
+% |{DispWithArrows*}| provide a command \DefinitionCommand{WithArrowsRightX}
+% which can be used in a definition of |tikz-code|. This command gives the
+% $x$-value of the right side of the composition box (taking into account the
+% eventual tags of the equations). For an example of use, see
+% p.~\pageref{example-WithArrowsRightX}.
 %
 %
 % \bigskip
@@ -2031,10 +2064,9 @@
 %
 % \subsection{The key right-overlap}
 %
-% \colorbox{yellow!50}{\textbf{New 2.8}}
 % 
-% The key |right-overlap| is a boolean key whose initial value is |true|. It
-% deals with the environments |{WithArrows}| only.
+% The key \Definition{right-overlap} is a boolean key whose initial value is
+% |true|. It deals with the environments |{WithArrows}| only.
 %
 % When the key |right-overlap| is in force, the arrows (and their labels) are
 % drawn in an overlapping position and are not relevant for the computation of
@@ -2074,7 +2106,8 @@
 % \subsection{Vertical positioning of the arrows}
 % 
 % There are four parameters for fine tuning of the vertical positioning of the
-% arrows : |ygap|, |ystart|, |start-adjust| and |end-adjust|.
+% arrows : \Definition{ygap}, \Definition{ystart}, \Definition{start-adjust} and
+% \Definition{end-adjust}. 
 % 
 % \medskip
 % We first explain the behaviour when the parameters |start-adjust| and
@@ -2131,10 +2164,10 @@
 % \end{WithArrows}$
 %
 %
-% \bigskip
-% Here is the standard behaviour since version 1.13 (the parameters
-% |start-adjust| and |end-ajust| are used with the initial value $0.4$~ex). The
-% arrow is longer and the result is more aesthetic.
+% \bigskip 
+% Here is the standard behaviour (the parameters |start-adjust| and |end-ajust|
+% are used with the initial value $0.4$~ex). The arrow is longer and the result
+% is more aesthetic.
 % 
 % \medskip
 % $\begin{WithArrows}
@@ -2144,15 +2177,15 @@
 %
 %
 % \bigskip
-% It's also possible to use the option |adjust| which sets both |start-adjust|
-% and |end-ajust|.
+% It's also possible to use the option \Definition{adjust} which sets both
+% |start-adjust| and |end-ajust|.
 %
 % \interitem
-% Since the version 2.1 of \pkg{witharrows}, an arrow of |jump| equal to~$1$ has
-% a maximal length\footnote{We call \emph{length} of an arrow the difference
-% between the $y$-value of its start point and the $y$~value of its end point.}
-% equal to the parameter |max-length-of-arrow|. The initial value of this
-% parameter is $2$~cm.
+% An arrow of |jump| equal to~$1$ has a maximal length\footnote{We call
+% \emph{length} of an arrow the difference between the $y$-value of its start
+% point and the $y$~value of its end point.} equal to the parameter
+% \Definition{max-length-of-arrow}. The initial value of this parameter is
+% $2$~cm. 
 % 
 % In the following example, the value of |max-length-of-arrow| has been fixed to
 % $1.5$~cm.
@@ -2224,15 +2257,15 @@
 % \pkg{footnote} or the package \pkg{footnotehyper}.
 %
 % \smallskip
-% If \pkg{witharrows} is loaded with the option |footnote| (with
+% If \pkg{witharrows} is loaded with the option \Definition{footnote} (with
 % |\usepackage[footnote]{witharrows}| or with |\PassOptionsToPackage|), the
 % package \pkg{footnote} is loaded (if it is not yet loaded) and it is used to
 % extract the footnotes.
 %
 % \smallskip
-% If \pkg{witharrows} is loaded with the option |footnotehyper|, the package
-% \pkg{footnotehyper} is loaded (if it is not yet loaded) ant it is used to
-% extract footnotes.
+% If \pkg{witharrows} is loaded with the option \Definition{footnotehyper}, the
+% package \pkg{footnotehyper} is loaded (if it is not yet loaded) ant it is used
+% to extract footnotes.
 %
 % \smallskip
 % Caution: The packages \pkg{footnote} and \pkg{footnotehyper} are incompatible.
@@ -2256,10 +2289,10 @@
 % \bigskip
 % \subsection{Option no-arrows}
 %
-% The option |no-arrows| is a convenience given to the user. With this option
-% the arrows are not drawn. However, an analyse of the arrows is done and some
-% errors can be raised, for example if an arrow would arrive after the last row
-% of the environment.
+% The option \Definition{no-arrows} is a convenience given to the user. With
+% this option the arrows are not drawn. However, an analyse of the arrows is
+% done and some errors can be raised, for example if an arrow would arrive after
+% the last row of the environment.
 %
 % \bigskip
 % \subsection{Note for the users of AUCTeX}
@@ -2277,12 +2310,12 @@
 % |M-x customize| > |[Text]| > |[TeX]| > |[Font LaTeX]|
 %
 % \bigskip
-% \subsection{Note for developpers}
+% \subsection{Note for the developpers}
 %
 % If you want to construct an environment upon an environment of
 % \pkg{witharrows}, we recommand to call the environment with the construction
-% |\WithArrows|-|\endWithArrows| or |\DispWithArrows|-|\endDispWithArrows| (and
-% not |\begin{WithArrows}|-|\end{WithArrows}|, etc.).
+% |\WithArrows|-|\endWithArrows| (and not |\begin{WithArrows}| and
+% |\end{WithArrows}|). 
 %
 % \smallskip
 % By doing so, the error messages generated by \pkg{witharrows} will (usually)
@@ -2791,7 +2824,7 @@
 \cs_new_protected:Npn \@@_warning:n { \msg_warning:nn { witharrows } }
 \cs_new_protected:Npn \@@_fatal:n { \msg_fatal:nn { witharrows } }
 \cs_new_protected:Npn \@@_error:nn  { \msg_error:nnn { witharrows } }
-\cs_generate_variant:Nn \@@_error:nn { n x }
+\cs_generate_variant:Nn \@@_error:nn { n e }
 %    \end{macrocode}
 % 
 % \bigskip
@@ -2808,11 +2841,16 @@
 %    \begin{macrocode}
 \bool_set:Nn \c_@@_messages_for_Overleaf_bool
   { 
-       \str_if_eq_p:Vn \c_sys_jobname_str { _region_ }  % for Emacs
-    || \str_if_eq_p:Vn \c_sys_jobname_str { output }   % for Overleaf
+       \str_if_eq_p:on \c_sys_jobname_str { _region_ }  % for Emacs
+    || \str_if_eq_p:on \c_sys_jobname_str { output }   % for Overleaf
   }
 %    \end{macrocode}
 %
+% \bigskip
+%    \begin{macrocode}
+\bool_new:N \g_@@_beamer_bool
+%    \end{macrocode}
+% 
 % \medskip
 % We define a set of keys |WithArrows/package| for these options.
 %    \begin{macrocode}
@@ -2821,6 +2859,11 @@
   { 
     footnote .bool_set:N = \c_@@_footnote_bool ,
     footnotehyper .bool_set:N = \c_@@_footnotehyper_bool ,
+    footnote .usage:n = load , 
+    footnotehyper .usage:n = load ,
+    beamer .bool_gset:N = \g_@@_beamer_bool ,
+    beamer .default:n = true , 
+    beamer .usage:n = load ,
     unknown .code:n = 
       \@@_fatal:n { Option~unknown~for~package } 
   }
@@ -2841,6 +2884,11 @@
 %    \begin{macrocode}
 \ProcessKeysOptions { WithArrows / package }
 %    \end{macrocode}
+%
+%    \begin{macrocode}
+\IfClassLoadedTF { beamer } { \bool_gset_true:N \g_@@_beamer_bool } { }
+\IfPackageLoadedTF { beamerarticle } { \bool_gset_true:N \g_@@_beamer_bool } { }
+%    \end{macrocode}
 % 
 % \medskip
 %    \begin{macrocode}
@@ -2985,7 +3033,7 @@
 %
 % 
 %    \begin{macrocode}
-\cs_generate_variant:Nn \seq_set_split:Nnn { N x x }
+\cs_generate_variant:Nn \seq_set_split:Nnn { N e e }
 %    \end{macrocode}
 % 
 %
@@ -3025,7 +3073,7 @@
 %    \begin{macrocode}
 \cs_new_protected:Npn \@@_save:N #1
   { 
-    \seq_set_split:Nxx \l_tmpa_seq 
+    \seq_set_split:Nee \l_tmpa_seq 
        { \char_generate:nn { `_ } { 12 } } 
        { \cs_to_str:N #1 }
     \seq_pop_left:NN \l_tmpa_seq \l_tmpa_tl
@@ -3050,7 +3098,7 @@
 %    \begin{macrocode}  
 \cs_new_protected:Npn \@@_restore:N #1
   { 
-    \seq_set_split:Nxx \l_tmpa_seq 
+    \seq_set_split:Nee \l_tmpa_seq 
       { \char_generate:nn { `_ } { 12 } } 
       { \cs_to_str:N #1 }
     \seq_pop_left:NN \l_tmpa_seq \l_tmpa_tl
@@ -3320,7 +3368,7 @@
 %    \begin{macrocode}
 \cs_new_protected:Npn \@@_test_if_to_tag:
   { 
-    \clist_if_in:NVT \l_@@_tags_clist \g_@@_line_int
+    \clist_if_in:NoT \l_@@_tags_clist \g_@@_line_int
       { \clist_set:Nn \l_@@_tags_clist { all } }
   }
 %</LaTeX>
@@ -3682,7 +3730,7 @@
     replace-left-brace-by .code:n = 
       {
         \tl_set:Nx \l_tmpa_tl { \tl_head:n { #1 } }
-        \clist_if_in:NVTF 
+        \clist_if_in:NoTF 
           \c_@@_ext_delimiters_clist
           \l_tmpa_tl
           { \tl_set:Nn \l_@@_replace_left_brace_by_tl { #1 } }
@@ -3717,9 +3765,9 @@
 % list of |str|.
 %    \begin{macrocode}
       \str_set:Nn \l_tmpa_str { #1 }
-      \seq_if_in:NVTF \g_@@_names_seq \l_tmpa_str
+      \seq_if_in:NoTF \g_@@_names_seq \l_tmpa_str
         { \@@_error:n { Duplicate~name } }
-        { \seq_gput_left:NV \g_@@_names_seq \l_tmpa_str }
+        { \seq_gput_left:No \g_@@_names_seq \l_tmpa_str }
       \str_set_eq:NN \l_@@_name_str \l_tmpa_str ,
     name .value_required:n = true ,
     code-before .code:n = \tl_put_right:Nn \l_@@_code_before_tl { #1 } ,
@@ -3877,7 +3925,7 @@
 %    \begin{macrocode}
 \cs_new_protected:Npn \@@_set_independent:
   { 
-    \str_if_eq:VnF \l_keys_value_tl { NoValue }
+    \str_if_eq:onF \l_keys_value_tl { NoValue }
       { \@@_error:n { Value~for~a~key } }
     \@@_set_independent_bis:
   }
@@ -3911,7 +3959,7 @@
 \keys_define:nn { WithArrows / Arrow / FirstPass }
   { 
     jump .code:n = 
-      \int_compare:nTF { #1 > 0 }
+      \int_compare:nNnTF { #1 } > \c_zero_int
         { \int_set:Nn \l_@@_jump_int { #1 } }
         { \@@_error:n { Negative~jump } } ,
     jump .value_required:n  = true,
@@ -3962,7 +4010,7 @@
     xoffset .code:n = , 
     unknown .code:n = 
       \@@_sort_seq:N \l_@@_options_Arrow_seq
-      \seq_if_in:NVTF \l_@@_options_WithArrows_seq \l_keys_key_str
+      \seq_if_in:NoTF \l_@@_options_WithArrows_seq \l_keys_key_str
         { 
           \str_set:Nn \l_tmpa_str
            { ~However,~this~key~can~be~used~in~the~options~of~{WithArrows}. }  
@@ -4024,13 +4072,11 @@
 % arrow.
 %    \begin{macrocode}
     xoffset .code:n  = 
-      \bool_if:nTF 
+      \bool_lazy_all:nTF 
         { 
-          \int_compare_p:nNn \g_@@_arrow_int > 1 
-          &&
-          \int_compare_p:nNn \l_@@_pos_arrow_int > 5
-          && 
-          ! \str_if_eq_p:Vn \l_@@_status_arrow_str { independent }
+          { \int_compare_p:nNn \g_@@_arrow_int > 1 }
+          { \int_compare_p:nNn \l_@@_pos_arrow_int > 5 }
+          { ! \str_if_eq_p:on \l_@@_status_arrow_str { independent } }
         }
         { \@@_error:n { Option~xoffset~forbidden } }
         { \dim_set:Nn \l_@@_xoffset_dim { #1 } } ,
@@ -4070,8 +4116,8 @@
 % at the beginning of an environment |{WithArrows}|, |\Arrow| is set to be
 % equivalent to |\@@_Arrow|. However, the user can change the name with the
 % option |command-name| and the user command for |\@@_Arrow| will be different.
-% This mechanism can be useful when the user has already a command named
-% |\Arrow| he still wants to use in the environments |{WithArrows}| or
+% This mechanism can be useful when the user already has a command named
+% |\Arrow| that he still wants to use in the environments |{WithArrows}| or
 % |{DispWithArrows}|. 
 %
 % \medskip
@@ -4078,8 +4124,21 @@
 %    \begin{macrocode}
 %<*LaTeX>
 \cs_new_protected:Npn \@@_Arrow
-  { \@@_collect_options:n { \@@_Arrow_i } }
-\NewDocumentCommand \@@_Arrow_i { m m ! O { } }
+  { \@@_collect_options:n { \@@_Arrow_iii } }
+\bool_if:NTF \g_@@_beamer_bool
+  {
+    \NewDocumentCommand \@@_Arrow_iii { m d < > m ! O { } }
+      { 
+        \tl_if_novalue:nTF { #2 } 
+          { \@@_Arrow_ii { #1 } { #3 } [ #4 ] } 
+          { \only <#2> { \@@_Arrow_ii { #1 } { #3 } [ #4 ] } }
+      }
+  }
+  { 
+    \NewDocumentCommand \@@_Arrow_iii { m m ! O { } }
+      { \@@_Arrow_ii { #1 } { #2 } [ #3 ] }
+  }
+\NewDocumentCommand \@@_Arrow_ii { m m ! O { } }
 %</LaTeX>
 %<*plain-TeX>
 \cs_new_protected:Npn \@@_Arrow
@@ -4568,19 +4627,19 @@
                   }
 %</LaTeX>
               }
-            \str_if_eq:VnT \l_@@_type_col_str { c } \hfil
-            \str_if_eq:VnT \l_@@_type_col_str { C } \hfil
-            \str_if_eq:VnT \l_@@_type_col_str { r } \hfill
-            \str_if_eq:VnT \l_@@_type_col_str { R } \hfill
+            \str_if_eq:onT \l_@@_type_col_str { c } \hfil
+            \str_if_eq:onT \l_@@_type_col_str { C } \hfil
+            \str_if_eq:onT \l_@@_type_col_str { r } \hfill
+            \str_if_eq:onT \l_@@_type_col_str { R } \hfill
             \int_gincr:N \g_@@_col_int
             \int_gset:Nn \g_@@_static_col_int { \int_use:N \g_@@_col_int }
             \c_math_toggle_token
-            \str_if_eq:VnT \l_@@_type_col_str { C } { { } }
-            \str_if_eq:VnT \l_@@_type_col_str { L } { { } }
+            \str_if_eq:onT \l_@@_type_col_str { C } { { } }
+            \str_if_eq:onT \l_@@_type_col_str { L } { { } }
             \bool_if:NT \l_@@_displaystyle_bool \displaystyle
             ##
-            \str_if_eq:VnT \l_@@_type_col_str { C } { { } }
-            \str_if_eq:VnT \l_@@_type_col_str { R } { { } }
+            \str_if_eq:onT \l_@@_type_col_str { C } { { } }
+            \str_if_eq:onT \l_@@_type_col_str { R } { { } }
             \c_math_toggle_token
             \int_compare:nNnTF \g_@@_col_int = \l_@@_nb_cols_int
               \@@_construct_nodes:
@@ -4590,10 +4649,10 @@
 % because, in the last cell, a glue (=skip) is added between the nodes (in
 % |\@@_construct_nodes:|). 
 %    \begin{macrocode}
-                \str_if_eq:VnT \l_@@_type_col_str { l } \hfil
-                \str_if_eq:VnT \l_@@_type_col_str { L } \hfil
-                \str_if_eq:VnT \l_@@_type_col_str { c } \hfil
-                \str_if_eq:VnT \l_@@_type_col_str { C } \hfil
+                \str_if_eq:onT \l_@@_type_col_str { l } \hfil
+                \str_if_eq:onT \l_@@_type_col_str { L } \hfil
+                \str_if_eq:onT \l_@@_type_col_str { c } \hfil
+                \str_if_eq:onT \l_@@_type_col_str { C } \hfil
                 \bool_if:NT \l_@@_in_DispWithArrows_bool { \tabskip = \c_zero_skip }
                 &
               }
@@ -4844,7 +4903,7 @@
 % \bigskip 
 % If there is really arrows in the environment, we draw the arrows.
 %    \begin{macrocode}
-    \int_compare:nNnT \g_@@_arrow_int > 0
+    \int_if_zero:nF \g_@@_arrow_int 
       { 
 %    \end{macrocode}
 % If there is only one arrow, the options |group| and |groups| do not really
@@ -5098,7 +5157,7 @@
             \@@_restore:N \l_@@_tag_star_bool
             \@@_restore:N \l_@@_qedhere_bool
             \bool_if:NT \l_@@_qedhere_bool 
-               { \hbox_overlap_left:n \@@_qedhere_i: }
+              { \hbox_overlap_left:n \@@_qedhere_i: }
             \cs_set_eq:NN \theequation \g_tmpa_tl
             \bool_if:NT \l_@@_tag_star_bool 
               { \cs_set_eq:NN \tagform@ \prg_do_nothing: }
@@ -5140,7 +5199,7 @@
 %<*LaTeX>
             \@@_restore:N \l_@@_qedhere_bool
             \bool_if:NT \l_@@_qedhere_bool 
-               { \hbox_overlap_left:n \@@_qedhere_i: }
+              { \hbox_overlap_left:n \@@_qedhere_i: }
 %</LaTeX>
             \pgfpicture
             \pgfrememberpicturepositiononpagetrue
@@ -5179,7 +5238,7 @@
 %<*LaTeX>
 \cs_new_protected:Npn \@@_analyze_end:Nn #1 #2
   {
-    \str_if_eq:VnT \l_@@_type_env_str { #2 }
+    \str_if_eq:onT \l_@@_type_env_str { #2 }
       { 
         \@@_error:n { newline~at~the~end~of~env } 
         \group_begin:
@@ -5310,7 +5369,8 @@
 %    \begin{macrocode}
     \IfPackageLoadedTF { amsmath } { \intertext@ } { }
 %</LaTeX>
-    \exp_args:No \tl_if_novalue:nF { #1 } { \tl_set:Nn \l_@@_left_brace_tl { #1 } }
+    \exp_args:No \tl_if_novalue:nF { #1 } 
+      { \cs_set_nopar:Npn \l_@@_left_brace_tl { #1 } }
     \@@_pre_halign:n { #2 }
 %    \end{macrocode}
 %
@@ -5419,8 +5479,8 @@
     \dim_zero_new:N \l_@@_linewidth_dim
 %<*LaTeX>
     \bool_if:NTF \l_@@_in_label_or_minipage_bool 
-       { \dim_set_eq:NN \l_@@_linewidth_dim \linewidth }
-       { \dim_set_eq:NN \l_@@_linewidth_dim \displaywidth }
+      { \dim_set_eq:NN \l_@@_linewidth_dim \linewidth }
+      { \dim_set_eq:NN \l_@@_linewidth_dim \displaywidth }
 %</LaTeX>
 %<*plain-TeX>
     \dim_set_eq:NN \l_@@_linewidth_dim \displaywidth
@@ -5935,12 +5995,9 @@
 % situation occurs when all the arrows of the potential group arrive after the
 % last line of the environment).
 %    \begin{macrocode}
-    \bool_if:nT
-      { 
-        ! \int_compare_p:nNn \l_@@_pos_arrow_int = 7 
-        && 
-        \int_compare_p:nNn \l_@@_first_arrow_of_group_int > 0 
-      }
+    \bool_lazy_and:nnT
+      { ! \int_compare_p:nNn \l_@@_pos_arrow_int = 7 }
+      { \int_compare_p:nNn \l_@@_first_arrow_of_group_int > \c_zero_int }
       { \@@_draw_arrows:nn \l_@@_first_arrow_of_group_int \g_@@_arrow_int }
   }
 %    \end{macrocode}
@@ -5974,7 +6031,7 @@
           { \str_if_eq_p:Vn \l_@@_status_arrow_str { new-group } }
       }
       { 
-        \int_compare:nNnF \l_@@_first_arrow_of_group_int = \c_zero_int
+        \int_if_zero:nF \l_@@_first_arrow_of_group_int 
           { 
             \@@_draw_arrows:nn 
               \l_@@_first_arrow_of_group_int 
@@ -6033,8 +6090,7 @@
 % If the arrow is not independent, the arrow belongs to the current group and we
 % have to take it into account in some variables.
 %    \begin{macrocode}
-            \int_compare:nT 
-              { \l_@@_initial_int = \l_@@_first_line_of_group_int }
+            \int_compare:nNnT \l_@@_initial_int = \l_@@_first_line_of_group_int 
               { \seq_put_left:NV \l_@@_first_arrows_seq \l_@@_arrow_int }
             \int_compare:nNnTF \l_@@_final_int > \l_@@_last_line_of_group_int
               { 
@@ -6057,7 +6113,7 @@
 % 8), we don't initialize |\l_@@_x_dim| because we want to use the same value of
 % |\l_@@_x_dim| (computed during the first step) for all the groups.
 %    \begin{macrocode}
-    \str_if_eq:VnF \l_@@_status_arrow_str { independent } 
+    \str_if_eq:onF \l_@@_status_arrow_str { independent } 
       { 
         \int_compare:nNnF \l_@@_pos_arrow_int = 8 
           { \@@_update_x:nn \l_@@_initial_int \l_@@_final_int }
@@ -6133,7 +6189,7 @@
 % arrows will be drawn after all the other arrows).
 %    \begin{macrocode}
           { 
-            \str_if_eq:VnTF \l_@@_status_arrow_str { over } 
+            \str_if_eq:onTF \l_@@_status_arrow_str { over } 
               { \seq_put_right:NV \l_@@_o_arrows_seq \l_@@_arrow_int }
               \@@_draw_arrow: 
           } 
@@ -6417,11 +6473,17 @@
           { \dim_zero:N \l_tmpa_dim }
           { \dim_set:Nn \l_tmpa_dim { \pgf at picmaxx - \pgf at picminx } }
         \dim_add:Nn \l_tmpa_dim \l_@@_xoffset_dim
-        \prop_gput:cnV
-          { g_@@_arrow _ \l_@@_prefix_str _ \int_use:N \l_@@_arrow_int _ prop }  
-          { width }
-          \l_tmpa_dim
 %    \end{macrocode}
+% |\l_@@_arrow_int = 0| probably means that we have an arrow in the |code-after|.
+%    \begin{macrocode}
+        \int_compare:nNnT \l_@@_arrow_int > 0 % added 2024/10/01
+          {
+            \prop_gput:cnV
+              { g_@@_arrow _ \l_@@_prefix_str _ \int_use:N \l_@@_arrow_int _ prop }  
+              { width }
+              \l_tmpa_dim
+          }
+%    \end{macrocode}
 % Now, the actualization of |\g_@@_overlap_x_dim|.
 %    \begin{macrocode}
         \bool_if:NF \l_@@_right_overlap_bool
@@ -6467,7 +6529,7 @@
 % \medskip
 % Now, the main lines of this function |\@@_draw_arrow:nnn|.
 %    \begin{macrocode}
-    \exp_args:NV \@@_def_function_tmpa:n \l_@@_tikz_code_tl
+    \exp_args:No \@@_def_function_tmpa:n \l_@@_tikz_code_tl
     \@@_tmpa:nnn { #1 } { #2 } { #3 } 
   }
 \cs_generate_variant:Nn \@@_draw_arrow:nnn { n n o }
@@ -6704,17 +6766,17 @@
             \prop_get:cnN 
               { g_@@_arrow _ \l_@@_prefix_str _ ####1 _ prop }
               { status } \l_@@_status_arrow_str
-            \bool_if:nT          
+            \bool_lazy_any:nF
               {
-                ! \int_compare_p:n { ##1 = ####1 }
-                && \int_compare_p:n { \l_@@_initial_int <= \l_tmpa_tl } 
-                && \int_compare_p:n { \l_tmpb_tl <= \l_@@_final_int } 
+                { \int_compare_p:n { ##1 = ####1 } }
+                { \int_compare_p:nNn \l_@@_initial_int > \l_tmpa_tl }
+                { \int_compare_p:nNn \l_tmpb_tl > \l_@@_final_int }
 %    \end{macrocode}
 % We don't take into account the independent arrows because we have only
 % computed the \emph{width} of the arrows and that's why our arrow of type~|o|
 % will be positionned only relatively to the current group.
 %    \begin{macrocode}
-                && ! \str_if_eq_p:Vn \l_@@_status_arrow_str { independent }
+                { \str_if_eq_p:Vn \l_@@_status_arrow_str { independent } }
               }
               {
 %    \end{macrocode}
@@ -6833,7 +6895,7 @@
 \cs_new_protected:Npn \@@_Arrow_code_after_ii [ #1 ] #2 #3 #4 [ #5 ]
 %</plain-TeX>
   {
-    \int_set:Nn \l_@@_pos_arrow_int 1
+    \int_set_eq:NN \l_@@_pos_arrow_int \c_one_int
     \str_clear_new:N \l_@@_previous_key_str
     \group_begin:
       \keys_set:nn { WithArrows / Arrow / code-after } 
@@ -6861,10 +6923,10 @@
 %    \begin{macrocode}
         {
           \cs_if_free:cTF { pgf at sh@ns at wa - \l_@@_prefix_str - #2 - l }
-            { \@@_error:nx { Wrong~line~in~Arrow } { #2 } }
+            { \@@_error:ne { Wrong~line~in~Arrow } { #2 } }
             { 
               \cs_if_free:cTF { pgf at sh@ns at wa - \l_@@_prefix_str - #3 - l }
-                { \@@_error:nx { Wrong~line~in~Arrow } { #3 }  }
+                { \@@_error:ne { Wrong~line~in~Arrow } { #3 }  }
                 { 
                   \int_compare:nNnTF \l_@@_pos_arrow_int = 4
                     {
@@ -6928,12 +6990,12 @@
 % First, we test with a regular expression whether the format of the list of
 % lines is correct.
 %    \begin{macrocode}
-    \exp_args:Nnx 
+    \exp_args:Nne 
       \regex_match:nnTF 
       { \A \d+ (\,\d+)* ( \, \.\.\. (\,\d+)+ )* \Z }  
       { #1 } 
       { \@@_MultiArrow_i:nn { #1 } { #2 } }    
-      { \@@_error:nx { Invalid~specification~for~MultiArrow } { #1 } }
+      { \@@_error:ne { Invalid~specification~for~MultiArrow } { #1 } }
   }
 %    \end{macrocode}
 %
@@ -6949,7 +7011,7 @@
     \foreach \x in { #1 }
       { 
         \cs_if_free:cTF { pgf at sh@ns at wa - \l_@@_prefix_str - \x - l }
-          { \@@_error:nx { Wrong~line~specification~in~MultiArrow } \x }
+          { \@@_error:ne { Wrong~line~specification~in~MultiArrow } \x }
           { \clist_gput_right:Nx \g_tmpa_clist \x } 
       } 
 %    \end{macrocode}
@@ -6961,7 +7023,7 @@
       {
         \clist_sort:Nn \g_tmpa_clist 
           {
-            \int_compare:nTF { ##1 > ##2 }
+            \int_compare:nNnTF { ##1 } > { ##2 }
               \sort_return_swapped: 
               \sort_return_same:
           }
@@ -7628,26 +7690,11 @@
               { \tl_to_str:n { #1 } }
             \seq_put_right:Nx \l_@@_options_WithArrowsOptions_seq 
               { \tl_to_str:N { #1 } }
-%    \end{macrocode}
-% When we will consider that |\keys_precompile:nnN| (introduced in LaTeX on
-% 2022-03-09) is widely available, we will delete that test and keep only the
-% first version.
-%    \begin{macrocode}
-            \cs_if_exist:NTF \keys_precompile:nnN
-              {
-                \keys_precompile:nnN 
-                  { WithArrows / WithArrowsOptions } 
-                  { #2 }
-                  \l_tmpa_tl
-                \@@_key_define:nV { #1 } \l_tmpa_tl
-              }
-              {
-                \keys_define:nn { WithArrows / Global }
-                  { 
-                    #1 .code:n = 
-                     { \keys_set:nn { WithArrows / WithArrowsOptions } { #2 } }
-                  } 
-              }
+            \keys_precompile:nnN 
+              { WithArrows / WithArrowsOptions } 
+              { #2 }
+              \l_tmpa_tl
+            \@@_key_define:nV { #1 } \l_tmpa_tl
           }
           { \@@_error:nn { Impossible~style } { #1 } }
       } 
@@ -8052,7 +8099,10 @@
 % 
 % \section{History}
 %
+% \subsection*{Changes between 2.8 and 2.9}
 % 
+% Argument |<...>| for the command |\Arrow| in the class Beamer.
+% 
 % \subsection*{Changes between 2.7 and 2.8}
 %
 % New key |right-overlap|

Modified: trunk/Master/texmf-dist/source/generic/witharrows/witharrows.ins
===================================================================
--- trunk/Master/texmf-dist/source/generic/witharrows/witharrows.ins	2024-10-05 19:36:34 UTC (rev 72470)
+++ trunk/Master/texmf-dist/source/generic/witharrows/witharrows.ins	2024-10-05 19:36:44 UTC (rev 72471)
@@ -1,5 +1,5 @@
 %%
-%% Copyright (C) 2017-2023 by F. Pantigny
+%% Copyright (C) 2017-2024 by F. Pantigny
 %%
 %%
 %% This file may be distributed and/or modified under the
@@ -17,7 +17,7 @@
 \usedir{tex/latex/witharrows}
 \preamble
 
-Copyright (C) 2017-2023 by F. Pantigny
+Copyright (C) 2017-2024 by F. Pantigny
 
 This file may be distributed and/or modified under the
 conditions of the LaTeX Project Public License, either

Modified: trunk/Master/texmf-dist/tex/generic/witharrows/witharrows.sty
===================================================================
--- trunk/Master/texmf-dist/tex/generic/witharrows/witharrows.sty	2024-10-05 19:36:34 UTC (rev 72470)
+++ trunk/Master/texmf-dist/tex/generic/witharrows/witharrows.sty	2024-10-05 19:36:44 UTC (rev 72471)
@@ -6,7 +6,7 @@
 %%
 %% witharrows.dtx  (with options: `LaTeX')
 %% 
-%% Copyright (C) 2017-2023 by F. Pantigny
+%% Copyright (C) 2017-2024 by F. Pantigny
 %% 
 %% This file may be distributed and/or modified under the
 %% conditions of the LaTeX Project Public License, either
@@ -18,8 +18,8 @@
 %% and version 1.3 or later is part of all distributions of
 %% LaTeX version 2005/12/01 or later.
 %% 
-\def\myfileversion{2.8b}
-\def\myfiledate{2023/08/24}
+\def\myfileversion{2.9}
+\def\myfiledate{2024/10/05}
 \RequirePackage{tikz}
 \usetikzlibrary{arrows.meta}
 \usepgfmodule{bending} % https://texnique.fr/osqa/questions/12199
@@ -45,18 +45,24 @@
 \cs_new_protected:Npn \__witharrows_warning:n { \msg_warning:nn { witharrows } }
 \cs_new_protected:Npn \__witharrows_fatal:n { \msg_fatal:nn { witharrows } }
 \cs_new_protected:Npn \__witharrows_error:nn  { \msg_error:nnn { witharrows } }
-\cs_generate_variant:Nn \__witharrows_error:nn { n x }
+\cs_generate_variant:Nn \__witharrows_error:nn { n e }
 \cs_new_protected:Npn \__witharrows_error_or_warning:n
   { \bool_if:NTF \c__witharrows_messages_for_Overleaf_bool \__witharrows_warning:n \__witharrows_error:n }
 \bool_set:Nn \c__witharrows_messages_for_Overleaf_bool
   {
-       \str_if_eq_p:Vn \c_sys_jobname_str { _region_ }  % for Emacs
-    || \str_if_eq_p:Vn \c_sys_jobname_str { output }   % for Overleaf
+       \str_if_eq_p:on \c_sys_jobname_str { _region_ }  % for Emacs
+    || \str_if_eq_p:on \c_sys_jobname_str { output }   % for Overleaf
   }
+\bool_new:N \g__witharrows_beamer_bool
 \keys_define:nn { WithArrows / package }
   {
     footnote .bool_set:N = \c__witharrows_footnote_bool ,
     footnotehyper .bool_set:N = \c__witharrows_footnotehyper_bool ,
+    footnote .usage:n = load ,
+    footnotehyper .usage:n = load ,
+    beamer .bool_gset:N = \g__witharrows_beamer_bool ,
+    beamer .default:n = true ,
+    beamer .usage:n = load ,
     unknown .code:n =
       \__witharrows_fatal:n { Option~unknown~for~package }
   }
@@ -67,6 +73,8 @@
     \token_to_str:N\WithArrowsOptions.
   }
 \ProcessKeysOptions { WithArrows / package }
+\IfClassLoadedTF { beamer } { \bool_gset_true:N \g__witharrows_beamer_bool } { }
+\IfPackageLoadedTF { beamerarticle } { \bool_gset_true:N \g__witharrows_beamer_bool } { }
 \__witharrows_msg_new:nn { footnote~with~footnotehyper~package }
   {
     Footnote~forbidden.\\
@@ -129,7 +137,7 @@
 
 \cs_new_protected:Npn \__witharrows_collect_options:nnw #1#2[#3]
   { \__witharrows_collect_options:nn { #1 } { #2 , #3 } }
-\cs_generate_variant:Nn \seq_set_split:Nnn { N x x }
+\cs_generate_variant:Nn \seq_set_split:Nnn { N e e }
 \cs_new_protected:Npn \__witharrows_sort_seq:N #1
   {
     \seq_sort:Nn #1
@@ -147,7 +155,7 @@
   }
 \cs_new_protected:Npn \__witharrows_save:N #1
   {
-    \seq_set_split:Nxx \l_tmpa_seq
+    \seq_set_split:Nee \l_tmpa_seq
        { \char_generate:nn { `_ } { 12 } }
        { \cs_to_str:N #1 }
     \seq_pop_left:NN \l_tmpa_seq \l_tmpa_tl
@@ -163,7 +171,7 @@
   }
 \cs_new_protected:Npn \__witharrows_restore:N #1
   {
-    \seq_set_split:Nxx \l_tmpa_seq
+    \seq_set_split:Nee \l_tmpa_seq
       { \char_generate:nn { `_ } { 12 } }
       { \cs_to_str:N #1 }
     \seq_pop_left:NN \l_tmpa_seq \l_tmpa_tl
@@ -258,7 +266,7 @@
 \clist_set:Nn \l__witharrows_tags_clist { all }
 \cs_new_protected:Npn \__witharrows_test_if_to_tag:
   {
-    \clist_if_in:NVT \l__witharrows_tags_clist \g__witharrows_line_int
+    \clist_if_in:NoT \l__witharrows_tags_clist \g__witharrows_line_int
       { \clist_set:Nn \l__witharrows_tags_clist { all } }
   }
 \str_new:N \l__witharrows_command_name_str
@@ -446,7 +454,7 @@
     replace-left-brace-by .code:n =
       {
         \tl_set:Nx \l_tmpa_tl { \tl_head:n { #1 } }
-        \clist_if_in:NVTF
+        \clist_if_in:NoTF
           \c__witharrows_ext_delimiters_clist
           \l_tmpa_tl
           { \tl_set:Nn \l__witharrows_replace_left_brace_by_tl { #1 } }
@@ -460,9 +468,9 @@
   {
     name .code:n =
       \str_set:Nn \l_tmpa_str { #1 }
-      \seq_if_in:NVTF \g__witharrows_names_seq \l_tmpa_str
+      \seq_if_in:NoTF \g__witharrows_names_seq \l_tmpa_str
         { \__witharrows_error:n { Duplicate~name } }
-        { \seq_gput_left:NV \g__witharrows_names_seq \l_tmpa_str }
+        { \seq_gput_left:No \g__witharrows_names_seq \l_tmpa_str }
       \str_set_eq:NN \l__witharrows_name_str \l_tmpa_str ,
     name .value_required:n = true ,
     code-before .code:n = \tl_put_right:Nn \l__witharrows_code_before_tl { #1 } ,
@@ -566,7 +574,7 @@
   }
 \cs_new_protected:Npn \__witharrows_set_independent:
   {
-    \str_if_eq:VnF \l_keys_value_tl { NoValue }
+    \str_if_eq:onF \l_keys_value_tl { NoValue }
       { \__witharrows_error:n { Value~for~a~key } }
     \__witharrows_set_independent_bis:
   }
@@ -582,7 +590,7 @@
 \keys_define:nn { WithArrows / Arrow / FirstPass }
   {
     jump .code:n =
-      \int_compare:nTF { #1 > 0 }
+      \int_compare:nNnTF { #1 } > \c_zero_int
         { \int_set:Nn \l__witharrows_jump_int { #1 } }
         { \__witharrows_error:n { Negative~jump } } ,
     jump .value_required:n  = true,
@@ -625,7 +633,7 @@
     xoffset .code:n = ,
     unknown .code:n =
       \__witharrows_sort_seq:N \l__witharrows_options_Arrow_seq
-      \seq_if_in:NVTF \l__witharrows_options_WithArrows_seq \l_keys_key_str
+      \seq_if_in:NoTF \l__witharrows_options_WithArrows_seq \l_keys_key_str
         {
           \str_set:Nn \l_tmpa_str
            { ~However,~this~key~can~be~used~in~the~options~of~{WithArrows}. }
@@ -660,13 +668,11 @@
     i  .code:n = \__witharrows_fix_pos_arrow:n 5 ,
     o  .code:n = \str_set:Nn \l__witharrows_previous_key_str { o } ,
     xoffset .code:n  =
-      \bool_if:nTF
+      \bool_lazy_all:nTF
         {
-          \int_compare_p:nNn \g__witharrows_arrow_int > 1
-          &&
-          \int_compare_p:nNn \l__witharrows_pos_arrow_int > 5
-          &&
-          ! \str_if_eq_p:Vn \l__witharrows_status_arrow_str { independent }
+          { \int_compare_p:nNn \g__witharrows_arrow_int > 1 }
+          { \int_compare_p:nNn \l__witharrows_pos_arrow_int > 5 }
+          { ! \str_if_eq_p:on \l__witharrows_status_arrow_str { independent } }
         }
         { \__witharrows_error:n { Option~xoffset~forbidden } }
         { \dim_set:Nn \l__witharrows_xoffset_dim { #1 } } ,
@@ -683,9 +689,22 @@
     \keys_set:nn { WithArrows / WithArrowsOptions } { #1 }
   }
 \cs_new_protected:Npn \__witharrows_Arrow
-  { \__witharrows_collect_options:n { \__witharrows_Arrow_i } }
-\NewDocumentCommand \__witharrows_Arrow_i { m m ! O { } }
+  { \__witharrows_collect_options:n { \__witharrows_Arrow_iii } }
+\bool_if:NTF \g__witharrows_beamer_bool
   {
+    \NewDocumentCommand \__witharrows_Arrow_iii { m d < > m ! O { } }
+      {
+        \tl_if_novalue:nTF { #2 }
+          { \__witharrows_Arrow_ii { #1 } { #3 } [ #4 ] }
+          { \only <#2> { \__witharrows_Arrow_ii { #1 } { #3 } [ #4 ] } }
+      }
+  }
+  {
+    \NewDocumentCommand \__witharrows_Arrow_iii { m m ! O { } }
+      { \__witharrows_Arrow_ii { #1 } { #2 } [ #3 ] }
+  }
+\NewDocumentCommand \__witharrows_Arrow_ii { m m ! O { } }
+  {
     \int_gincr:N \g__witharrows_arrow_int
     \str_clear_new:N \l__witharrows_previous_key_str
     \keys_set:nn { WithArrows / Arrow / FirstPass } { #1 , #3 }
@@ -787,27 +806,27 @@
                     \IfPackageLoadedTF { amsmath } { \__witharrows_set_qedhere: } { }
                   }
               }
-            \str_if_eq:VnT \l__witharrows_type_col_str { c } \hfil
-            \str_if_eq:VnT \l__witharrows_type_col_str { C } \hfil
-            \str_if_eq:VnT \l__witharrows_type_col_str { r } \hfill
-            \str_if_eq:VnT \l__witharrows_type_col_str { R } \hfill
+            \str_if_eq:onT \l__witharrows_type_col_str { c } \hfil
+            \str_if_eq:onT \l__witharrows_type_col_str { C } \hfil
+            \str_if_eq:onT \l__witharrows_type_col_str { r } \hfill
+            \str_if_eq:onT \l__witharrows_type_col_str { R } \hfill
             \int_gincr:N \g__witharrows_col_int
             \int_gset:Nn \g__witharrows_static_col_int { \int_use:N \g__witharrows_col_int }
             \c_math_toggle_token
-            \str_if_eq:VnT \l__witharrows_type_col_str { C } { { } }
-            \str_if_eq:VnT \l__witharrows_type_col_str { L } { { } }
+            \str_if_eq:onT \l__witharrows_type_col_str { C } { { } }
+            \str_if_eq:onT \l__witharrows_type_col_str { L } { { } }
             \bool_if:NT \l__witharrows_displaystyle_bool \displaystyle
             ##
-            \str_if_eq:VnT \l__witharrows_type_col_str { C } { { } }
-            \str_if_eq:VnT \l__witharrows_type_col_str { R } { { } }
+            \str_if_eq:onT \l__witharrows_type_col_str { C } { { } }
+            \str_if_eq:onT \l__witharrows_type_col_str { R } { { } }
             \c_math_toggle_token
             \int_compare:nNnTF \g__witharrows_col_int = \l__witharrows_nb_cols_int
               \__witharrows_construct_nodes:
               {
-                \str_if_eq:VnT \l__witharrows_type_col_str { l } \hfil
-                \str_if_eq:VnT \l__witharrows_type_col_str { L } \hfil
-                \str_if_eq:VnT \l__witharrows_type_col_str { c } \hfil
-                \str_if_eq:VnT \l__witharrows_type_col_str { C } \hfil
+                \str_if_eq:onT \l__witharrows_type_col_str { l } \hfil
+                \str_if_eq:onT \l__witharrows_type_col_str { L } \hfil
+                \str_if_eq:onT \l__witharrows_type_col_str { c } \hfil
+                \str_if_eq:onT \l__witharrows_type_col_str { C } \hfil
                 \bool_if:NT \l__witharrows_in_DispWithArrows_bool { \tabskip = \c_zero_skip }
                 &
               }
@@ -913,7 +932,7 @@
   {
     \cs_set:Npn \WithArrowsRightX { \g__witharrows_right_x_dim }
     \normalbaselines
-    \int_compare:nNnT \g__witharrows_arrow_int > 0
+    \int_if_zero:nF \g__witharrows_arrow_int
       {
         \int_compare:nNnT \g__witharrows_arrow_int = 1
           {
@@ -1017,7 +1036,7 @@
             \__witharrows_restore:N \l__witharrows_tag_star_bool
             \__witharrows_restore:N \l__witharrows_qedhere_bool
             \bool_if:NT \l__witharrows_qedhere_bool
-               { \hbox_overlap_left:n \__witharrows_qedhere_i: }
+              { \hbox_overlap_left:n \__witharrows_qedhere_i: }
             \cs_set_eq:NN \theequation \g_tmpa_tl
             \bool_if:NT \l__witharrows_tag_star_bool
               { \cs_set_eq:NN \tagform@ \prg_do_nothing: }
@@ -1050,7 +1069,7 @@
             &
             \__witharrows_restore:N \l__witharrows_qedhere_bool
             \bool_if:NT \l__witharrows_qedhere_bool
-               { \hbox_overlap_left:n \__witharrows_qedhere_i: }
+              { \hbox_overlap_left:n \__witharrows_qedhere_i: }
             \pgfpicture
             \pgfrememberpicturepositiononpagetrue
             \pgfcoordinate
@@ -1073,7 +1092,7 @@
   }
 \cs_new_protected:Npn \__witharrows_analyze_end:Nn #1 #2
   {
-    \str_if_eq:VnT \l__witharrows_type_env_str { #2 }
+    \str_if_eq:onT \l__witharrows_type_env_str { #2 }
       {
         \__witharrows_error:n { newline~at~the~end~of~env }
         \group_begin:
@@ -1107,7 +1126,8 @@
       { \str_set:Nn \sr at name { equation } }
       { }
     \IfPackageLoadedTF { amsmath } { \intertext@ } { }
-    \exp_args:No \tl_if_novalue:nF { #1 } { \tl_set:Nn \l__witharrows_left_brace_tl { #1 } }
+    \exp_args:No \tl_if_novalue:nF { #1 }
+      { \cs_set_nopar:Npn \l__witharrows_left_brace_tl { #1 } }
     \__witharrows_pre_halign:n { #2 }
     \bool_if:NT \l__witharrows_subequations_bool { \begin { subequations } }
     \tl_if_eq:NNF \l__witharrows_left_brace_tl \c_novalue_tl
@@ -1156,8 +1176,8 @@
       }
     \dim_zero_new:N \l__witharrows_linewidth_dim
     \bool_if:NTF \l__witharrows_in_label_or_minipage_bool
-       { \dim_set_eq:NN \l__witharrows_linewidth_dim \linewidth }
-       { \dim_set_eq:NN \l__witharrows_linewidth_dim \displaywidth }
+      { \dim_set_eq:NN \l__witharrows_linewidth_dim \linewidth }
+      { \dim_set_eq:NN \l__witharrows_linewidth_dim \displaywidth }
     \box_clear_new:N \l__witharrows_halign_box
     \setbox \l__witharrows_halign_box \vtop \bgroup
     \tabskip =
@@ -1390,12 +1410,9 @@
           \__witharrows_treat_an_arrow_in_scan:
         \int_incr:N \l__witharrows_arrow_int
       }
-    \bool_if:nT
-      {
-        ! \int_compare_p:nNn \l__witharrows_pos_arrow_int = 7
-        &&
-        \int_compare_p:nNn \l__witharrows_first_arrow_of_group_int > 0
-      }
+    \bool_lazy_and:nnT
+      { ! \int_compare_p:nNn \l__witharrows_pos_arrow_int = 7 }
+      { \int_compare_p:nNn \l__witharrows_first_arrow_of_group_int > \c_zero_int }
       { \__witharrows_draw_arrows:nn \l__witharrows_first_arrow_of_group_int \g__witharrows_arrow_int }
   }
 \cs_new_protected:Npn \__witharrows_treat_an_arrow_in_scan:
@@ -1415,7 +1432,7 @@
           { \str_if_eq_p:Vn \l__witharrows_status_arrow_str { new-group } }
       }
       {
-        \int_compare:nNnF \l__witharrows_first_arrow_of_group_int = \c_zero_int
+        \int_if_zero:nF \l__witharrows_first_arrow_of_group_int
           {
             \__witharrows_draw_arrows:nn
               \l__witharrows_first_arrow_of_group_int
@@ -1439,8 +1456,7 @@
       {
         \str_if_eq:VnF \l__witharrows_status_arrow_str { independent }
           {
-            \int_compare:nT
-              { \l__witharrows_initial_int = \l__witharrows_first_line_of_group_int }
+            \int_compare:nNnT \l__witharrows_initial_int = \l__witharrows_first_line_of_group_int
               { \seq_put_left:NV \l__witharrows_first_arrows_seq \l__witharrows_arrow_int }
             \int_compare:nNnTF \l__witharrows_final_int > \l__witharrows_last_line_of_group_int
               {
@@ -1454,7 +1470,7 @@
               }
           }
       }
-    \str_if_eq:VnF \l__witharrows_status_arrow_str { independent }
+    \str_if_eq:onF \l__witharrows_status_arrow_str { independent }
       {
         \int_compare:nNnF \l__witharrows_pos_arrow_int = 8
           { \__witharrows_update_x:nn \l__witharrows_initial_int \l__witharrows_final_int }
@@ -1486,7 +1502,7 @@
           { status } \l__witharrows_status_arrow_str
         \int_compare:nNnF \l__witharrows_final_int > \g__witharrows_line_int
           {
-            \str_if_eq:VnTF \l__witharrows_status_arrow_str { over }
+            \str_if_eq:onTF \l__witharrows_status_arrow_str { over }
               { \seq_put_right:NV \l__witharrows_o_arrows_seq \l__witharrows_arrow_int }
               \__witharrows_draw_arrow:
           }
@@ -1639,10 +1655,13 @@
           { \dim_zero:N \l_tmpa_dim }
           { \dim_set:Nn \l_tmpa_dim { \pgf at picmaxx - \pgf at picminx } }
         \dim_add:Nn \l_tmpa_dim \l__witharrows_xoffset_dim
-        \prop_gput:cnV
-          { g__witharrows_arrow _ \l__witharrows_prefix_str _ \int_use:N \l__witharrows_arrow_int _ prop }
-          { width }
-          \l_tmpa_dim
+        \int_compare:nNnT \l__witharrows_arrow_int > 0 % added 2024/10/01
+          {
+            \prop_gput:cnV
+              { g__witharrows_arrow _ \l__witharrows_prefix_str _ \int_use:N \l__witharrows_arrow_int _ prop }
+              { width }
+              \l_tmpa_dim
+          }
         \bool_if:NF \l__witharrows_right_overlap_bool
           {
             \bool_if:NT \l__witharrows_in_WithArrows_bool
@@ -1663,7 +1682,7 @@
   {
     \bool_lazy_and:nnT \l__witharrows_wrap_lines_bool \l__witharrows_in_DispWithArrows_bool
       { \tl_set_eq:NN \l__witharrows_tikz_code_tl \c__witharrows_tikz_code_wrap_lines_tl }
-    \exp_args:NV \__witharrows_def_function_tmpa:n \l__witharrows_tikz_code_tl
+    \exp_args:No \__witharrows_def_function_tmpa:n \l__witharrows_tikz_code_tl
     \__witharrows_tmpa:nnn { #1 } { #2 } { #3 }
   }
 \cs_generate_variant:Nn \__witharrows_draw_arrow:nnn { n n o }
@@ -1773,12 +1792,12 @@
             \prop_get:cnN
               { g__witharrows_arrow _ \l__witharrows_prefix_str _ ####1 _ prop }
               { status } \l__witharrows_status_arrow_str
-            \bool_if:nT
+            \bool_lazy_any:nF
               {
-                ! \int_compare_p:n { ##1 = ####1 }
-                && \int_compare_p:n { \l__witharrows_initial_int <= \l_tmpa_tl }
-                && \int_compare_p:n { \l_tmpb_tl <= \l__witharrows_final_int }
-                && ! \str_if_eq_p:Vn \l__witharrows_status_arrow_str { independent }
+                { \int_compare_p:n { ##1 = ####1 } }
+                { \int_compare_p:nNn \l__witharrows_initial_int > \l_tmpa_tl }
+                { \int_compare_p:nNn \l_tmpb_tl > \l__witharrows_final_int }
+                { \str_if_eq_p:Vn \l__witharrows_status_arrow_str { independent } }
               }
               {
                 \bool_gset_true:N \g_tmpa_bool
@@ -1830,7 +1849,7 @@
   { ll, lr, rl, rr, tikz, tikz-code, v, x, offset }
 \NewDocumentCommand \__witharrows_Arrow_code_after { O { } m m m ! O { } }
   {
-    \int_set:Nn \l__witharrows_pos_arrow_int 1
+    \int_set_eq:NN \l__witharrows_pos_arrow_int \c_one_int
     \str_clear_new:N \l__witharrows_previous_key_str
     \group_begin:
       \keys_set:nn { WithArrows / Arrow / code-after }
@@ -1851,10 +1870,10 @@
         { \__witharrows_error:nn { Both~lines~are~equal } { #2 } }
         {
           \cs_if_free:cTF { pgf at sh@ns at wa - \l__witharrows_prefix_str - #2 - l }
-            { \__witharrows_error:nx { Wrong~line~in~Arrow } { #2 } }
+            { \__witharrows_error:ne { Wrong~line~in~Arrow } { #2 } }
             {
               \cs_if_free:cTF { pgf at sh@ns at wa - \l__witharrows_prefix_str - #3 - l }
-                { \__witharrows_error:nx { Wrong~line~in~Arrow } { #3 }  }
+                { \__witharrows_error:ne { Wrong~line~in~Arrow } { #3 }  }
                 {
                   \int_compare:nNnTF \l__witharrows_pos_arrow_int = 4
                     {
@@ -1903,12 +1922,12 @@
   }
 \cs_new_protected:Npn \__witharrows_MultiArrow:nn #1 #2
   {
-    \exp_args:Nnx
+    \exp_args:Nne
       \regex_match:nnTF
       { \A \d+ (\,\d+)* ( \, \.\.\. (\,\d+)+ )* \Z }
       { #1 }
       { \__witharrows_MultiArrow_i:nn { #1 } { #2 } }
-      { \__witharrows_error:nx { Invalid~specification~for~MultiArrow } { #1 } }
+      { \__witharrows_error:ne { Invalid~specification~for~MultiArrow } { #1 } }
   }
 \cs_new_protected:Npn \__witharrows_MultiArrow_i:nn #1 #2
   {
@@ -1915,7 +1934,7 @@
     \foreach \x in { #1 }
       {
         \cs_if_free:cTF { pgf at sh@ns at wa - \l__witharrows_prefix_str - \x - l }
-          { \__witharrows_error:nx { Wrong~line~specification~in~MultiArrow } \x }
+          { \__witharrows_error:ne { Wrong~line~specification~in~MultiArrow } \x }
           { \clist_gput_right:Nx \g_tmpa_clist \x }
       }
     \int_compare:nTF { \clist_count:N \g_tmpa_clist < 2 }
@@ -1923,7 +1942,7 @@
       {
         \clist_sort:Nn \g_tmpa_clist
           {
-            \int_compare:nTF { ##1 > ##2 }
+            \int_compare:nNnTF { ##1 } > { ##2 }
               \sort_return_swapped:
               \sort_return_same:
           }
@@ -2375,21 +2394,11 @@
               { \tl_to_str:n { #1 } }
             \seq_put_right:Nx \l__witharrows_options_WithArrowsOptions_seq
               { \tl_to_str:N { #1 } }
-            \cs_if_exist:NTF \keys_precompile:nnN
-              {
-                \keys_precompile:nnN
-                  { WithArrows / WithArrowsOptions }
-                  { #2 }
-                  \l_tmpa_tl
-                \__witharrows_key_define:nV { #1 } \l_tmpa_tl
-              }
-              {
-                \keys_define:nn { WithArrows / Global }
-                  {
-                    #1 .code:n =
-                     { \keys_set:nn { WithArrows / WithArrowsOptions } { #2 } }
-                  }
-              }
+            \keys_precompile:nnN
+              { WithArrows / WithArrowsOptions }
+              { #2 }
+              \l_tmpa_tl
+            \__witharrows_key_define:nV { #1 } \l_tmpa_tl
           }
           { \__witharrows_error:nn { Impossible~style } { #1 } }
       }

Modified: trunk/Master/texmf-dist/tex/generic/witharrows/witharrows.tex
===================================================================
--- trunk/Master/texmf-dist/tex/generic/witharrows/witharrows.tex	2024-10-05 19:36:34 UTC (rev 72470)
+++ trunk/Master/texmf-dist/tex/generic/witharrows/witharrows.tex	2024-10-05 19:36:44 UTC (rev 72471)
@@ -6,7 +6,7 @@
 %%
 %% witharrows.dtx  (with options: `plain-TeX')
 %% 
-%% Copyright (C) 2017-2023 by F. Pantigny
+%% Copyright (C) 2017-2024 by F. Pantigny
 %% 
 %% This file may be distributed and/or modified under the
 %% conditions of the LaTeX Project Public License, either
@@ -18,8 +18,8 @@
 %% and version 1.3 or later is part of all distributions of
 %% LaTeX version 2005/12/01 or later.
 %% 
-\def\myfileversion{2.8b}
-\def\myfiledate{2023/08/24}
+\def\myfileversion{2.9}
+\def\myfiledate{2024/10/05}
 \input tikz.tex
 \input expl3-generic.tex
 \usetikzlibrary{arrows.meta}
@@ -39,15 +39,16 @@
 \cs_new_protected:Npn \__witharrows_warning:n { \msg_warning:nn { witharrows } }
 \cs_new_protected:Npn \__witharrows_fatal:n { \msg_fatal:nn { witharrows } }
 \cs_new_protected:Npn \__witharrows_error:nn  { \msg_error:nnn { witharrows } }
-\cs_generate_variant:Nn \__witharrows_error:nn { n x }
+\cs_generate_variant:Nn \__witharrows_error:nn { n e }
 \cs_new_protected:Npn \__witharrows_error_or_warning:n
   { \bool_if:NTF \c__witharrows_messages_for_Overleaf_bool \__witharrows_warning:n \__witharrows_error:n }
 \bool_set:Nn \c__witharrows_messages_for_Overleaf_bool
   {
-       \str_if_eq_p:Vn \c_sys_jobname_str { _region_ }  % for Emacs
-    || \str_if_eq_p:Vn \c_sys_jobname_str { output }   % for Overleaf
+       \str_if_eq_p:on \c_sys_jobname_str { _region_ }  % for Emacs
+    || \str_if_eq_p:on \c_sys_jobname_str { output }   % for Overleaf
   }
-\cs_generate_variant:Nn \seq_set_split:Nnn { N x x }
+\bool_new:N \g__witharrows_beamer_bool
+\cs_generate_variant:Nn \seq_set_split:Nnn { N e e }
 \cs_new_protected:Npn \__witharrows_sort_seq:N #1
   {
     \seq_sort:Nn #1
@@ -65,7 +66,7 @@
   }
 \cs_new_protected:Npn \__witharrows_save:N #1
   {
-    \seq_set_split:Nxx \l_tmpa_seq
+    \seq_set_split:Nee \l_tmpa_seq
        { \char_generate:nn { `_ } { 12 } }
        { \cs_to_str:N #1 }
     \seq_pop_left:NN \l_tmpa_seq \l_tmpa_tl
@@ -81,7 +82,7 @@
   }
 \cs_new_protected:Npn \__witharrows_restore:N #1
   {
-    \seq_set_split:Nxx \l_tmpa_seq
+    \seq_set_split:Nee \l_tmpa_seq
       { \char_generate:nn { `_ } { 12 } }
       { \cs_to_str:N #1 }
     \seq_pop_left:NN \l_tmpa_seq \l_tmpa_tl
@@ -304,7 +305,7 @@
     replace-left-brace-by .code:n =
       {
         \tl_set:Nx \l_tmpa_tl { \tl_head:n { #1 } }
-        \clist_if_in:NVTF
+        \clist_if_in:NoTF
           \c__witharrows_ext_delimiters_clist
           \l_tmpa_tl
           { \tl_set:Nn \l__witharrows_replace_left_brace_by_tl { #1 } }
@@ -316,9 +317,9 @@
   {
     name .code:n =
       \str_set:Nn \l_tmpa_str { #1 }
-      \seq_if_in:NVTF \g__witharrows_names_seq \l_tmpa_str
+      \seq_if_in:NoTF \g__witharrows_names_seq \l_tmpa_str
         { \__witharrows_error:n { Duplicate~name } }
-        { \seq_gput_left:NV \g__witharrows_names_seq \l_tmpa_str }
+        { \seq_gput_left:No \g__witharrows_names_seq \l_tmpa_str }
       \str_set_eq:NN \l__witharrows_name_str \l_tmpa_str ,
     name .value_required:n = true ,
     code-before .code:n = \tl_put_right:Nn \l__witharrows_code_before_tl { #1 } ,
@@ -419,7 +420,7 @@
   }
 \cs_new_protected:Npn \__witharrows_set_independent:
   {
-    \str_if_eq:VnF \l_keys_value_tl { NoValue }
+    \str_if_eq:onF \l_keys_value_tl { NoValue }
       { \__witharrows_error:n { Value~for~a~key } }
     \__witharrows_set_independent_bis:
   }
@@ -435,7 +436,7 @@
 \keys_define:nn { WithArrows / Arrow / FirstPass }
   {
     jump .code:n =
-      \int_compare:nTF { #1 > 0 }
+      \int_compare:nNnTF { #1 } > \c_zero_int
         { \int_set:Nn \l__witharrows_jump_int { #1 } }
         { \__witharrows_error:n { Negative~jump } } ,
     jump .value_required:n  = true,
@@ -478,7 +479,7 @@
     xoffset .code:n = ,
     unknown .code:n =
       \__witharrows_sort_seq:N \l__witharrows_options_Arrow_seq
-      \seq_if_in:NVTF \l__witharrows_options_WithArrows_seq \l_keys_key_str
+      \seq_if_in:NoTF \l__witharrows_options_WithArrows_seq \l_keys_key_str
         {
           \str_set:Nn \l_tmpa_str
            { ~However,~this~key~can~be~used~in~the~options~of~{WithArrows}. }
@@ -513,13 +514,11 @@
     i  .code:n = \__witharrows_fix_pos_arrow:n 5 ,
     o  .code:n = \str_set:Nn \l__witharrows_previous_key_str { o } ,
     xoffset .code:n  =
-      \bool_if:nTF
+      \bool_lazy_all:nTF
         {
-          \int_compare_p:nNn \g__witharrows_arrow_int > 1
-          &&
-          \int_compare_p:nNn \l__witharrows_pos_arrow_int > 5
-          &&
-          ! \str_if_eq_p:Vn \l__witharrows_status_arrow_str { independent }
+          { \int_compare_p:nNn \g__witharrows_arrow_int > 1 }
+          { \int_compare_p:nNn \l__witharrows_pos_arrow_int > 5 }
+          { ! \str_if_eq_p:on \l__witharrows_status_arrow_str { independent } }
         }
         { \__witharrows_error:n { Option~xoffset~forbidden } }
         { \dim_set:Nn \l__witharrows_xoffset_dim { #1 } } ,
@@ -634,27 +633,27 @@
               {
                 \cs_set_eq:cN { \l__witharrows_command_name_str } \__witharrows_Arrow
               }
-            \str_if_eq:VnT \l__witharrows_type_col_str { c } \hfil
-            \str_if_eq:VnT \l__witharrows_type_col_str { C } \hfil
-            \str_if_eq:VnT \l__witharrows_type_col_str { r } \hfill
-            \str_if_eq:VnT \l__witharrows_type_col_str { R } \hfill
+            \str_if_eq:onT \l__witharrows_type_col_str { c } \hfil
+            \str_if_eq:onT \l__witharrows_type_col_str { C } \hfil
+            \str_if_eq:onT \l__witharrows_type_col_str { r } \hfill
+            \str_if_eq:onT \l__witharrows_type_col_str { R } \hfill
             \int_gincr:N \g__witharrows_col_int
             \int_gset:Nn \g__witharrows_static_col_int { \int_use:N \g__witharrows_col_int }
             \c_math_toggle_token
-            \str_if_eq:VnT \l__witharrows_type_col_str { C } { { } }
-            \str_if_eq:VnT \l__witharrows_type_col_str { L } { { } }
+            \str_if_eq:onT \l__witharrows_type_col_str { C } { { } }
+            \str_if_eq:onT \l__witharrows_type_col_str { L } { { } }
             \bool_if:NT \l__witharrows_displaystyle_bool \displaystyle
             ##
-            \str_if_eq:VnT \l__witharrows_type_col_str { C } { { } }
-            \str_if_eq:VnT \l__witharrows_type_col_str { R } { { } }
+            \str_if_eq:onT \l__witharrows_type_col_str { C } { { } }
+            \str_if_eq:onT \l__witharrows_type_col_str { R } { { } }
             \c_math_toggle_token
             \int_compare:nNnTF \g__witharrows_col_int = \l__witharrows_nb_cols_int
               \__witharrows_construct_nodes:
               {
-                \str_if_eq:VnT \l__witharrows_type_col_str { l } \hfil
-                \str_if_eq:VnT \l__witharrows_type_col_str { L } \hfil
-                \str_if_eq:VnT \l__witharrows_type_col_str { c } \hfil
-                \str_if_eq:VnT \l__witharrows_type_col_str { C } \hfil
+                \str_if_eq:onT \l__witharrows_type_col_str { l } \hfil
+                \str_if_eq:onT \l__witharrows_type_col_str { L } \hfil
+                \str_if_eq:onT \l__witharrows_type_col_str { c } \hfil
+                \str_if_eq:onT \l__witharrows_type_col_str { C } \hfil
                 \bool_if:NT \l__witharrows_in_DispWithArrows_bool { \tabskip = \c_zero_skip }
                 &
               }
@@ -770,7 +769,7 @@
   {
     \cs_set:Npn \WithArrowsRightX { \g__witharrows_right_x_dim }
     \normalbaselines
-    \int_compare:nNnT \g__witharrows_arrow_int > 0
+    \int_if_zero:nF \g__witharrows_arrow_int
       {
         \int_compare:nNnT \g__witharrows_arrow_int = 1
           {
@@ -856,7 +855,8 @@
     \bool_set_true:N \l__witharrows_in_DispWithArrows_bool
     \str_clear_new:N \l__witharrows_type_env_str
     \str_set:Nn \l__witharrows_type_env_str { DispWithArrows }
-    \exp_args:No \tl_if_novalue:nF { #1 } { \tl_set:Nn \l__witharrows_left_brace_tl { #1 } }
+    \exp_args:No \tl_if_novalue:nF { #1 }
+      { \cs_set_nopar:Npn \l__witharrows_left_brace_tl { #1 } }
     \__witharrows_pre_halign:n { #2 }
     \tl_if_eq:NNF \l__witharrows_left_brace_tl \c_novalue_tl
       {
@@ -1036,12 +1036,9 @@
           \__witharrows_treat_an_arrow_in_scan:
         \int_incr:N \l__witharrows_arrow_int
       }
-    \bool_if:nT
-      {
-        ! \int_compare_p:nNn \l__witharrows_pos_arrow_int = 7
-        &&
-        \int_compare_p:nNn \l__witharrows_first_arrow_of_group_int > 0
-      }
+    \bool_lazy_and:nnT
+      { ! \int_compare_p:nNn \l__witharrows_pos_arrow_int = 7 }
+      { \int_compare_p:nNn \l__witharrows_first_arrow_of_group_int > \c_zero_int }
       { \__witharrows_draw_arrows:nn \l__witharrows_first_arrow_of_group_int \g__witharrows_arrow_int }
   }
 \cs_new_protected:Npn \__witharrows_treat_an_arrow_in_scan:
@@ -1061,7 +1058,7 @@
           { \str_if_eq_p:Vn \l__witharrows_status_arrow_str { new-group } }
       }
       {
-        \int_compare:nNnF \l__witharrows_first_arrow_of_group_int = \c_zero_int
+        \int_if_zero:nF \l__witharrows_first_arrow_of_group_int
           {
             \__witharrows_draw_arrows:nn
               \l__witharrows_first_arrow_of_group_int
@@ -1085,8 +1082,7 @@
       {
         \str_if_eq:VnF \l__witharrows_status_arrow_str { independent }
           {
-            \int_compare:nT
-              { \l__witharrows_initial_int = \l__witharrows_first_line_of_group_int }
+            \int_compare:nNnT \l__witharrows_initial_int = \l__witharrows_first_line_of_group_int
               { \seq_put_left:NV \l__witharrows_first_arrows_seq \l__witharrows_arrow_int }
             \int_compare:nNnTF \l__witharrows_final_int > \l__witharrows_last_line_of_group_int
               {
@@ -1100,7 +1096,7 @@
               }
           }
       }
-    \str_if_eq:VnF \l__witharrows_status_arrow_str { independent }
+    \str_if_eq:onF \l__witharrows_status_arrow_str { independent }
       {
         \int_compare:nNnF \l__witharrows_pos_arrow_int = 8
           { \__witharrows_update_x:nn \l__witharrows_initial_int \l__witharrows_final_int }
@@ -1132,7 +1128,7 @@
           { status } \l__witharrows_status_arrow_str
         \int_compare:nNnF \l__witharrows_final_int > \g__witharrows_line_int
           {
-            \str_if_eq:VnTF \l__witharrows_status_arrow_str { over }
+            \str_if_eq:onTF \l__witharrows_status_arrow_str { over }
               { \seq_put_right:NV \l__witharrows_o_arrows_seq \l__witharrows_arrow_int }
               \__witharrows_draw_arrow:
           }
@@ -1285,10 +1281,13 @@
           { \dim_zero:N \l_tmpa_dim }
           { \dim_set:Nn \l_tmpa_dim { \pgf at picmaxx - \pgf at picminx } }
         \dim_add:Nn \l_tmpa_dim \l__witharrows_xoffset_dim
-        \prop_gput:cnV
-          { g__witharrows_arrow _ \l__witharrows_prefix_str _ \int_use:N \l__witharrows_arrow_int _ prop }
-          { width }
-          \l_tmpa_dim
+        \int_compare:nNnT \l__witharrows_arrow_int > 0 % added 2024/10/01
+          {
+            \prop_gput:cnV
+              { g__witharrows_arrow _ \l__witharrows_prefix_str _ \int_use:N \l__witharrows_arrow_int _ prop }
+              { width }
+              \l_tmpa_dim
+          }
         \bool_if:NF \l__witharrows_right_overlap_bool
           {
             \bool_if:NT \l__witharrows_in_WithArrows_bool
@@ -1309,7 +1308,7 @@
   {
     \bool_lazy_and:nnT \l__witharrows_wrap_lines_bool \l__witharrows_in_DispWithArrows_bool
       { \tl_set_eq:NN \l__witharrows_tikz_code_tl \c__witharrows_tikz_code_wrap_lines_tl }
-    \exp_args:NV \__witharrows_def_function_tmpa:n \l__witharrows_tikz_code_tl
+    \exp_args:No \__witharrows_def_function_tmpa:n \l__witharrows_tikz_code_tl
     \__witharrows_tmpa:nnn { #1 } { #2 } { #3 }
   }
 \cs_generate_variant:Nn \__witharrows_draw_arrow:nnn { n n o }
@@ -1402,12 +1401,12 @@
             \prop_get:cnN
               { g__witharrows_arrow _ \l__witharrows_prefix_str _ ####1 _ prop }
               { status } \l__witharrows_status_arrow_str
-            \bool_if:nT
+            \bool_lazy_any:nF
               {
-                ! \int_compare_p:n { ##1 = ####1 }
-                && \int_compare_p:n { \l__witharrows_initial_int <= \l_tmpa_tl }
-                && \int_compare_p:n { \l_tmpb_tl <= \l__witharrows_final_int }
-                && ! \str_if_eq_p:Vn \l__witharrows_status_arrow_str { independent }
+                { \int_compare_p:n { ##1 = ####1 } }
+                { \int_compare_p:nNn \l__witharrows_initial_int > \l_tmpa_tl }
+                { \int_compare_p:nNn \l_tmpb_tl > \l__witharrows_final_int }
+                { \str_if_eq_p:Vn \l__witharrows_status_arrow_str { independent } }
               }
               {
                 \bool_gset_true:N \g_tmpa_bool
@@ -1470,7 +1469,7 @@
   }
 \cs_new_protected:Npn \__witharrows_Arrow_code_after_ii [ #1 ] #2 #3 #4 [ #5 ]
   {
-    \int_set:Nn \l__witharrows_pos_arrow_int 1
+    \int_set_eq:NN \l__witharrows_pos_arrow_int \c_one_int
     \str_clear_new:N \l__witharrows_previous_key_str
     \group_begin:
       \keys_set:nn { WithArrows / Arrow / code-after }
@@ -1491,10 +1490,10 @@
         { \__witharrows_error:nn { Both~lines~are~equal } { #2 } }
         {
           \cs_if_free:cTF { pgf at sh@ns at wa - \l__witharrows_prefix_str - #2 - l }
-            { \__witharrows_error:nx { Wrong~line~in~Arrow } { #2 } }
+            { \__witharrows_error:ne { Wrong~line~in~Arrow } { #2 } }
             {
               \cs_if_free:cTF { pgf at sh@ns at wa - \l__witharrows_prefix_str - #3 - l }
-                { \__witharrows_error:nx { Wrong~line~in~Arrow } { #3 }  }
+                { \__witharrows_error:ne { Wrong~line~in~Arrow } { #3 }  }
                 {
                   \int_compare:nNnTF \l__witharrows_pos_arrow_int = 4
                     {
@@ -1543,12 +1542,12 @@
   }
 \cs_new_protected:Npn \__witharrows_MultiArrow:nn #1 #2
   {
-    \exp_args:Nnx
+    \exp_args:Nne
       \regex_match:nnTF
       { \A \d+ (\,\d+)* ( \, \.\.\. (\,\d+)+ )* \Z }
       { #1 }
       { \__witharrows_MultiArrow_i:nn { #1 } { #2 } }
-      { \__witharrows_error:nx { Invalid~specification~for~MultiArrow } { #1 } }
+      { \__witharrows_error:ne { Invalid~specification~for~MultiArrow } { #1 } }
   }
 \cs_new_protected:Npn \__witharrows_MultiArrow_i:nn #1 #2
   {
@@ -1555,7 +1554,7 @@
     \foreach \x in { #1 }
       {
         \cs_if_free:cTF { pgf at sh@ns at wa - \l__witharrows_prefix_str - \x - l }
-          { \__witharrows_error:nx { Wrong~line~specification~in~MultiArrow } \x }
+          { \__witharrows_error:ne { Wrong~line~specification~in~MultiArrow } \x }
           { \clist_gput_right:Nx \g_tmpa_clist \x }
       }
     \int_compare:nTF { \clist_count:N \g_tmpa_clist < 2 }
@@ -1563,7 +1562,7 @@
       {
         \clist_sort:Nn \g_tmpa_clist
           {
-            \int_compare:nTF { ##1 > ##2 }
+            \int_compare:nNnTF { ##1 } > { ##2 }
               \sort_return_swapped:
               \sort_return_same:
           }
@@ -1964,21 +1963,11 @@
               { \tl_to_str:n { #1 } }
             \seq_put_right:Nx \l__witharrows_options_WithArrowsOptions_seq
               { \tl_to_str:N { #1 } }
-            \cs_if_exist:NTF \keys_precompile:nnN
-              {
-                \keys_precompile:nnN
-                  { WithArrows / WithArrowsOptions }
-                  { #2 }
-                  \l_tmpa_tl
-                \__witharrows_key_define:nV { #1 } \l_tmpa_tl
-              }
-              {
-                \keys_define:nn { WithArrows / Global }
-                  {
-                    #1 .code:n =
-                     { \keys_set:nn { WithArrows / WithArrowsOptions } { #2 } }
-                  }
-              }
+            \keys_precompile:nnN
+              { WithArrows / WithArrowsOptions }
+              { #2 }
+              \l_tmpa_tl
+            \__witharrows_key_define:nV { #1 } \l_tmpa_tl
           }
           { \__witharrows_error:nn { Impossible~style } { #1 } }
       }



More information about the tex-live-commits mailing list.