Angenommen, ich möchte eine komplizierte Berechnung innerhalb einer TikZ-Schlüsseldefinition durchführen. Was ist die empfohlene Vorgehensweise hierfür?
Beim Durchlesen des Handbuchs und beim Stöbern in anderen Fragen kam ich zu der Annahme, dass die Lösung ungefähr so aussehen könnte:
\documentclass{standalone}
\usepackage{tikz}
\begin{document}
\tikzset{mykey/.style args={#1,#2,#3}{mykey/.code={%
% perform complicated calculation involving #1, #2 and #3 here
\def\x{5}
},
scale=\x
}}
\begin{tikzpicture}[mykey={1,2,3}]
\draw[->] (0,0) -- (1,0);
\end{tikzpicture}
\end{document}
Das hier funktioniert allerdings nicht:
! Undefined control sequence.
<argument> \x
Wie mache ich das richtig?
Antwort1
Hier ist ein Beispiel, wie Sie dies tun können:
\documentclass[varwidth,border=10]{standalone}
\usepackage{tikz}
\begin{document}
\tikzset{
mykey/.code args={#1,#2,#3}{
% perform complicated calculation involving #1, #2 and #3 here
% for example
\pgfmathparse{(#2-#1)*#3}
\pgfkeysalso{/tikz/scale=\pgfmathresult}
}
}
\begin{tikzpicture}
\draw[->, mykey={1,2,3}] (0,0) -- (1,0);
\draw[->, thick, red] (0,0) -- (1,0);
\end{tikzpicture}
\end{document}