我正在尝试生成一个“词云”通过在单词周围使用\mbox
带有随机空格的 es。
在下面的代码中,我删除了改变字体大小的内容,并且为了调试目的\mbox
用 es 替换了 es 。\framebox
\documentclass{article}
\usepackage[first=1, last=10]{lcg}
\newcommand*{\wordtag}[1]{%
\framebox{\vspace{3pt}\hspace{5pt}#1\vspace{1pt}\hspace{6pt}}%
}
\begin{document}
\rand
\wordtag{color}
\wordtag{animals}
\end{document}
\rand
当我用(即)替换长度时\vspace{\rand pt}
,出现以下错误:
! Illegal unit of measure (pt inserted).
有人知道如何修复这个错误吗?
为什么\rand
文档开头没有打印任何内容?
有没有更好的方法来制作词云?
答案1
包装的手册lcg
指出:
\rand
每次调用该命令\rand
都会将一个新的随机数写入用户使用密钥 [=package option] 提供的计数器counter
或此包的标准计数器rand
。现在可以做任何可以用计数器做的事情了。
因此\rand
不会扩展为数字,因此不会排版任何内容,也不能用于长度。您需要先使用它,然后才能使用计数器rand
,\value{rand}
例如\vspace{\value{rand} pt}
。
您还可以使用包的数学引擎pgf
。它提供\pgfmathrandom{x,y}
(也可以使用\pgfmathparse{random(x,y)}
和朋友访问)并将结果存储到中\pgfmathresult
。这里x
和是与和相同y
的数字。first
last
lcg
\usepackage{pgf}
% ...
\pgfmathrandom{1,10}
\vspace{\pgfmathresult pt}
% or even
\newlength{\randomlength}
\pgfmathsetlength{\randomlength}{random(1,10)}
\vspace{\randomlength}
答案2
在里面文档因为lcg
,它说
每次调用该命令
\rand
都会将一个新的随机数写入用户使用密钥⟨counter⟩提供的计数器或此包的标准计数器—rand
。
要获取存储在计数器中的值,rand
请使用\therand
。因此,
\vspace{\therand pt}
将工作。