我正在创建一个供人们打印和填写的表单。目前,我正在使用
\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}