如何用水平虚线填充垂直空间?

如何用水平虚线填充垂直空间?

我确信这一定是重复的,但我找不到它。

我正在准备一份工作表,供学生在开始做作业时使用。以下是代码的(自然改良版):

\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在这种情况下我无法使用专门的类,因为这只是材料包中的一页。

通过这种方式填满整个页面也没有太大问题,例如可以创建各种类型的横格纸或方格纸。

这个答案解决了类似的问题,但我不确定如何修改它,并且我不想对文本宽度进行硬编码。

如果有必要,我可以使用 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}

在此处输入图片描述

相关内容