하나의 문서를 다른 내용으로 두 가지 버전으로 생성하고 싶습니다. 논리 변수가 false인 경우 특정 섹션을 주석 처리하는 것이 아이디어입니다. 이 논리 변수는 결국 패키지에 대한 인수를 통해 입력됩니다. 내 어려움은 내 코드가 작동하지 않거나 부울 변수를 무시한다는 것입니다. 다음은 작동하지 않는 샘플 코드입니다. 오류는 "0으로 처리되는 누락된 숫자"입니다.
\usepackage{ifthen,comment}
\newboolean{iflecturer}
\newenvironment{myitemize}
{\ifthenelse{iflecturer}
{\begin{itemize}}{\begin{comment}}
}
{\ifthenelse{iflecturer}
{\end{itemize}}{\end{comment}}
}
\begin{document}
\setboolean{iflecturer}{true}% \setboolean{iflecturer}{false}
\begin{myitemize}
\item Monday
\item Tuesday
\item Wednesday
\end{myitemize}
\end{document}
답변1
사용하시는게 더 좋을 것 같아요\excludecomment
에서 제공하는 매크로를댓글 패키지. 이렇게 하면 매크로나 자체 환경 내부에서 주석 환경을 시작하고 종료할 필요가 없습니다.
\documentclass{article}
\usepackage{ifthen}
\usepackage{comment}
\specialcomment{solution}{\textbf{Solution}\quad}{}
\newboolean{iflecturer}
\setboolean{iflecturer}{false}
\ifthenelse{\boolean{iflecturer}}{}{\excludecomment{solution}}
\begin{document}
This is a question.
\begin{solution}
And this is the solution.
\end{solution}
\end{document}
답변2
환경의 콘텐츠를 삭제하는 environ
대신 패키지를 사용할 수 있습니다 .comment
\documentclass{article}
\usepackage{etoolbox}
\usepackage{environ}
\newtoggle{lecture}
\NewEnviron{myitemize}{%
\iftoggle{lecture}
{\begin{itemize}\BODY\end{itemize}}
{}%
}
\begin{document}
\toggletrue{lecture}
The environment is visible
\begin{myitemize}
\item test
\item test
\end{myitemize}
\togglefalse{lecture}
after this the environment is hidden.
\begin{myitemize}
\item test
\item test
\end{myitemize}
Test
\end{document}
이것이 당신이 얻는 것입니다: