创建环境以将另一个环境实例放入 vbox 中

创建环境以将另一个环境实例放入 vbox 中

我有一个环境(定义如下)。我想让整个环境实例不跨页面拆分。我遇到的一个解决方案是将其包装在 \vbox 中。因此,我的问题归结为创建一个将另一个环境的实例包装在 vbox 中的环境。非常感谢任何帮助 :)

\NewDocumentEnvironment{exercise}{m}
{
} 
{ 
    Write your answer here
    \vskip #1cm
}

答案1

您可以\vbox\bgroup在开头和\egroup结尾处使用。我不知道\NewDocumentEnvironment,但正常的 LaTeX2e 环境不允许在有 的地方使用参数\vskip。这是一个例子。

\documentclass{article}
\newenvironment{exercise}[1]{%
    \def\exerciseskipamount{#1cm}%
    \vbox\bgroup
}{%
    \par
    Write your answer here.\par
    \vspace{\exerciseskipamount}%
    \egroup
}

\begin{document}

\begin{exercise}{8}
Here is the first exercise.
\end{exercise}

\begin{exercise}{8}
Here is the second exercise.
\end{exercise}

\begin{exercise}{8}
Here is the third exercise.
\end{exercise}

\end{document}

如果你编译,你会在第一页看到 2 个练习,在第二页看到 1 个练习。每个练习都包装在一个\vbox.

当然,还有其他编写练习的软件包可能适合您的使用情况,而您无需重新设计轮子。搜索 TeX SX 即可找到这些软件包。

相关内容