我想使用简写来开始和结束环境,例如\be
和\ee
。这对于标准环境按预期工作,如下equation
所示。
% this compiles fine
\documentclass{article}
\usepackage{environ}
\newcommand{\be}{\begin{equation}}
\newcommand{\ee}{\end{equation}}
\begin{document}
\be y = ax + c \ee
\end{document}
但是,使用如下所示定义的环境\NewEnviron
无法编译。
% this does not compile: ! LaTeX Error: \begin{someenv} on input line 10 ended by \end{document}.
\documentclass{article}
\usepackage{environ}
\NewEnviron{someenv}{someenv: \BODY}
\newcommand{\be}{\begin{someenv}}
\newcommand{\ee}{\end{someenv}}
\begin{document}
\be y = ax + c \ee
\end{document}
明确使用\end{someenv}
可以再次顺利编译。
% this compiles fine
\documentclass{article}
\usepackage{environ}
\NewEnviron{someenv}{someenv: \BODY}
\newcommand{\be}{\begin{someenv}}
% \newcommand{\ee}{\end{someenv}}
\begin{document}
\be y = ax + c \end{someenv}
\end{document}
您知道为什么使用\ee
无法编译以及如何解决这个问题吗?
答案1
总结你不能。
的内容someenv
必须通过寻找来获取明确的 \end{someenv}
。
如果你想混淆你的代码,可以这样做
\long\def\be#1\ee{someenv: #1}
但是不要问如何使用其他东西来代替\ee
,因为问题是一样的。