diff options
Diffstat (limited to 'Master/texmf-dist/doc/latex')
-rw-r--r-- | Master/texmf-dist/doc/latex/witharrows/README.md | 28 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/witharrows/witharrows-french.pdf | bin | 251565 -> 0 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/witharrows/witharrows-french.tex | 2244 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/witharrows/witharrows.pdf | bin | 553254 -> 0 bytes |
4 files changed, 0 insertions, 2272 deletions
diff --git a/Master/texmf-dist/doc/latex/witharrows/README.md b/Master/texmf-dist/doc/latex/witharrows/README.md deleted file mode 100644 index b706fd6ac2e..00000000000 --- a/Master/texmf-dist/doc/latex/witharrows/README.md +++ /dev/null @@ -1,28 +0,0 @@ -# Readme for the package witharrows - -Author : F. Pantigny (`fpantigny@wanadoo.fr`). - -CTAN page : `https://ctan.org/pkg/witharrows` - -## License -The LaTeX extension `witharrows` is distributed under the LPPL 1.3 license. - -## Presentation - -The LaTeX package `witharrows` provides environments `{WithArrows}` and `{DispWithArrows}` -similar to the environments `{aligned}` and `{align}` of `amsmath` but with the possibility to draw arrows on the right side of the alignment. These arrows are usually used to give explanations concerning the mathematical calculus presented. - - - -## Installation - -The package `witharrows` is present in the distributions MiKTeX, TeXLive and MacTeX. - -For a manual installation: - -* put the files `witharrows.ins` dans `witharrows.dtx` in the same directory; -* run `latex witharrows.ins`. - -The file `witharrows.sty` will be generated. - -The file `witharrows.sty` is the only file necessary to use the extension `witharrows`. diff --git a/Master/texmf-dist/doc/latex/witharrows/witharrows-french.pdf b/Master/texmf-dist/doc/latex/witharrows/witharrows-french.pdf Binary files differdeleted file mode 100644 index 642c9f86139..00000000000 --- a/Master/texmf-dist/doc/latex/witharrows/witharrows-french.pdf +++ /dev/null diff --git a/Master/texmf-dist/doc/latex/witharrows/witharrows-french.tex b/Master/texmf-dist/doc/latex/witharrows/witharrows-french.tex deleted file mode 100644 index 65f0355dfb7..00000000000 --- a/Master/texmf-dist/doc/latex/witharrows/witharrows-french.tex +++ /dev/null @@ -1,2244 +0,0 @@ -% -*- coding: utf-8 ; -*- -\documentclass[dvipsnames]{article}% dvipsnames est pour xcolor (chargé par Tikz) -\usepackage{xltxtra} -\usepackage[french]{babel} - -\usepackage[xetex]{geometry} -\geometry{left=2.8cm,right=2.8cm,top=2.5cm,bottom=2.5cm,papersize={21cm,29.7cm}} - -\usepackage{amsmath} -\usepackage{color} -\usepackage{verbatim} -\usepackage{mathtools} -\usepackage[footnotehyper]{witharrows} -\usepackage{amsfonts} -\usepackage{amssymb} -\usepackage{varwidth} -\usetikzlibrary{calc} -\usepackage[only,llbracket,rrbracket]{stmaryrd} - -\usepackage{fancyvrb} -\fvset{commandchars=\~\#\@,formatcom={\color{gray}}} - -\usepackage{titlesec} -\titlespacing*{\section}{0pt}{6.5ex plus 1ex minus .2ex}{4.3ex plus .2ex} -\titlespacing*{\subsection}{0pt}{4.5ex plus 1ex minus .2ex}{2ex plus .2ex} - - -\def\interitem{\vskip 7mm plus 2 mm minus 3mm} -\def\emphase{\bgroup\color{RoyalPurple}\let\next=} - -\skip \footins = 2 \bigskipamount - -\usepackage[hyperfootnotes = false]{hyperref} - -\hypersetup{ - pdfinfo = { - Title = { L’extension witharrows }, - Subject = { Une extension LaTeX } , - Author = { F. Pantigny } - } -} - -\NewDocumentEnvironment {scope} {} {} {} - -\NewDocumentCommand {\pkg} {m} {\textsf{#1}} -\NewDocumentCommand {\cls} {m} {\textsf{#1}} - -\setlength{\parindent}{0pt} - - -\begin{document} - -\VerbatimFootnotes - -\title{L'extension \pkg{witharrows}\thanks{Ce document correspond à la -version~\myfileversion\space de \pkg{witharrows}, à la date du~\myfiledate.}} \author{F. Pantigny \\ -\texttt{fpantigny@wanadoo.fr}} - -\maketitle - -\begin{abstract} -L'extension LaTeX \pkg{witharrows} fournit des environments \verb|{WithArrows}| et -\verb|{DispWithArrows}| similaires aux environnements \verb|{aligned}| et \verb|{align}| de -l'\pkg{amsmath} mais avec la possibilité de dessiner des flèches sur le côté droit. -Ces flèches sont habituellement utilisées pour donner des explications concernant -le calcul mathématique présenté. -\end{abstract} - - -\vspace{1cm} -Cette extension peut être utilisée avec \verb|xelatex|, \verb|lualatex|, \verb|pdflatex| -mais aussi avec le cheminement classique \verb|latex|-\verb|dvips|-\verb|ps2pdf| (ou Adobe -Distiller). Plusieurs compilations peuvent être nécessaires. Cette extension nécessite les -extensions \pkg{expl3}, \pkg{xparse} et \pkg{tikz}. Les extensions Tikz -\pkg{arrows.meta} et \pkg{bending} sont également requises. Toutes sont chargées par \pkg{witharrows}. - -\bigskip -Cette extension fournit un environnement \verb|{WithArrows}| pour construire des alignements d'équations -avec des flèches pour les explications sur le côté droit. - -\begin{Verbatim} -$\begin{WithArrows} -A & = (a+1)^2 ~emphase#\Arrow{on développe}@ \\ - & = a^2 + 2a + 1 % ne pas mettre de \\ ici -\end{WithArrows}$ -\end{Verbatim} - -$\begin{WithArrows} -A & = (a+1)^2 \Arrow{on développe} \\ - & = a^2 + 2a + 1 -\end{WithArrows}$ - - - -\medskip -La flèche a été tracée avec la commande \verb|\Arrow| dans la rangée dont la flèche part. La commande \verb|\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 \verb|{WithArrows}| est proche de l'environnement -\verb|{aligned}| de l'\pkg{amsmath}. L'extension \pkg{witharrows} -propose aussi un environnement \verb|{DispWithArrows}| qui est similaire à l'environnement \verb|{align}| de -l'\pkg{amsmath}: cf. p. \pageref{DispWithArrows}. - - -\section{Options pour la forme des flèches} - -La commande \verb|\Arrow| a plusieurs options. Ces options peuvent être placées entre crochets, avant, ou après, -l'argument obligatoire. - -L'option \verb|jump| indique le nombre\footnote{Il n'est pas possible de donner une valeur négative à \verb|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 par défaut est, bien -entendu,~$1$). - - -\begin{Verbatim} -$\begin{WithArrows} -A & = \bigl((a+b)+1\bigr)^2 \Arrow[~emphase#jump=2@]{on développe} \\ - & = (a+b)^2 + 2(a+b) +1 \\ - & = a^2 + 2ab + b^2 + 2a + 2b +1 -\end{WithArrows}$ -\end{Verbatim} - -$\begin{WithArrows} -A & = \bigl((a+b)+1\bigr)^2 \Arrow[jump=1+1]{on développe} \\ - & = (a+b)^2 + 2(a+b) +1 \\ - & = a^2 + 2ab + b^2 + 2a + 2b +1 -\end{WithArrows}$ - -\interitem -Il est possible de faire partir plusieurs flèches d'une même rangée. -\begin{Verbatim} -$\begin{WithArrows} -A & = \bigl((a+b)+1\bigr)^2 ~emphase#\Arrow{}\Arrow{}[jump=2]@ \\ - & = (a+b)^2 + 2(a+b) +1 \\ - & = a^2 + 2ab + b^2 + 2a + 2b +1 -\end{WithArrows}$ -\end{Verbatim} - -$\begin{WithArrows} -A & = \bigl((a+b)+1\bigr)^2 \Arrow{}\Arrow{}[jump=2] \\ - & = (a+b)^2 + 2(a+b) +1 \\ - & = a^2 + 2ab + b^2 + 2a + 2b +1 -\end{WithArrows}$ - -\interitem -L'option \verb|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 par défaut de \verb|xoffset| est de $3$~mm. -\begin{Verbatim} -$\begin{WithArrows} -A & = \bigl((a+b)+1\bigr)^2 -\Arrow[~emphase#xoffset=1cm@]{avec \texttt{xoffset=1cm}} \\ - & = (a+b)^2 + 2(a+b) +1 -\end{WithArrows}$ -\end{Verbatim} - -$\begin{WithArrows} -A & = \bigl((a+b)+1\bigr)^2 -\Arrow[xoffset=1cm]{avec \texttt{xoffset=1cm}} \\ - & = (a+b)^2 + 2(a+b) +1 -\end{WithArrows}$ - - -\interitem -Les flèches sont tracées avec Tikz. C'est pourquoi la commande \verb|\Arrow| a une option -\verb|tikz| qui peut être utilisée pour donner à la flèche (en fait, à la commande \verb|\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} \\ - & = a^2 + 2a + 1 -\end{WithArrows}$ -\end{Verbatim} - -$\begin{WithArrows} -A & = (a+1)^2 \Arrow[tikz=thick]{on développe} \\ - & = 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~\verb|<-|.\label{Backwards} - -\begin{Verbatim} -$\begin{WithArrows} -A & = (a+1)^2 \Arrow~emphase#[tikz=<-]@{on factorise} \\ - & = a^2 + 2a + 1 -\end{WithArrows}$ -\end{Verbatim} - -$\begin{WithArrows} -A & = (a+1)^2 \Arrow[tikz=<-]{on factorise} \\ - & = a^2 + 2a + 1 -\end{WithArrows}$ - -\interitem -Il est aussi possible de supprimer les deux pointes de flèche avec l'option Tikz «\verb|-|». -\begin{Verbatim} -$\begin{WithArrows} -A & = (a+1)^2 \Arrow[~emphase#tikz=-@]{très classique} \\ - & = a^2 + 2a + 1 -\end{WithArrows}$ -\end{Verbatim} - -$\begin{WithArrows} -A & = (a+1)^2 \Arrow[tikz=-]{très classique} \\ - & = a^2 + 2a + 1 -\end{WithArrows}$ - -\interitem -Pour avoir des flèches droites et non incurvées, il convient d'utiliser l'option Tikz -«\verb|bend left = 0|». -\begin{Verbatim} -$\begin{WithArrows} -A & = (a+1)^2 \Arrow~emphase#[tikz={bend left=0}]@{on développe} \\ - & = a^2 + 2a + 1 -\end{WithArrows}$ -\end{Verbatim} - -$\begin{WithArrows} -A & = (a+1)^2 \Arrow[tikz={bend left=0}]{on développe} \\ - & = a^2 + 2a + 1 -\end{WithArrows}$ - -\smallskip -En fait, il est possible de modifier de manière plus drastique la forme des flèches avec l'option -\verb|tikz-code| (présentée p.~\pageref{tikz-code}). - -\interitem -Il est possible d'utiliser l'option «\verb|text width|» pour contrôler la largeur du texte associé à la -flèche.\footnote{Il est possible d'éviter les coupures de mots dans ces étiquettes -avec l'option «\verb|align = flush left|» de Tikz.} -% -\begin{Verbatim} -$\begin{WithArrows} -A & = \bigl((a+b)+1\bigr)^2 -\Arrow[jump=2,~emphase#tikz={text width=5.3cm}@]{Nous avons développé...} \\ - & = (a+b)^2 + 2(a+b) +1 \\ - & = a^2 + 2ab + b^2 + 2a + 2b +1 -\end{WithArrows}$ -\end{Verbatim} - -$\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.} \\ -& = (a+b)^2 + 2(a+b) +1 \\ -& = a^2 + 2ab + b^2 + 2a + 2b +1 -\end{WithArrows}$ - - -\bigskip -Dans les environnements \verb|{DispWithArrows}| et \verb|{DispWithArrows*}|, il y a une -option \verb|wrap-lines|. Lorsque cette option est utilisée, les lignes des étiquettes sont -automatiquement coupées sur la marge droite : voir p.~\pageref{wrap-lines}. - -\interitem -Si on veut changer la fonte du texte associé à une flèche, on peut, bien entendu, placer une commande comme -\verb|\bfseries|, \verb|\large| ou \verb|\sffamily| au début du texte. -Mais, par défaut, les étiquettes sont composées avec une combinaison -de \verb|\small| et \verb|\itshape|. En ajoutant \verb|\bfseries| au début du texte, on ne va pas supprimer le -\verb|\small| et le \verb|\itshape| et, par conséquent, on aura un texte en gras, italique et petite taille. -% -\begin{Verbatim} -$\begin{WithArrows} -A & = (a+1)^2 \Arrow{~emphase#\bfseries@ on développe} \\ - & = a^2 + 2a + 1 -\end{WithArrows}$ -\end{Verbatim} - -$\begin{WithArrows} -A & = (a+1)^2 \Arrow{\bfseries on développe} \\ - & = a^2 + 2a + 1 -\end{WithArrows}$ - -\interitem -Il est possible de placer des commandes \verb|\\| dans le texte pour forcer des retours à la ligne\footnote{Par -défaut, ce n'est pas possible dans un nœud Tikz. Néanmoins, dans \pkg{witharrows}, -les nœuds sont construits avec l'option \verb|align=left|, et, ainsi, cela devient possible.}. Néanmoins, si on utilise des commandes \verb|\\|, une instruction de fonte placée au début -du texte aura un effet seulement jusqu'à la première occurrence de~\verb|\\| (comme -dans un environnement \verb|{tabular}|). C'est pourquoi Tikz fournit une option -\verb|font| pour modifier la fonte de tout le texte de l'étiquette. Cette fois-ci, si on utilise une option -\verb|tikz={font={\bfseries}}|, la spécification par défaut constituée par \verb|\small| et \verb|\itshape| va être -écrasée. -% -\begin{Verbatim} -$\begin{WithArrows} -A & = (a+1)^2 \Arrow[~emphase#tikz={font={\bfseries}}@]{on développe} \\ - & = a^2 + 2a + 1 -\end{WithArrows}$ -\end{Verbatim} - -$\begin{WithArrows} -A & = (a+1)^2 \Arrow[tikz={font={\bfseries}}]{on développe} \\ - & = a^2 + 2a + 1 -\end{WithArrows}$ - -\medskip -Si on veut exactement le même résultat que précédemment, on doit donner à l'option \verb|font| la valeur -\verb|\itshape\small\bfseries|. - - -\interitem -Presque toutes les options peuvent être données entre crochets à l'environnement \verb|{WithArrows}|. Il ne doit -pas y avoir d'espace entre le \verb|\begin{WithArrows}| et le crochet ouvrant (\verb|[|) 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 \verb|{WithArrows}| donné (avec des exceptions attendues - pour les options \verb|interline|, \verb|code-before| et \verb|code-after|).} -% -\begin{Verbatim} -$\begin{WithArrows}[~emphase#tikz=blue@] -A & = \bigl((a+b)+1\bigr)^2 \Arrow{premier développement} \\ - & = (a+b)^2 + 2(a+b) +1 \Arrow{second développement} \\ - & = a^2 + 2ab + b^2 + 2a + 2b +1 -\end{WithArrows}$ -\end{Verbatim} - -$\begin{WithArrows}[tikz=blue] -A & = \bigl((a+b)+1\bigr)^2 \Arrow{premier développement} \\ - & = (a+b)^2 + 2(a+b) +1 \Arrow{second développement} \\ - & = a^2 + 2ab + b^2 + 2a + 2b +1 -\end{WithArrows}$ - - -\interitem -L'environnement \verb|{WithArrows}| a une option \verb|displaystyle|. Avec cette option, -tous les éléments sont composés en \verb|\displaystyle| (comme dans un environnement -\verb|{aligned}| de l'\pkg{amsmath}). - -\medskip -Sans l'option \verb|displaystyle|: -% -\begin{Verbatim} -$\begin{WithArrows} -\int_0^1 (x+1)^2 dx -& = \int_0^1 (x^2+2x+1) dx -\Arrow{linéarité de l'intégration} \\ -& = \int_0^1 x^2 dx + 2 \int_0^1 x dx + \int_0^1 dx \\ -& = \frac13 + 2\frac12 + 1 \\ -& = \frac73 -\end{WithArrows}$ -\end{Verbatim} - -$\begin{WithArrows} -\int_0^1 (x+1)^2 dx -& = \int_0^1 (x^2+2x+1) dx -\Arrow{linéarité de l'intégration} \\ -& = \int_0^1 x^2 dx + 2 \int_0^1 x dx + \int_0^1 dx \\ -& = \frac13 + 2\frac12 + 1 \\ -& = \frac73 -\end{WithArrows}$ - - -\medskip -Le même exemple avec l'option \verb|displaystyle|:\par\nobreak - -$\begin{WithArrows}[displaystyle] -\int_0^1 (x+1)^2 dx -& = \int_0^1 (x^2+2x+1) dx -\Arrow{linéarité de l'intégration} \\ -& = \int_0^1 x^2 dx + 2 \int_0^1 x dx + \int_0^1 dx \\ -& = \frac13 + 2\frac12 + 1 \\ -& = \frac73 -\end{WithArrows}$ - - - -\interitem -Presque toutes les options peuvent aussi être fixées au niveau du document avec la commande -\verb|\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 -\verb|{WithArrows}| soient composés en \verb|\displaystyle| avec des flèches bleues, nous pouvons écrire -\verb|\WithArrowsOptions{displaystyle,tikz=blue}|.\footnote{Il est aussi possible de configurer \pkg{witharrows} en - modifiant le style Tikz \verb|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 : \verb|\tikzset{WithArrows/arrow/.append style = {blue,font = {}}}|.} - -\begin{Verbatim} -~emphase#\WithArrowsOptions{displaystyle,tikz=blue}@ -$\begin{WithArrows} -\sum_{i=1}^n (x_i+1)^2 -& = \sum_{i=1}^n (x_i^2+2x_i+1) \Arrow{par linéarité}\\ -& = \sum_{i=1}^n x_i^2 + 2\sum_{i=1}^nx_i+ n -\end{WithArrows}$ -\end{Verbatim} - -\begin{scope} -\WithArrowsOptions{displaystyle,tikz=blue} -$\begin{WithArrows} -\sum_{i=1}^n (x_i+1)^2 -& = \sum_{i=1}^n (x_i^2+2x_i+1) \Arrow{par linéarité}\\ -& = \sum_{i=1}^n x_i^2 + 2\sum_{i=1}^nx_i+ n -\end{WithArrows}$ -\end{scope} - - -\interitem -La commande \verb|\Arrow| est reconnue seulement dans les environnements \verb|{WithArrows}|. Si on -dispose d'une commande \verb|\Arrow| précédemment définie, il est possible de continuer à l'utiliser à -l'extérieur des environnements \verb|{WithArrows}|. - -Néanmoins, une commande \verb|\Arrow| définie précédemment pourrait encore être utile dans un environnement \verb|{WithArrows}|. -Si vous voulez l'utiliser dans un tel environnement, il est possible de changer le nom de la commande \verb|\Arrow| de -l'extension \pkg{witharrows} grâce à une option \verb|command-name|\footnote{Pour des raisons historiques, il y a - un alias pour cette option : \verb|CommandeName|.} dédiée. Le nouveau nom de la commande doit être fourni à -l'option \emph{sans} la contre-oblique. -% -\begin{Verbatim} -\NewDocumentCommand {\Arrow} {} {\longmapsto} -$\begin{WithArrows}[~emphase#command-name=Explication@] -f & = \bigl(x \Arrow (x+1)^2\bigr) -~emphase#\Explication{on travaille directement sur les fonctions}@\\ -& = \bigl(x \Arrow x^2+2x+1\bigr) -\end{WithArrows}$ -\end{Verbatim} -% -\begin{scope} -\NewDocumentCommand {\Arrow} {} {\longmapsto} -$\begin{WithArrows}[command-name=Explication] -f & = \bigl(x \Arrow (x+1)^2\bigr) -\Explication{on travaille directement sur les fonctions}\\ -& = \bigl(x \Arrow x^2+2x+1\bigr) -\end{WithArrows}$ -\end{scope} - - -\interitem -L'environnement \verb|{WithArrows}| fournit aussi deux options \verb|code-before| et -\verb|code-after|\footnote{Pour des raisons historiques, il y a aussi des alias pour ces options : - \verb|CodeBefore| et \verb|CodeAfter|.} 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}@] -A & = (a+b)^2 \Arrow{on développe} \\ - & = a^2 + 2ab + b^2 -\end{WithArrows}$ -\end{Verbatim} - -$\begin{WithArrows}[code-before = \color{blue}] -A & = (a+b)^2 \Arrow{on développe} \\ - & = a^2 + 2ab + b^2 -\end{WithArrows}$ - -\medskip -Des commandes spéciales sont disponibles dans le \verb|code-after| : une commande \verb|\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 \verb|\Arrow| et la commande \verb|\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 \verb|{WithArrows}| qu'avec deux colonnes. Néanmoins, il est -possible de l'utiliser avec un nombre arbitraire de colonnes grâce à l'option \verb|format|. La valeur -donnée à cette option est similaire au préambule d'un environnement \verb|{array}|: il s'agit d'une séquence de -lettres \verb|r|, \verb|c| et \verb|l|. La valeur par défaut de cette option \verb|format| est, en fait, \verb|rl|. - - -\bigskip -Par exemple, si on veut seulement une colonne alignée à gauche, on peut utiliser l'option \verb|format=l|. -\begin{Verbatim} -$\begin{WithArrows}[~emphase#format = l@] -f(x) \ge g(x) \Arrow{on élève les deux membres au carré} \\ -f(x)^2 \ge g(x)^2 \Arrow{on fait tout passer à gauche} \\ -f(x)^2 - g(x)^2 \ge 0 -\end{WithArrows}$ -\end{Verbatim} - -$\begin{WithArrows}[format = l] -f(x) \ge g(x) \Arrow{on élève les deux membres au carré} \\ -f(x)^2 \ge g(x)^2 \Arrow{on fait tout passer à gauche} \\ -f(x)^2 - g(x)^2 \ge 0 -\end{WithArrows}$ - -\interitem -Dans l'exemple suivant, on utilise cinq colonnes toutes centrées (l'environnement -\verb|{DispWithArrows*}| utilisé est présenté p.~\pageref{DispWithArrows}). - -\begin{Verbatim} -\begin{DispWithArrows*}[~emphase#format = ccccc@, - wrap-lines, - tikz = {align = flush left}, - interline=1mm] -k & \;\le\; & t & \;\le\; & k+1 \\ -\frac{1}{k+1} & \le & \frac{1}{t} & \le & \frac{1}{k} -\Arrow{nous pouvons intégrer les inégalités puisque $k \leq k+1$ } \\ -\int\limits_k^{k+1} \frac{dt}{k+1} -& \le & \int\limits_k^{k+1} \frac{dt}{t} -& \le & \int\limits_k^{k+1} \frac{dt}{k} \\ -\frac{1}{k+1} & \le & \ln(k+1)-\ln(k) & \le & \frac{1}{k} -\end{DispWithArrows*} -\end{Verbatim} -\begin{DispWithArrows*}[format = ccccc, - wrap-lines, - tikz = {align = flush left}, - interline=1mm] -k & \;\le\; & t & \;\le\; & k+1 \\ -\frac{1}{k+1} & \le & \frac{1}{t} & \le & \frac{1}{k} -\Arrow{nous pouvons intégrer les inégalités puisque $k \leq k+1$} \\ -\int\limits_k^{k+1} \frac{dt}{k+1} -& \le & \int\limits_k^{k+1} \frac{dt}{t} -& \le & \int\limits_k^{k+1} \frac{dt}{k} \\ -\frac{1}{k+1} & \le & \ln(k+1)-\ln(k) & \le & \frac{1}{k} -\end{DispWithArrows*} - - -\section{Positionnement précis des flèches} - -L'environnement \verb|{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 -\verb|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 -$\begin{WithArrows}[displaystyle,show-nodes] -I -& = \int_{\frac{\pi}4}^0 \ln\Bigl(1+\tan\left(\tfrac{\pi}4-u\right)\Bigr)(-d u) \\ -& = \int_0^{\frac{\pi}4} \ln\Bigl(1+\tan\left(\tfrac{\pi}4-u\right)\Bigr)d u \\ -& = \int_0^{\frac{\pi}4}\ln\left(1+\frac{1-\tan u}{1+\tan u}\right)\, d u \\ -& =\int_0^{\frac{\pi}4}\ln\left(\frac{1+\tan u+1-\tan u}{1+\tan u}\right) d u \\ -& =\int_0^{\frac{\pi}4} \ln\left(\frac2{1+\tan u}\right)\, d u\\ -& =\int_0^{\frac{\pi}4}\bigl(\ln2-\ln(1+\tan u)\bigr)\, d u \\ -& =\frac{\pi}4\ln2-\int_0^{\frac{\pi}4}\ln(1+\tan u)\, d u \\ -& =\frac{\pi}4\ln2-I -\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}. - - -Par défaut, les flèches utilisent les nœuds de droite. Nous dirons que ces flèches sont dans le mode \verb|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 \verb|lr|, \verb|rl| et \verb|ll| (\emph{l} for \emph{left} en anglais). Ces flèches sont, la -plupart du temps, non verticales. - - -Therefore -$\begin{WithArrows}[displaystyle] -I -& = \int_{\frac{\pi}4}^0 \ln\Bigl(1+\tan\left(\tfrac{\pi}4-u\right)\Bigr)(-d u) -\Arrow[lr]{Cette flèche utilise une option \texttt{lr}.}\\ -& = \int_0^{\frac{\pi}4} \ln\Bigl(1+\tan\left(\tfrac{\pi}4-u\right)\Bigr)d u \\ -& = \int_0^{\frac{\pi}4}\ln\left(1+\frac{1-\tan u}{1+\tan u}\right)\, d u \\ -& =\int_0^{\frac{\pi}4}\ln\left(\frac{1+\tan u+1-\tan u}{1+\tan u}\right) d u -\Arrow[ll,jump=2,tikz={text width = 5cm}]{Cette flèche utilise une option \texttt{ll} -et une option \texttt{jump} fixée à $2$}\\ -& =\int_0^{\frac{\pi}4} \ln\left(\frac2{1+\tan u}\right)\, d u\\ -& =\int_0^{\frac{\pi}4}\bigl(\ln2-\ln(1+\tan u)\bigr)\, d u \\ -& =\frac{\pi}4\ln2-\int_0^{\frac{\pi}4}\ln(1+\tan u)\, d u \\ -& =\frac{\pi}4\ln2-I -\end{WithArrows}$ - - -\interitem -Il y a aussi une option nommée \verb|i| (\emph{i} pour \emph{intermédiaire}). Avec cette option, la flèche est -verticale et calée à gauche. - -\begin{Verbatim} -$\begin{WithArrows} -(a+b)(a+ib)(a-b)(a-ib) -& = (a+b)(a-b)\cdot(a+ib)(a-ib) \\ -& = (a^2-b^2)(a^2+b^2) \Arrow~emphase#[i]@{parce que $(x-y)(x+y)=x^2-y^2$}\\ -& = a^4-b^4 -\end{WithArrows}$ -\end{Verbatim} - -$\begin{WithArrows} -(a+b)(a+ib)(a-b)(a-ib) -& = (a+b)(a-b)\cdot(a+ib)(a-ib) \\ -& = (a^2-b^2)(a^2+b^2) \Arrow[i]{parce que $(x-y)(x+y)=x^2-y^2$}\\ -& = a^4-b^4 -\end{WithArrows}$ - - -\interitem -L'environnement \verb|{WithArrows}| propose aussi une option \verb|group|. Avec cette option, -\emph{toutes} les flèches de l'environnement sont regroupées sur une même verticale calée à gauche. -% -\begin{Verbatim}[formatcom=\small\color{gray}] -$\begin{WithArrows}[~emphase#displaystyle,group@] -2xy'-3y=\sqrt x -& \Longleftrightarrow 2x(K'y_0+Ky_0')-3Ky_0 = \sqrt x \\ -& \Longleftrightarrow 2xK'y_0 + K(2xy_0'-3y_0) = \sqrt x \\ -& \Longleftrightarrow 2x K'y_0 = \sqrt x \Arrow{...}\\ -... -\end{WithArrows}$ -\end{Verbatim} - - -$\begin{WithArrows}[displaystyle,group] -2xy'-3y=\sqrt x -& \Longleftrightarrow 2x(K'y_0+Ky_0')-3Ky_0 = \sqrt x \\ -& \Longleftrightarrow 2xK'y_0 + K(2xy_0'-3y_0) = \sqrt x \\ -& \Longleftrightarrow 2x K'y_0 = \sqrt x \Arrow{on remplace $y_0$ par sa valeur}\\ -& \Longleftrightarrow 2xK'x^{\frac32} = x^{\frac12} \Arrow{simplification par $x$}\\ -& \Longleftrightarrow K' = \tfrac1{2x^2} \Arrow{on primitive}\\ -& \Longleftrightarrow K = -\tfrac1{2x} -\end{WithArrows}$ - - -\bigskip -L'environnement \verb|{WithArrows}| fournit encore une autre option, nommée \verb|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 -$\begin{WithArrows}[groups] -A & = B \Arrow{one} \\ - & = C+D \Arrow{two} \\ - & = D' \\ - & = E+F+G+H+I \\ - & = K + L + M \Arrow{three}\\ - & = N \Arrow{four}\\ - & = O -\end{WithArrows}$ - -\bigskip -Dans un environnement qui utilise l'option \verb|group| ou l'option \verb|groups|, il est encore possible de donner -une option de position (\verb|ll|, \verb|lr|, \verb|rl|, \verb|rr| ou \verb|i|) à une flèche individuelle. Une -telle flèche sera tracée indépendamment des groupes. Il est aussi possible de commencer un nouveau groupe avec -l'option \verb|new-group| pour une certaine flèche. - - -\bigskip -Si on le souhaite, on peut passer l'option \verb|group| ou \verb|groups| à la commande \verb|WithArrowsOptions| de -telle sorte qu'elle deviendra la valeur par défaut (jusqu'à la fin du groupe TeX). Dans ce cas, il est encore -possible de revenir au comportement par défaut pour un environnement \verb|{WithArrows}| donné avec l'option -\verb|rr|: \verb|\begin{WithArrows}[rr]|. - - -\vspace{1cm} -Dans l'exemple suivant, nous avons utilisé l'option \verb|group| pour l'environnement -et l'option \verb|rr| 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,group] -\sum\limits_{k=0}^n\frac{\cos kx}{\cos^k x} -& = \sum\limits_{k=0}^n \frac{\Re (e^{ikx})}{(\cos x)^k} -\Arrow{$(\cos x)^k$ est réel} \\ -& = \sum\limits_{k=0}^n \Re\left(\frac{e^{ikx}}{(\cos x)^k}\right) -\Arrow{$\Re(z+z')=\Re(z)+\Re(z')$}\\ -& = \Re \left(\sum\limits_{k=0}^n \left(\frac{e^{ix}}{\cos x}\right)^k\right) -\Arrow{somme de termes d'une suite géométrique} \\ -& = \Re \left(\frac{1-\left(\frac{e^{ix}}{\cos x}\right)^{n+1}}{1-\frac{e^{ix}}{\cos x}} \right) -\Arrow{calcul algébrique} \\ -& = \Re \left(\frac{1-\frac{e^{i(n+1)x}}{\cos^{n+1}x}}{1-\frac{e^{ix}}{\cos x}}\right) -\Arrow{réduction au même dénominateur} \\ -& = \Re \left(\frac{\frac{\cos^{n+1}x-e^{i(n+1)x}}{\cos^{n+1}x}}{\frac{\cos x-e^{ix}}{\cos x}}\right) -\Arrow{$\Re(kz) = k\cdot\Re(z)$ lorsque $k$ est réel} \\ -& = \frac1{\cos^n x}\Re \left(\frac{\cos^{n+1}x-e^{i(n+1)x}}{\cos x-e^{ix}}\right) -\Arrow[rr]{forme algébrique des nombres complexes} \\ -& =\frac1{\cos^n x}\Re\left(\frac{\cos^{n+1}x-(\cos(n+1)x+i\sin(n+1)x)}{\cos x-(\cos x+i\sin x)}\right) \\ -& =\frac1{\cos^n x}\Re\left(\frac{(\cos^{n+1}x-\cos(n+1)x)-i\sin(n+1)x}{-i\sin x}\right) \\ -& = \frac1{\cos^nx}\cdot\frac{\sin(n+1)x}{\sin x} -\end{WithArrows}$ - -\interitem - -\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ée «\verb|up|» et «\verb|down|». L'exemple -suivant illustre ces types de flèches: - - -\begin{Verbatim} -\(\begin{WithArrows} -A & = B -\Arrow~emphase#[up]@{une flèche de type \texttt{up}} \\ - & = C + C + C + C + C + C + C + C \\ - & = C + C + C + C + C + C + C + C -\Arrow~emphase#[down]@{une flèche de type \texttt{down}} \\ - & = E + E -\end{WithArrows}\) -\end{Verbatim} - -\vspace{1cm} -\(\begin{WithArrows} -A & = B -\Arrow[up]{une flèche de type \texttt{up}} \\ - & = C + C + C + C + C + C + C + C \\ - & = C + C + C + C + C + C + C + C -\Arrow[down]{une flèche de type \texttt{down}} \\ - & = E + E -\end{WithArrows}\) - - -\vspace{1cm} -Les options \verb|up| et \verb|down| nécessitent l'extension \pkg{varwidth} et l'extension Tikz -\pkg{calc}. Si elles ne sont pas chargées, une erreur sera levée. - - -\interitem - -\section{Comparaison avec l'environnement \{aligned\}} - -L'environnement \verb|{WithArrows}| présente des similitudes avec l'environnement \verb|{aligned}| de l'extension -\pkg{amsmath}. Ce sont seulement des similitudes car \verb|{WithArrows}| n'a pas été écrit en s'appuyant sur -\verb|{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 \verb|\\| de fin de ligne (il est aussi possible d'utiliser \verb|\\*| mais cela a -exactement le même effet que \verb|\\| puisqu'un environnement \verb|{WithArrows}| est toujours insécable). Cette -option est conçu pour être utilisée avec des valeurs positives uniquement. -% -\begin{Verbatim} -$\begin{WithArrows} -A & = (a+1)^2 \Arrow{on développe} ~emphase#\\[2ex]@ - & = a^2 + 2a + 1 -\end{WithArrows}$ -\end{Verbatim} - -$\begin{WithArrows} -A & = (a+1)^2 \Arrow{on développe} \\*[2ex] -\noalign{\vspace{3mm}} - & = a^2 + 2a + 1 -\end{WithArrows}$ - - -\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é \verb|\jot| (il s'agit d'une dimension et non d'un ressort). C'est aussi le cas -pour l'environnement \verb|{WithArrows}|. Une option \verb|jot| a été ajoutée à l'environnement \verb|{WithArrows}| -dans le but de changer ce paramètre \verb|\jot| pour un environnement donné.\footnote{Il est aussi possible de -changer \verb|\jot| avec l'environnement \verb|{spreadlines}| de \pkg{mathtools}.} -% -\begin{Verbatim} -$\begin{WithArrows}[displaystyle,~emphase#jot=2ex@] -F & = \frac12G \Arrow{on développe}\\ - & = H + \frac12K \Arrow{on continue}\\ - & = K -\end{WithArrows}$ -\end{Verbatim} - - -$\begin{WithArrows}[displaystyle,jot=2ex] -F & = \frac12G \Arrow{on développe}\\ - & = H + \frac12K \Arrow{on continue}\\ - & = K -\end{WithArrows}$ - - -\bigskip -Néanmoins, cette nouvelle valeur de \verb|\jot| sera aussi utilisée dans les nouveaux alignements -inclus dans l'environnement~\verb|{WithArrows}|: -% -\begin{Verbatim} -$\begin{WithArrows}[jot=2ex] -\varphi(x,y) = 0 & \Leftrightarrow (x+y)^2 + (x+2y)^2 = 0 -\Arrow{$x$ et $y$ sont réels}\\ -& \Leftrightarrow \left\{ -\begin{aligned} -x+y & = 0 \\ -x+2y & = 0 -\end{aligned} -\right. -\end{WithArrows}$ -\end{Verbatim} - - -$\begin{WithArrows}[jot=2ex] -\varphi(x,y) = 0 & \Leftrightarrow (x+y)^2 + (x+2y)^2 = 0 -\Arrow{$x$ et $y$ sont réels}\\ -& \Leftrightarrow \left\{ -\begin{aligned} -x+y & = 0 \\ -x+2y & = 0 -\end{aligned} -\right. -\end{WithArrows}$ - -\bigskip -Peut-être que cela ne correspond pas au résultat souhaité. C'est pourquoi une option -\verb|interline| est fournie. Il est possible d'utiliser un ressort (\emph{skip}) pour cette option. -% -\begin{Verbatim} -$\begin{WithArrows}[~emphase#interline=2ex@] -\varphi(x,y) = 0 & \Leftrightarrow (x+y)^2 + (x+2y)^2 = 0 -\Arrow{$x$ et $y$ sont réels}\\ -& \Leftrightarrow \left\{ -\begin{aligned} -x+y & = 0 \\ -x+2y & = 0 \\ -\end{aligned} -\right. -\end{WithArrows}$ -\end{Verbatim} - - -$\begin{WithArrows}[interline=2ex] -\varphi(x,y) = 0 & \Leftrightarrow (x+y)^2 + (x+2y)^2 = 0 -\Arrow{$x$ et $y$ sont réels}\\ -& \Leftrightarrow \left\{ -\begin{aligned} -x+y & = 0 \\ -x+2y & = 0 \\ -\end{aligned} -\right. -\end{WithArrows}$ - - -\interitem -De même que l'environnement \verb|{aligned}|, \verb|{WithArrows}| a une option de placement qui peut prendre les valeurs -\verb|t|, \verb|c| ou \verb|b|. Néanmoins, la valeur par défaut n'est pas \verb|c| mais \verb|t|. -Si on le souhaite, il est possible d'avoir la valeur \verb|c| comme valeur par défaut -en utilisant l'instruction \verb|\WithArrowsOptions{c}| au début du document. -% -\begin{Verbatim} -Ainsi\enskip -$\begin{WithArrows} -A & = (a+1)^2 \Arrow{on développe} \\ - & = a^2 + 2a + 1 -\end{WithArrows}$ -\end{Verbatim} - -Ainsi\enskip -$\begin{WithArrows} -A & = (a+1)^2 \Arrow{on développe} \\ - & = a^2 + 2a + 1 -\end{WithArrows}$ - -\bigskip -La valeur \verb|c| peut être utile, par exemple, si on souhaite mettre une accolade : - -\smallskip -\begin{Verbatim} -On pose\enskip $~emphase#\left\{@ -\begin{WithArrows}[~emphase#c@] -f(x) & = 3x^3+2x^2-x+4 -\Arrow[tikz=-]{les deux sont des polynômes}\\ -g(x) & = 5x^2-5x+6 -\end{WithArrows} -~emphase#\right.@$ -\end{Verbatim} - - -On pose\enskip $\left\{ -\begin{WithArrows}[c] -f(x) & = 3x^3+2x^2-x+4 -\Arrow[tikz=-]{les deux sont des polynômes}\\ -g(x) & = 5x^2-5x+6 -\end{WithArrows} -\right.$ - - -\interitem -Contrairement à \verb|{aligned}|, l'environnement \verb|{WithArrows}| utilise \verb|\textstyle| par -défaut. - -Là aussi, il est possible de changer ce comportement avec \verb|\WithArrowsOptions|: - -\quad \verb|\WithArrowsOptions{displaystyle}|. - - -\smallskip -L'exemple suivant est composé avec \verb|{aligned}|:\par\nobreak - -\smallskip -$\left\{ -\begin{aligned} -\sum_{i=1}^n (x_i+1)^2 -& = \sum_{i=1}^n (x_i^2 + 2x_i+1) \\ -& = \sum_{i=1}^n x_i^2 + 2 \sum_{i=1}^nx_i + n -\end{aligned} -\right.$ - - -\medskip -L'exemple suivant est composé avec \verb|{WithArrows}[c,displaystyle]|. Les résultats -sont parfaitement identiques.\footnote{Dans les versions de l'\pkg{amsmath} antérieures au -5~novembre~2016, un espace fin était ajouté sur la gauche de l'environnement \verb|{aligned}|. -Les versions plus récentes n'ajoutent pas d'espace et \verb|{WithArrows}| non plus.}\par\nobreak - -\smallskip -$\left\{ -\begin{WithArrows}[c,displaystyle] -\sum_{i=1}^n (x_i+1)^2 -& = \sum_{i=1}^n (x_i^2 + 2x_i+1) \\ -& = \sum_{i=1}^n x_i^2 + 2 \sum_{i=1}^nx_i + n -\end{WithArrows} -\right.$ - - -\section{Les flèches dans les environnements imbriqués} - -\label{NestedEnv} - -Les environnements \verb|{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 \verb|interline|, \verb|code-before| et \verb|code-after|). La commande -\verb|Arrow| peut être utilisée dans chaque environnement \verb|{WithArrows}|. - -\begin{Verbatim}[formatcom=\small\color{gray}] -$~emphase#\begin{WithArrows}@ -\varphi(x,y)=0 - & \Leftrightarrow (x+2y)^2+(2x+4y)^2 = 0 \Arrow{les nombres sont réels}\\ - & \Leftrightarrow - \left\{~emphase#\begin{WithArrows}@[c] - x+2y & = 0 \\ - 2x+4y & = 0 - ~emphase#\end{WithArrows}@\right. \\ - & \Leftrightarrow - \left\{~emphase#\begin{WithArrows}@[c] - x+2y & = 0 \Arrow[tikz=-]{la même équation}\\ - x+2y & = 0 - ~emphase#\end{WithArrows}@\right. \\ - & \Leftrightarrow x+2y=0 -~emphase#\end{WithArrows}@$ -\end{Verbatim} - -$\begin{WithArrows} -\varphi(x,y)=0 - & \Leftrightarrow (x+2y)^2+(2x+4y)^2 = 0 \Arrow{les nombres sont réels}\\ - & \Leftrightarrow - \left\{\begin{WithArrows}[c] - x+2y & = 0 \\ - 2x+4y & = 0 - \end{WithArrows}\right. \\ - & \Leftrightarrow - \left\{\begin{WithArrows}[c] - x+2y & = 0 \Arrow[tikz=-]{la même équation}\\ - x+2y & = 0 - \end{WithArrows}\right. \\ - & \Leftrightarrow x+2y=0 -\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 : - -\bigskip -$\begin{WithArrows}[code-after = \Arrow[v]{1-2}{2-2}{division par $2$} ] -\varphi(x,y)=0 - & \Leftrightarrow (x+2y)^2+(2x+4y)^2 = 0 \\ - & \Leftrightarrow - \left\{\begin{WithArrows}[c] - x+2y & = 0 \\ - 2x+4y & = 0 - \end{WithArrows}\right. \\ - & \Leftrightarrow - \left\{\begin{WithArrows}[c] - x+2y & = 0 \\ - x+2y & = 0 - \end{WithArrows}\right. \\ - & \Leftrightarrow x+2y=0 -\end{WithArrows}$ - - -\bigskip -Une telle construction est possible en utilisant \verb|\Arrow| dans le \verb|code-after| : -dans le \verb|code-after|, une version spéciale de la commande \verb|\Arrow| est disponible -(nous l'appellerons «\verb|\Arrow| dans le \verb|code-after|»). - -\smallskip -Une commande \verb|\Arrow| dans le \verb|code-after| prend trois arguments : -\begin{itemize} -\item une spécification pour la rangée de départ de la flèche ; -\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). - -\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 \verb|{WithArrows}| imbriqués dans l'environnement -\verb|{WithArrows}| principal. - -\medskip -$\begin{WithArrows}[tikz-code = {\path (#1) to node {#3} (#2) ; }] -\varphi(x,y)=0 - & \Leftrightarrow (x+2y)^2+(2x+4y)^2 = 0 \\ - & \Leftrightarrow \color{blue} - \left\{\begin{WithArrows}[c] - x+2y & = 0 \Arrow{environnement \no 1}\\ - 2x+4y & = 0 - \end{WithArrows}\right. \\ - & \Leftrightarrow \color{red} - \left\{\begin{WithArrows}[c] - x+2y & = 0 \Arrow{environnement \no 2}\\ - x+2y & = 0 - \end{WithArrows}\right. \\ - & \Leftrightarrow x+2y=0 -\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 \verb|1-2|) et arrive à la rangée~$2$ -du sous-environnement \no $2$ (et, par conséquent, la spécification est \verb|2-2|). -Nous pouvons tracer la flèche avec une commande \verb|\Arrow| dans le \verb|code-after| de la manière suivante : -\begin{Verbatim} -$\begin{WithArrows}[~emphase#code-after = \Arrow{1-2}{2-2}{division par $2$}@ ] -\varphi(x,y)=0 - & \Leftrightarrow (x+2y)^2+(2x+4y)^2 = 0 \\ -......... -\end{WithArrows}$ -\end{Verbatim} - -$\begin{WithArrows}[code-after = \Arrow{1-2}{2-2}{division par $2$} ] -\varphi(x,y)=0 - & \Leftrightarrow (x+2y)^2+(2x+4y)^2 = 0 \\ - & \Leftrightarrow - \left\{\begin{WithArrows}[c] - x+2y & = 0 \\ - 2x+4y & = 0 - \end{WithArrows}\right. \\ - & \Leftrightarrow - \left\{\begin{WithArrows}[c] - x+2y & = 0 \\ - x+2y & = 0 - \end{WithArrows}\right. \\ - & \Leftrightarrow x+2y=0 -\end{WithArrows}$ - -\bigskip -Les options autorisées pour une commande \verb|\Arrow| dans le \verb|code-after| sont : \verb|ll|, \verb|lr|, -\verb|rl|, \verb|rr|, \verb|v|, \verb|xoffset|, \verb|tikz| et \verb|tikz-code|. Exceptée \verb|v|, qui est -spécifique à \verb|\Arrow| dans le \verb|code-after|, toutes ces options ont leur signification habituelle. - - -Avec l'option \verb|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 \verb|i|. Pour le moment, l'option \verb|i| n'est pas disponible -pour la commande~\verb|\Arrow| dans le \verb|code-after|. Néanmoins, il est toujours possible -de déplacer une flèche avec \verb|xoffset| (ou \verb|xshift| de Tikz). -\begin{Verbatim} -$\begin{WithArrows}[code-after=\Arrow~emphase#[v]@{1-2}{2-2}{division by $2$}] -\varphi(x,y)=0 - & \Leftrightarrow (x+2y)^2+(2x+4y)^2 = 0 \\ -......... -\end{WithArrows}$ -\end{Verbatim} - -$\begin{WithArrows}[code-after = \Arrow[v]{1-2}{2-2}{division par $2$} ] -\varphi(x,y)=0 - & \Leftrightarrow (x+2y)^2+(2x+4y)^2 = 0 \\ - & \Leftrightarrow - \left\{\begin{WithArrows}[c] - x+2y & = 0 \\ - 2x+4y & = 0 - \end{WithArrows}\right. \\ - & \Leftrightarrow - \left\{\begin{WithArrows}[c] - x+2y & = 0 \\ - x+2y & = 0 - \end{WithArrows}\right. \\ - & \Leftrightarrow x+2y=0 -\end{WithArrows}$ - - -\interitem -L'extension \pkg{witharrows} fournit une autre commande disponible dans le \verb|code-after| : la commande -\verb|\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 \verb|\MultiArrow|. La syntaxe utilisée pour décrire cette liste -est celle de la commande \verb|\foreach| de \pkg{pgffor}. - -\begin{Verbatim} -$\begin{WithArrows}[tikz = rounded corners, - code-after = {~emphase#\MultiArrow{1,...,4}{text}@} ] -A & = B \\ - & = C \\ - & = D \\ - & = E \\ - & = F -\end{WithArrows}$ -\end{Verbatim} - - -$\begin{WithArrows}[tikz = rounded corners, - code-after = {\MultiArrow{1,...,4}{text}}] -A & = B \\ - & = C \\ - & = D \\ - & = E \\ - & = F -\end{WithArrows}$ - -\medskip -Pour le moment, aucune option n'est disponible pour cette commande \verb|\MultiArrow|. - - -\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 \verb|{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ée par \pkg{witharrows} est préfixé par \verb|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 \verb|l| pour un nœud de gauche et le suffixe \verb|r| pour un nœud de droite. - -\smallskip -À titre d'illustration, nous donnons un exemple d'environnements \verb|{WithArrows}| imbriqués et, pour chaque nœud -de droite, le nom de ce nœud.\footnote{Il existe une option \verb|show-node-names| pour faire afficher les noms de - ces nœuds.} - - -\medskip -\[\begin{WithArrows}[show-nodes,show-node-names] -A & \vartriangleleft B+B+B+B+B+B+B+B+B+B+B+B+B \\ -& \vartriangleleft \left\{ -\begin{WithArrows}[c] -C & \vartriangleleft D \\ -E & \vartriangleleft F -\end{WithArrows} -\right. \\ - & \vartriangleleft -\left\{ -\begin{WithArrows}[c] -G & \vartriangleleft H+H+H+H+H+H+H \\ -I & \vartriangleleft -\left\{ -\begin{WithArrows} -J &\vartriangleleft K \\ -L &\vartriangleleft M -\end{WithArrows} -\right. -\end{WithArrows} -\right. \\ - & \vartriangleleft -\left\{ -\begin{WithArrows}[c] -N & \vartriangleleft O \\ -P & \vartriangleleft Q -\end{WithArrows} -\right. -\end{WithArrows}\] - -\medskip -The package \pkg{witharrows} fournit quelques outils pour faciliter l'utilisation de ces nœuds : -\begin{itemize} -\item la commande \verb|\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 \verb|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 \verb|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 «\verb|every path|» avant le dessin de la - flèche (qui se fait avec l'instruction Tikz stockée dans \verb|tikz-code|). Ce style est modifié par l'option - \verb|tikz| de \pkg{witharrows} (avec une portée correspondant au groupe TeX courant).} ; - -\item le style Tikz \verb|WithArrows/arrow/tips| est le style utilisé pour la pointe de flèche (ce style est -lui-même chargé par le style \verb|WithArrows/arrow|). -\end{itemize} - -Par exemple, nous pouvons tracer une flèche allant de \texttt{wa-\WithArrowsLastEnv-2-1-2-r.south} -à \texttt{wa-\WithArrowsLastEnv-3-2-r.north} avec l'instruction Tikz suivante : - -\begin{Verbatim} -\begin{tikzpicture}[remember picture,overlay] -\draw [WithArrows/arrow] - ([xshift=3mm]wa-\WithArrowsLastEnv-2-1-2-r.south) - to ([xshift=3mm]wa-\WithArrowsLastEnv-3-2-r.north) ; -\end{tikzpicture} -\end{Verbatim} - -\[\begin{WithArrows} -A & \vartriangleleft B+B+B+B+B+B+B+B+B+B+B+B+B \\ -& \vartriangleleft \left\{ -\begin{WithArrows}[c] -C & \vartriangleleft D \\ -E & \vartriangleleft F -\end{WithArrows} -\right. \\ - & \vartriangleleft -\left\{ -\begin{WithArrows}[c] -G & \vartriangleleft H+H+H+H+H+H+H \\ -I & \vartriangleleft -\left\{ -\begin{WithArrows} -J &\vartriangleleft K \\ -L &\vartriangleleft M -\end{WithArrows} -\right. -\end{WithArrows} -\right. \\ - & \vartriangleleft -\left\{ -\begin{WithArrows}[c] -N & \vartriangleleft O \\ -P & \vartriangleleft Q -\end{WithArrows} -\right. -\end{WithArrows}\] - -\begin{tikzpicture}[remember picture,overlay] -\draw [WithArrows/arrow] - ([xshift=3mm]wa-\WithArrowsLastEnv-2-1-2-r.south) - to ([xshift=3mm]wa-\WithArrowsLastEnv-3-2-r.north) ; -\end{tikzpicture} - -\medskip -Dans le cas présent, il aurait été plus facile d'utiliser une commande \verb|\Arrow| dans le \verb|code-after| mais -c'était seulement un exemple pour expliquer comment les nœuds Tikz créés par \pkg{witharrows} peuvent être utilisés. - -\bigskip -Dans l'exemple suivant, on crée deux environnements \verb|{WithArrows}| nommés -«\verb|premier|» et «\verb|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@] -A & = B \\ - & = C -\end{WithArrows}$ - -\bigskip -$\begin{WithArrows}[~emphase#name=second@] -A' & = B' \\ - & = C' -\end{WithArrows}$ - -\begin{tikzpicture}[remember picture,overlay] -\draw [WithArrows/arrow] - ([xshift=3mm]~emphase#premier@-1-r.south) - to ([xshift=3mm]~emphase#second@-1-r.north) ; -\end{tikzpicture} -\end{Verbatim} - - -\begin{center} -$\begin{WithArrows}[name=premier] -A & = B \\ - & = C -\end{WithArrows}$ - -\bigskip -$\begin{WithArrows}[name=second] -A' & = B' \\ - & = C' -\end{WithArrows}$ -\end{center} - -\begin{tikzpicture}[remember picture,overlay] -\draw [WithArrows/arrow] - ([xshift=3mm]premier-1-r.south) - to ([xshift=3mm]second-1-r.north) ; -\end{tikzpicture} - -\section{L'environnement \{DispWithArrows\}} -\label{DispWithArrows} - -Comme dit précédemment, l'environnement \verb|{WithArrows}| présente des similitudes avec l'environnement -\verb|{aligned}| de l'\pkg{amsmath} (et de \verb|mathtools|). L'extension \pkg{witharrows} -fournit aussi un environnement \verb|{DispWithArrows}| qui est similaire aux -environnements \verb|{align}| et \verb|{flalign}| de l'\pkg{amsmath}. - -\medskip -L'environnement \verb|{DispWithArrows}| doit être utilisé \emph{hors} du mode mathématique. Comme -\verb|{align}|, il doit être utilisé en mode horizontal. -\begin{Verbatim} -\begin{~emphase#DispWithArrows@} -A & = (a+1)^2 \Arrow{on développe} \\ - & = a^2 + 2a + 1 -\end{~emphase#DispWithArrows@} -\end{Verbatim} -\begin{DispWithArrows} -A & = (a+1)^2 \Arrow{on développe} \\ - & = a^2 + 2a + 1 -\end{DispWithArrows} - -\medskip -Il est possible d'utiliser la commande \verb|\notag| (ou \verb|\nonumber|) pour supprimer un numéro d'équation. - -Il est possible d'utiliser la commande \verb|\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 -\verb|\label|. - -Ces commandes doivent être utilisées dans la dernière colonne de l'environnement. -\begin{Verbatim} -\begin{DispWithArrows} -A & = (a+1)^2 \Arrow{on développe} ~emphase#\notag@ \\ - & = a^2 + 2a + 1 ~emphase#\tag{$\star$} \label{mon-équation}@ -\end{DispWithArrows} -\end{Verbatim} -\begin{DispWithArrows} -A & = (a+1)^2 \Arrow{on développe} \notag \\ - & = a^2 + 2a + 1 \tag{$\star$} \label{mon-équation} -\end{DispWithArrows} -Un lien vers l'équation \eqref{mon-équation}. On a obtenu ce lien avec la commande -\verb|\eqref{mon-équation}| (la commande \verb|\eqref| est une commande de l'extension \pkg{amsmath}). - -\medskip -Si \pkg{amsmath} (ou \pkg{mathtools}) est chargée, il est toujours possible d'utiliser -\verb|\tag*| qui, comme dans l'extension\pkg{amsmath}, compose le label sans les parenthèses. -Par exemple, il est possible de l'utiliser pour mettre le symbole \verb|\square| de -\pkg{amssymb}. Ce symbole est souvent utilisé pour marquer la fin d'une démonstration.\footnote{Signalons que l'environnement \verb|{DispWithArrows}| est compatible -avec la commande \verb|\qedhere| de \pkg{amsthm}.} -\begin{Verbatim} -\begin{DispWithArrows} -A & = (a+1)^2 \Arrow{on développe} \notag \\ - & = a^2 + 2a + 1 ~emphase#\tag*{$\square$}@ -\end{DispWithArrows} -\end{Verbatim} -\begin{DispWithArrows} -A & = (a+1)^2 \Arrow{on développe} \notag \\ - & = a^2 + 2a + 1 \tag*{$\square$} -\end{DispWithArrows} - -\medskip -Il est également possible de supprimer tous les numéros d'équations avec l'option booléenne \verb|notag| (ou -\verb|nonumber|), au niveau global ou bien au niveau d'un environnement. - -Enfin, il existe aussi -un environnement \verb|{DispWithArrows*}| qui supprime tous les numéros.\footnote{Même dans ce cas, il est possible -de mettre une étiquette manuellement avec la commande \verb|\tag|.} -\begin{Verbatim} -\begin{~emphase#DispWithArrows*@} -A & = (a+1)^2 \Arrow{on développe} \\ - & = a^2 + 2a + 1 -\end{~emphase#DispWithArrows*@} -\end{Verbatim} -\begin{DispWithArrows*} -A & = (a+1)^2 \Arrow{on développe} \\ - & = a^2 + 2a + 1 -\end{DispWithArrows*} - -\medskip -En fait, il y a une autre option, nommée \verb|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 -\verb|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 \verb|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} \\ - & = A_2 \Arrow{deuxième étape} \\ - & = A_3 -\end{DispWithArrows} -\end{Verbatim} -\begin{DispWithArrows}[tagged-lines = last] -A & = A_1 \Arrow{première étape} \\ - & = A_2 \Arrow{deuxième étape} \\ - & = A_3 -\end{DispWithArrows} - -\bigskip -Avec l'option \verb|fleqn|, l'environnement est composé calé à gauche (d'une manière similaire -à l'option \verb|fleqn| des classes standard de LaTeX). Dans ce cas, la marge gauche peut être réglée avec -l'option \verb|mathindent| (qui a un nom inspiré du paramètre \verb|\mathindent| de LaTeX). La valeur par défaut -pour cette option est de 25~pt. - -\begin{Verbatim} -\begin{DispWithArrows}[~emphase#fleqn,mathindent = 1cm@] -A & = (a+1)^2 \Arrow{on développe} \\ - & = a^2 + 2a + 1 -\end{DispWithArrows} -\end{Verbatim} -\begin{DispWithArrows}[fleqn,mathindent = 1cm] -A & = (a+1)^2 \Arrow{on développe} \\ - & = a^2 + 2a + 1 -\end{DispWithArrows} - -\medskip -\emph{Remarque} : Par conception, l'option \verb|fleqn| de \pkg{witharrows} est -indépendante de l'option de classe \verb|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 \verb|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 \verb|leqno| est utilisée comme option de classe, les labels seront composés -à gauche également pour les environnements \verb|{DispWithArrows}|.\footnote{L'extension \pkg{amsmath} a une option \verb|leqno| -mais \pkg{witharrows}, bien entendu, ne tient pas compte de cette option : \pkg{witharrows} -vérifie seulement l'option \verb|leqno| de la classe du document.} - - -\medskip -Si l'extension \pkg{amsmath} est chargée, il est possible d'utiliser la commande \verb|\intertext| dans les -environnements \verb|{DispWithArrows}|. Il est également possible d'utiliser l'environnement \verb|{subequations}|. -Néanmoins, il existe pour les environnements \verb|{DispWithArrows}| une option \verb|subequations| qui demande -d'encapsuler l'environnement dans un environnement \verb|{subequations}|. - - -\medskip -Dans l'exemple suivant, l'option \verb|subequations| est fixée via la commande \verb|\WithArrowsOptions|. Chacun -des environnements suivants sera alors sous-numéroté (dans la portée de la commande \verb|WithArrowsOptions|). - -\begin{Verbatim} -~emphase#\WithArrowsOptions{subequations}@ -Premier environnement. -\begin{DispWithArrows} -A & = B \\ - & = C -\end{DispWithArrows} -Deuxième environnement. -\begin{DispWithArrows} -D & = E \\ - & = F -\end{DispWithArrows} -\end{Verbatim} -% -\begin{scope} -\WithArrowsOptions{subequations} -Premier environnement. -\begin{DispWithArrows} -A & = B \\ - & = C -\end{DispWithArrows} -Deuxième environnement. -\begin{DispWithArrows} -D & = E \\ - & = F -\end{DispWithArrows} -\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 \verb|{DispWithArrows}|, l'utilisateur peut -utiliser la commande \verb|\tagnextline| pour demander manuellement la composition du numéro sur la ligne suivante. -\begin{Verbatim} -\begin{DispWithArrows}[displaystyle] -S_{2(p+1)} -& =\sum_{k=1}^{2(p+1)} (-1)^k k^2 \\ -& \smash[b]{=\sum_{k=1}^{2p}(-1)^kk² - +(-1)^{2p+1}(2p+1)^2+(-1)^{2p+2}(2p+2)^2} ~emphase#\tagnextline@ \\ -&= S_{2p}-(2p+1)^2+(2p+2)^2\\ -&=p(2p+1)-(2p+1)^2+(2p+2)^2\\ -&= 2p^2+5p+3 -\end{DispWithArrows} -\end{Verbatim} -\begin{center} -\color{gray}\vrule% -\begin{minipage}{275pt}\color{black} -\begin{DispWithArrows}[displaystyle] -S_{2(p+1)} -& =\sum_{k=1}^{2(p+1)} (-1)^k k^2 \\ -& \smash[b]{=\sum_{k=1}^{2p}(-1)^kk^2+(-1)^{2p+1}(2p+1)^2+(-1)^{2p+2}(2p+2)^2} -\tagnextline \\ -&= S_{2p}-(2p+1)^2+(2p+2)^2\\ -&= 2p^2+p-4p^2-4p-1+4p^2+8p+4\\ -&= 2p^2+5p+3 -\end{DispWithArrows} -\end{minipage}% -\color{gray}\vrule -\end{center} - - - -\bigskip -Les environnements \verb|{DispWithArrows}| et \verb|{DispWithArrows*}| fournissent également une option -\verb|wrap-lines|. Avec cette option, les lignes de l'étiquette sont automatiquement coupées à droite.\footnote{Il - est possible d'éviter la coupure des mots avec l'option «\verb|align = flush left|» de Tikz.}\label{wrap-lines} - -\begin{Verbatim} -\begin{DispWithArrows*}[displaystyle,~emphase#wrap-lines@] -S_n -& = \frac1n \Re \left(\sum_{k=0}^{n-1}\bigl(e^{i\frac{\pi}{2n}}\bigr)^k\right) -\Arrow{somme des termes d'une suite géométrique de raison $e^{i\frac{2\pi}n}$}\\ -& = \frac1n \Re \left( \frac{1-\bigl(e^{i\frac{\pi}{2n}}\bigr)^n} - {1-e^{i\frac{\pi}{2n}}}\right) -\Arrow{cette ligne de texte a été coupée automatiquement} \\ -& = \frac1n \Re \left(\frac{1-i}{1-e^{i\frac{\pi}{2n}}}\right) -\end{DispWithArrows*} -\end{Verbatim} -\begin{DispWithArrows*}[displaystyle,wrap-lines] -S_n -& = \frac1n \Re \left(\sum_{k=0}^{n-1}\bigl(e^{i\frac{\pi}{2n}}\bigr)^k\right) -\Arrow{somme des termes d'une suite géométrique de raison $e^{i\frac{2\pi}n}$}\\ -& = \frac1n \Re \left( -\frac{1-\bigl(e^{i\frac{\pi}{2n}}\bigr)^n}{1-e^{i\frac{\pi}{2n}}} \right) -\Arrow{cette ligne de texte a été coupée automatiquement} \\ -& = \frac1n \Re \left(\frac{1-i}{1-e^{i\frac{\pi}{2n}}}\right) -\end{DispWithArrows*} - -\bigskip -L'option \verb|wrap-lines| ne s'applique pas aux environnements \verb|{WithArrows}| -imbriqués dans un environnement \verb|{DispWithArrows}| ou \verb|{DispWithArrows*}|. Néanmoins, -elle s'applique aux instructions \verb|\Arrow| et \verb|\MultiArrow| du \verb|code-after| -de l'environnement englobant. - -\vspace{1cm} -Nous avons dit que les environnements \verb|{DispWithArrows}| et \verb|{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 \verb|\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 \verb|standard-behaviour-with-items|.} - -\medskip -Voici un exemple où, avec \verb|{DispWithArrows}|, on peut insérer l'équation dans un environnement -\verb|{enumerate}| tout en utilisant l'option \verb|wrap-lines|. - -\begin{Verbatim} -~emphase#\begin{enumerate}@ -~emphase#\item @ -\begin{DispWithArrows}% - [displaystyle, wrap-lines, tagged-lines = last, fleqn, mathindent = 0 pt] -S_n -& = \frac1n \Re \left(\sum_{k=0}^{n-1}\bigl(e^{i\frac{\pi}{2n}}\bigr)^k\right) -\Arrow{on utilise la formule pour la somme de termes d'une suite géométrique de raison -$e^{i\frac{2\pi}n}$} \\ -& = \frac1n \Re \left( \frac{1-\bigl(e^{i\frac{\pi}{2n}}\bigr)^n} - {1-e^{i\frac{\pi}{2n}}}\right) -\Arrow{$\bigl(e^{i\frac{\pi}{2n}}\bigr)^n = e^{i\frac{\pi}2}=i$} \\ -& = \frac1n \Re \left(\frac{1-i}{1-e^{i\frac{\pi}{2n}}}\right) -\end{DispWithArrows} -~emphase#\end{enumerate}@ -\end{Verbatim} -\begin{enumerate} -\item -\begin{DispWithArrows}[displaystyle, wrap-lines, tagged-lines = last, fleqn, mathindent = 0 pt] -S_n -& = \frac1n \Re \left(\sum_{k=0}^{n-1}\bigl(e^{i\frac{\pi}{2n}}\bigr)^k\right) -\Arrow{on utilise la formule pour la somme de termes d'une suite géométrique de raison -$e^{i\frac{2\pi}n}$}\\ -& = \frac1n \Re \left( -\frac{1-\bigl(e^{i\frac{\pi}{2n}}\bigr)^n}{1-e^{i\frac{\pi}{2n}}} \right) -\Arrow{$\bigl(e^{i\frac{\pi}{2n}}\bigr)^n = e^{i\frac{\pi}2}=i$} \\ -& = \frac1n \Re \left(\frac{1-i}{1-e^{i\frac{\pi}{2n}}}\right) -\end{DispWithArrows} -\end{enumerate} - -\vspace{1cm} -L'environnement \verb|{DispWithArrows}| est similaire à l'environnement \verb|{align}| de -l'\pkg{amsmath}. Néanmoins, \verb|{DispWithArrows}| n'est pas construit en utilisant \verb|{align}| -(en fait, il est possible d'utiliser \pkg{witharrows} sans \pkg{amsmath}). - -Il y a quelques différences entre \verb|{DispWithArrows}| et \verb|{align}|. -\begin{itemize} -\item L'environnement \verb|{DispWithArrows}| ne peut pas être inséré dans un environment -\verb|{gather}| de l'\pkg{amsmath}. -\item Un environment \verb|{DispWithArrows}| est toujours insécable (même avec -\verb|\allowdisplaybreaks| de l'\pkg{amsmath}). -\item Les commandes \verb|\label|, \verb|\tag|, \verb|\notag| et \verb|\nonumber| ne sont autorisées -que dans la dernière colonne. -\item Après un \verb|\item| d'une liste LaTeX, aucun espace vertical n'est ajouté (cela peut être -modifié avec l'option \verb|standard-behaviour-with-items|). -\item -\begin{bfseries} -Enfin, par défaut, les éléments d'un environnement \verb|\{DispWithArrows\}| -sont composés en \verb|textstyle| et non en \verb|displaystyle| (il est possible de modifier -ce point avec l'option \verb|displaystyle|). -\end{bfseries} -\end{itemize} - -\bigskip -En ce qui concerne les références, l'extension \pkg{witharrows} est compatible avec les -extensions \pkg{autonum}, \pkg{cleveref}, \pkg{fancyref}, \pkg{fncylab}, -\pkg{hyperref}, \pkg{listlbls}, \pkg{prettyref}, \pkg{refcheck}, -\pkg{refstyle}, \pkg{showlabels}, \pkg{smartref}, \pkg{typedref} et -\pkg{varioref} et avec les options \verb|showonlyrefs| et \verb|showmanualtags| de -\pkg{mathtools}.\footnote{Rappelons que \pkg{varioref}, \pkg{hyperref}, -\pkg{cleveref} et \pkg{autonum} doivent être chargés dans cet ordre. L'extension -\pkg{witharrows} peut être chargée n'importe où.} - -Elle n'est pas compatible avec \pkg{showkeys} (certains labels ne sont pas affichés). - - - - -\subsection*{L'option <...> de DispWithArrows} - -L'environnement \verb|{DispWithArrows}| propose une option \verb|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 \verb|left-brace| peut aussi être utilisée sans valeur: dans ce cas, seule - l'accolade est tracée.} - -Pour la lisibilité, cette option \verb|left-brace| est aussi disponible avec une syntaxe spéciale : on peut la -rentrer en la mettant entre chevrons (\verb|<| et \verb|>|) juste après le \verb|{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 \verb|{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 \verb|{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.} - - - -\medskip - -\begin{BVerbatim} -\begin{DispWithArrows}~emphase#< \binom{n}{p} = >@[format = ll,fleqn,displaystyle] -0 & \quad \text{si } p > n -\Arrow{ce cas peut en fait rentrer\\ dans le suivant} \\ -\frac{n(n-1)\cdots(n-p+1)}{p!} & \quad \text{si } 0 \leq p \leq n \\ -0 & \quad \text{si } p < 0 -\end{DispWithArrows} -\end{BVerbatim} -% -\begin{DispWithArrows}< \binom{n}{p} = >[format = ll,fleqn,displaystyle] -0 & \quad \text{si } p > n -\Arrow{ce cas peut en fait rentrer\\ dans le suivant} \\ -\frac{n(n-1)\cdots(n-p+1)}{p!} & \quad \text{si } 0 \leq p \leq n \\ -0 & \quad \text{si } p < 0 -\end{DispWithArrows} - -\interitem -Dans l'exemple suivant, on sous-numérote les équations d'un système avec l'option \verb|subnumerate| (disponible -quand l'\verb|amsmath| est chargé). - -\begin{Verbatim} -\begin{DispWithArrows}~emphase#< \label{système} (\ref*{système}) \Leftrightarrow >@% - [format = l, subequations] -x+y+z = -3 \Arrow[tikz=-,jump=2]{3 equations} \\ -xy+xz+yz=-2 \\ -xyz = -15 \label{dernière-équation} -\end{DispWithArrows} -\end{Verbatim} -% -\begin{DispWithArrows}< \label{système} (\ref*{système}) \Leftrightarrow >% - [format = l, subequations] -x+y+z = -3 \Arrow[tikz=-,jump=2]{3 équations} \\ -xy+xz+yz=-2 \\ -xyz = -15 \label{dernière-équation} -\end{DispWithArrows} - -\bigskip -Le système complet est l'équation \eqref{système} (cette référence a été obtenue avec -\verb|\eqref{système}|) et la dernière équation est l'équation \eqref{dernière-équation} (référence obtenue -avec \verb|\eqref{dernière-équation}|). Notons que \verb|\ref*|, utilisé dans le code ci-dessus, est une variante -de \verb|ref| proposée par \pkg{hyperref} pour composer une référence sans créer de lien. - -\bigskip -On peut souhaiter remplacer l'accolade gauche par un autre délimiteur extensible (gauche). On peut le faire -avec l'option \verb|replace-curly-brace-by|. - -\bigskip -\section{Fonctionnalités avancées} - -\subsection{L'option tikz-code : comment changer la forme des flèches} - -\label{tikz-code} - -L'option \verb|tikz-code|\footnote{Pour des raisons historiques, l'option \verb|tikz-code| a un alias : - \verb|TikzCode|.} permet à l'utilisateur de changer la forme des flèches.\footnote{Si l'option \verb|wrap-lines| - est utilisée dans un environnement \verb|{DispWithArrows}| ou \verb|{DispWithArrows*}|, l'option \verb|tikz-code| - n'aura pas d'effet sur les flèches de cet environnement mais uniquement sur les flèches des environnements - \verb|{WithArrows}| imbriqués.} - -\smallskip -Par exemple, les options «\verb|up|» et «\verb|down|» décrites précédemment (cf. -p.~\pageref{up-and-down}) sont programmées en interne avec \verb|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 \verb|#1|, \verb|#2| et \verb|#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 \verb|tikz-code| est la suivante : - -\smallskip -\qquad \verb|\draw (#1) to node {#3} (#2) ;| - - -\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). -\begin{Verbatim} -\begin{WithArrows}[format=c,ygap=5pt,interline=4mm, - ~emphase#tikz-code = {\draw[rounded corners]@ - ~emphase# (~#1) -- ([xshift=5mm]~#1)@ - ~emphase# -- node[circle,@ - ~emphase# draw,@ - ~emphase# auto = false,@ - ~emphase# fill = gray!50,@ - ~emphase# inner sep = 1pt] {\tiny ~#3}@ - ~emphase# ([xshift=5mm]~#2)@ - ~emphase# -- (~#2) ; }@] -3 (2x+4) = 6 \Arrow{$\div 3$} \\ -2x+4 = 2 \Arrow{$-4$} \\ -2x = -2 \Arrow{$\div 2$} \\ - x = -1 -\end{WithArrows} -\end{Verbatim} - - -\[\begin{WithArrows}[format=c, - ygap=5pt, - interline=4mm, - tikz-code = {\draw[rounded corners] - (#1) - -- - ([xshift=5mm]#1) - -- node[circle, - draw, - auto=false, - fill=gray!50, - inner sep = 1pt] {\tiny #3} - ([xshift=5mm]#2) - -- - (#2) ; }] -3 (2x+4) = 6 \Arrow{$\div 3$} \\ -2x+4 = 2 \Arrow{$-4$} \\ -2x = -2 \Arrow{$\div 2$} \\ - x = -1 -\end{WithArrows}\] - -\bigskip -L'environnement \verb|{DispWithArrows}| et sa version étoilée \verb|{DispWithArrows*}| fournissent une commande -\verb|\WithArrowsRightX| qui peut être utilisée dans l'option \verb|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 \verb|\WithArrowsNewStyle| pour définir -des styles d'une manière similaire aux «styles» de Tikz. - -La commande \verb|\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 \verb|\WithArrowsNewStyle| est le groupe TeX courant. - -Le style peut être utilisé comme une clé au niveau du document (avec \verb|\WithArrowsOptions|), au niveau d'un -environnement (via les arguments optionnels) ou bien encore dans une autre commande \verb|\WithArrowsNewStyle|. - -Pour un exemple d'utilisation, voir p.~\pageref{example-WithArrowsRightX}. - - -\bigskip -\subsection{Postionnement vertical des flèches} - -Il y a quatre paramètres pour ajuster finement la position verticale des flèches : -\verb|ygap|, \verb|ystart|, \verb|start-adjust| et \verb|end-adjust|. - -\medskip -Nous expliquons d'abord le comportement quand les paramètres \verb|start-adjust| et \verb|end-adjust| sont égaux à -zéro: -\begin{itemize} -\item l'option \verb|ystart| représente la distance verticale entre la ligne de base du -texte et le début de la flèche (valeur par défaut : $0.4$~ex); -\item l'option \verb|ygap| représente la distance verticale entre deux flèches consécutives -(valeur par défaut : $0.4$~ex). -\end{itemize} - - -\bigskip -$\begin{WithArrows}[interline=1mm, adjust = 0pt] - (\cos x + \sin x)^2 & = \cos^2 x +2 \cos x \sin x + \sin^2 x\Arrow{}\tikz[remember picture] \coordinate (A) ; \\ - & = \cos^2x + \sin^2x + 2\sin x\cos x \Arrow{} \\ - & = 1 + \sin(2x) -\end{WithArrows}$ - -\begin{tikzpicture}[remember picture,overlay,blue] -\draw (wa-\WithArrowsLastEnv-1-r.south) to ++(1,0) coordinate (B) to ++(0.1,0) ;; -\draw (A) to ++(1,0) coordinate (C) to ++(0.1,0) ;; -\draw (B) -- (C) ; -\draw[<-] (B) to ++(0,0.2) ; -\draw[<-] (C) to ++(0,-0.2) ; -\path (C) node[right=1mm] {\texttt{ystart}} ; -\draw (wa-\WithArrowsLastEnv-2-r.north) to ++(3,0) coordinate (E) to ++(0.1,0); -\draw (wa-\WithArrowsLastEnv-2-r.south) to ++(3,0) coordinate (F) to ++(0.1,0); -\draw (E) -- (F) ; -\draw[<-] (E) to ++(0,0.2) ; -\draw[<-] (F) to ++(0,-0.2) ; -\path (F) node[right=1mm] {\texttt{ygap}} ; -\end{tikzpicture} - -\interitem -Néanmoins, pour des raisons esthétiques, quand il est possible, \pkg{witharrows} commence -la flèche un peu plus haut (d'une quantité \verb|start-adjust|) et termine la flèche un peu plus -bas (par une quantité \verb|end-adjust|). Par défaut, ces deux paramètres \verb|start-adjust| -est \verb|end-adjust| sont égaux à $0.4$~ex. - -\bigskip -Voici par exemple le comportement sans le mécanisme de \verb|start-adjust| et -\verb|end-adjust| (c'était le comportement par défaut dans les version antérieures à la version 1.13). -\begin{Verbatim} -$\begin{WithArrows}~emphase#[start-adjust=0pt, end-adjust=0pt]@ -A & = (a+1)^2 \Arrow{on développe} \\ - & = a^2 + 2a + 1 -\end{WithArrows}$ -\end{Verbatim} - -$\begin{WithArrows}[start-adjust=0pt, end-adjust=0pt] -A & = (a+1)^2 \Arrow{on développe} \\ - & = a^2 + 2a + 1 -\end{WithArrows}$ - - -\bigskip -Voici le comportement par défaut depuis la version 1.13 (les paramètres -\verb|start-adjust| et \verb|end-ajust| sont utilisés avec la valeur par défaut $0.4$~ex). La flèche -est plus longue et le résultat est plus esthétique. - -\medskip -$\begin{WithArrows} -A & = (a+1)^2 \Arrow{on développe} \\ - & = a^2 + 2a + 1 -\end{WithArrows}$ - - -\bigskip -Il est possible d'utiliser l'option \verb|adjust| qui fixe à la fois \verb|start-adjust| et \verb|end-ajust|. - -\bigskip -Puisque le mécanisme de \verb|start-adjust| et \verb|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 \verb|start-adjust| et \verb|end-adjust| à $0$~pt: -\begin{Verbatim} -\WithArrowsOptions{adjust = 0pt} -\end{Verbatim} - -\bigskip -\subsection{Notes de pied de page dans les environnements de witharrows} - -Si vous voulez mettre des notes de pied de page dans un environnement de \pkg{witharrows}, -vous pouvez utiliser une paire \verb|\footnotemark|--\verb|\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}. - -\smallskip -Si \pkg{witharrows} est chargée avec l'option \verb|footnote| (avec \verb|\usepackage[footnote]{witharrows}| ou -avec \verb|\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 \verb|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}. - -\medskip -Dans ce document, l'extension \pkg{witharrows} a été chargée avec l'option \verb|footnotehyper| et nous donnons un -exemple avec une note de pied de page dans l'étiquette d'une flèche : - - -\smallskip -$\begin{WithArrows} -A & = (a+b)^2 -\Arrow{on développe\,\footnote{Une note de pied de page.}} \\ - & = a^2+b^2+2ab -\end{WithArrows}$ - -\bigskip -\subsection{L'option no-arrows} - -L'option \verb|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 certains 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 développeurs} - -Si vous définissez un environnement s'appuyant sur un environnement de -\pkg{witharrows}, nous recommandons de faire appel à l'environnement de \pkg{witharrows} avec -\verb|\WithArrows|--\verb|\endWithArrows| ou \verb|\DispWithArrows|--\verb|\endDispWithArrows| (et -non \verb|\begin{WithArrows}|--\verb|\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. - -\smallskip -Par exemple, vous pouvez définir un environnement \verb|{DWA}| qui va être un alias de \verb|{DispWithArrows}|: -\begin{BVerbatim} -\NewDocumentEnvironment {DWA} {} {\DispWithArrows}{\endDispWithArrows} -\end{BVerbatim} - -\smallskip -Si vous utilisez cet environnement \verb|{DWA}| en mode mathématique, vous aurez le message d'erreur suivant : - -\begin{BVerbatim} -L'environnement {DWA} should be used only outside math mode. -\end{BVerbatim} - -\interitem -Une autre exemple est donné en interne par la définition de l'environnement \verb|{DispWithArrows*}| -dans l'extension \pkg{witharrows} avec le code suivant: -\begin{Verbatim} -\NewDocumentEnvironment {DispWithArrows*} {} - {\WithArrowsOptions{notag}% - \DispWithArrows} - {\endDispWithArrows} -\end{Verbatim} - - - -\section{Examples} - -\subsection{\textbackslash MoveEqLeft} - -Il est possible d'utiliser \verb|\MoveEqLeft| de \pkg{mathtools}. Dans ce cas, on doit se souvenir que la commande -\verb|\MoveEqLeft| a aussi la valeur d'une esperluette (\verb|&|). Il faut en tenir compte pour le positionnement -d'une éventuelle commande \verb|\Arrow|. - - -% -\begin{Verbatim}[formatcom=\small\color{gray}] -$\begin{WithArrows}[interline=0.5ex] -~emphase#\MoveEqLeft@ \arccos(x) = \arcsin \frac45 + \arcsin \frac5{13} -\Arrow{parce que les deux sont dans $[-\frac{\pi}2,\frac{\pi}2]$} \\ -& \Leftrightarrow x = \sin\left(\arcsin\frac45 + \arcsin\frac5{13}\right) \\ -& \Leftrightarrow x = \frac45\cos\arcsin\frac5{13} + \frac5{13} \cos\arcsin\frac45 -\Arrow{$\forall x \in [-1,1], \cos(\arcsin x) = \sqrt{1-x^2}$} \\ -& \Leftrightarrow x = \frac45\sqrt{1-\bigl(\frac5{13}\bigr)^2} -+ \frac5{13}\sqrt{1-\bigl(\frac45\bigr)^2} -\end{WithArrows}$ -\end{Verbatim} - - -\medskip -$\begin{WithArrows}[interline=0.5ex] -\MoveEqLeft \arccos(x) = \arcsin \frac45 + \arcsin \frac5{13} -\Arrow{parce que les deux sont dans $[-\frac{\pi}2,\frac{\pi}2]$} \\ -& \Leftrightarrow x = \sin\left(\arcsin\frac45 + \arcsin\frac5{13}\right) \\ -& \Leftrightarrow x = \frac45\cos\arcsin\frac5{13} + \frac5{13} \cos\arcsin\frac45 -\Arrow{$\forall x \in [-1,1], \cos(\arcsin x) = \sqrt{1-x^2}$} \\ -& \Leftrightarrow x = \frac45\sqrt{1-\bigl(\frac5{13}\bigr)^2} -+ \frac5{13}\sqrt{1-\bigl(\frac45\bigr)^2} -\end{WithArrows}$ - - -\bigskip -\subsection{Modifier la forme des nœuds} - -Il est possible de changer la forme des étiquettes, qui sont des nœuds Tikz, en -modifiant la clé «\verb|every node|» de Tikz. - -\begin{Verbatim} -\begin{WithArrows}% - [format = c, - interline = 4mm, - tikz = {~emphase#every node/.style = {circle,@ - ~emphase# draw,@ - ~emphase# auto = false,@ - ~emphase# fill = gray!50,@ - ~emphase# inner sep = 1pt,@ - ~emphase# font = \tiny}@}] - 3 (2x+4) = 6 \Arrow{$\div 3$} \\ - 2x+4 = 2 \Arrow{$-4$} \\ - 2x = -2 \Arrow{$\div 2$} \\ - 2x = -1 -\end{WithArrows} -\end{Verbatim} - -\[\begin{WithArrows}[% - format = c, - interline = 4mm, - tikz = {every node/.style = {circle, - draw, - auto = false, - fill = gray!50, - inner sep = 1pt, - font = \tiny}}] - 3 (2x+4) = 6 \Arrow{$\div 3$} \\ - 2x+4 = 2 \Arrow{$-4$} \\ - 2x = -2 \Arrow{$\div 2$} \\ - 2x = -1 -\end{WithArrows}\] - - -\bigskip -\subsection{Exemples avec l'option tikz-code} - -Rappelons que l'option \verb|tikz-code| est le code Tikz utilisé par \pkg{witharrows} -pour tracer les flèches.\footnote{Si un environnement \verb|{DispWithArrows}| ou -\verb|{DispWithArrows*}| est utilisé avec l'option \verb|wrap-lines|, la valeur de l'option -\verb|tikz-code| n'est pas utilisée pour cet environnement (mais est utilisée pour les -environnements imbriqués à l'intérieur).} - -\smallskip -La valeur par défaut de \verb|tikz-code| est \verb|\draw (#1) to node {#3} (#2) ;| -où les trois marqueurs \verb|#1|, \verb|#2| et \verb|#3| représentent le point de départ, le point d'arrivée -et l'étiquette de la flèche. - - -\bigskip -\subsubsection{Exemple 1} -Dans l'exemple suivant, nous définissons la valeur de \verb|tikz-code| avec deux -instructions \verb|\path| : la première instruction trace la flèche elle-même et la seconde -place l'étiquette dans un nœud Tikz dans le rectangle délimité par la flèche. - -\begin{Verbatim} -\begin{DispWithArrows*}% - [displaystyle, - ygap = 2mm, - ystart = 0mm, - ~emphase#tikz-code = {\draw (~#1) -- ++(4.5cm,0) \verb|- (~#2) ;@ - ~emphase# \path (~#1) -- (~#2) @ - ~emphase# node[text width = 4.2cm, right, midway] {~#3} ;}@] -S_n -& = \frac1n \sum_{k=0}^{n-1}\cos\bigl(\tfrac{\pi}2\cdot\tfrac kn\bigr) -........... -\end{Verbatim} - - -\bigskip -\begin{DispWithArrows*}[ - displaystyle, - ygap = 2mm, - ystart = 0mm, - tikz-code = {\draw (#1) -- ++(4.5cm,0) |- (#2) ; - \path (#1) -- (#2) - node[text width = 4.2cm, right, midway] {#3} ;}] -S_n -& = \frac1n \sum_{k=0}^{n-1}\cos\bigl(\tfrac{\pi}2\cdot\tfrac kn\bigr) -\Arrow{$\cos x = \Re(e^{ix})$}\\ -& = \frac1n\sum_{k=0}^{n-1} \Re\left(e^{i\frac{k\pi}{2n}}\right) -\Arrow{$\Re(z+z')=\Re(z)+\Re(z')$}\\ -& = \frac1n \Re\left(\sum_{k=0}^{n-1} e^{i\frac{k\pi}{2n}}\right) -\Arrow{$\exp$ est un morphisme pour $\times$ et $+$} \\ -& = \frac1n \Re \left(\sum_{k=0}^{n-1}\bigl(e^{i\frac{\pi}{2n}}\bigr)^k\right) -\Arrow{somme de termes d'une suite géométrique de raison $e^{i\frac{2\pi}n}$}\\ -& = \frac1n \Re \left( \frac{1-\bigl(e^{i\frac{\pi}{2n}}\bigr)^n}{1-e^{i\frac{\pi}{2n}}}\right)\\ -& = \frac1n \Re \left(\frac{1-i}{1-e^{i\frac{\pi}{2n}}}\right) -\end{DispWithArrows*} - -\bigskip -\subsubsection{Exemple 2} - -\label{example-WithArrowsRightX} -Il est possible de modifier l'exemple précédent pour avoir «\verb|text width|» calculé automatiquement en fonction -de la marge droite (d'une manière similaire à l'option \verb|wrap-lines|) dans les environnements -\verb|{DispWithArrows}| et \verb|{DispWithArrows*}|. Dans la définition de \verb|tikz-code|, nous utilisons la commande -\verb|\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} - {displaystyle, - ygap = 2mm, - xoffset = 0pt, - ystart = 0mm, - tikz-code = {\path let \p1 = (~#~#1) - in (~#~#1) - -- node [anchor = west, - text width = {~emphase#\WithArrowsRightX@ - \x1 - 0.5 em}] - {~#~#3} - (~#~#2) ; - \draw let \p1 = (~#~#1) - in (~#~#1) -- ++(~emphase#\WithArrowsRightX@ - \x1,0) |- (~#~#2) ; }} -\end{Verbatim} - -\begin{Verbatim} -\begin{DispWithArrows}[MonStyle] - S_n - & = \frac1n \sum_{k=0}^{n-1}\cos\bigl(\tfrac{\pi}2\cdot\tfrac kn\bigr) - \Arrow{$\cos x = \Re(e^{ix})$}\\ -........... -\end{Verbatim} - -\WithArrowsNewStyle{MonStyle} -{displaystyle, - ygap = 2mm, - xoffset = 0pt, - ystart = 0mm, - tikz-code = {\path let \p1 = (##1) - in (##1) - -- node [anchor = west, - text width = {\WithArrowsRightX - \x1 - 0.5 em}] {##3} - (##2) ; - \draw let \p1 = (##1) - in (##1) -- ++(\WithArrowsRightX - \x1,0) |- (##2) ; }} - -\begin{DispWithArrows}[MonStyle] -S_n -& = \frac1n \sum_{k=0}^{n-1}\cos\bigl(\tfrac{\pi}2\cdot\tfrac kn\bigr) -\Arrow{$\cos x = \Re(e^{ix})$}\\ -& = \frac1n\sum_{k=0}^{n-1} \Re\left(e^{i\frac{k\pi}{2n}}\right) -\Arrow{$\Re(z+z')=\Re(z)+\Re(z')$}\\ -& = \frac1n \Re\left(\sum_{k=0}^{n-1} e^{i\frac{k\pi}{2n}}\right) -\Arrow{$\exp$ est un morphisme pour $\times$ et $+$} \\ -& = \frac1n \Re \left(\sum_{k=0}^{n-1}\bigl(e^{i\frac{\pi}{2n}}\bigr)^k\right) -\Arrow{somme de termes d'une suite géométrique $e^{i\frac{2\pi}n}$}\\ -& = \frac1n \Re \left( \frac{1-\bigl(e^{i\frac{\pi}{2n}}\bigr)^n}{1-e^{i\frac{\pi}{2n}}}\right)\\ -& = \frac1n \Re \left(\frac{1-i}{1-e^{i\frac{\pi}{2n}}}\right) -\end{DispWithArrows} - - - -\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. - - -\begin{Verbatim} -\begin{WithArrows}[ll,interline=5mm,xoffset=5mm, - ~emphase#tikz-code = {\draw[rounded corners,@ - ~emphase# every node/.style = {circle,@ - ~emphase# draw,@ - ~emphase# auto = false,@ - ~emphase# inner sep = 1pt,@ - ~emphase# fill = gray!50,@ - ~emphase# font = \tiny }]@ - ~emphase# let \p1 = (~#1),@ - ~emphase# \p2 = (~#2)@ - ~emphase# dans \ifdim \x1 > \x2@ - ~emphase# (\p1) -- node {~#3} (\x1,\y2) -- (\p2)@ - ~emphase# \else@ - ~emphase# (\p1) -- (\x2,\y1) -- node {~#3} (\p2)@ - ~emphase# \fi ;}@] -E & \Longleftrightarrow \frac{(x+4)}3 + \frac{5x+3}5 = 7 -\Arrow{$\times 15$}\\ - & \Longleftrightarrow 5(x+4) + 3(5x+3) = 105 \\ - & \Longleftrightarrow 5x+20 + 15x+9 = 105 \\ - & \Longleftrightarrow 20x+29 = 105 -\Arrow{$-29$}\\ - & \Longleftrightarrow 20x = 76 -\Arrow{$\div 20$}\\ - & \Longleftrightarrow x = \frac{38}{10} -\end{WithArrows} -\end{Verbatim} - - -\[\begin{WithArrows}[ll,interline=5mm,xoffset=5mm, - tikz-code = {\draw[rounded corners, - every node/.style = {circle, - draw, - auto = false, - inner sep = 1pt, - fill = gray!50, - font = \tiny}] - let \p1 = (#1), - \p2 = (#2) - in \ifdim \x1 > \x2 - (\p1) -- node {#3} (\x1,\y2) -- (\p2) - \else - (\p1) -- (\x2,\y1) -- node {#3} (\p2) - \fi ;}] -E & \Longleftrightarrow \frac{(x+4)}3 + \frac{5x+3}5 = 7 -\Arrow{$\times 15$}\\ - & \Longleftrightarrow 5(x+4) + 3(5x+3) = 105 \\ - & \Longleftrightarrow 5x+20 + 15x+9 = 105 \\ - & \Longleftrightarrow 20x+29 = 105 -\Arrow{$-29$}\\ - & \Longleftrightarrow 20x = 76 -\Arrow{$\div 20$}\\ - & \Longleftrightarrow x = \frac{38}{10} -\end{WithArrows}\] - - - -\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 \verb|\BoucleNumérotée| qui fera le travail quand elle -sera utilisée dans le \verb|code-after|. Dans l'exemple suivant, nous avons écrit cette commande avec -\verb|\NewDocumentCommand| de \pkg{xparse} et \verb|\foreach| de \pkg{pgffor} (ces deux -extensions sont chargées quand \pkg{witharrows} est chargé.). - -\begin{Verbatim} -\NewDocumentCommande \NombreedLoop {} - {\foreach \j dans {2,...,\WithArrowsNbLines} - { \pgfmathtruncatemacro{\i}{\j-1} - \Arrow[rr]{\i}{\j}{\i} } - \Arrow[rr,xoffset=1cm,tikz=<-]{1}{\WithArrowsNbLines}{\WithArrowsNbLines}} -\end{Verbatim} - -La commande \verb|\WithArrowsNbLines| est une commande disponible dans le \verb|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). - - -\bigskip -\begin{Verbatim} -$\begin{WithArrows}[~emphase#code-after = \BoucleNumérotée@] -a.\;& f \text{ est continue sur } E \\ -b.\;& f \text{ est continue en } 0 \\ -c.\;& f \text{ est bornée sur la sphère unité} \\ -d.\;& \exists K > 0\quad \forall x \in E\quad \|f(x)\| \le K \|x\| \\ -e.\;& f \text{ est lipschitzienne} -\end{WithArrows}$ -\end{Verbatim} - -\bigskip -\begin{scope} -\NewDocumentCommand \BoucleNumérotée {} - {\foreach \j in {2,...,\WithArrowsNbLines} - { \pgfmathtruncatemacro{\i}{\j-1} - \Arrow[rr]{\i}{\j}{\i} } - \Arrow[rr,xoffset=1cm,tikz=<-]{1}{\WithArrowsNbLines}{\WithArrowsNbLines}} - - -$\begin{WithArrows}[code-after = \BoucleNumérotée] -a.\;& f \text{ est continue sur } E \\ -b.\;& f \text{ est continue en } 0 \\ -c.\;& f \text{ est bornée sur la sphère unité} \\ -d.\;& \exists K > 0\quad \forall x \in E\quad \|f(x)\| \le K \|x\| \\ -e.\;& f \text{ est lipschitzienne} -\end{WithArrows}$ - - -\bigskip -Comme d'habitude, il est possible changer les caractéristiques des flèches et des nœuds -avec l'option \verb|tikz|. Néanmoins, si nous voulons changer le style pour avoir, par -exemple, les numéros entre parenthèses, le moyen le plus rapide est de changer la valeur de -\verb|tikz-code|: - -\begin{Verbatim} -tikz-code = {\draw (~#1) to node {\footnotesize (~#3)} (~#2) ;} -\end{Verbatim} - -\WithArrowsOptions{tikz-code = {\draw (#1) to node {\footnotesize (#3)} (#2) ;}} - -$\begin{WithArrows}[code-after = \BoucleNumérotée] -a.\;& f \text{ est continue on } E \\ -b.\;& f \text{ est continue dans } 0 \\ -c.\;& f \text{ est bornée sur la sphère unité} \\ -d.\;& \exists K > 0\quad \forall x \in E\quad \|f(x)\| \le K \|x\| \\ -e.\;& f \text{ est lipschitzienne} -\end{WithArrows}$ - -\end{scope} - - - - - -\end{document} diff --git a/Master/texmf-dist/doc/latex/witharrows/witharrows.pdf b/Master/texmf-dist/doc/latex/witharrows/witharrows.pdf Binary files differdeleted file mode 100644 index a93bca1ae42..00000000000 --- a/Master/texmf-dist/doc/latex/witharrows/witharrows.pdf +++ /dev/null |