Wie fügt man ein Quadrat in ein kommutatives Diagramm ein?

Wie fügt man ein Quadrat in ein kommutatives Diagramm ein?

So platzieren Sie ein Quadrat in einem kommutativen Diagramm wie im folgenden Bild:

Bildbeschreibung hier eingeben

Es hätte gerne ein Quadrat im folgenden Diagramm:

\documentclass[a4paper,12pt]{article}
\usepackage{tikz-cd}
\begin{document}

\begin{tikzcd}
X\times_S Y \arrow{r}{p_2} \arrow{d}[swap]{p_1} &Y \arrow{d}{g} \\   
X \arrow[swap]{r}{f} & Z
\end{tikzcd}
        
\end{document}

Antwort1

Zwei Lösungen: eine mit pstricksund einer psmatrixUmgebung, die andere mit tikz-cd, in der ich die Kurzsyntax für Pfeile verwende:

\documentclass{article}
\usepackage{mathtools, amssymb}
 \usepackage{pst-node, auto-pst-pdf}
\usepackage{tikz-cd}

\begin{document}

\texttt{psmatrix solution: }
 \[ \psset{arrows=->, arrowinset=0.15, linewidth=0.6pt, nodesep=3pt, rowsep=0.6cm, colsep = 1cm}
 \everypsbox{\scriptstyle}
 \begin{psmatrix}
%%% nodes
  X'' & X' & X \\%
S'' & S' & S
 %%% horizontal arrows
\ncline{1,1}{1,2}\naput{g'} \ncline{1,2}{1,3}\naput{g}
 \ncline{2,1}{2,2}\nbput{f'} \ncline{2,2}{2,3}\nbput{f}
 %%% vertical arrows
\ncline{1,1}{2,1} \ncline{1,2}{2,2}\ncline{1,3}{2,3}
\ncline[linestyle =none, arrows=-]{1,2}{2,3}\ncput{\textstyle\square}
 \end{psmatrix}
 \]
\vskip 1cm

\texttt{tikz-cd solution: }
\[ \begin{tikzcd}[arrows={-Stealth}]
  X''\rar["g'"]\dar & X'\rar["g"]\dar\drar[phantom, "\square"] & X\dar \\%
S''\rar[swap, "f'"] & S'\rar[swap, "f"] & S
\end{tikzcd}
\]

\end{document} 

Bildbeschreibung hier eingeben

Antwort2

Die richtige Vorgehensweise tikz-cdbesteht darin, einen „Phantompfeil“ zu verwenden, wie in

\arrow[dr, phantom, "\square"]

MWE (ich habe Code verwendet, um das Bild zu reproduzieren, nicht Ihren):

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

\begin{document}

\begin{tikzcd}
X'' \arrow[r, "g'"] \arrow[d] & X' \arrow[r, "g"] \arrow[d] \arrow[dr, phantom, "\square"] & X \arrow[d] \\
S'' \arrow[r, "f'"']          & S' \arrow[r, "f"']                                         & S
\end{tikzcd}

\end{document} 

Bildbeschreibung hier eingeben

Antwort3

Eine andere Lösung könnte die Verwendung von sein execute at end picture.
Das ist weniger elegant als die Antwort von karlkoeller, aber Sie können den Knoten beliebig positionieren, indem Sie einfach seine Koordinaten ändern.

\documentclass[a4paper,12pt]{article}
\usepackage{amssymb}
\usepackage{tikz-cd}
\usetikzlibrary{calc}

\begin{document}

\begin{tikzcd}[
    every matrix/.append style={name=mycd},
    execute at end picture={
    \node at ($(mycd-1-1)!0.5!(mycd-2-2)$) {$\square$};
    }
]
X\times_S Y \arrow{r}{p_2} \arrow{d}[swap]{p_1} &Y \arrow{d}{g} \\   
X \arrow[swap]{r}{f} & Z
\end{tikzcd}

\end{document}

Bildbeschreibung hier eingeben

verwandte Informationen