Bei der Definition einer neuen Umgebung verwendete Konditionale

Bei der Definition einer neuen Umgebung verwendete Konditionale

Ich möchte zwei Versionen eines Dokuments mit unterschiedlichem Inhalt erstellen. Die Idee ist, bestimmte Abschnitte zu kommentieren, wenn eine logische Variable falsch ist. Diese logische Variable wird schließlich über ein Argument in ein Paket eingegeben. Mein Problem besteht darin, dass mein Code entweder nicht funktioniert oder boolesche Variablen ignoriert. Hier ist ein Beispielcode, der nicht funktioniert. Der Fehler lautet „fehlende Zahl wird als Null behandelt“

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

Antwort1

Ich denke, es ist besser, das Makro zu verwenden, \excludecommentdas vonKommentarpaketAuf diese Weise müssen Sie Kommentarumgebungen nicht innerhalb von Makros oder Ihren eigenen Umgebungen starten und beenden.

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

Antwort2

Sie können das environPaket stattdessen verwenden comment, um den Inhalt einer Umgebung zu verwerfen.

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

Das ist was du bekommst:

Bildbeschreibung hier eingeben

verwandte Informationen