Ошибка при использовании новой команды \reponse, созданной в преамбуле.
Что не так с определением newcommand? Оно должно быть связано с комментарием package ...
Пример, который работает, кажется таким же:Как использовать `\begin` и `\end` в новой команде
Спасибо за помощь.
Ошибка: Файл закончился при сканировании с использованием \next \end{answer} при использовании команды \reponse
\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}
РЕДАКТИРОВАТЬПринимая во внимание комментарий Ульриха Диеза.