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並在 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}

在此輸入影像描述

相關內容