使用宏创建数组列规范

使用宏创建数组列规范

我如何制作一个自定义宏来创建一个具有一定列数的数组,但我无法强制宏以内联方式扩展。在 test.sty 中:

\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{test}
\RequirePackage{tikz}
\RequirePackage{array}

\newcommand{\generateColumns}[1]{%
    \foreach \n in {1,...,#1}{c}
}

\newcommand{\myCustomArray}[2]{%
    \begin{array}{\generateColumns{#1}}
       #2
    \end{array}
}

\generateColumns{#1}显然是按字面意思传递的\begin{array}!我怎样才能在这种情况下强制扩展\newcommand宏(或者更好的是,改为\generateColumns内联,因为我只使用一次)?

答案1

这已经作为选项包含在 LaTeX 中(不需要tikz):

\newcommand{\myCustomArray}[2]{%
  \begin{array}{ *{#1}{c} }
    #2
  \end{array}%
}

该列规范总共*{<num>}{<spec>}重复多次。<spec><num>

相关内容