Tikz: выполнить код после создания узла, не трогая путь

Tikz: выполнить код после создания узла, не трогая путь

По некоторым причинам (чтобы заставить узел влиять на стиль стрелки, указывающей на него в tikzcd), мне нужно выполнить код, который читает, \tikzlastnodeчтобы получить имя текущей позиции в матрице tikz(cd), но это определяется только после создания узла. К сожалению, append after commandожидает путь (пустой путь, по-видимому, не является допустимым входом), поэтому мне нужно создать фальшивый, пустой узел только для выполнения пути, и это звучит очень грязно, и я боюсь, что это может вызвать проблемы (добавление пространства, нарушение следующих путей…). Можем ли мы запустить append after command(или эквивалент), вообще не нарушая путь?

МВЭ:

введите описание изображения здесь

\documentclass{article}

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

\begin{document}
\makeatletter
\begin{tikzcd}
  A \rar[/utils/exec={\message{BBBBB The message above (AAAA) should be equal to \tikzcd@ar@target}}, draw=\myfillcolor] & |[append after command={
    %%% Creating an empty node + /utils/exec sounds really dirty:
    node[/utils/exec={%
      \message{AAAA I need to have access to the name of the current node \tikzlastnode}%
      \gdef\myfillcolor{red}
    }%
    ] {}
  }
  ]| B
\end{tikzcd}
\end{document}

РЕДАКТИРОВАТЬ

Кто-то предложил \pgfextra ... \endpgfextraи это работает! Спасибо!

\documentclass{article}

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

\begin{document}
\makeatletter
\begin{tikzcd}
  A \rar[/utils/exec={\message{BBBBB The message above (AAAA) should be equal to \tikzcd@ar@target}}, draw=\myfillcolor] & |[append after command={%
    \pgfextra% this syntax with \endpgfextra completely turns off the tikz syntax, that might be safer than \pgfextra{...}.
      \message{AAAA I need to have access to the name of the current node \tikzlastnode}%
      \gdef\myfillcolor{red}%
    \endpgfextra%
    }]| B
\end{tikzcd}
\end{document}

Связанный контент