我想使用 LaTeX 制作报告,这意味着我可以按时间顺序做笔记,并且这些笔记将在输出之前分组组织。
我已经尝试使用以下包来实现这一点answers
:
\documentclass{article}
\usepackage{answers}
\Newassociation{list1}{List1}{\jobname-list1}
\Newassociation{list2}{List2}{\jobname-list2}
\begin{document}
\Opensolutionfile{\jobname-list1}
\Opensolutionfile{\jobname-list2}
\begin{list1}
Test for list 1.
\end{list1}
\begin{list2}
Test for list 2.
\end{list2}
\begin{list1}
Another item for list 1.
\end{list1}
\Closesolutionfile{\jobname-list1}
\Closesolutionfile{\jobname-list2}
\section{List 1}
\Readsolutionfile{\jobname-list1}
\section{List 2}
\Readsolutionfile{\jobname-list2}
\end{document}
这种方法的缺点是开销很大,因为每个注释都是使用环境添加的。由于这将实时输入,因此这可能是一个问题。
所以我想,如果我能使用 -like 列表实现相同的结果会更好description
。但我不知道这是否可行?
梅威瑟:
\begin{regroupedDescription}
\item[list1] Test for list1
\item[list2] Test for list2
\item[list1] Another item for list1
\end{regroupedDescription}
期望输出:
列表1:
- 测试 list1
- list1 的另一项
清单2:
- 测试 list2
答案1
该etoolbox
软件包有命名列表宏,您可以将其用于此目的。请注意,列表名称是 LaTeX 宏,这会对名称施加限制(例如,不能有数字)。您可以在列表中放置或多或少的任意代码,但它可能会因某些复杂输入而中断。
要打印您可以使用的列表\dolistloop
,请参阅etoolbox
手册了解详细信息。
梅威瑟:
\documentclass{article}
\usepackage{etoolbox}
\begin{document}
\listadd{\listone}{Test for list one}
\listadd{\listtwo}{Test for list two}
\listadd{\listone}{Another item for \textbf{list one} with math: $\sqrt{3x}$}
List one
\begin{itemize}
\renewcommand*{\do}[1]{\item #1}
\dolistloop{\listone}
\end{itemize}
List two
\begin{itemize}
\renewcommand*{\do}[1]{\item #1}
\dolistloop{\listtwo}
\end{itemize}
\end{document}
结果: