Estoy intentando configurar pos
un nodo de borde al azar. Las siguientes obras:
\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}
Sin embargo, no funciona con un \edef
en lugar de \xdef
. ¿Por qué? ¿Dónde está el grupo cerrado que \X
se ha definido? ¿Y existe una solución con más elementos que no requiera que haga definiciones globales?
Respuesta1
No estaba al tanto de la .evaluted
clave. Para mí,
\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}
hizo el trabajo. Por supuesto, si quiero usar elmismovalor aleatorio dos veces (como en mi pregunta), esto no funciona. Pero no necesitaba eso de todos modos. Para eso, la .expanded
clave (por ejemplo, pos/.expanded
) podría ser útil, pero no lo he probado.