创建手填表格

创建手填表格

我正在创建一个供人们打印和填写的表单。目前,我正在使用

\usepackage[normalem]{ulem}
\begin{document}
    I, \uline{\hskip 3cm}, instated \uline{\hfill}
\end{document}

唯一的问题是,在段落中没有足够的垂直空间来填写表格。\spacing{1.3}非常好,但如果没有表格元素,我就不需要额外的空间。

以下接近:

\usepackage[normalem]{ulem}
\begin{document}
    I, \raisebox{0pt}[2em]{\uline{\hskip 3cm}}, instated \raisebox{0pt}[2em]{\uline{\hfill}}
\end{document}

但是第二行不占用任何水平空间(似乎\hrule被忽略了)。

有没有一个好的方法来解决我的方法,或者我应该完全使用不同的方法?

答案1

您根本不需要ulem画一些线条,而是可以使用一些低级 TeX 并使用\leaders,其语法如下:

\leaders<box><skip>

它会<box>根据需要输入任意多次以填写<skip>。此外,我们\rule在该行前面放置一个零粗细的。该高度\rule将决定为手写保留的空间。在下文中,我假设人类可以毫无问题地在 6 毫米高的空间中书写。

我创建的宏\formline将采用一个可选参数来指定水平跳过(以及线)的宽度,如果您不提供任何参数,它将使用\hfill,否则它将使用\hskip#1\relax

我在表单行周围放置了一些虚拟内容,以显示在包含表单行的文本行上的垂直间距被拉伸:

\documentclass[]{article}

\newcommand\formline[1][\fill]
  {%
    \rule{0pt}{6mm}%
    \leaders\hbox{\rule[-1pt]{1pt}{.4pt}}\hskip #1\relax
    \null
  }

\usepackage{duckuments}

\begin{document}
\blindduck[1-]
I, \formline[3cm], instated \formline\\
\blindduck
I, \formline[3cm], instated \formline
\end{document}

在此处输入图片描述

相关内容