在 beamer 框架内的表格环境中更改 @ 的 catcode

在 beamer 框架内的表格环境中更改 @ 的 catcode

为了将文件中的数据输入到环境中,必须使用tabularTeX 宏(参见\@@input这个问题),因为\input不可扩展。为什么不能更改包含在 beamer 框架中的表格中的 catcode,例如

\documentclass{beamer}

\begin{document}
\begin{frame}
  \begin{tabular}{c}
    \makeatletter \@@input file \makeatother
  \end{tabular}
\end{frame}
\end{document}

虽然这不会产生任何错误,但它只输出@input file

为什么我必须使用\csname @@input\endcsname file(见 David Carlisle 的回答这个问题)?

答案1

无论如何,我不建议@在文档正文中使用-commands。

如果您打算使用\@@input,请添加

\makeatletter
\newcommand{\tableinput}[1]{\@@input #1 }
\makeatother

到你的文档序言和使用

\tableinput{file}

在文档中。

请注意,这将在其他情况下创建虚假空间。

相关内容