宏定义环境

宏定义环境

如何编写这样的环境

\begin{comment}
    Bla, bla.
\end{comment}

不产生任何输出,而是定义一个宏\@comment,其替换文本是comment环境内的所有内容?

答案1

environ包将环境收集到宏中\BODY,您可以将其保存为您喜欢的任何宏名称(注意:必须是全局定义,因为环境位于组内)。

\documentclass{article}
\usepackage{environ}
\makeatletter
\NewEnviron{comment}{
  \global\let\@comment\BODY
}
\makeatother
\begin{document}
\begin{comment}
  Bla, bla.
\end{comment}
\makeatletter\texttt{\meaning\@comment}\makeatother
\end{document}

结果

答案2

\documentclass{article}
\usepackage{comment}
\usepackage{etoolbox}
\appto\endcomment{replacement text}

\begin{document}

text

\begin{comment}
ignored
\end{comment}

\end{document}

相关内容