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:"), чтобы получить поле ввода желаемой ширины.

Другие вопросы по тегам