
我正在嘗試創建一個 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
並在 TextField 之前看到按預期列印的 5.0。
因此,我認為我在 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}