删除 \input{table.tex} 中的列,而无需编辑 table.tex 文件本身

删除 \input{table.tex} 中的列,而无需编辑 table.tex 文件本身

我正在从 Stata 导出 LaTeX 表并使用输入命令将其添加到文档中。但是,我不希望文档显示此表的最后一列。表格文件将定期重新生成(覆盖),因此我不想每次都编辑它。有没有办法在不编辑表格文件本身的情况下不显示该列?

表格.tex:

\begin{table}[htbp]\centering
\def\sym#1{\ifmmode^{#1}\else\(^{#1}\)\fi}
\caption{Table}
\begin{tabular}{l*{3}{cc}}
...
\end{tabular}
\end{table}

主要.tex:

\begin{document}
...
\input{table.tex}
...
\end{document}

答案1

您可以暂时修改tabular以忽略给定的参数并将其替换为其他参数。

文件 temp.tex:

\begin{table}[htbp]\centering
\def\sym#1{\ifmmode^{#1}\else\(^{#1}\)\fi}
\caption{Table}
\fboxsep=0pt
\fbox{\begin{tabular}{cc}
a & b \\
c & d
\end{tabular}}
\end{table}

测试文档:

\documentclass{article}
\usepackage{array}

\newcolumntype{H}{>{\setbox0=\hbox\bgroup}c<{\egroup}@{\hspace{-\tabcolsep}}}

\begin{document}
\input{temp.tex}

{% begin group
  \let\normaltabular=\tabular
  \let\endnormaltabular=\endtabular
  \renewenvironment{tabular}[1]{\normaltabular{cH}}{\endnormaltabular}%
  \input{temp.tex}
}% end group

\end{document}

演示

相关内容