使用LaTeX的PDF表单:如何创建恰好4in宽的\ TextField?

Chr*_*dig 5 forms pdf latex hyperref pdftex

我正在使用PDFLaTeX创建表单并遇到定义输入字段的\ TextField宏的问题:

\TextField[width=4in,name=sample]{}
Run Code Online (Sandbox Code Playgroud)

由此产生的场比4英寸宽一点,我不明白为什么.下面的示例通过导致过度使用的hbox来解释该问题,因为过多的规则会突出显示该hbox.

\documentclass[a4paper,11pt]{article}
\usepackage[latin1]{inputenc} 
\usepackage[pdftex]{hyperref}

\overfullrule3pt

\begin{document}
\noindent \TextField[name=one, width=\hsize]{type here:}
\end{document}
Run Code Online (Sandbox Code Playgroud)

尽管已将可用空间精确指定为所需宽度,但生成的PDF将显示过满的输入字段.

Chr*_*dig 5

hyperref软件包的作者Heiko Oberdiek给我发了一封电子邮件,并解释了为什么宽度默认大于指定的宽度.每个\ TextField都通过以下宏进行布局:

\def\LayoutTextField#1#2{% label, field
   #1 #2%
}
Run Code Online (Sandbox Code Playgroud)

因此,我们最终得到标签,空格和输入字段.width参数仅影响输入字段.通过重新定义布局,我们可以确保最终得到指定的所需宽度:

\def\LayoutTextField#1#2{#2}
Run Code Online (Sandbox Code Playgroud)

此布局将简单地删除标签("在此处键入:")以到达所需宽度的输入字段.