
Ich versuche, ein Textfeld zu erstellen, dessen Wert von einem Booleschen Wert abhängig ist. Wenn der Boolesche Wert wahr ist, ist der Standardwert im Textfeld ein bestimmter Wert; wenn er falsch ist, beginnt das Textfeld leer (der Wert ist leer).
Hier ist mein Versuch:
\documentclass{article}
\usepackage{hyperref}
\usepackage{ifthen}
\newboolean{withcorrect}
\setboolean{withcorrect}{false}
\newcommand{\correctAnsBlankPlain}[1]{%
\ifthenelse{\boolean{withcorrect}}{%
#1%
}{}%
}
\begin{document}
\correctAnsBlankPlain{5.0}
\TextField[name=H%
,value=\correctAnsBlankPlain{5.0}%
]{}
\end{document}
was zu dem Fehler "./exam.tex:21: Argument von \boolean hat ein zusätzliches }." führt.
Ich weiß, dass der \correctAnsBlankPlain
Befehl funktioniert, denn wenn ich die Zeile mit dem Wert auskommentiere, wird er einwandfrei kompiliert. Ich kann auch den withcorrect
Booleschen Wert setzen true
und sehe, wie die Zahl 5.0 wie erwartet vor dem Textfeld gedruckt wird.
Ich gehe also davon aus, dass ich etwas falsch mache, indem ich einen Befehl in das optionale Argument von TextField einfüge, aber ich bin nicht sicher, 1) was und 2) wie ich das am besten umgehen kann.
Antwort1
die Befehle in ifthen sind nicht erweiterbar und daher für solche Stellen ungeeignet. Verwenden Sie z. B. die Tools von etoolbox:
\documentclass{article}
\usepackage{hyperref}
\usepackage{etoolbox}
\newbool{withcorrect}
\setbool{withcorrect}{false}
\newcommand{\correctAnsBlankPlain}[1]{%
\ifbool{withcorrect}{#1}{}}
\begin{document}
%\correctAnsBlankPlain{5.0}
\TextField[name=H1%
,value=\correctAnsBlankPlain{5.0}%
]{}
\setbool{withcorrect}{true}
\TextField[name=H2%
,value=\correctAnsBlankPlain{5.0}%
]{}
\end{document}