table.tex ファイル自体を編集せずに \input{table.tex} の列を削除します。

table.tex ファイル自体を編集せずに \input{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}

デモ

関連情報