условное значение в текстовом поле hyperref

условное значение в текстовом поле hyperref

Я пытаюсь создать TextField, значение которого зависит от логического значения. Если логическое значение равно true, то значение по умолчанию в TextField равно некоторому значению; если оно равно false, то TextField изначально пустое (значение пустое).

Вот моя попытка:

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

что приводит к ошибке "./exam.tex:21: Аргумент \boolean имеет лишнюю }."

Я знаю \correctAnsBlankPlain, что команда работает, потому что когда я закомментирую строку, содержащую значение, она отлично компилируется. Я также могу сделать булево withcorrectзначение trueи увидеть, что 5.0 печатается, как и ожидалось, перед TextField.

Итак, я предполагаю, что делаю что-то неправильно, включив команду в необязательный аргумент TextField, но я не уверен 1) какую или 2) как лучше всего это обойти.

решение1

команды в ifthen не расширяются и поэтому не подходят для таких мест. Используйте, например, инструменты из 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}

введите описание изображения здесь

Связанный контент