我如何制作一个自定义宏来创建一个具有一定列数的数组,但我无法强制宏以内联方式扩展。在 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>