1

Even if the \TextField and \ChoiceMenu are the first objects in a line with \noindent, they don't begin and the start of the line, there is a little gap. Why?

\documentclass{article}
\usepackage{hyperref}
\usepackage{showframe}

\begin{document}
\begin{Form}[action=mailto:my_email@gmail.com?subject={The submitted form},encoding=html, method=post]
\noindent Why doesn't the following field begin at the start of the line?
\vspace{1ex}

\noindent\TextField[name=a,width=5cm,charsize=8pt, height=.5cm]{}
\vspace{4ex}

\noindent Adding \texttt{bordersep=0pt} doesn't help: 
\vspace{1ex}

\noindent\TextField[bordersep=0pt,name=b,width=5cm, height=.5cm]{}
\vspace{4ex}

\noindent The same with a choice menu:
\vspace{1ex}

\noindent\ChoiceMenu[combo, name=choice, width=5cm]{}{Choice 1, Choice 2}
\end{Form}
\end{document}

enter image description here

  • 3
    if you add \showoutput then you see ....\glue(\lineskip) 1.0 ....\hbox(14.22636+0.0)x345.0, glue set 196.06956fil .....\glue 3.33333 plus 1.66666 minus 1.11111 That 3.33333 glue setting is the standard tex code for "call egreg" – David Carlisle May 5 '19 at 10:24
3

The space comes from

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

If you make that #1#2 it goes, but unlike a "space from missing %" It was clearly added intentionally so I'm not sure if this is a bug or by design, it is one of a group of similar definitions

\def\LayoutTextField#1#2{% label, field
  #1 #2%
}
\def\LayoutChoiceField#1#2{% label, field
  #1 #2%
}
\def\LayoutCheckField#1#2{% label, field
  #1 #2%
}
  • 1
    perhaps it should only add the space if #1 is non empty.... – David Carlisle May 5 '19 at 10:45

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.