排版集

排版集

我改编了一个解决方案排版坐标 排版集合,但嵌套使用似乎有困难。

$\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:
 }

相关内容