vboxに別の環境インスタンスを配置するための環境を作成する

vboxに別の環境インスタンスを配置するための環境を作成する

私には環境があります (以下に定義)。環境インスタンス全体がページ間で分割されないようにしたいです。私が見つけた解決策の 1 つは、それを \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 つの演習が表示され、2 番目のページに 1 つの演習が表示されます。それぞれの演習は で囲まれています\vbox

もちろん、車輪の再発明をしなくても、あなたのユースケースに合うかもしれない演習を書くための他のパッケージもあります。それらを見つけるには、TeX SX を検索してください。

関連情報