我有一个环境(定义如下)。我想让整个环境实例不跨页面拆分。我遇到的一个解决方案是将其包装在 \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 即可找到这些软件包。