Help:LaTeX Editing/Commutative Diagrams

From ProofWiki
Jump to navigation Jump to search

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

Drawing diagrams

The XyJax package

From Talk:Main Page/Archive 9#Xymatrix and Talk:Main Page/Archive_8#xymatrix_.28moved_from_User_talk:Lord_Farin.29

Some explanation will be added. For now, see the manual at


  • Square diagrams:
A \ar[d]^b \ar[r]^a & B \ar[d]^c \\
C \ar[r]^d          & D }

A \ar[d]^b \ar[r]^a & B \ar[d]^c \\ C \ar[r]^d & D }$

  • Triangles:
G \ar[d]^\pi \ar[r]^{\forall f} & H\\
G/N \ar[ru]_{\exists ! \bar f} }

G \ar[d]^\pi \ar[r]^{\forall f} & H\\ G/N \ar[ru]_{\exists ! \bar f} }$

  • Curved lines and specifying positions:
<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}

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



  A @>a>> B \\
  @VVbV @VVcV \\
  C @>d>> D




 A @>a>> B \\
 @VVbV @VVcV \\
 C @>d>> D


Using standard $\LaTeX$ environments

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

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

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

The disadvantage is that this does not allow other users to change the notation, for example to bring it up with the House Style, or to use the source code for other diagrams.

External Links