Tikz 矩阵/tikzcd:在现有单元格处自动添加一个节点以指向它

Tikz 矩阵/tikzcd:在现有单元格处自动添加一个节点以指向它

我正在使用execute at begin celltikzcd 矩阵自动添加一些节点(基本上是 tikz 矩阵,请注意,在实践中我实际上只在节点子集上使用它,为了简单起见,这里我为所有单元启用它),我使用:

name=\tikzmatrixname-\the\pgfmatrixcurrentrow-\the\pgfmatrixcurrentcolumn

以确保此节点应该是箭头的目标,就像\arrow[r]tikzcd 中一样。当节点为空或包含类似 的内容时\node{foo};,我可以轻松做到这一点,但问题是当节点包含 时\rar,tikz自动添加一个仅包含的虚拟空节点name=\tikzmatrixname-\the\pgfmatrixcurrentrow-\the\pgfmatrixcurrentcolumn,它将覆盖我自己的name定义:结果,链接指向坐标 (0,0) 而不是指向我的节点(参见第二个节点):

在此处输入图片描述

我尝试使用execute at end cell,但不幸的是它不起作用,因为我收到\node未定义的错误。知道我做错了什么吗?

梅威瑟:

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

\begin{document}


This gives the good result, except for the second element: I’d like the arrows to point to the node and not to the coordinate:

\begin{tikzcd}[cells={inner sep=0pt},/tikz/execute at begin cell={\node[rounded corners, fill=orange,inner sep=3pt, opacity=.5,name=\tikzmatrixname-\the\pgfmatrixcurrentrow-\the\pgfmatrixcurrentcolumn]{OOOO};}]
  \node{A}; \rar["bad\ \ "] &  \rar & \node{A}; \rar & \text{I don't have strong preferences on what should happen here}
\end{tikzcd}

\end{document}

相关内容