为非常具体的用例编写一个带有可变数量参数的*简短*新命令

为非常具体的用例编写一个带有可变数量参数的*简短*新命令

是否可以为以下特定用例创建一个具有可变数量参数的简单、强大的命令?

考虑

\newcommand{\bigmap}[7]{%
#1\!\begin{pmatrix}#2\\
#3\\
#4
\end{pmatrix}=\begin{pmatrix}#5\\
#6\\
#7
\end{pmatrix}\!
}%

它的作用\bigmap{F}{a_{1}}{a_{2}}{a_{3}}{b_{1}}{b_{2}}{b_{3}}是创建一个地图

在此处输入图片描述

但我希望这个命令 dto 是灵活的,这样我可以添加更多或更少的 a_i 和/或 b_i,比如

在此处输入图片描述

(注意:当然,为此,需要一个参数来指定参数序列 #1、#2、... #N 中哪一个属于函数的左括号,哪一个属于右括号。允许使用可变参数的命令的现有答案对我来说太复杂了,因为它们涉及更复杂的用 例
。如果可能的话,我希望用比这些答案更少的代码来实现这个目标。
具有可变数量参数的 LaTeX newcommand非常接近我想要的,但不幸的是,它没有办法告诉命令,就像我在第一段中提到的那样,列表中的哪个参数应该放在函数中的哪个位置。
还请注意,只有在没有其他方法可行的情况下,才会采用像 LuaTex 这样的解决方案。)

答案1

以下解决方案是否满足您对简单性和灵活性的期望?:-)

您可能不想将两个列向量的每一行视为单独的参数,而是将整个向量视为宏的参数之一\bigmap。这样,宏\bigmap就可以定义为恰好有 3 个参数。

在此处输入图片描述

\documentclass{article}
\usepackage{amsmath} % for 'pmatrix' environment
\newcommand{\bigmap}[3]{#1\!
   \begin{pmatrix}#2\end{pmatrix}=\begin{pmatrix}#3\end{pmatrix}}
\begin{document}

\[
\bigmap{F}{a_1\\a_2\\a_3}{b_1\\b_2\\b_3}
\]

\[
\bigmap{G}{c_1\\c_2\\c_3\\c_4}{d_1\\d_2\\d_3\\d_4\\d_5}
\]
\end{document}

相关内容