假设您有 n 个小文本或公式的变体,如下所示:
% Formula 1
\begin{align}
v(t_o) = \lim_{h \to 0} \frac{v(t_0 + h) - v(t_0)}{h}
\end{align}
% Formula 2
\begin{align}
v(t_o) = \lim_{h \to 0} \frac{v(t_0 + \Delta t) - v(t_0)}{\Delta t}
\end{align}
%...
% Formula n
%...
是否可以将这些公式随机均匀地分布在页面上,并将公式随机旋转 +- x 度。公式不得重叠。
答案1
根据@Leo 的建议,下面是如何在 Tikz 中执行此操作的开始:
\usepackage{tikz}
\makeatletter
\pgfkeys{/rotatednodes/.cd, width/.initial=10cm,
height/.initial=10cm, maxrotation/.initial=20}
\newcount\@nodenum
\newcommand{\rotatednodes}[2][]{%
\pgfkeys{/rotatednodes/.cd, #1}
\begin{tikzpicture}[x=\pgfkeysvalueof{/rotatednodes/width},
y=\pgfkeysvalueof{/rotatednodes/height}]
\@nodenum=0
\def\@eqlist{#2}
\foreach\eq in \@eqlist{
\advance\@nodenum by 1
\pgfmathrandominteger{\x}{0}{100}
\pgfmathrandominteger{\y}{0}{100}
\pgfmathrandominteger{\r}{-\pgfkeysvalueof{/rotatednodes/maxrotation}}%
{\pgfkeysvalueof{/rotatednodes/maxrotation}}
\node[rotate=\r] (randomnode_\number\@nodenum) at (\x/100,\y/100) {\eq};
}
\end{tikzpicture}
}
\makeatother
然后你可以像这样使用
\rotatednodes[width=2cm, maxrotation=90]{$x$, $y$, $z$, $a$, $b$, $c$}
这使
或者类似的东西。
可选参数是width
、height
和 ,maxrotation
它们的作用或多或少都与它们的名称一致。摆弄参数的键只是为了好玩:关键部分是用来\pgfmathrandominteger
随机化节点的位置和旋转,我猜是用来\foreach
循环遍历各种方程式。
这个简单的实现存在几个问题,特别是完全没有尝试检查节点重叠,并且只保证节点的中心落在width
xheight
矩形内,但希望这将帮助您找到适合您的特定情况的解决方案。