我期望以下代码:
\documentclass{article}
\begin{document}
\newcommand{\foo}{NO!}
\begin{tabular}{ll}
FILLER & \foo \\
\renewcommand{\foo}{YES!}%
FILLER & \foo \\
\end{tabular}
\end{document}
生产
FILLER NO!
FILLER YES!
但我得到的却是
FILLER NO!
FILLER NO!
谁能告诉我这里发生了什么事?
答案1
无耻地抄袭了回答。
在表格单元格内,所有内容都是本地的,因此单元格外部无法识别对宏的更改。在表格环境中使用
\gdef\foo{YES!}
而不是。\renewcommand