我使用了第二个答案(由 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}
当我在整个文档中执行此操作时,我通常会调整表格的大小(在本例中为“\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}