Condicionales utilizados para definir un nuevo entorno.

Condicionales utilizados para definir un nuevo entorno.

Quiero producir dos versiones de un documento con contenido diferente. La idea es comentar ciertas secciones si una variable lógica es falsa. Esta variable lógica se ingresará eventualmente a través de un argumento de un paquete. Mi dificultad es que mi código no funciona o ignora la variable booleana. Aquí hay un código de muestra que no funciona. El error es "el número faltante se trata como cero"

\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}

Respuesta1

Creo que es mejor usar el\excludecomment macro proporcionada por elpaquete de comentarios. De esta manera, no es necesario iniciar y finalizar entornos de comentarios desde macros o entornos propios.

\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}

Respuesta2

Puede utilizar el environpaquete en lugar de commentdescartar el contenido de un entorno.

\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}

Esto es lo que obtienes:

ingrese la descripción de la imagen aquí

información relacionada