更新:我目前正在用我数学老师自出版的数学教科书重写新版本。我在网上搜索过类似的数字螺旋封面问题,但没有找到令人满意的东西。我从中获得了灵感此图来自 Shutterstock。我希望它看起来有点像这样:
如您所见,我希望数字以这种特定方式螺旋。但我有以下代码:
\documentclass{book}
\usepackage{tikz}
\usepackage{xcolor}
\usepackage{fontspec}
\setmainfont[Ligatures=TeX]{Georgia}
\setsansfont[Ligatures=TeX]{Arial}
\usepackage{pgfmath}
\newcommand\randmin{0}
\newcommand\randmax{9}
\newcommand\setValues[1]{
\pgfmathparse{%
#1 / 3 + 36
}%
\xdef\curFontSize{\pgfmathresult}%
\pgfmathparse{%
int( rnd * ( \randmax - \randmin + 1 ) + \randmin )
}%
\xdef\curRand{\pgfmathresult}%
\pgfmathparse{%
#1 * 2 + 360 / (#1 + 0.1)
}%
\xdef\curAngle{\pgfmathresult}%
\pgfmathparse{%
rnd * 180 + \curAngle + 90
}%
\xdef\curJitter{\pgfmathresult}%
\pgfmathparse{%
rnd * 10 + #1 - 5
}%
\xdef\curRadius{\pgfmathresult}%
}
\begin{document}
\begin{tikzpicture}[
overlay,
remember picture,
shift={(current page.center)},
number spiral/.style={
text=blue,
opacity=0.5,
}
]
\foreach \a [count=\r] in {0, 5, ..., 180} {
\setValues{\a}
\node[
number spiral,
rotate=\curJitter,
font=\fontsize{\curFontSize pt}{\curFontSize pt}\selectfont\bfseries
] at (\curAngle:\curRadius mm) {\curRand{}};
}
\foreach \a [count=\r] in {0, 13, ..., 180} {
\setValues{\a}
\node[
number spiral,
text=orange,
opacity=0.7,
rotate=\curJitter,
font=\fontsize{\curFontSize pt}{\curFontSize pt}\selectfont\bfseries
] at (\curAngle:\curRadius mm) {\curRand{}};
}
\end{tikzpicture}
\end{document}
结果是:
注意包的使用fontspec
;需要 LuaLaTeX 或 XeLaTeX。