如何创建一个带有 mdframed 且为空的练习答案的新环境?

如何创建一个带有 mdframed 且为空的练习答案的新环境?

我从以下 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}

在此处输入图片描述

相关内容