如何重用tabular
环境的单元格分隔符(通常是 & 符号)来分隔宏参数?
就像这样(不幸的是,它不起作用):
\def\mymacro#1&{#1}
...
\begin{tabular}
Hello & \mymacro out & there \\
\end{tabular}
仅\mymacro
适用于出去。
在这种特殊情况下,我宁愿不使用花括号来限定参数值。
另外,我应该提到空格也不起作用,因为参数值中也可能有空格。
答案1
宏扩展与表扫描交互的具体规则有些神秘,但在这种情况下,您可以这样做:
\documentclass{article}
\begin{document}
或者即使不是单元格中的第一个标记也能起作用的版本。
\def\mymacro#1&{\fbox{#1\unskip}&}
\documentclass{article}
\begin{document}
\def\mymacro{\relax\mymacrox}
\def\mymacrox#1\unskip{\fbox{#1\unskip}}
\begin{tabular}{ccc}
Hello &aaa \mymacro out & there \\
Hello &\mymacro out & there \\
\end{tabular}
\end{document}
\begin{tabular}{ccc}
Hello & \mymacro out & there \\
\end{tabular}
\end{document}