在阅读了一些关于 LaTeX 中随机着色的内容后,我想到在文档中使用随机颜色的前导符。我想出了以下一段代码,它是从实现中偷来的并经过修改\dotfill
。
\documentclass{article}
\usepackage{tikz}
\makeatletter
\pgfmathsetseed{1}
\def\qfill{
\leavevmode \cleaders \hb@xt@ 1em{%
\hss
\pgfmathparse{rnd}
\textcolor[hsb]{\pgfmathresult, 1.0, 1.0}{?}
}\hfill
\kern \z@
}
\makeatother
\begin{document}
\qfill What will be the answer?\qfill
\end{document}
但是,似乎对于一次 调用qfill
,所有问号都会具有相同的颜色,并且每次调用 都会随机选择一次新颜色qfill
,而不是每个?
-字符选择一次(如预期的那样)。
我需要做什么改变才能拥有随机颜色的领导者?
答案1
\documentclass{article}
\usepackage{tikz}
\makeatletter
\pgfmathsetseed{1}
\def\qfill#1{{%
\sbox0{#1}%
\dimen0=1em
\count0=\numexpr\dimexpr(\textwidth-\wd0)/2\relax/\numexpr\dimen0\relax-1\relax
\showthe\count0
\noindent
{\loop
\ifnum\count0>0
\hfil
\hbox to 1em{%
\hss
\pgfmathparse{rnd}
\textcolor[hsb]{\pgfmathresult, 1.0, 1.0}{?}
}\hfil
\advance\count0 -1
\repeat}%
\box0
{\loop
\ifnum\count0>0
\hfil
\hbox to 1em{%
\hss
\pgfmathparse{rnd}
\textcolor[hsb]{\pgfmathresult, 1.0, 1.0}{?}
}\hfil
\advance\count0 -1
\repeat}%
\par}}
\makeatother
\begin{document}
\qfill{What will be the answer?}
\end{document}