忽略命令之间的部分文本

忽略命令之间的部分文本

我正在尝试编写一个类似于 exam 的自定义类,但我想添加以下功能:可以根据某些布尔值隐藏问题。使用环境时,它可以工作,但我想以与 exam 相同的方式提供 \question 命令。这是一个 MWE:

\documentclass{article}
\usepackage{environ}

\newcounter{question}
\newif\ifvisible \visibletrue
\NewEnviron{Question}
{%
    \refstepcounter{question}%
    \ifvisible%
        \list{\textbf{\arabic{question}.~}}{\leftmargin=.8cm}\item%
        \BODY
        \endlist
    \fi%
}

\newif\ifinsideQuestion \insideQuestionfalse
\newcommand{\question}{
    \ifinsideQuestion
        \end{Question}
    \fi
    \begin{Question}
    \insideQuestiontrue
}

\newenvironment{exercice}{}{
    \ifinsideQuestion
        \end{Question}
    \fi
}


\begin{document}

% Work
\begin{exercice}
    \begin{Question}
        Question 1
    \end{Question}
    \visiblefalse
    \begin{Question}
        Question 2
    \end{Question}
\end{exercice}
\visibletrue

% Error
\begin{exercice}
    \question Question 1
    \visiblefalse
    \question Question 2
\end{exercice}
\end{document}

这不起作用,因为 environ 似乎在第一个 \question 上寻找环境的结束,但没有扩展第二个问题,所以永远找不到它。

相关内容