具有可变数量项目的新环境

具有可变数量项目的新环境

这是代码:

\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}

相关内容