从文件导入单个宏

从文件导入单个宏

我有一个自动生成的 .tex 文件,其中包含一些内容和几个(通常只有一个)\newcommand调用。

通常我会显示内容并加载命令,\input但有时我只想导入它定义的命令而不显示任何内容。

有没有简单的方法可以实现它?

编辑:下面是我想做的一个小例子:

table.tex:

\begin{tabular}{|l|r|}
  \hline%
  foo & bar \\
  bar & foo \\
  \hline%
\end{tabular}
\newcommand\tabledata{This is a foo table about bars}

mwe.tex:

\documentclass[a4paper,11pt]{report}

\begin{document}

\begin{table}[h]
  \centering
  \input{table.tex}
  \caption{About this table: \emph{\tabledata}}
\end{table}

\end{document}

有时我想不显示表格,但同时\tabledata保持正常\input行为。我还想保留\tabledata本地,但我可以用 来做\renewcommand

我有时会\tabledata在二级内部进行调用\ContinuedFloat\caption,但我们不要太具体地描述我的情况。

答案1

这里有两个想法。

  1. 如果要输入的文件不会改变文档的整个结构(如果没有像\section或这样的命令\global\textheight...),则可以执行\setbox0=\hbox{\let\def\gdef\input{file}}
  2. 在这种情况下,\begin{ENV}...\end{ENV}最好使用 评论或者逐字

例如

\let\ENV=\comment
\let\endENV=\endcomment

相关内容