Ich versuche, die pos
eines Randknotens zufällig festzulegen. Folgendes funktioniert:
\documentclass{article}
\usepackage{tikz}
\tikzset{
X/.code={
\pgfmathparse{rnd}
\xdef\X{\pgfmathresult}
\pgfkeysalso{pos=\X, label=\X}
}
}
\begin{document}
\tikz \draw (0,0) edge node[X] {} (10,0) edge node[X] {} (10,10) edge node[X] {} (0,10);
\end{document}
Allerdings funktioniert es nicht mit einem \edef
anstelle von \xdef
. Warum? Wo ist die geschlossene Gruppe, die \X
in definiert wurde? Und gibt es eine Lösung mit mehr Elementen, bei der ich keine globalen Definitionen vornehmen muss?
Antwort1
Ich kannte den .evaluted
Schlüssel nicht. Für mich
\documentclass{article}
\usepackage{tikz}
\tikzset{X/.style={pos/.evaluated={rnd}}}
\begin{document}
\tikz \draw (0,0) edge node[X] {} (10,0) edge node[X] {} (10,10) edge node[X] {} (0,10);
\end{document}
hat den Job gemacht. Natürlich, wenn ich die verwenden möchteDasselbeWenn ich zweimal einen Zufallswert eingeben muss (wie in meiner Frage), funktioniert das nicht. Aber das habe ich auch nicht gebraucht. Dafür könnte der .expanded
Schlüssel (z. B. pos/.expanded
) hilfreich sein, aber das habe ich nicht ausprobiert.