PDF-формы с LaTeX: как создать \TextField ровно 4 дюйма шириной?
Я использую 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 ответ
Автор пакета hyperref Хейко Обердик отправил мне электронное письмо и объяснил, почему ширина по умолчанию больше указанной. Каждый \TextField передается через следующий макрос для макета:
\def\LayoutTextField#1#2{% label, field
#1 #2%
}
Следовательно, мы получаем метку, пробел и поле ввода. Параметр width влияет только на поле ввода. Переопределив макет, мы можем гарантировать, что получим желаемую ширину, как указано:
\def\LayoutTextField#1#2{#2}
Этот макет просто опустит метку ("type here:"), чтобы получить поле ввода желаемой ширины.