
我有一個環境(定義如下)。我想防止整個環境實例跨頁面拆分。我遇到的一種解決方案是將其包裝在 \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 即可找到這些內容。