我正在使用 tcolorbox 来做练习。在这些框中,我经常会用 包含图像\includegraphics
,并且在底部留出 vspace,以便学生做笔记。练习的大小各不相同,有些占据了整个页面,而有些仅占页面高度的五分之一。由于无法中断的图像和 vspace,我经常会在分页符之间留下相对较大的空白。我想这个问题没有合适的解决方案,除了手动检查练习的位置并可能调整图像的大小以使中断或多或少自然?或者 Latex 中是否有一些小玩意可以安排框的顺序,以便自然地进行中断?
此外,我一直在使用\vspace{<size> plus <size> minus <size>
,希望页面上不同框的空间能够有所调整,以便框之间的空间最小。不过,我想知道我是否遗漏了一些代码,以便根据页面上剩余的空间调整 vspace?此外,我意识到只对plus... minus...
我页面的最后一个框起作用,并没有考虑到页面前一个框中可能存在的可调整空间。有没有方法可以让 Latex 在不同的框中使用可变高度空间,以便在连续的框之间有规则的空间?
下面是一个 MWE,只是为了让您了解问题所在,第 2 页上有正常空间,第 1 页和第 3 页上有大空间(我一直用它\tikz
来模拟图像)。更改第 1 页上的 vspace 以便有足够的空间来包含下一页中的图形似乎很困难,因为需要相当多的额外空间。但是,在第 3 页上,我认为可以减小上部框上的 vspace 的大小,以便图形适合下部框。我理解这可能需要 Latex 编译几次,并且在调整 vspace 的高度时还要考虑下一个框。这可能吗?
\documentclass[A4,12pt]{book}
\usepackage{fourier}
\usepackage{tikz}
\usepackage[most]{tcolorbox}
\tcbuselibrary{skins,breakable,xparse}
\NewTColorBox{exercise}{+O{}}{
enhanced,colframe=black,colback=black!10!white,breakable,
}
\begin{document}
\begin{exercise}
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed non risus. Suspendisse lectus tortor, dignissim sit amet, adipiscing nec, ultricies sed, dolor. Cras elementum ultrices diam. Maecenas ligula massa, varius a, semper congue, euismod non, mi. Proin porttitor, orci nec nonummy molestie, enim est eleifend mi, non fermentum diam nisl sit amet erat. Duis semper. Duis arcu massa, scelerisque vitae, consequat in, pretium a, enim. Pellentesque congue. Ut in risus volutpat libero pharetra tempor. Cras vestibulum bibendum augue.
\vspace{5mm}\tikz \fill [white] (1,1) rectangle (2,5);
\vspace{3cm plus 1cm minus 1cm}
\end{exercise}
\begin{exercise}
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed non risus. Suspendisse lectus tortor, dignissim sit amet, adipiscing nec, ultricies sed, dolor. Cras elementum ultrices diam. Maecenas ligula massa, varius a, semper congue, euismod non, mi. Proin porttitor, orci nec nonummy molestie, enim est eleifend mi, non fermentum diam nisl sit amet erat. Duis semper. Duis arcu massa, scelerisque vitae, consequat in, pretium a, enim. Pellentesque congue. Ut in risus volutpat libero pharetra tempor. Cras vestibulum bibendum augue.
\vspace{5mm}\tikz \fill [white] (1,1) rectangle (2,5);
\vspace{3cm plus 1cm minus 1cm}
\end{exercise}
\begin{exercise}
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed non risus. Suspendisse lectus tortor, dignissim sit amet, adipiscing nec, ultricies sed, dolor. Cras elementum ultrices diam. Maecenas ligula massa, varius a, semper congue, euismod non, mi. Proin porttitor, orci nec nonummy molestie, enim est eleifend mi, non fermentum diam nisl sit amet erat. Duis semper. Duis arcu massa, scelerisque vitae, consequat in, pretium a, enim. Pellentesque congue. Ut in risus volutpat libero pharetra tempor. Cras vestibulum bibendum augue.
\vspace{5mm}\tikz \fill [white] (1,1) rectangle (2,5);
\vspace{3cm}
\end{exercise}
\begin{exercise}
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed non risus. Suspendisse lectus tortor, dignissim sit amet, adipiscing nec, ultricies sed, dolor. Cras elementum ultrices diam. Maecenas ligula massa, varius a, semper congue, euismod non, mi. Proin porttitor, orci nec nonummy molestie, enim est eleifend mi, non fermentum diam nisl sit amet erat. Duis semper. Duis arcu massa, scelerisque vitae, consequat in, pretium a, enim. Pellentesque congue. Ut in risus volutpat libero pharetra tempor. Cras vestibulum bibendum augue.
\vspace{5mm}\tikz \fill [white] (1,1) rectangle (2,5);
\vspace{3cm}
\end{exercise}
\begin{exercise}
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed non risus. Suspendisse lectus tortor, dignissim sit amet, adipiscing nec, ultricies sed, dolor. Cras elementum ultrices diam. Maecenas ligula massa, varius a, semper congue, euismod non, mi. Proin porttitor, orci nec nonummy molestie, enim est eleifend mi, non fermentum diam nisl sit amet erat. Duis semper. Duis arcu massa, scelerisque vitae, consequat in, pretium a, enim. Pellentesque congue. Ut in risus volutpat libero pharetra tempor. Cras vestibulum bibendum augue.
\vspace{5mm}\tikz \fill [white] (1,1) rectangle (2,5);
\vspace{3cm}
\end{exercise}
\end{document}
提前非常感谢您的意见!