2010-10-15 11 views
5

Sto usando pdflatex per creare forme e corse in un problema con la macro TextField \ che definisce i campi di input:Form in PDF con LaTeX: come creare TextField con esattamente 4 in larghezza?

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

Il campo risultante è un po 'più ampia di 4 pollici e non capisco perché. Nell'esempio seguente viene illustrato il problema risultando in una casella di posta piena che viene evidenziata a causa di una regola eccessiva.

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

\overfullrule3pt 

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

Il PDF risultante mostra un campo di ingresso overfull pur avendo specificato esattamente lo spazio disponibile come la larghezza desiderata.

risposta

5

L'autore del pacchetto hyperref, Heiko Oberdiek, mi ha inviato una e-mail e ha spiegato perché la larghezza è di default maggiore di quella specificata. Ogni \ TextField viene fatto passare attraverso la seguente macro per il layout:

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

Quindi, si finisce con l'etichetta, uno spazio, e il campo di input. Il parametro width riguarda solo il campo di input. Ridefinendo il layout, possiamo assicurare che si finisce con la larghezza desiderata come specificato:

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

Questa disposizione sarebbe semplicemente cadere l'etichetta ("digitare qui:") per arrivare a un campo di input della larghezza desiderata

+0

Ho utilizzato un \ hspace {-8.5pt} come etichetta per i font 10pt per regolare la posizione orizzontale, ma questo metodo è molto più pulito. –

Problemi correlati