从 hyperref 生成的 PDF 中存在多组单选按钮的问题

从 hyperref 生成的 PDF 中存在多组单选按钮的问题

Form我对s了解甚少hyperref,但我怀疑这可能与Form事实上,一份文档中只能有一个

我本质上想创建一个用作多项选择测试的 PDF 文档。也就是说,我希望生成一个问题列表,每个问题后面都有一个单选按钮表单。

但是,对于以下 MWE,单选按钮存在问题。使用 Adob​​e Reader 查看时,您只能选择其中一个单选按钮,但只要您为下一个问题选择单选按钮,前一个问题的选择就会消失。也就是说,您可以仅有的选择一个单选按钮全部的文档。

使用预览和浏览查看时,无法只选择单选按钮。相反,选择一个单选按钮实际上会导致选择与所选单选按钮位于同一“列”中的所有单选按钮。

即使你将其置于\begin{Form}...\end{Form}循环内部\DTLforeach(导致文档中出现多个表单,而不是一个表单),这两种行为在这些查看器中仍然存在。

我还没有测试过任何其他查看器。

平均能量损失

\documentclass{article}

\begin{filecontents}{stuff.csv}
stuff,things
Question 1, consectetuer adipiscing elit
Question 2, ut laoreet dolore magna aliquam erat volutpat
Question 3, quis nostrud exerci tation ullamcorper
Question 4,  dolor in hendrerit in vulputate velit esse molestie consequat
\end{filecontents}

\usepackage{hyperref}
\usepackage{datatool}
\DTLloaddb{stuff}{stuff.csv}

\begin{document}

\begin{Form}

\DTLforeach{stuff}{\STUFF=stuff,\THINGS=things}{%
\STUFF\par\THINGS\par
\ChoiceMenu[radio,radiosymbol=\ding{52},name=myGroupOfRadiobuttons]{}{A} \hfill \ChoiceMenu[radio,radiosymbol=\ding{52},name=myGroupOfRadiobuttons]{}{B} \hfill \ChoiceMenu[radio,radiosymbol=\ding{52},name=myGroupOfRadiobuttons]{}{C}
\par\bigskip\hrulefill\par\bigskip
}%

\end{Form}

\end{document}

答案1

您需要name为每个多项选择题提供一个唯一的行计数器。下面我添加了\theDTLrowi(基于最高级别的行计数器)datatool- 与您的问题类似)至myGroupOfRadiobuttons

在此处输入图片描述

\documentclass{article}

\begin{filecontents}{stuff.csv}
stuff,things
Question 1, consectetuer adipiscing elit
Question 2, ut laoreet dolore magna aliquam erat volutpat
Question 3, quis nostrud exerci tation ullamcorper
Question 4,  dolor in hendrerit in vulputate velit esse molestie consequat
\end{filecontents}

\usepackage{hyperref}
\usepackage{datatool}
\DTLloaddb{stuff}{stuff.csv}

\begin{document}

\begin{Form}

\DTLforeach{stuff}{\STUFF=stuff,\THINGS=things}{%
  \STUFF\par\THINGS\par
  \ChoiceMenu[radio,radiosymbol=\ding{52},name={myGroupOfRadiobuttons\theDTLrowi}]{}{A} \hfill 
  \ChoiceMenu[radio,radiosymbol=\ding{52},name={myGroupOfRadiobuttons\theDTLrowi}]{}{B} \hfill 
  \ChoiceMenu[radio,radiosymbol=\ding{52},name={myGroupOfRadiobuttons\theDTLrowi}]{}{C}
  \par\bigskip\hrulefill\par\bigskip
}%

\end{Form}

\end{document}

相关内容