新しい環境を定義する際に使用される条件文

新しい環境を定義する際に使用される条件文

1 つのドキュメントの異なる内容の 2 つのバージョンを作成したいと考えています。論理変数が偽の場合、特定のセクションをコメント アウトするというアイデアです。この論理変数は、最終的にはパッケージへの引数を通じて入力されます。私の難しさは、コードが機能しないか、ブール変数を無視することです。機能しないサンプル コードを以下に示します。エラーは「欠落した数値はゼロとして扱われます」です。

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

以下が取得内容です:

ここに画像の説明を入力してください

関連情報