I need to put up a commutative diagram in my latex document but unfortunately I could not find any package which could do that.

I am putting up the diagram in an image below, please take a look.

enter image description here

Thank you for your help :)


Here is a solution with the psmatrix environment from pst-node (pstricks family)

\usepackage{mathtools, amsfonts, amssymb}



\[ \begin{postscript}
  \psset{arrows=->, arrowinset=0.15, linewidth=0.6pt, dash=4pt 3pt, nodesep=2pt, labelsep=2pt, colsep=1cm, rowsep=1cm, emnode=R, npos=0.5}
    [name=DF] $ \mathcal{DF}_{\!H_a} $ & &[name=M]$ (\mathcal{M},\bar{\partial}) $\\[-1.5ex]
      & [name=PF] $ \mathcal{PF}_{\!\widetilde{H}_{a}} $ \\
      & $ \mathcal F $
      \ncline[linestyle=dashed, nodesep=4pt]{DF}{M}\naput{$ \varphi $}
      \ncline[arrows=H->, nodesep=1pt,]{2,2}{1,1}\naput[ labelsep= -1pt]{$ i_\mathcal{D} $}%
      \ncline[arrows=H->, hookwidth=-2mm, nodesepA=-1pt]{2,2}{1,3}\nbput[labelsep= 0pt]{$ i_{\mkern-2mu\mathcal{M}} $}%
      \ncline{3,2}{1,1}\naput[labelsep=-2pt]{$ u_{\mathcal{D}} $ }
      \ncline{3,2}{1,3}\nbput{$ u_{\mkern-2mu\mathcal{M}} $}
      \ncline[linestyle=dashed, nodesep=4pt]{DF}{M}^{$ \varphi $}
      \ncline[arrows=H->, hookwidth=1.5mm, nodesep=1pt,]{2,2}{1,1}\naput[ labelsep= -1pt]{$ i_\mathcal{D} $}%
      \ncline[arrows=H->, hookwidth=-1.5mm, nodesepA=-1pt, ]{2,2}{1,3}\nbput[labelsep= 0pt]{$ i_{\mkern-2mu\mathcal{M}} $}%
      \ncline{3,2}{1,1}\naput[labelsep=-2pt]{$ u_{\mathcal{D}} $ }
      \ncline{3,2}{1,3}\nbput{$ u_{\mkern-2mu\mathcal{M}} $}
    \end{postscript} \]


enter image description here

  • If you compile this with pdflatex (as should be) don't forget to add the --enable-write18 switch when launching the compiler, if you're under MiKTeX, or -shell-escape (TeX Live, MacTeX). – Bernard Mar 11 '16 at 12:35
  • Thanks again, I'll let you know if any other problem arises once I try this. – schzan Mar 11 '16 at 12:40
  • Hi @Bernard, I tried to add the switch using this link <tex.stackexchange.com/questions/37489/…> but unfortunately, it doesn's recognise "intitexmf" command. Could you please tell me how to add this switch. I am using Texmaker 4.0.1 on windows 7 enterprise. – schzan Mar 14 '16 at 16:22
  • Which system and distribution do you have? – Bernard Mar 14 '16 at 21:00
  • I am using Texmaker 4.0.1(compiled with Qt 5.0.1) on windows 7 enterprise (2009). – schzan Mar 16 '16 at 16:00

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.