在 tikzcd 中让箭头从节点的不同部分进入和离开

在 tikzcd 中让箭头从节点的不同部分进入和离开

我正在尝试让箭头进入和离开我在 tikzcd 中编写的特定图表中的节点的不同部分。到目前为止,我有以下内容:

\begin{tikzcd} 
\makebox[1em][r]{$Long text 1$} \arrow[rr] \arrow[d] &    & 
\makebox[1em][l]{$Long text 2$} \arrow[d] \\
{A} \arrow[r] & {B} \arrow[r] & C
\end{tikzcd}

其结果如下: 在此处输入图片描述

因此本质上我希望从“长文本 1”到“A”的箭头从 L 开始,从“长文本 2”到“C”的箭头从 2 开始,同时不改变从“长文本 1”到“长文本 2”的箭头。

任何帮助都将不胜感激。非常感谢!

答案1

您可以定义用于设置起始锚点start的样式。to path

\documentclass[tikz,border=7pt]{standalone}
\usepackage{mathtools}
\usetikzlibrary{cd}
\tikzstyle{start}=[to path={(\tikztostart.#1) -- (\tikztotarget)}]
\begin{document}
  \begin{tikzcd}[]
    \text{Long text 1} \arrow[rr] \arrow[d,start=205]
                  &               & \text{Long text 2} \arrow[d,start=335] \\
    {A} \arrow[r] & {B} \arrow[r] & C
  \end{tikzcd}
\end{document}

在此处输入图片描述

答案2

欢迎使用 TeX-SE!您可以使用这个答案。虽然我不确定,但我个人会这么做。

\documentclass{article}
\usepackage{tikz-cd}
\usepackage{amsmath}
\begin{document}  
\[  \begin{tikzcd}[execute at end picture={
    \draw[->] ([xshift=-4em]\tikzcdmatrixname-1-1.south) -- (\tikzcdmatrixname-2-1);
    \draw[->] ([xshift=4em]\tikzcdmatrixname-1-3.south) -- (\tikzcdmatrixname-2-3);
      }]
\makebox[1em][r]{Long text 1} \arrow[rr]  &    & 
\makebox[1em][l]{Long text 2} \\
{A} \arrow[r] & {B} \arrow[r] & C
  \end{tikzcd}\]
\end{document}

在此处输入图片描述

相关内容