我改编了一个解决方案排版坐标 排版集合,但嵌套使用似乎有困难。
$\coord[\big]{0,1, \coord{A,B,C}, \coord{3,2,1}}$
产量:
代码:
\documentclass{article}
\usepackage{amsmath}
\usepackage{xparse}
\ExplSyntaxOn %% https://tex.stackexchange.com/a/53961/4301
\NewDocumentCommand{\coord}{sO{}m}
{
\IfBooleanTF{#1}
{\left(\coord_print:n {#3}\right)}
{\mathopen{#2\{}\coord_print:n {#3}\mathclose{#2\}}}
}
\seq_new:N \l_coord_list_seq
\tl_new:N \l_coord_last_tl
\cs_new_protected:Npn \coord_print:n #1
{
\seq_set_split:Nnn \l_coord_list_seq { , } { #1 }
\seq_pop_right:NN \l_coord_list_seq \l_coord_last_tl
\seq_map_inline:Nn \l_coord_list_seq { ##1 , }
\tl_use:N \l_coord_last_tl
}
\ExplSyntaxOff
\begin{document}
$\coord[\big]{0,1, \coord{A,B,C}, \coord{3,2,1}}$
\end{document}
答案1
这只是分组的情况。可以使用
\NewDocumentCommand{\coord}{sO{}m}
{
\IfBooleanTF{#1}
{\left(\coord_print:n {#3}\right)}
{\mathopen{#2\{}{\coord_print:n {#3}}\mathclose{#2\}}}
}
{}
注意周围的额外内容\coord_print:m {#3}
。或者使用
\cs_new_protected:Npn \coord_print:n #1
{
\group_start:
\seq_set_split:Nnn \l_coord_list_seq { , } { #1 }
\seq_pop_right:NN \l_coord_list_seq \l_coord_last_tl
\seq_map_inline:Nn \l_coord_list_seq { ##1 , }
\tl_use:N \l_coord_last_tl
\group_end:
}