如何创建一个以“}”开头的“after”参数的新环境?

如何创建一个以“}”开头的“after”参数的新环境?

语境:我想创建一个自定义环境。为此,我使用命令\newenvironment{<environment-name>}{<before>}{<after>}。但是,在我的例子中,<after>以 开头,因此 LaTeX 认为这个括号关闭了...}的定义<after>

问题:如何创建一个<after>以 开始的新环境}


梅威瑟:在下面的例子中,我定义了一个环境,该环境在其内容周围创建了一个tikzpicturenode。(我知道一个简单的解决方法是使用newcommand,但我的实际情况需要一个环境。)

\documentclass{article}
    \usepackage{tikz}

    \newenvironment{myenvironment}{%
        \begin{tikzpicture}
            \node[draw, red]{
    }{%
            };
        \end{tikzpicture}%
    }
\begin{document}
    \begin{myenvironment}
        Foo bar
    \end{myenvironment}
\end{document}

测试无效的解决方案:

  • 我已尝试过\newenvironment{<environment-name>}{<before>}{\null<after>},但是没有用。
  • 我也尝试过分别用和来更改和——{既针对环境定义(),又在定义()中。没有成功。}\bgroup\egroup\newenvironment{<environment-name>} \bgoup <before>\egroup\bgroup <after>\egroupnode... \node[draw, red]\bgroup}{\egroup; ...

答案1

我会用environ

\documentclass{article}
\usepackage{tikz}
\usepackage{environ}
\NewEnviron{myenvironment}{%
  \tikz{\node[draw, red]{\BODY};}%
}
\begin{document}
\begin{myenvironment}
  Foo bar
\end{myenvironment}
\end{document}

相关内容