超链接文本字段中的条件值

超链接文本字段中的条件值

我正在尝试创建一个 TextField,其值取决于布尔值。如果布尔值为真,则 TextField 中的默认值为某个值;如果布尔值为假,则 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命令有效,因为当我注释掉包含该值的行时,它可以正常编译。我还可以生成布尔值withcorrecttrue并看到 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}

在此处输入图片描述

相关内容