创建每个条目可以容纳多个值的列表

创建每个条目可以容纳多个值的列表

我想创建一个列表,每个条目可以保存不同的值。例如,我想列出用户,每个用户都有用户名、年龄和国家/地区。现在我希望能够遍历列表并获取用户名、年龄和国家/地区这三个值,以便我可以打印此列表:

Anna|27|England
Bob|35|Italy 

例如这样:

The user Anna is 27 and comes from England.
The user Bob is 35 and comes from Italy.

有没有什么好的解决方案?我已经尝试了 etoolbox 软件包,但无法解决这个问题。

提前致谢!

答案1

\documentclass{article} 
\usepackage{listofitems}
\begin{document} 
\setsepchar[,]{\\,/}
\readlist*\mylist{
Anna/27/England\\
Bob/35/Italy 
}

\foreachitem\z\in\mylist[]{%
  The user \mylist[\zcnt,1] is \mylist[\zcnt,2] and comes
  from \mylist[\zcnt,3].\par
}
\end{document}

在此处输入图片描述

答案2

我展示了一种方法,首先在宏中累积数据\list,然后\printlist对其进行迭代\list。仅使用 TeX 基元:

\def\printlist#1{\expandafter\printlistA#1{}}
\def\printlistA#1{\ifx\relax#1\relax \else 
   \printitem#1\end \expandafter\printlistA\fi}

\def\list{{Anna|27|England}{Bob|35|Italy}}
\def\printitem #1|#2|#3\end{The user #1 is #2 and comes from #3.\par}

\printlist\list

答案3

此代码:

\documentclass[10pt,a4paper]{article}
\newcommand{\user}[3]{The user {#1} is {#2} years old and come from {#3}.}
\begin{document}
    \noindent
    \user{Ann}{27}{England}\\
    \user{Bob}{35}{Italy}
\end{document}

能帮忙吗?它产生这个输出:

在此处输入图片描述

如果您有一个很长的列表,您可以将数据存储在 *.text 文件中并从LaTeX代码中读取该文件。

相关内容