
Ich weiß sehr wenig über Form
s mit hyperref
, aber ich habe den Verdacht, dass dies damit zusammenhängen könnteForm
die Tatsache, dass man in einem Dokument nur eines haben soll.
Ich möchte im Wesentlichen ein PDF-Dokument erstellen, das als Multiple-Choice-Test funktioniert. Das heißt, ich möchte eine Liste mit Fragen erstellen, wobei auf jede Frage ein Optionsfeld folgt.
Bei der folgenden MWE gibt es jedoch ein Problem mit den Optionsfeldern. Bei der Anzeige mit Adobe Reader können Sie zwar nur eines der Optionsfelder auswählen, aber sobald Sie ein Optionsfeld für die nächste Frage auswählen, verschwindet die Auswahl für die vorherige Frage. Das heißt, Sie könnennurWählen Sie ein Optionsfeld imgesamtedokumentieren.
Bei der Anzeige mit Vorschau und Skim ist es nicht möglich, nureinsOptionsfeld. Vielmehr führt die Auswahl eines Optionsfelds dazu, dass effektiv alle Optionsfelder in derselben „Spalte“ wie das ausgewählte Optionsfeld ausgewählt werden.
Beide Verhaltensweisen bleiben in diesen Viewern bestehen, selbst wenn Sie sie in \begin{Form}...\end{Form}
die \DTLforeach
Schleife einfügen (was zu mehreren Formularen im Dokument führt, statt nur einem).
Andere Viewer habe ich nicht getestet.
MWE
\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}
Antwort1
Sie benötigen name
für jede Multiple-Choice-Frage eine eindeutige Nummer. Unten habe ich hinzugefügt \theDTLrowi
(basierend auf dem Zeilenzähler auf höchster Ebene vondatatool
- ähnlich wie Ihr Fragenzähler) zu 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}