LaTeX实现跨页模式下的垂直空白
我们在某些环境中, 想要隐藏答案或者证明. 那么我们可以将该环境放入一个盒子, 然后获取盒子高度. 再定义一个开关, 使得要隐藏时直接用替代原来的内容.
问题是, 直接用vspace我们可能不能在跨页时保持相同的高度. SE上的解决方案是用一个loop将原来的高度细分, 然后结合\goodbreak就可以实现了.
具体代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
\documentclass{minimal} \usepackage[margin=0pt, a4paper]{geometry} \usepackage{calc} \usepackage{fix-cm} \usepackage{multido, ifthen} \begin{document} \newcounter{cnt} \newcommand{\myVSpace}[1]{ \setcounter{cnt}{0} \whiledo {\value{cnt} <100} { \vspace*{.01#1}\goodbreak \stepcounter{cnt} } } \newlength\skipheight \newlength\lineheight \setlength\lineheight{2em} \setlength{\skipheight}{0.4\textheight} \noindent\rule[.1\lineheight]{\textwidth}{.1\lineheight} \myVSpace{\skipheight} \noindent\rule[.1\lineheight]{\textwidth}{.1\lineheight} \myVSpace{\skipheight} \noindent\rule[.1\lineheight]{\textwidth}{.1\lineheight} \myVSpace{\skipheight} \noindent\rule[.1\lineheight]{\textwidth}{.1\lineheight} \myVSpace{\skipheight} \noindent\rule[.1\lineheight]{\textwidth}{.1\lineheight} \myVSpace{\skipheight} \noindent\rule[.1\lineheight]{\textwidth}{.1\lineheight} \myVSpace{\skipheight} \noindent\rule[.1\lineheight]{\textwidth}{.1\lineheight} \end{document} |
效果如图
跨行垂直空白
参考文献
本作品采用创作共用版权协议, 要求署名、非商业用途和保持一致. 转载本站内容必须也遵循署名-非商业用途-保持一致的创作共用协议.
发表回复