我需要办理很多证书,我有一份姓名列表,每个姓名都有一个特征(A、B 或 C)。我已经设计了证书的整个结构,并将“姓名”和“特征”留空。
我的问题是,是否有可能做类似的事情
while (i in list):
code for structure with line name = i and charactertistic = char[i]
i+=1
newpage
在其中LaTeX
,我的意思是将列表及其特征写在代码中。
答案1
在这里我应用了类似哈希表的东西,用作name/characteristics
捆绑对并用一个小的辅助宏将它们拆分,将名称设置为属性键,将特征设置为键值。
所有键的迭代都是用 完成的\prop_map_inline
。
一些重要说明:
- 键必须是唯一的——再次指定它们只会覆盖旧值。
- 出现的顺序不一定与指定顺序相同!
\documentclass{article}
\usepackage{expl3}
\ExplSyntaxOn
\prop_new:N \l_felipe_prop_list
\def\helpercmd#1/#2{%
\prop_put:Nnn \l_felipe_prop_list {#1} {#2}
}
\newcommand{\fillproplist}[1]{%
\seq_set_from_clist:Nn \l_tmpa_seq {#1}
\seq_map_inline:Nn \l_tmpa_seq {%
\helpercmd ##1 % Splitting!
}
}
\newcommand{\displaynamecharacteristics}{%
\prop_map_inline:Nn \l_felipe_prop_list {%
\displaynamechar{##1}{##2}% using a specialized display macro
}
}
\ExplSyntaxOff
% Change the `\displaynamechar` macro at will: #1 -> key name, #2 -> key value
\newcommand{\displaynamechar}[2]{%
Name = #1 \hfill Characteristics: #2%
}
\begin{document}
\fillproplist{Gandalf/A, Frodo/B, Sauron The Dark Lord/C}
\displaynamecharacteristics
\end{document}