4

I can draw

enter image description here

using

\begin{diagram}
X &\rTo^{\gamma} &Y & \lDotsto & \varepsilon_2\\
\dTo^\alpha  &\ruTo^\beta & & &\\
Z& \lDotsto &\varepsilon_3
\end{diagram}

and the following declarations in the preample

\documentclass{beamer}
\usepackage[small,nohug,heads=littlevee]{diagrams}
\diagramstyle[labelstyle=\scriptstyle]

Can someone please show me how to modify things to obtain the following variant of the original diagram?

enter image description here

Thank you very much!

2
  • 1
    Welcome! Please make your code into a compilable example.
    – cfr
    May 7, 2016 at 3:23
  • @cfr Thanks for the tip. Next time I'll do so.
    – yurnero
    May 7, 2016 at 10:25

5 Answers 5

4

If you don't mind using xy-pic, the code

\documentclass{beamer}
\usepackage[all,cmtip]{xy}
\begin{document}
\begin{displaymath}
  \xymatrix{
    {X} \ar[rr]^{\gamma} \ar[dr]^{\alpha}
    && {Y}\\
    {\varepsilon_{3}} \ar[r]
    & {Z} \ar[ur]^{\beta}
    & {\varepsilon_{2}} \ar[u]
  }% xymatrix
\end{displaymath}

\end{document}

will produce

commutative diagram

For a tutorial on commutative diagrams using xy-pic, see section 8 of "Getting up and running with AMS-LaTeX", at https://www.ctan.org/tex-archive/info/amslatex-primer?lang=en

4

Here is the diagram with diagrams.sty; I drew the version with the standard arrow along with the head=littlevee version. The latter has disastrous results.

\documentclass{article}
\usepackage[small,nohug]{diagrams}
\diagramstyle[labelstyle=\scriptstyle]

\begin{document}

\begin{diagram}
X             &              & \rTo^{\gamma} &             & Y \\
              & \rdTo^\alpha &               & \ruTo^\beta & \uTo \\
\varepsilon_3 & \rTo         & Z             &             & \varepsilon_2
\end{diagram}

\diagramstyle[heads=littlevee]

\begin{diagram}
X             &              & \rTo^{\gamma} &             & Y \\
              & \rdTo^\alpha &               & \ruTo^\beta & \uTo \\
\varepsilon_3 & \rTo         & Z             &             & \varepsilon_2
\end{diagram}

\end{document}

enter image description here

I recommend using tikz-cd instead. The syntax is much easier and the result much prettier.

\documentclass{article}
\usepackage{tikz-cd}

\begin{document}

\begin{tikzcd}
X \arrow[rr,"\gamma"] \arrow[dr,"\alpha"] && Y \\
\varepsilon_3 \arrow[r] & Z \arrow[ur,"\beta"] & \varepsilon_2 \arrow[u]
\end{tikzcd}

\end{document}

enter image description here

Here is the tikz-cd version with dotted arrows.

\documentclass{article}
\usepackage{tikz-cd}

\begin{document}

\begin{tikzcd}
X \arrow[rr,"\gamma"] \arrow[dr,"\alpha"] && Y \\
\varepsilon_3 \arrow[r,dotted] & Z \arrow[ur,"\beta"] & \varepsilon_2 \arrow[u,dotted]
\end{tikzcd}

\end{document}

enter image description here

4
  • Where to get diagrams.sty? Not available on ctan.org
    – pzorba75
    May 7, 2016 at 17:26
  • @pzorba75 Indeed, it is only available on Paul Taylor's web site: paultaylor.eu/diagrams
    – egreg
    May 7, 2016 at 17:28
  • Although the diagrams package produces fine output, it contains a "time bomb" that renders the package unusable after a date preset by the author, so a new version has to be retrieved. If the input for the project for which it is being used is expected to remain viable indefinitely, diagrams isn't the best package to choose. Oct 8, 2020 at 16:24
  • @barbarabeeton I fully agree.
    – egreg
    Oct 8, 2020 at 17:27
3

LaTeX's built-in picture command isn't bad, though the trial-and-error to get things placed correctly is inconvenient. To get the following, use the code below.

diagram.jpg

\documentclass[11pt]{article}

\begin{document}

