bedingter Wert in einem Hyperref-Textfeld

bedingter Wert in einem Hyperref-Textfeld

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 \correctAnsBlankPlainBefehl funktioniert, denn wenn ich die Zeile mit dem Wert auskommentiere, wird er einwandfrei kompiliert. Ich kann auch den withcorrectBooleschen Wert setzen trueund 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}

Bildbeschreibung hier eingeben

verwandte Informationen