我試圖pos
隨機設定邊緣節點的 。以下作品:
\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}
但是,它不適用於\edef
代替\xdef
.為什麼?\X
定義的封閉組在哪裡?是否有更多元素的解決方案不需要我進行全域定義?
答案1
我不知道鑰匙.evaluted
。為我,
\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}
完成了工作。當然,如果我想使用相同的隨機值兩次(如我的問題),這不起作用。但無論如何我不需要那個。為此,.expanded
按鍵(例如,pos/.expanded
)可能會有所幫助,但我還沒有嘗試過。