如何使“表单”字段与其他文本保持一致

如何使“表单”字段与其他文本保持一致

我使用了第二个答案(由 Christian Lindig 提供)来问题来制作我自己的可填写 PDF 表单。我对其进行了少许编辑以满足我的需求。我尝试制作 MWE:

\documentclass[11pt]{article}

\usepackage[margin=2cm]{geometry}
\usepackage[pdftex]{hyperref}
\usepackage{xcolor}
\def\LayoutTextField#1#2{#2} % override default in hyperref

\begin{document}
\newlength\somewidth
\somewidth=.25\textwidth\advance\somewidth-2cm

\def\lbl#1{\hbox to 2cm{#1\hfill\strut}}
\def\labelline#1#2{\lbl{#1}\vbox{\hbox{\TextField[name=#1,width=#2,bordercolor=white]{\null}}\kern2pt\hrule}}

\def\q#1{\hbox to \hsize{\labelline{#1}{\somewidth}}\vskip1.4ex}

\begin{Form}
\q{Question 1}
\q{Question 2}
\q{Etc}
\end{Form}

\noindent I want to write some text first. \begin{Form} \q{question} \end{Form} some more text \begin{Form} \q{question2} \end{Form}

\end{document}

MWE 的结果

当我在整个文档中执行此操作时,我通常会调整表格的大小(在本例中为“\somewidth”和 3cm)。我知道这很麻烦,但我不需要经常这样做,而且它对我缺乏理解力很有效。

我想将两个表单字段放在一行中,并且其中已经有文本。我注意到环境“表单”总是在其自身之后结束该行,如果我想在其旁边放置文本或其他表单,这会产生问题。在示例中,“some more text”将位于名为“question”的表单之后的同一行中,然后表单“question2”也将位于其后面(忽略在这种情况下,它可能不适合一行的事实)。那么,我该如何防止此环境结束该行,或者我应该以其他方式解决这个问题?

答案1

我们不能使用多个form,所以我们首先需要删除不必要的\begin{form}\end{form},然后我们必须重新定义命令\q,这样它就不会结束当前行或段落,就像这样

\def\q#1{\hbox {\labelline{#1}{\somewidth}}}

这是 MWE

\documentclass[11pt]{article}

\usepackage[margin=2cm]{geometry}
\usepackage[pdftex]{hyperref}
\usepackage{xcolor}

\def\LayoutTextField#1#2{#2} % override default in hyperref

\newlength\somewidth
\somewidth=.25\textwidth\advance\somewidth-2cm

\def\lbl#1{\hbox to 2cm{#1\hfill\strut}}
\def\labelline#1#2{\lbl{#1}\vbox{\hbox{\TextField[name=#1,width=#2,bordercolor=white]{\null}}\kern2pt\hrule}}

\def\q#1{\hbox {\labelline{#1}{\somewidth}}}
\begin{document}

\begin{Form}
\q{Question 1}
\q{Question 2}
\q{Etc}


\noindent I want to write some text first. \q{question}  some more text  \q{question2} 
\end{Form}

\end{document}

相关内容