--- myst: html_meta: keywords: LaTeX, mathématiques, diagramme, diagramme commutatif, diagrammes commutatifs, xypic --- # Comment tracer des diagrammes commutatifs ? ## Avec les commandes de base Un diagramme commutatif simple peut être obtenu en mélangeant un tableau mathématique et différentes flèches. Par exemple : ``` \documentclass{article} \pagestyle{empty} % N'affiche pas de numéro de page \begin{document} \[ \begin{array}{ccccc} d & \longrightarrow & e & \longrightarrow &f \\ \uparrow &&&& \uparrow \\ a & \longrightarrow & b &\longrightarrow& c\\ \end{array} \] \end{document} ``` ## Avec l'extension L'extension est un outil simple et puissant qui permet de réaliser ces diagrammes : ``` \documentclass{article} \usepackage[all]{xy} \pagestyle{empty} % N'affiche pas de numéro de page \begin{document} \[\xymatrix{ A \ar[d] \ar[r] \ar@{=}[rd] & B \ar[d] \\ C \ar[r] & D } \] \end{document} ``` ## Avec l'extension L'extension , qui appartient à l'ensemble des extensions [AMS-LaTeX](../../../1_generalites/glossaire/ams-tex_et_ams-latex.md), met à disposition un environnement `CD` dont voici un exemple d'utilisation (avec pour certains commandes) : ``` \documentclass{article} \usepackage{mathtools,amscd} \pagestyle{empty} % N'affiche pas de numéro de page \begin{document} \[ \begin{CD} \mathcal{F} @>\otimes>> T\\ @VdrVlfV @ViVjV\\ \mathtt{f} @= t \end{CD} \] \[ \begin{CD} d @>>> e @>>> f \\ @AAA @. @AAA \\ a @>>> b @>>> c \end{CD} \] \end{document} ``` La documentation de cette extension indique cependant qu'elle est limitée dans ses fonctionnalités et recommande . ## Cas de LaTeX 2.09 ```{warning} Ce qui suit n'a qu'un caractère historique et l'usage des extensions indiquées n'est pas recommandé. ``` En [LaTeX 2.09](../../../1_generalites/documentation/documents/documents_sur_latex209.md), deux extensions au moins traitaient de ce sujet : [catmac](https://www.ctan.org/tex-archive/macros/latex209/contrib/misc/) et [cd](https://www.ctan.org/tex-archive/macros/latex209/contrib/ams-cd). Voici un exemple de code avec `catmac`. Notez que cette extension n'est pas compatible avec l'option `[french]` de qui rend le `;` actif. ```{noedit} \documentclass{article} \usepackage{catmac} \begin{document} \begin{center} \resetparms \square[A`B`C`D;f`g`h`k] \end{center} \end{document} ``` Et voici un exemple avec `cd` : ```{noedit} \documentclass{article} \usepackage{cd} \newcommand{\cdrl}{\cd\rightleftarrows} \newcommand{\cdlr}{\cd\leftrightarrows} \newcommand{\cdr}{\cd\to} \newcommand{\cdl}{\cd\gets} \newcommand{\cdu}{\cd\uparrow} \newcommand{\cdd}{\cd\downarrow} \newcommand{\cdud}{\cd\updownarrows} \newcommand{\cddu}{\cd\downuparrows} \begin{document} \[\CD G \cdrl {\gamma}{\delta} H \cdr {}{\Delta} K \\ \cd. \cdud {f}{g} \cd| {h}{k} \\ 0 \cdr {}{} G' \cd= {\beta}{} H' \endCD \] \end{document} ``` ## Pour aller plus loin Une [page](https://ctan.org/pkg/diagrams) du [CTAN](../../../1_generalites/documentation/le_catalogue_du_ctan.md) est dédiée au sujet des diagrammes commutatifs. Elle renvoit en particulier vers un [article du TUGboat](https://tug.org/TUGboat/Articles/tb15-4/tb45vali.pdf) datant de 1994 comparant les différentes extensions traitant alors de ce sujet.