我正在绘制一个示意图,其中包含太阳的几个位置。为了便于说明,太阳只是一个由 12 个等距圆圈包围的圆圈a
。
使用calc
库
\documentclass[a4paper,11pt]{article}
\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}
\def \sunrad {1};
\foreach \cen in {(0,0),(4,0),(8,3)}%
{%
\draw \cen circle (\sunrad);
\foreach \k in {0,...,11}
\draw ($ \cen + ({360*\k/12}:{1.2*\sunrad}) $) node{a};
}
\end{tikzpicture}
\end{document}
返回错误Paragraph ended before \tikz@cc@parse@factor was complete.
但是如果我使用
\draw[shift={\cen}] ({360*\k/12}:{1.2*\sunrad}) node{a};
然后我得到了期望的结果并且没有任何错误。
($
为什么...$)
施工不成功?
答案1
我不太清楚,但我猜想这calc
是在寻找一个(
来开始解析坐标,但它不会\cen
立即展开,因此失败了。将循环更改为\foreach \cen in {{0,0},{4,0},{8,3}}
,并使用(\cen)
而不是\cen
有效。
\documentclass[a4paper,11pt]{article}
\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}
\def \sunrad {1};
\foreach \cen in {{0,0},{4,0},{8,3}}%
{%
\draw (\cen) circle (\sunrad);
\foreach \k in {0,...,11}
\draw ($ (\cen) + ({360*\k/12}:{1.2*\sunrad}) $) node{a};
}
\end{tikzpicture}
\end{document}