我正在尝试使用 hyperref 创建可填写的 PDF 表单,并且希望文本字段为长行而不是框。目前,我正在使用以下代码:
\documentclass{scrartcl}
\usepackage{hyperref}
\usepackage{amsmath}
\renewcommand\LayoutTextField[2]{%
#2
}
\begin{document}
\begin{Form}
Name: \dotfill$\overset{\TextField[width=4cm,borderwidth=0pt]{\null}}{\rule{4cm}{.4pt}}$
\end{Form}
\end{document}
这有效并实现了我想要的,但我只是想知道是否有更好的方法来实现它?出于某种原因,这种解决方案对我来说似乎不够优雅。
答案1
您可以将边框样式设置为下划线。或者在布局中添加一些 tikz 和其他代码。在第二种情况下,将颜色设置为透明。将字段向下移动一点以更好地与标签对齐通常也很有用:
\documentclass[parskip=full-]{scrartcl}
\usepackage{hyperref}
\usepackage{tikz}
\usepackage{amsmath}
\begin{document}
\begin{Form}
\renewcommand\LayoutTextField[2]{%
#2}
Name: \TextField[width=4cm,borderstyle=U]{nameA}{\rule{4cm}{.4pt}}
\renewcommand\LayoutTextField[2]{%
\raisebox{-3.2pt}{\tikz[overlay]\draw[dashed](0,-0.2\dp\strutbox)--++(\csname Fld@width\endcsname,0pt);#2}}
Name: \TextField[width=4cm,bordercolor={},backgroundcolor={}]{nameB}{\rule{4cm}{.4pt}}
\renewcommand\LayoutTextField[2]{%
\raisebox{-\dp\strutbox}{\makebox[0pt][l]{\cleaders \hbox to .44em{\hss.\hss}\hskip\csname Fld@width\endcsname}}#2}
Name: \TextField[width=4cm,bordercolor={},backgroundcolor={}]{nameC}{\rule{4cm}{.4pt}}
\end{Form}
\end{document}