将可变长度的样式数组传递给宏

将可变长度的样式数组传递给宏

我正在尝试编写一个宏来与 tikz 一起使用。我的想法是,我有一个矩形,它在不同区域有不同的阴影。

这是我目前得到的:

\documentclass[tikz,border=10pt]{standalone}
\usepackage{pgf}
\usepackage{pgfplots}
\usepackage{pdfpages}
\usepackage{fp}
\usepackage{ifthen}
\usepackage{xparse}
\NewDocumentCommand{\projectionLayer}{mmm}{
    % #1 lower left corner
    % #2 number of concatenated projections
    % #3 size of projections

    \FPeval{\size}{(#2)*(#3)}
    \begin{scope}[shift={#1}]
        \draw [line width=1.2pt, fill=yellow] (0,0) rectangle (\size,1);
        \foreach \s in {1,...,#2}{
            \FPeval{\pos}{\s*(#3)}
            \draw[very thick] (\pos, 0) -- (\pos,1);
        }
    \end{scope}
}
\begin{document}
\begin{tikzpicture}
  \projectionLayer{(0, 0)}{11}{2}
\end{tikzpicture}
\end{document}

我知道有<{\SplitList{,}}o或类似的东西,但我没有找到如何通过索引访问它(即在循环中\foreach\s 也许我误解了 LaTeX 的概念,并且有一种更优雅的方法来做到这一点。

所需的输出是,例如前两条线是虚线,后三条线是点线等等......

相关内容