我查看了一下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
因此用它来制作一个列表,然后\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}
这是我尝试的例子
问题是:如何使用创建列表listadd
并使用单独处理它\docsvlist{\mylist}
?
答案1
您必须使用\dolistloop
来循环元素\mylist
,而不是\docsvlist
。创建后,\mylist
是一个内部列表,不再是逗号分隔的列表。手册规定
这些列表使用特殊字符作为内部列表分隔符。
脚注 3 指出:
类别代码为 3 的字符 |。请注意,您不能通过说 来排版列表
\listname
。\show
而是使用 检查列表。