Help:LaTeX Editing/Commutative Diagrams

A lot of effort has been put into implementing extensions for commutative diagrams. This page lists these and other possibilities to draw them.

The XyJax package
From Talk:Main Page/Archive 9 and Talk:Main Page/Archive_8

Some explanation will be added. For now, see the manual at http://www.jmilne.org/not/Mxymatrix.pdf

Examples:

\xymatrix{ A \ar[d]^b \ar[r]^a & B \ar[d]^c \\ C \ar[r]^d         & D }
 * Square diagrams:
 * $\xymatrix{

A \ar[d]^b \ar[r]^a & B \ar[d]^c \\ C \ar[r]^d         & D }$ \xymatrix{ G \ar[d]^\pi \ar[r]^{\forall f} & H\\ G/N \ar[ru]_{\exists ! \bar f} }
 * Triangles:
 * $\xymatrix{

G \ar[d]^\pi \ar[r]^{\forall f} & H\\ G/N \ar[ru]_{\exists ! \bar f} }$ \begin{xy} <0em,0em>*+{X \times Y}="xy", <5em,0em>*+{X}="x", <0em,-5em>*+{Y}="y", <5em,-5em>*+{Z}="z", <-4em,4em>*+={U}="u", "xy";"x" **@{-} ?>*@{>} ?<>(.5)*!/^0.5em/{\scriptstyle p}, "xy";"y" **@{-} ?>*@{>} ?<>(.5)*!/_0.5em/{\scriptstyle q}, "x";"z" **@{-} ?>*@{>} ?<>(.5)*!/^0.5em/{\scriptstyle f}, "y";"z" **@{-} ?>*@{>} ?<>(.5)*!/_0.5em/{\scriptstyle g}, "u";"xy" **@{--} ?>*@{>}, "u";"y" **\crv{<-3em,-2em>} ?>*@{>} ?<>(.5)*!/^.5em/{y}, "u";"x" **\crv{<2em,3em>} ?>*@{>} ?<>(.5)*!/_.5em/{x} \end{xy}
 * Curved lines and specifying positions:
 * $\begin{xy}

<0em,0em>*+{X \times Y}="xy", <5em,0em>*+{X}="x", <0em,-5em>*+{Y}="y", <5em,-5em>*+{Z}="z", <-4em,4em>*+={U}="u", "xy";"x" **@{-} ?>*@{>} ?<>(.5)*!/^0.5em/{\scriptstyle p}, "xy";"y" **@{-} ?>*@{>} ?<>(.5)*!/_0.5em/{\scriptstyle q}, "x";"z" **@{-} ?>*@{>} ?<>(.5)*!/^0.5em/{\scriptstyle f}, "y";"z" **@{-} ?>*@{>} ?<>(.5)*!/_0.5em/{\scriptstyle g}, "u";"xy" **@{--} ?>*@{>}, "u";"y" **\crv{<-3em,-2em>} ?>*@{>} ?<>(.5)*!/^.5em/{y}, "u";"x" **\crv{<2em,3em>} ?>*@{>} ?<>(.5)*!/_.5em/{x} \end{xy}$

The AMScd package
This package only supports rectangular diagrams, no diagonal arrows. For detailed help, see the AMScd manual.

Example: \require{AMScd}

\begin{CD} A @>a>> B \\ @VVbV @VVcV \\ C @>d>> D \end{CD} Result:
 * $\require{AMScd}

\begin{CD} A @>a>> B \\ @VVbV @VVcV \\ C @>d>> D \end{CD}$

Using standard $\LaTeX$ environments
It is possible to draw some diagrams using the matrix or array environments, but this has severe limitations. Example:

\begin{array}{ccc} A & \xrightarrow{a} & B \\ \downarrow & \searrow & \downarrow \\ C & \xrightarrow{d} & D \end{array}
 * $\begin{array}{ccc}

A & \xrightarrow{a} & B \\ \downarrow & \searrow & \downarrow \\ C & \xrightarrow{d} & D \end{array}$

As an image
Another good option is to create an image and upload it. This is for example explained at https://meta.wikimedia.org/wiki/Help:Displaying_a_formula#Commutative_diagrams