
У меня возникла проблема с несоответствием между текстовыми полями, сгенерированными с помощью, hyperref
и соответствующими прямыми линиями под ними. Прикрепленное изображение иллюстрирует проблему.
Цель ясна. Я хотел бы опустить текстовые поля так, чтобы каждое текстовое поле лежало прямо над соответствующей прямой линией. Мой код выглядит следующим образом:
\documentclass{article}
\usepackage{hyperref}
\begin{document}
\begin{flushleft}
\begin{Form}
\renewcommand{\baselinestretch}{1.0}
\fontsize{12}{24}\selectfont
\hspace*{2cm} \TextField[name=First and Last Name, width=8cm, borderwidth=1]{}\\
\hspace*{2cm} \rule[-2.5ex]{11.4cm}{0.5pt} \\
\hspace*{2cm} advisor, \hspace{2cm} Date\\
\hspace*{2cm} \TextField[name=First and Last Name, width=8cm, borderwidth=1]{}\\
\hspace*{2cm} \rule[-2.5ex]{11.4cm}{0.5pt} \\
\hspace*{2cm} memberA \\
\hspace*{2cm} \TextField[name=First and Last Name, width=8cm, borderwidth=1]{}\\
\hspace*{2cm} \rule[-2.5ex]{11.4cm}{0.5pt} \\
\hspace*{2cm} memberB \\
\hspace*{2cm} \TextField[name=First and Last Name, width=8cm, borderwidth=1]{}\\
\hspace*{2cm} \rule[-2.5ex]{11.4cm}{0.5pt} \\
\hspace*{2cm} memberC \\
\hspace*{2cm} \TextField[name=First and Last Name, width=8cm, borderwidth=1]{}\\
\hspace*{2cm} \rule[-2.5ex]{11.4cm}{0.5pt} \\
\hspace*{2cm} memberD \\
\end{Form}
\end{flushleft}
\end{document}
Всегда есть возможность поднять строки, но мне придется поднять также заголовки подписей (например advisor
, memberA
). Я бы предпочел опустить текстовые поля, если это возможно, так как я всегда могу создать их вручную с помощью Acrobat, если это необходимо.
Любая помощь будет оценена по достоинству.
решение1
Я бы использовал tabular
вместе с booktabs
:
\documentclass[12pt]{article}
\usepackage{booktabs}
\usepackage{hyperref}
\begin{document}
\begin{Form}
\begin{tabular}{@{}p{11.5cm}@{}}
\TextField[name=First and Last Name, width=8cm, borderwidth=1]{}\\\midrule[0.5pt]
advisor, \hspace{2cm} Date\\[2.5ex]
\TextField[name=First and Last Name, width=8cm, borderwidth=1]{}\\\midrule[0.5pt]
memberA\\[2.5ex]
\TextField[name=First and Last Name, width=8cm, borderwidth=1]{}\\\midrule[0.5pt]
memberB\\[2.5ex]
\TextField[name=First and Last Name, width=8cm, borderwidth=1]{}\\\midrule[0.5pt]
memberC\\[2.5ex]
\TextField[name=First and Last Name, width=8cm, borderwidth=1]{}\\\midrule[0.5pt]
memberD
\end{tabular}
\end{Form}
\end{document}
решение2
Приведенный выше ответ правильный. Для полноты картины я хотел бы добавить результаты моей собственной неудачной попытки, чтобы проиллюстрировать различные аспекты проблемы.
Если я использую raisebox
, мой код станет таким:
\documentclass{article}
\usepackage{hyperref}
\begin{document}
\begin{flushleft}
\begin{Form}
\renewcommand{\baselinestretch}{1.0}
\fontsize{12}{24}\selectfont
\raisebox{-1.0 cm}[2cm]{\TextField[name=First and Last Name, width=8cm, borderwidth=1, charsize=0pt]{} \TextField[name=Date, width=3.7cm, borderwidth=1, charsize=0pt]{}}\\
\rule[-2.5ex]{11.4cm}{0.5pt} \\
advisor, \hspace{7.3cm} Date\\
\hspace*{2cm} \raisebox{-1.0 cm}[2cm]{\TextField[name=First and Last Name, width=8cm, borderwidth=1]{}}\\
\hspace*{2cm} \rule[-2.5ex]{11.4cm}{0.5pt} \\
\hspace*{2cm} memberA \\
\hspace*{2cm} \raisebox{-3.0 cm}{\TextField[name=First and Last Name, width=8cm, borderwidth=1]{}}\\
\hspace*{2cm} \rule[-2.5ex]{11.4cm}{0.5pt} \\
\hspace*{2cm} memberB \\
\hspace*{2cm} \raisebox{-1.0 cm}{\TextField[name=First and Last Name, width=8cm, borderwidth=1]{}}\\
\hspace*{2cm} \rule[-2.5ex]{11.4cm}{0.5pt} \\
\hspace*{2cm} memberC \\
\hspace*{2cm} \raisebox{-1.0 cm}{\TextField[name=First and Last Name, width=8cm, borderwidth=1]{}}\\
\hspace*{2cm} \rule[-2.5ex]{11.4cm}{0.5pt} \\
\hspace*{2cm} memberD \\
\end{Form}
\end{flushleft}
\end{document}
и результаты можно увидеть на рисунке. Как вы можете видеть, попытка опустить текстовое поле с помощью raisebox
действительно увенчалась успехом, вплоть до критической точки. После этой критической точки, вместо того, чтобы опустить только текстовое поле, опускается вся «группа» (состоящая из текстового поля, строки и заголовка подписи).
Мое второе наблюдение касается решения, упомянутого выше, с booktabs
, которое работает. Если я немного изменю код, вы увидите, что проблема по сути вызвана командой rule
.
\documentclass[12pt]{article}
\usepackage{booktabs}
\usepackage{hyperref}
\begin{document}
\begin{Form}
\begin{tabular}{@{}p{11.5cm}@{}}
\TextField[name=First and Last Name, width=8cm, borderwidth=1]{}\\\rule[-2.5ex]{11.4cm}{0.5pt}
advisor, \hspace{2cm} Date\\[2.5ex]
\TextField[name=First and Last Name, width=8cm, borderwidth=1]{}\\\midrule[0.5pt]
memberA\\[2.5ex]
\TextField[name=First and Last Name, width=8cm, borderwidth=1]{}\\\midrule[0.5pt]
memberB\\[2.5ex]
\TextField[name=First and Last Name, width=8cm, borderwidth=1]{}\\\midrule[0.5pt]
memberC\\[2.5ex]
\TextField[name=First and Last Name, width=8cm, borderwidth=1]{}\\\midrule[0.5pt]
memberD
\end{tabular}
\end{Form}
\end{document}