垂直スペースを点線の水平線で埋めるにはどうすればよいでしょうか?

垂直スペースを点線の水平線で埋めるにはどうすればよいでしょうか?

これは重複しているはずですが、見つけることができません。

生徒が課題に取り組み始めるときに使用するワークシートを準備しています。以下はコードの(自然に甘くした)バージョンです。

\documentclass{article}
\usepackage{kantlipsum}
\begin{document}
  \begin{flushleft}
    Toffee or caramel? \dotfill\medskip

    Fudge fantasy fiction: \dotfill\medskip

    Curious confectionery connections: \dotfill\medskip\par\mbox{}\dotfill\bigskip
  \end{flushleft}

  \kant[1]\bigskip

  \begin{flushleft}
    What do you like best about your preferred confection?\vfill

    What are the health implications?\vfill

    Does your preferred confection taste really good or just good?
    If the latter, how might it be improved?\vfill

  \end{flushleft}
\end{document}

これにより、次のものが生成されます。

ワークシート(甘味料入り)

コマンドによって作成されたスペースを点線の水平線に置き換えたいのですが\vfill、これを自動的にきれいに行うことは可能ですか?

試験やテストのパッケージでは、場合によってはこのような機能が提供されることは承知していますが、examこれは資料のパッケージ内の 1 ページにすぎないため、この場合は専門クラスを使用することはできません。

この方法でページ全体を埋めて、さまざまな種類の罫線入り紙や方眼紙を作成するのもほとんど問題ありません。

この答え同様の質問に回答していますが、どのように変更すればよいかわかりません。また、テキストの幅をハードコードしたくありません。

必要に応じて TikZ でこれを行うこともできますが、もっと簡単な方法があるのではないかと期待していました。

答え1

exam以下はクラスから盗まれ、わずかに変更されたコードです。

\documentclass{article}
\usepackage{kantlipsum}

\makeatletter
\newlength\dottedlinefillheight
\setlength\dottedlinefillheight{.25in}

\def\fillwithdottedlines{%
  \begingroup
  \ifhmode
    \par
  \fi
  \hrule height \z@
  \nobreak
  \setbox0=\hbox to \hsize{\hskip \@totalleftmargin
          \vrule height \dottedlinefillheight depth \z@ width \z@
          \dotfill}%
  \cleaders \copy0 \vfill \hbox{}%
  \endgroup
}
\makeatother

\begin{document}

  \begin{flushleft}
    Toffee or caramel? \dotfill\medskip

    Fudge fantasy fiction: \dotfill\medskip

    Curious confectionery connections: \dotfill\medskip\par\mbox{}\dotfill\bigskip
  \end{flushleft}

  \kant[1]\bigskip

  \begin{flushleft}
    What do you like best about your preferred confection?\fillwithdottedlines

    What are the health implications?\fillwithdottedlines

    Does your preferred confection taste really good or just good?
    If the latter, how might it be improved?\fillwithdottedlines

  \end{flushleft}
\end{document}

ここに画像の説明を入力してください

関連情報