「\nextの使用をスキャン中にファイルが終了しました...」は、複数行のnewcommandの使用によって発生します

「\nextの使用をスキャン中にファイルが終了しました...」は、複数行のnewcommandの使用によって発生します

プレアンブルで作成された新しいコマンド \reponse の使用中にエラーが発生しました。

newcommand の定義の何が問題なのでしょうか? コメント パッケージにリンクされている必要があります...

動作する例は同じようです:新しいコマンドで `\begin` と `\end` を使用する方法

手伝ってくれてありがとう。

エラー: コマンド \reponse の使用中に \next \end{answer} の使用をスキャン中にファイルが終了しました

\documentclass{article}
\usepackage{comment}
\includecomment{answer}
\newcommand{\reponse}[1]{%
\begin{answer}
{\textbf{The answer is :}#1}
\end{answer}}


\begin{document}
% i would like to write :
\reponse{ok}
\reponse{ok}
% ...
% instead of :
\begin{answer}
{\textbf{The answer is:} ok}
\end{answer}                       <- error line 
\begin{answer}
{\textbf{The answer is:} ok}
\end{answer}
%...

\end{document}

答え1

@egreg が言ったように、環境を引数として使用することはできませんcomment。問題は、パッケージのドキュメントに記載されている特別な条件に起因します。開始コマンドと終了コマンドは、それぞれ別の行に表示する必要があります。先頭のスペースや、その後に続くスペースは不要です。

しかし、ここで私が提案できることは(トリックはセクションから来ています2 使用方法ドキュメントのcomment:

\documentclass[english]{article}
\usepackage{comment}
\usepackage{babel}
\includecomment{answer}
\makeatletter 
\newcommand{\reponse}[1]{\@bsphack\@esphack}
\makeatother 
\begin{answer}
\renewcommand{\reponse}[1]{\textbf{The answer is :}#1}
\end{answer}


\begin{document}
% i would like to write :
\reponse{ok}
\reponse{ok}
% ...
% instead of :
\begin{answer}
{\textbf{The answer is:} ok}
\end{answer}

\begin{answer}
{\textbf{The answer is:} ok}
\end{answer}
%...
\end{document}

編集UlrichDiez 氏のコメントを考慮に入れて。

関連情報