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上記のように使用しても深さは与えられません。)

関連情報