
부울 값을 조건으로 하는 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}