Comment tracer des diagrammes commutatifs ?#

1.  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}
  \usepackage[T1]{fontenc}    % Encodage T1 (adapté au français)
  \usepackage{lmodern}        % Caractères plus lisibles
  \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}

2.  Avec l’extension xypic#

L’extension xypic est un outil simple et puissant qui permet de réaliser ces diagrammes.

\documentclass{article}
  \usepackage[T1]{fontenc}    % Encodage T1 (adapté au français)
  \usepackage{lmodern}        % Caractères plus lisibles
  \pagestyle{empty}           % N'affiche pas de numéro de page
  \usepackage[all]{xy}

\begin{document}
\[
  \xymatrix{
    A \ar[d] \ar[r] \ar@{=}[rd] & B \ar[d] \\
    C \ar[r] & D }
\]
\end{document}

3.  Avec l’extension amscd#

L’extension amscd, qui appartient à l’ensemble des extensions , met à disposition un environnement CD dont voici un exemple d’utilisation (avec mathtools pour certains commandes) :

\documentclass{article}
  \usepackage[T1]{fontenc}    % Encodage T1 (adapté au français)
  \usepackage{lmodern}        % Caractères plus lisibles
  \pagestyle{empty}           % N'affiche pas de numéro de page
  \usepackage{mathtools,amscd}

\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 xypic.

4.  Cas de 2.09#

Avertissement

Ce qui suit n’a qu’un caractère historique et l’usage des extensions indiquées n’est pas recommandé.

En 2.09, deux extensions au moins traitaient de ce sujet : catmac et cd.

Voici un exemple de code avec catmac. Notez que cette extension n’est pas compatible avec l’option [french] de babel qui rend le ; actif.

\documentclass{article}
  \usepackage[T1]{fontenc}    % Encodage T1 (adapté au français)
  \usepackage{lmodern}        % Caractères plus lisibles
  \pagestyle{empty}           % N'affiche pas de numéro de page
  \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 :

\documentclass{article}
  \usepackage[T1]{fontenc}    % Encodage T1 (adapté au français)
  \usepackage{lmodern}        % Caractères plus lisibles
  \pagestyle{empty}           % N'affiche pas de numéro de page
  \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}

Voir aussi

Une page du CTAN est dédiée au sujet des diagrammes commutatifs. Elle renvoit en particulier vers un article du TUGboat datant de 1994 comparant les différentes extensions traitant alors de ce sujet.