valor condicional em um campo de texto hiperref

valor condicional em um campo de texto hiperref

Estou tentando criar um TextField cujo valor é condicional a um booleano. Se o booleano for verdadeiro, o valor padrão no TextField será algum valor; se for falso, o TextField começa em branco (o valor está vazio).

Aqui está minha tentativa:

\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}

que gera o erro "./exam.tex:21: O argumento de \boolean possui um } extra."

Eu sei que o \correctAnsBlankPlaincomando funciona, porque quando comento a linha que contém o valor, ele compila perfeitamente. Também posso tornar o withcorrectbooleano truee ver o 5.0 impresso conforme o esperado antes do TextField.

Portanto, presumo que estou fazendo algo errado ao incluir um comando no argumento opcional de TextField, mas não tenho certeza 1) o que ou 2) como contornar isso da melhor forma.

Responder1

os comandos em ifthen não são expansíveis e, portanto, inadequados em tais locais. Use, por exemplo, as ferramentas do 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}

insira a descrição da imagem aqui

informação relacionada