\setlength{\unitlength}{1pt}
\begin{picture}(150,50)
\put(0,0){$\varepsilon_3$} \put(70,0){$Z$} \put(140,0){$\varepsilon_2$}
\put(0,40){$X$} \put(140,40){$Y$}
\put(12,3){\vector(1,0){55}} \put(143,10){\vector(0,1){27}}
\put(13,38){\vector(2,-1){55}} \put(82,10){\vector(2,1){55}}
\put(13,43){\vector(1,0){120}}
\put(70,48){$\gamma$} \put(45,25){$\alpha$} \put(96,25){$\beta$}
\end{picture}

\end{document}
1
2

Here are two solutions: one with  pstricks, the other with tikz-cd:

\documentclass{article}
\usepackage{amsmath}
\usepackage{pstricks-add}
\usepackage{tikz-cd}
\usepackage{auto-pst-pdf}

\begin{document}

With \texttt{pstricks}: \[ \psset{arrows=->, arrowinset=0.2, linewidth=0.5pt, nodesep=2pt, labelsep=2pt, rowsep=0.8cm, colsep=1cm, shortput=tab, linejoin=1}
\everypsbox{\scriptstyle}
\begin{psmatrix}
  %%%nodes
  X & & Y\\%
  \varepsilon _3 & Z & \varepsilon _2 %%%
  %%% arrows
  \ncline{1,1}{1,3}^{\gamma } \ncline{1,1}{2,2}^[tpos = 0.6]{\alpha }
  \ncline{2,1}{2,2} \ncline{2,2}{1,3}^[tpos = 0.36]{\beta } \ncline{2,3}{1,3}
\end{psmatrix}
\]

With \texttt{tikz-cd}: \[ \begin{tikzcd}[column sep=0.6cm]
X \arrow{rr}{\gamma }\drar{\alpha } & &Y \\%
\varepsilon _3 \rar & Z \urar[pos = 0.42]{\beta } & \varepsilon _2 \uar
\end{tikzcd}
\]

\end{document} 

enter image description here

1

I don't know the diagram environment but for commutative diagrams I recommend using tikz package and a matrix of math nodes to give:

enter image description here

Here is the code:

\documentclass[border=5mm,tikz]{standalone}
\usepackage{tikz}
\usetikzlibrary{matrix}
\begin{document}
  \begin{center}
    \begin{tikzpicture}[>=stealth,->,shorten >=2pt,looseness=.5,auto]
      \matrix (M)[matrix of math nodes,row sep=1cm,column sep=16mm]{
         X             &   & Y\\
         \varepsilon_3 & Y & \varepsilon_2\\
       };
       \draw(M-1-1)--node{$\gamma$}(M-1-3);
       \draw(M-1-1)--node{$\alpha$}(M-2-2);
       \draw(M-2-2)--node{$\beta$}(M-1-3);
       \draw(M-2-1)--(M-2-2);
       \draw(M-2-3)--(M-1-3);
    \end{tikzpicture}
  \end{center}
\end{document}

I think the code is mostly self-explanatory, although familiarity with tikz will of course help:) One less obvious part, perhaps, is that the (M) in \matrix (M) says that the matrix coordinates should be referred to using the letter M together with the row and column indices. So if you instead had \matrix (mat) then you would refer to the coordinates as (mat-1-1), (mat-1-2) etc.

There is also a tikzcd package but my simple mind cannot cope with the syntax it requires:)

3
  • the arrow at bottom left should be horizontal. it's slightly tilted upward. May 7, 2016 at 16:11
  • @barbarabeeton Yes, you're right. The arrow goes between the centers of the corresponding nodes so it is not horizontal because \varepsilon_3 and Y have different heights. This is clearly not what is wanted, but I do not see an easy fix. One way out is to add \rlap{\phantom{$Y$}} to the node but there ought to be a better way...
    – user30471
    May 8, 2016 at 23:03
  • you might just add \mathstrut to the \varepsilon node. not wonderful, but a bit more direct and scrutable than using a phantom (which, strictly speaking, should be \vphantom, which doesn't need an \rlap). May 9, 2016 at 1:36

This site is temporarily in read-only mode and not accepting new answers.

Not the answer you're looking for? Browse other questions tagged .