具有可变数量参数的 LaTeX newcommand

具有可变数量参数的 LaTeX newcommand

我正在尝试在 LaTeX 中创建一个新命令,以便我执行

\begin{bmatrix}1\\2\\3\end{bmatrix}

像这样:

\m{1\\2\\3}

我可以创建两个函数,一个用于 begin ,一个用于 end bmatrix,这样就可以了,但我想用一个命令来让它工作。问题是命令中可以有任意数量的变量。我四处寻找,找到了一些答案,展示了如果你只有一个可选的第二个变量,该如何做。我试图让它用任意数量的参数工作。

答案1

如果你想要一个可以以逗号分隔列表形式传递单个参数的命令,而不是使用\\在参数中使用(就像 Werner 建议的那样),您可以执行以下操作:

\documentclass{article}

\usepackage{amsmath}
\usepackage{etoolbox} % needed for the \forcsvlist command

\newcommand*{\addrow}[1]{#1\\}
\newcommand{\m}[1]{%
      \begin{bmatrix}
        \forcsvlist\addrow{#1}%
      \end{bmatrix}}

\begin{document}

\[
\m{1,2,3}
\]

\end{document}

在此处输入图片描述

相关内容