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上述方法则不会。)

相关内容