我想重命名或“复制”枚举环境两次,以便拥有两个不同命名的枚举环境。例如
\begin{questions}
\item lorem ipsum
\item lorem ipsum
\end{questions}
\begin{answers}
\item lorem ipsum
\item lorem ipsum
\end{answers}
答案1
编辑:问卷调查时间!
此解决方案设置了一个名为的新命令\qanda
,它是此文章来自 cgnieder和这个问题用于放置标题。
新命令接受两个参数,但每个参数内部都有一个可能无限的列表,因此在第一个参数中写下问题,而在第二个参数中写下答案,显然顺序相同。
此外,答案列表已旋转,但您可以用它做您想做的事情。以下是输出:
代码如下:
\documentclass{article}
\usepackage{enumitem}
\usepackage{xparse}
\usepackage{rotating}
\setlist[enumerate]{itemsep=-1mm}
\NewDocumentCommand\qanda{>{\SplitList{;}}m>{\SplitList{;}}m}
{
\paragraph{Questions:}
\begin{enumerate}
\ProcessList{#1}{ \insertq }
\end{enumerate}
\vspace{2cm}
\begin{turn}{180}
\begin{minipage}{\textwidth}
\paragraph{Answers:}
\begin{enumerate}
\ProcessList{#2}{ \inserta }
\end{enumerate}
\end{minipage}
\end{turn}
}
\newcommand\insertq[1]{\item #1}
\newcommand\inserta[1]{\item #1}
\begin{document}
\section*{Questionnaire}
And now some questions and (rotated) answers.
\qanda{% Questions
What's the name of our star?;
What planet comes after the Earth?}%
{% Answers
Sun;%
Mars}%
\end{document}
原始答案
\documentclass{article}
\usepackage{enumitem}
\newlist{questions}{enumerate}{3}
\setlist[questions]{label=\arabic*.}
\newlist{answers}{enumerate}{3}
\setlist[answers]{label=\arabic*.}
\begin{document}
\begin{questions}
\item lorem ipsum
\item lorem ipsum
\end{questions}
\begin{answers}
\item lorem ipsum
\item lorem ipsum
\end{answers}
\end{document}
答案2
复制环境的方法有四种:
使用低级复制。这是 TeX 意义上的真正复制,但它是非 LaTeXy 解决方案。环境
answers
现在独立于 的任何重新定义questions
。\let\answers\questions \let\endanswers\endquestions
使用稍微高级一点的复制。如果
questions
重新定义,那么也会answers
自动定义。\newenvironment{answers}{\questions}{\endquestions}
也使用适当的 LaTeX 组。与上一个相同,但增加了一个不必要的分组级别。我不推荐这样做。
\newenvironment{answers}{% \begin{questions}% }{% \end{questions}% }
从头开始定义环境。如果你定义
questions
,你可以用answers
同样的方式定义:\newenvironment{questions}{BLA}{BLABLA} \newenvironment{answers}{BLA}{BLABLA}
或者对于由特殊命令定义的环境,例如:
\newtheorem{questions}{BLA} \newtheorem{answers}{BLA}
使用最适合该任务的一个。