答案1
做就是了
\newcommand{\ordered}[1]{\langle #1\rangle}
这也涵盖了有序三元组、四元组等等。你可以这样做
\ordered{x,y}
\ordered{x,y,z}
并且输出将符合预期。
这不仅仅是懒惰!假设你的合著者在某个时候告诉你尖括号很糟糕,圆括号必须被使用(你没有资格反驳你的合著者)。对事物有一个命令是最好的,因为你遵守命令通过修改为
\newcommand{\ordered}[1]{(#1)}
并重新编译。但也许你的合著者有不同的想法:使用分号代替冒号。
没什么大不了的:将代码改为
\ExplSyntaxOn
\NewDocumentCommand{\ordered}{m}
{
\langle % or (, maybe
\clist_use:nn { #1 } { ; }
\rangle % or ), maybe
}
\ExplSyntaxOff
并重新编译。文档输入没有任何变化。
解释:您需要\ExplSyntaxOn
访问expl3
编程层;\NewDocumentCommand
在这种情况下更好,但也\newcommand{\ordered}[1]
可以。\clist_use:nn
我们告诉 LaTeX 消化以逗号分隔的项目列表,并在项目之间使用分号传递。
答案2
做就是了
\def\ordered#1{\langle #1\rangle}
\ordered
这定义了一个带有一个参数的宏#1
。如果您使用例如,\ordered{1,3}
则参数#1
为1,3
,宏将扩展为\langle 1,3\rangle
。