![如何编写宏将列表转换为表格?](https://linux22.com/image/442061/%E5%A6%82%E4%BD%95%E7%BC%96%E5%86%99%E5%AE%8F%E5%B0%86%E5%88%97%E8%A1%A8%E8%BD%AC%E6%8D%A2%E4%B8%BA%E8%A1%A8%E6%A0%BC%EF%BC%9F.png)
我认为这是一个简单的 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}