语境:我想创建一个自定义环境。为此,我使用命令\newenvironment{<environment-name>}{<before>}{<after>}
。但是,在我的例子中,<after>
以 开头,因此 LaTeX 认为这个括号关闭了...}
的定义<after>
问题:如何创建一个<after>
以 开始的新环境}
?
梅威瑟:在下面的例子中,我定义了一个环境,该环境在其内容周围创建了一个tikzpicture
和node
。(我知道一个简单的解决方法是使用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>\egroup
node
... \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}