如何延迟和重新排序输出?在列表中可以吗?

如何延迟和重新排序输出?在列表中可以吗?

我想使用 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}

结果:

在此处输入图片描述

相关内容