如何编写宏将列表转换为表格?

如何编写宏将列表转换为表格?

我认为这是一个简单的 for 循环问题,但我似乎无法让它发挥作用......

我经常需要在准备的文件末尾添加抄送列表。我一直手动制作列表,例如

\noindent
\begin{tabular}{l l}
CC: & Dr. A. Name \\
    & Mr. B. Name \\
    & Dr. C. Name 
\end{tabular}

我该如何制作一个宏来接受该名称列表作为参数并输出表格?我想在我的文档中声明一个变量

\cc{Dr. A Name, Mr. B Name, Dr. C Name}

然后在文档的最后做一些类似的事情

\makecclist

它将格式化的 cc 列表表放在最后。

谢谢你的帮助!

答案1

这很简单:我们只需要在项目之间expl3传递列表即可。\\ &

\documentclass{article}
%\usepackage{xparse} % uncomment if using LaTeX release prior to 2020-10-01

\ExplSyntaxOn

% declare a variable
\clist_new:N \g_userx_cc_names_clist

% populate the variable
\NewDocumentCommand{\cc}{m}
 {
  \clist_gset:Nn \g_userx_cc_names_clist { #1 }
 }

% use the variable
\NewDocumentCommand{\makecclist}{}
 {
  \clist_if_empty:NF \g_userx_cc_names_clist
   {
    \begin{tabular}{ @{} l l @{} }
    CC: & \clist_use:Nn \g_userx_cc_names_clist { \\ & }
    \end{tabular}
   }
 }

\ExplSyntaxOff

\begin{document}

\cc{Dr. A Name, Mr. B Name, Dr. C Name}

\makecclist

\end{document}

在此处输入图片描述

相关内容