table.tex 파일 자체를 편집하지 않고 \input{table.tex}의 열을 제거합니다.

table.tex 파일 자체를 편집하지 않고 \input{table.tex}의 열을 제거합니다.

Stata에서 LaTeX 테이블을 내보내고 입력 명령을 사용하여 문서에 추가하고 있습니다. 그러나 문서에서 이 테이블의 마지막 열을 표시하는 것을 원하지 않습니다. 테이블 파일은 정기적으로 재생성(덮어쓰기)되므로 매번 편집하고 싶지 않습니다. 테이블 파일 자체를 편집하지 않고 해당 열을 표시하지 않는 방법이 있습니까?

table.tex:

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

main.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}

데모

관련 정보