Tikz의 교환 다이어그램의 평행 화살표

Tikz의 교환 다이어그램의 평행 화살표

나는 교환 다이어그램에서 평행해야 하는 모든 화살표를 실제로 평행하게 만들고 싶습니다. 내 다이어그램은 다음과 같습니다.

  \begin{center}
    \begin{tikzpicture}
    \matrix (m) [matrix of math nodes,row sep=3em,column sep=4em,minimum width=3em]
    {
        F(\mu F) & FA \\
        \mu F & A \\};
    \path[-stealth]
    (m-1-1) edge node [left] {$ in_{F} $} (m-2-1)
    edge  node [above] {$F(h)$} (m-1-2)
    (m-2-1.east) edge node [above] {$h$}
    node [above] {} (m-2-2)
    (m-1-2) edge node [right] {$ g $} (m-2-2)
    ;
    \end{tikzpicture}
\end{center}

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

이것을 어떻게 옮겨서 적절한 사각형을 얻을 수 있습니까?

답변1

행렬 대신 다음과 같은 TikZ의 특수 확장을 사용하십시오 tikz-cd.

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

\begin{document}
\begin{tikzcd}
F(\mu F) \arrow[r, "F(h)"] \arrow[d, "\mathit{in}_{F}"'] & FA \arrow[d, "g"] \\
\mu F \arrow[r, "h"] & A
\end{tikzcd}
\end{document}

구문이 더 자연스럽고 레이블의 크기가 적절하며 화살표는 전체 수학 글꼴과 같습니다.

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

답변2

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

\documentclass[border=3mm]{standalone}
\usepackage{tikz-cd}

\begin{document}
\begin{tikzcd}[row sep=huge] % <---
    F(\mu F)
    \arrow{r}{F(h)} 
    \arrow{d}{in_F}
&
    FA
    \arrow{d}{g}   \\
%
    A
    \arrow{r}{h}
&
    (\mu F)
\end{tikzcd}
\end{document}

아 답변이 거의 똑같네요세바스티아노:-(. 다이어그램은 좀 더 정사각형입니다 :-)

답변3

LaTeX의 다른 부분에서도 유용하기 때문에 실제로 관심을 가질 만한 사항을 수정하기 위해 아주 작은 변경 사항이 있습니다. 여기서 문제는 \mu디센더가 있지만 FA그렇지 않다는 것입니다. 키가 큰 문자 및 디센더와 관련된 "모든 높이"는 있지만 너비는 없는 상자를 \strut를 통해 얻을 수 있습니다.

    F(\mu F) & FA\strut \\
    \mu F & A\strut

문서의 나머지 부분은 정확히 동일하게 유지될 수 있습니다. 편집증적인 느낌이 든다면 \strut나중에 내용을 변경할 경우를 대비하여 다른 셀에 s를 추가하고 미래에도 대비할 수 있습니다.

\vphantom보다 일반적으로, 주어진 다른 상자와 동일한 높이 및 깊이 매개변수를 가진 너비가 없는 상자와 \hphantom주어진 다른 상자와 동일한 너비를 가진 높이가 없는 상자에 사용할 수 있습니다 . 따라서 진정한 편집증 버전은 다음과 같습니다.

    F(\mu F)\vphantom{FA} & FA\vphantom{F(\mu F)} \\
    \mu F\vphantom{A} & A\vphantom{\mu F}

그러면 각 행의 모든 ​​열에 걸쳐 동일한 높이와 깊이가 보장됩니다. ( \strut높이와 깊이에 있어서 "최소"라는 이점도 있습니다 . 예를 들어 주어진 행에 디센더가 없는 경우 \strut모든 곳에 를 추가하면 깊이가 제공되지만 \vphantom위와 같이 사용하면 그렇지 않습니다.)

관련 정보