我正在尝试在 TikZ 中绘制日历类型的东西,需要将一周中的各天放在一个圆圈周围。我不知道如何在 365 个位置范围内重复 7 天的模式。
这有效:
\foreach \i/\j in {1/Sat,2/Sun,3/Mon,4/Tue}{
\node at (0,\i) {\j};
}
但我正在寻找类似的东西{1/Sat,2/Sun,3/Mon,...,365/Sat}
- 我肯定不必手动写出 365 对?
所以基本上我希望同时迭代两个列表,但一个比另一个短,并且我希望短列表重复直到长列表的结尾。
答案1
\documentclass[border=2mm,tikz]{standalone}
\newcommand\week{{"Mon","Tue","Wed","Thu","Fri","Sat","Sun"}}
\begin{document}
\begin{tikzpicture}
\foreach \i [evaluate=\i as \row using {div(\i-1,7)},
evaluate=\i as \col using {mod(\i-1,7)}] in {1,...,365}
\node[draw, circle, inner sep=1pt, minimum size=9mm] at (\col,-\row) {\pgfmathparse{\week[\col]}\pgfmathresult};
\end{tikzpicture}
\end{document}