帮助使用 etoolbox 与 docsvlist 和 listadd

帮助使用 etoolbox 与 docsvlist 和 listadd

我查看了一下etoolbox,但找不到为什么会出现此错误。我正在查看手册中的一个例子,它有效。但是当我做了一些小改动时,我得到了一个错误。

这有效:

\documentclass[10pt]{book}
\usepackage{etoolbox}    
\begin{document}
\begin{enumerate}
  \renewcommand*{\do}[1]{\item #1}
  \docsvlist{{item1, 1},{item2, 2},{item3, 3}}
\end{enumerate}
\end{document}

但上面的例子在内联中就有列表。我想先在外部创建列表,然后单独处理它。我找到了命令listadd

Mathematica 图形

因此用它来制作一个列表,然后\begin{enumerate}在列表上运行,我收到一个错误:

\documentclass[10pt]{book}    
\usepackage{etoolbox}    
\begin{document}    
\forcsvlist{\listadd\mylist}{ {item1, 1},{item2, 2},{item3, 3}}    
\begin{enumerate}
  \renewcommand*{\do}[1]{\item #1}
  \docsvlist{\mylist}
\end{enumerate}    
\end{document}

错误是

    Command \end{enumerate} invalid in math mode. \end{enumerate}

这是我尝试的例子

Mathematica 图形

问题是:如何使用创建列表listadd并使用单独处理它\docsvlist{\mylist}

答案1

您必须使用\dolistloop来循环元素\mylist,而不是\docsvlist。创建后,\mylist是一个内部列表,不再是逗号分隔的列表。手册规定

这些列表使用特殊字符作为内部列表分隔符。

脚注 3 指出:

类别代码为 3 的字符 |。请注意,您不能通过说 来排版列表\listname\show而是使用 检查列表。

相关内容