我从以下 MWE 中借用了这里但我希望能够创建一个空环境,用于带有变量 vspace 的练习答案。考试类有 \makeemptybox{} 选项,但我希望使用 tufte-handout 类和 mdframed 包,因为它允许分页。
\documentclass{tufte-handout}
\usepackage{tikz}
\usepackage[framemethod=default]{mdframed}
\global\mdfdefinestyle{exampledefault}{%
linecolor=lightgray,linewidth=1pt,%
leftmargin=1cm,rightmargin=1cm,
}
\newenvironment{mymdframed}[1]{%
\mdfsetup{%
frametitle={\tikz\node[fill=white,rectangle,inner sep=0pt,outer sep=0pt] {#1};},
frametitleaboveskip=-0.5\ht\strutbox,
frametitlealignment=\raggedright
}%
\begin{mdframed}[style=exampledefault]
}{\end{mdframed}}
\usepackage{blindtext}
\begin{document}
\section{Some text}
\blindtext\footnote{text ends here.}
\bigskip
\begin{fullwidth}
\begin{mymdframed}{This empty frame} % requires a vertical space of 25cm
\end{mymdframed}
\end{fullwidth}
\section{Another text\protect\footnote{to be continued after the empty frame with about 25cm}}
\blindtext
\blindtext
\end{document}
答案1
如果您不想在为解决方案预留的空间中添加文本,那么命令似乎是最好的选择。该\solutionbox
命令默认预留 25 厘米(可根据需要更改)。
该宏的\fillwithspace
工作原理是将请求的空间除以\baselineskip
,并将结果四舍五入为整数n并生产n一行(其他部分为空)的段落。
\documentclass{tufte-handout}
\usepackage{tikz}
\usepackage[framemethod=default]{mdframed}
\usepackage{xparse}
\ExplSyntaxOn
\NewDocumentCommand{\fillwithspace}{m}
{
\prg_replicate:nn { \fp_to_int:n { #1/\dim_to_fp:n { \baselineskip } } }
{
\mbox{}\par
}
}
\ExplSyntaxOff
\mdfdefinestyle{exampledefault}{%
linecolor=lightgray,linewidth=1pt,%
leftmargin=1cm,rightmargin=1cm,
}
\newcommand{\solutionbox}[2][25cm]{%
\begin{fullwidth}
\mdfsetup{%
frametitle={\tikz\node[fill=white,rectangle,inner sep=0pt,outer sep=0pt]{#2};},
frametitleaboveskip=-0.5\ht\strutbox,
frametitlealignment=\raggedright
}%
\begin{mdframed}[style=exampledefault]
\fillwithspace{#1}
\end{mdframed}
\end{fullwidth}%
}
\usepackage{blindtext}
\begin{document}
\section{Some text}
\blindtext\footnote{text ends here.}
\bigskip
\solutionbox[25cm]{This empty frame}
\section{Another text}
\blindtext
\blindtext
\end{document}