Tikzcd 직각 삼각형 내부에 개체를 중앙에 배치하려면 어떻게 해야 합니까?

Tikzcd 직각 삼각형 내부에 개체를 중앙에 배치하려면 어떻게 해야 합니까?

그래서 저는 다음 Tikzcd 다이어그램을 가지고 있고 삼각형 W, (X x Y), X 또는 삼각형 W, (X x Y), (X x Y) x Z의 중심에 Y를 배치하려고 합니다.

\begin{equation*}
\begin{tikzcd}[column sep=large, row sep=large]
    X
    &
    & W 
        \ar[lldd, "(f'\times g')" description, dashed]  
        \ar[dd, "(f'\times g')\times g" description, dashed]
        \ar[rdd, "g"]
        \ar[ll, "f'"']
    & 
\\
    &Y
    &Y
    &
\\
    (X\times Y) 
        \ar[uu, "\pi_X"]
    &
    & (X\times Y)\times Z 
        \ar[ll, "p_{X\times Y}"]
        \ar[r, "p_Z"']
    & Z
\end{tikzcd}
\end{equation*}

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

더 많은 행과 열을 추가해 보았습니다. 그러나 tikz-cd는 열 간격이 균일하지 않도록 만드는 것으로 보이며 실용적이기에는 너무 많은 행과 열이 필요합니다. 이 문제를 해결하는 가장 좋은 방법은 무엇입니까?

답변1

노드를 기억하고 오버레이를 사용하여 삼각형의 중심에 원하는 노드를 그릴 수 있습니다.

\documentclass{article}
\usepackage{amsmath}
\usepackage{tikz-cd}
\begin{document}
\begin{equation*}
\begin{tikzcd}[column sep=large, row sep=large,remember picture]
    |[alias=X]| X
    &
    & |[alias=W]| W 
        \ar[lldd, "(f'\times g')" description, dashed]  
        \ar[dd, "(f'\times g')\times g" description, dashed]
        \ar[rdd, "g"]
        \ar[ll, "f'"']
    & 
\\
    &Y
    &Y
    &
\\
    |[alias=XxY]| (X\times Y) 
        \ar[uu, "\pi_X"]
    &
    & |[alias=XxYxZ]| (X\times Y)\times Z 
        \ar[ll, "p_{X\times Y}"]
        \ar[r, "p_Z"']
    & Z
\end{tikzcd}
\tikz[overlay,remember picture]{%
\node (Y1) at (barycentric cs:X=1,W=1,XxY=1) {$Y$};
\draw[->] (Y1) -- (W);\draw[->] (Y1) -- (XxY);
\node (Y2) at (barycentric cs:XxYxZ=1,W=1,XxY=1) {$Y$};
\draw[->] (Y2) -- (W);\draw[->] (Y2) -- (XxY);
}
\end{equation*}
\end{document}

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

X또는 계수를 증가시키면 XxYxZ노드를 직사각형 모서리 쪽으로 조금 더 이동할 수 있습니다.

업데이트: 연결 화살표를 추가했습니다. 아마도 너무 많을 수 있지만 어떤 화살표를 제거해야 하는지는 분명해야 합니다.

관련 정보