我有一个环境,其行为取决于一些外部情况。在某些情况下,环境应该充当表格单元格(而在其他情况下,它应该充当段落)。适当的\begin{tabular}{...}
和\end{tabular}
由另一个宏打印,这些宏也会适当地改变其行为。
但是,我无法定义适当的环境。MWE 是:
\documentclass{article}
\newenvironment{cell}{}{&}
\begin{document}
\begin{tabular}{lll}
\begin{cell}
abc
\end{cell}
\end{tabular}
\end{document}
我做错了什么?我该如何解决?
答案1
使用此帖子:https://tex.stackexchange.com/a/8084/168600 我找到了一个解决方案:
\documentclass{article}
\usepackage{environ}
\NewEnviron{cell}{%
\expandafter\gdef\expandafter\gtemp\expandafter{%
\BODY\expandafter&
}%
\aftergroup\gtemp
}
\begin{document}
\begin{tabular}{l|l|l|l}
\begin{cell}
abc
\end{cell}
\begin{cell}
def
\end{cell}
\end{tabular}
\end{document}