2010-10-15 136 views
5

estoy usando PDFLaTeX para crear formas y corrió en un problema con la macro TextField \ que define los campos de entrada:Formularios PDF con LaTeX: cómo crear TextField de exactamente 4 pulgadas de ancho?

\TextField[width=4in,name=sample]{} 

El campo resultante es un poco más ancho de 4 pulgadas y no entiendo por qué. El siguiente ejemplo ilustra el problema al generar un hbox saturado que se resalta debido a una regla de sobrecumplimiento.

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

\overfullrule3pt 

\begin{document} 
\noindent \TextField[name=one, width=\hsize]{type here:} 
\end{document} 

El PDF resultante mostrará un campo de entrada lleno a pesar de haber especificado exactamente el espacio disponible como el ancho deseado.

Respuesta

5

El autor del paquete hyperref, Heiko Oberdiek, me envió un correo electrónico y me explicó por qué el ancho es por defecto mayor que el especificado. Cada \ TextField se pasa a través de la siguiente macro para la disposición:

\def\LayoutTextField#1#2{% label, field 
    #1 #2% 
} 

Por lo tanto, nos encontramos con la etiqueta, un espacio, y el campo de entrada. El parámetro de ancho solo afecta el campo de entrada. Al volver a definir el diseño, podemos asegurar que nos encontramos con la anchura deseada como se especifica:

\def\LayoutTextField#1#2{#2} 

Esta disposición sería simplemente dejar caer la etiqueta ("tipo aquí:") para llegar a un campo de entrada de la ancho deseado

+0

He estado usando un \ hspace {-8.5pt} como una etiqueta para fuentes de 10 puntos para ajustar la posición horizontal, pero este método es mucho más limpio. –

Cuestiones relacionadas