Aus bestimmten Gründen (damit ein Knoten den Stil eines Pfeils beeinflusst, der in tikzcd auf ihn zeigt) muss ich einen Code ausführen, der \tikzlastnode
den Namen der aktuellen Position in einer tikz(cd)-Matrix abruft, aber dies wird erst nach der Erstellung des Knotens definiert. Leider append after command
wird ein Pfad erwartet (ein leerer Pfad ist anscheinend keine gültige Eingabe), also muss ich einen falschen, leeren Knoten erstellen, nur um einen Pfad auszuführen, und das klingt wirklich schmutzig, und ich befürchte, dass es Probleme verursachen könnte (Leerzeichen hinzufügen, die nächsten Pfade stören …). Können wir es ausführen append after command
(oder etwas Ähnliches), ohne den Pfad überhaupt zu stören?
MWE:
\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}
BEARBEITEN
Jemand hat es vorgeschlagen \pgfextra ... \endpgfextra
und es funktioniert! Danke!
\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}