以下环境定义有什么错误?

以下环境定义有什么错误?

我想定义一个环境来隐藏文本,并在 pdf 输出的前后显示警告。以下定义有什么问题?

\newenvironment{foldit}
{NB! NB! FOLDED TEXT BELOW\\ NB! NB! FOLDED TEXT BELOW\\ \iffalse}
{\fi ~~\\ NB! NB! FOLDEDTEXTABOVE \\ NB! NB! FOLDEDTEXTABOVE}

当我尝试用 括住一些文本时\begin{foldit} .... \end{foldit},收到错误消息:不完整\iffalse; all text was ignored after line 105.

答案1

考虑使用environ定义foldit。它以与您期望的类似方式处理环境定义\newcommand,参数为\BODY- 环境主体(在\begin{<env>}...之间\end{<env>})。

在此处输入图片描述

\documentclass{article}

\usepackage{environ,lipsum}

\NewEnviron{foldit}{%
  \par\noindent NB! NB! FOLDED TEXT BELOW
  \par\noindent NB! NB! FOLDED TEXT BELOW
  %\BODY
  \par\noindent NB! NB! FOLDED TEXT ABOVE
  \par\noindent NB! NB! FOLDED TEXT ABOVE
}
\begin{document}

1: \lipsum[1]

\begin{foldit}
2: \lipsum[1]
\end{foldit}

3: \lipsum[3]

\end{document}

答案2

您可能想尝试包environcomment

\documentclass{article}
\usepackage{parskip}
\usepackage{comment}
\usepackage{environ}
\NewEnviron{foldit}{%
NB! NB! FOLDED TEXT BELOW\\
NB! NB! FOLDED TEXT BELOW\\
%\BODY
NB! NB! FOLDEDTEXTABOVE\\
NB! NB! FOLDEDTEXTABOVE\\
}

\NewEnviron{unfoldit}{%
NB! NB! FOLDED TEXT BELOW\\
NB! NB! FOLDED TEXT BELOW\\
\BODY\\
NB! NB! FOLDEDTEXTABOVE\\
NB! NB! FOLDEDTEXTABOVE\\
}

\begin{document}
Line~1.

\begin{comment}
Line~2.
\end{comment}

Line~3.

\begin{foldit}
Line~4.
\end{foldit}

\begin{unfoldit}
Line~5.
\end{unfoldit}
\end{document}

在此处输入图片描述

相关内容