如何使 Tikz 交换图箭头具有相同的垂直长度

如何使 Tikz 交换图箭头具有相同的垂直长度

使用时我注意到了一些东西tikz-cd。它不是很大,但我想知道它是否可以调节。

我正在使用当前的最小示例:

\documentclass[a4paper]{article}

\usepackage{amsmath}
\usepackage{tikz-cd}

\begin{document}
    \begin{tikzcd}[column sep=large, row sep=large]
        & \arrow[dl, swap, "R"] D \arrow[d, dashed, "F"] \arrow[dr, "T"] & \\
        B & \arrow[r, swap, "P"] B \times C \arrow[l, "Q"] & C
    \end{tikzcd}
\end{document}

其结果为:

我注意到中间的垂直箭头与两个对角线外箭头的高度不同。我想知道如何使每个箭头尖端的底部齐平。这可以轻松调整吗?我正在慢慢研究文档,但还没能弄清楚如何做到这一点。

答案1

  • 箭头默认指向节点中心之间,因此它们可能会接触不同位置的单元格边界。
  • 对于箭头,您可以指定end anchor。通过为箭头选择适当的锚点,您可以实现您想要的效果。
\documentclass[margin=3mm]{standalone}
\usepackage{tikz-cd}

\begin{document}
    \begin{tikzcd}[sep=large,
                   cells={nodes={draw=gray, inner sep=2pt}} % to see cells borders, delete in real document
                   ]
        & \dlar["R" ', end anchor=north east] D \dar[dashed, "F"] \drar["T", end anchor=north west] & \\
      B & \rar["P" ']  B \times C \lar["Q"]           & C
    \end{tikzcd}
\end{document}

在此处输入图片描述

  • 与箭头的起始点相同,定义start anchor。使用两者,交换图为:
\documentclass[margin=3mm]{standalone}
\usepackage{tikz-cd}

\begin{document}
    \begin{tikzcd}[sep=large,
                   cells={nodes={draw=gray, inner sep=2pt}} % to see cells borders, delete in real document
                   ]
        & \dlar["R" ', start anchor= south west,
                       end anchor=north east] D \dar[dashed, "F"] \drar["T", start anchor= south east,
                                                                             end anchor=north west] & \\
      B & \rar["P" ']  B \times C \lar["Q"]           & C
    \end{tikzcd}
\end{document}

在此处输入图片描述

笔记

  • 在实际文档中删除绘制井边框的图表选项。
  • 我想知道增加这种复杂性是否真的值得。
  • 在节点中足够长的文本处,箭头将在顶部单元格边框处结束,而无需定义end anchor

相关内容