这是代码:
\documentclass[10pt]{article}
\usepackage[top=1in, bottom=1in, left=1in, right=1in]{geometry}
\usepackage{tikz}
\usetikzlibrary{intersections}
\begin{document}
\scriptsize
\begin{tikzpicture}
\path [name path=K] (-1.5,0) arc [start angle=180,end angle=0,radius=1.5cm];
\foreach \x in {1,...,6} {
\draw [name path=A] ({0.1*(6-\x},0) -- +({(1.5/6*(6-\x)},{(1.5/6*\x}) node [anchor=west] {Die ist Zeile \x.};
\path [name intersections={of=K and A,by=KA}];
}
\foreach \x in {5,...,1} {
\draw [name path=A] ({-0.1*(6-\x},0) -- +({-(1.5/6*(6-\x)},{(1.5/6*\x}) node [anchor=east] {Die ist Zeile \x.};
\path [name intersections={of=K and A,by=KA}];
}
\end{tikzpicture}
\end{document}
结果如下:
现在我想创建一个新的命令/环境来自动化执行此操作。
假设
\begin{labelgroup}(x-coord.,y-coord.){start-angle,end-angle}
\label{Label 1}
\label{Label 2}
....
\end{labelgroup}
最好的方法是让环境计算标签数量并计算正确的值。如果这太难,那么如果你必须将标签数量作为参数,那就没问题了。
我不知道如何开始。如何计算标签命令...
此致
答案1
我希望这能给你一个大概的了解
\documentclass[10pt]{article}
\usepackage{tikz}
\begin{document}
\newcount\numberoflabels
\newenvironment{labelgroup}{
\numberoflabels=0
\def\label##1{
\advance\numberoflabels by1
\pgfkeys{/my labels/\the\numberoflabels/.code={##1}}
}
}{
\tikz{
\draw foreach\i in{1,...,\numberoflabels}{
(0,0)--node[sloped,anchor=base]{\pgfkeys{/my labels/\i}}({180/\the\numberoflabels*(\i-.5)}:3)
};
}
}
\begin{labelgroup}
\label{alice}
\label{bob}
\label{carol}
\label{dave}
\label{eve}
\label{frank}
\end{labelgroup}
\end{document}