建立一個環境以將另一個環境實例放入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 個練習,在第二頁上看到一個練習。它們每個都被包裹在一個\vbox.

當然,還有其他一些用於編寫練習的套件可能適合您的用例,而無需您重新發明輪子。搜尋 TeX SX 即可找到這些內容。

相關內容