5

I want a diagram that looks like the one found here,

enter image description here This is my attempt:

\[
\begin{tikzcd}
 [column sep = large]
N \arrow[d, "u"] \arrow[ddr, "q_j"]   \arrow[ddl, "q_k"] \\
\mathcal{A} \arrow[dr, "p_j"]  \arrow[dl, "p_k"] \\
 A_1 \arrow[r, "F(m)"] &  A_2 
\end{tikzcd}
\]

I notice the problems are with ddl and dl.

  • Hi, and welcome to TeX.sx. You can format code by choosing the code and clicking on the {} icon. Also, it's preferable to put your code fragment into a complete compilable document: you'll get help faster, and shows which packages you have loaded to make that fragment run. – Alan Munn Oct 11 '15 at 0:47
5

You need three columns (I also added some bending for some arrows and swapping for some of the labels):

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

\begin{document}

\[
\begin{tikzcd}[row sep = large]
& N \arrow[d, "u"] \arrow[ddr, bend left,"q_j"]   \arrow[ddl, bend right,"q_k",swap] & \\
& \mathcal{A} \arrow[dr, "p_j"]  \arrow[dl,swap, "p_k"] & \\
 A_1 \arrow[rr,swap, "F(m)"] & &  A_2 
\end{tikzcd}
\]

\end{document}

enter image description here

Or

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

\begin{document}

\[
\begin{tikzcd}[row sep = large]
& 
N 
  \arrow[d, dashed, "u" description] 
  \arrow[ddr, bend left,"q_j"]   
  \arrow[ddl, bend right,"q_k",swap] 
& 
\\
& 
\mathcal{A} 
  \arrow[dr, "p_j"]  
  \arrow[dl,swap, "p_k"] 
& 
\\
A_1 
  \arrow[rr,swap, "F(m)"] 
&
&  
A_2 
\end{tikzcd}
\]

\end{document}

enter image description here

  • Just wondering here, would this example get into trouble if the " was active? For example Danish babel use active ", if problematic, might be an idea to also note the alternative syntax. – daleif Oct 11 '15 at 7:22
  • @daleif It's not a problem if you add \usetikzlibrary{babel}. – egreg Oct 11 '15 at 9:28
  • I understand the yearning for symmetry, but the label in the middle of a dashed arrow is, at the least, ambiguous. Also the row sep should be increased. – egreg Oct 11 '15 at 9:31
  • @egreg row sep increased. The first option then won't hurt your eyes. – Gonzalo Medina Oct 11 '15 at 12:18
3

Besides the other answers, you can utilize Tikz for this matter.

\documentclass[border={10pt}]{standalone}

\usepackage{tikz}
\usetikzlibrary{calc, positioning}

\begin{document}

\begin{tikzpicture}
    [%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
        node distance=2.5cm, thick,
    ]%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     \node (Fx)                                                  {$F(X)$};
     \node (Fy)[right=of Fx]                                     {$F(Y)$};
     \node (L) [yshift=1.8cm] at (barycentric cs:Fx=0.1,Fy=0.1)  {L};
     \node (N) [above=of L]                                      {$N$};

    \draw[->,dashed] (N) -- (L)  node [rectangle,fill=white,midway] {$u$};
    \draw[->] (L)  -- (Fx) node [left,midway]  {$\phi_{X}$};
    \draw[->] (L)  -- (Fy) node [right,midway] {$\phi_{Y}$};
    \draw[->] (Fx) -- (Fy) node [below,midway] {$F(f)$};
    \draw[->] (N) to [bend right=30] node [left,midway] {$\psi_{X}$} (Fx) ;
    \draw[->] (N) to [bend left=30] node [right,midway] {$\psi_{Y}$} (Fy) ;
\end{tikzpicture}
\end{document}

enter image description here

  • Just for completeness, might want to explain the barycentric cs, users passing by, might not know it. – daleif Oct 11 '15 at 10:08
3

A pstricks solution:

\documentclass{article}
\usepackage{pst-node}
\usepackage{auto-pst-pdf}

\begin{document}

\[ \psset{arrows=->, arrowinset=0.15, linewidth=0.6pt, dash=3pt 2pt, nodesep=3pt, labelsep=1pt, colsep=1cm, rowsep=1.25cm, shortput=nab}
\begin{psmatrix}
     & N\\
    & L\\
    F(X) & & F(Y)\\
\end{psmatrix}
\ncline[linestyle=dashed]{1,2}{2,2}\ncput*{u}
\ncline{2,2}{3,1}_{\phi_X} \ncline{2,2}{3,3}^{\phi_Y}
\ncline{3,1}{3,3}_{F(f)}
\ncarc[arcangle=-20]{1,2}{3,1}\nbput{\psi_X}\ncarc[arcangle=20]{1,2}{3,3}\naput{\psi_Y}
\]

\end{document} 

enter image description here

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.