하이퍼참조 텍스트 필드의 조건부 값

하이퍼참조 텍스트 필드의 조건부 값

부울 값을 조건으로 하는 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부울을 만들고 trueTextField 전에 예상대로 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}

여기에 이미지 설명을 입력하세요

관련 정보