「掃描使用 \next... 時檔案結束」是因為使用多行 new 指令造成的

「掃描使用 \next... 時檔案結束」是因為使用多行 new 指令造成的

使用序言中建立的新指令 \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 的評論。

相關內容