PDF-формы с LaTeX: как создать \ TextField ровно 4 дюйма шириной? - PullRequest
5 голосов
/ 15 октября 2010

Я использую PDFLaTeX для создания форм и столкнулся с проблемой с макросом \ TextField, который определяет поля ввода:

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

Результирующее поле немного шире, чем 4 дюйма, и я не понимаю, почему. Следующий пример иллюстрирует проблему, приводя к переполнению hbox, который выделяется из-за правила переполнения.

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

\overfullrule3pt

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

В полученном PDF-файле отобразится переполненное поле ввода, несмотря на то, что в качестве желаемой ширины указано точное доступное пространство.

1 Ответ

5 голосов
/ 19 октября 2010

Автор пакета hyperref Хейко Обердик отправил мне электронное письмо и объяснил, почему ширина по умолчанию больше указанной. Каждый \ TextField передается через следующий макрос для макета:

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

Следовательно, мы получаем метку, пробел и поле ввода. Параметр width влияет только на поле ввода. Переопределив макет, мы можем гарантировать, что получим желаемую ширину, как указано:

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

Этот макет просто опустил бы метку ("введите здесь:"), чтобы достичь поля ввода желаемой ширины.

...