
Estoy intentando crear un TextField cuyo valor esté condicionado a un valor booleano. Si el valor booleano es verdadero, el valor predeterminado en TextField es algún valor; si es falso, TextField comienza en blanco (el valor está vacío).
Aquí está mi intento:
\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}
lo que produce el error "./exam.tex:21: El argumento de \boolean tiene un extra}."
Sé que el \correctAnsBlankPlain
comando funciona porque cuando comento la línea que contiene el valor, se compila bien. También puedo hacer el withcorrect
valor booleano true
y ver el 5.0 impreso como se esperaba antes del TextField.
Entonces, asumo que estoy haciendo algo mal al incluir un comando dentro del argumento opcional de TextField, pero no estoy seguro de 1) qué o 2) cómo solucionarlo mejor.
Respuesta1
los comandos en ifthen no son ampliables y, por lo tanto, no son adecuados en esos lugares. Utilice, por ejemplo, las herramientas de 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}