교환 다이어그램 안에 사각형을 넣는 방법은 무엇입니까?

교환 다이어그램 안에 사각형을 넣는 방법은 무엇입니까?

다음 그림과 같이 교환 다이어그램 안에 사각형을 넣는 방법은 다음과 같습니다.

여기에 이미지 설명을 입력하세요

다음 다이어그램에 사각형이 있어야 합니다.

\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}

답변1

두 가지 솔루션: 하나는 with pstrickspsmatrix환경이고 다른 하나는 with 입니다 tikz-cd. 여기서는 화살표에 대한 짧은 구문을 사용합니다.

\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} 

여기에 이미지 설명을 입력하세요

답변2

올바른 방법은 다음과 tikz-cd같이 "유령" 화살표를 사용하는 것입니다.

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

MWE(사진을 재현하기 위해 귀하의 코드가 아닌 일부 코드를 사용했습니다):

\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} 

여기에 이미지 설명을 입력하세요

답변3

또 다른 해결책은 execute at end picture.
karlkoeller의 답변보다 덜 우아하지만 좌표를 변경하여 원하는 곳에 노드를 배치할 수 있습니다.

\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}

여기에 이미지 설명을 입력하세요

관련 정보