
Я знаю очень мало о Form
s сhyperref
, но у меня есть подозрение, что это может быть связано стот факт, что у вас должен быть только одинForm
тот факт, что в документе.
По сути, я хотел бы создать PDF-документ, который будет функционировать как тест с множественным выбором. То есть, я надеюсь создать список вопросов, за каждым из которых будет следовать форма с переключателем.
Однако в следующем MWE есть проблема с радиокнопками. При просмотре с помощью Adobe Reader вы можете выбрать только одну из радиокнопок, но как только вы выбираете радиокнопку для следующего вопроса, выбор предыдущего вопроса исчезает. То есть вы можететольковыберите один переключатель ввесьдокумент.
При просмотре с помощью Preview и Skim невозможно выбрать толькоодинрадиокнопка. Вместо этого выбор одной радиокнопки приводит к фактическому выбору всех радиокнопок в том же «столбце», что и выбранная радиокнопка.
Оба эти поведения сохраняются в этих средствах просмотра даже при помещении их \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}