我正在使用execute at begin cell
tikzcd 矩阵自动添加一些节点(基本上是 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}