別のTeXファイルからインポートした表のサイズを変更する

別のTeXファイルからインポートした表のサイズを変更する

表のインポート元のファイル内の LaTeX コードを変更せずに、別の表からインポートした表のサイズを変更することは可能ですか? 次のようなことを考えていました:

\documentclass[english]{article}
\usepackage{babel}
\usepackage{graphicx}
\usepackage[margin = 1.5 cm, tmargin=1.5 cm]{geometry} 

\begin{document}

\scalebox{0.5}{%
    \input{DS}
  }%

\end{document}

DS.tex ファイル内の表は次のようになります。

\begin{table}[!htpb]
\centering
\begin{tabular}{ccc}
% ...
\end{tabular}
\end{table}

予想通り、次のエラーが発生しました: ! LaTeX エラー: 外部 par モードではありません。

DS ファイル内のテーブルを変更せずにサイズを変更できるかどうかを知りたいです。

答え1

浮動環境 ( table、、 ...) は、内部的に を使用するまたはfigureに配置することはできません。ただし、環境をローカルで再定義することはできます。\hbox\scalebox\hbox

\scalebox{0.5}{%
    \renewenvironment{table}[1][]{\ignorespaces}{\unskip}%
    \input{DS}%
    \unskip
}

\ignorespaces水平モードで問題となる\unskipファイル内の行末のスペースを削除します。を使用することもできますが、行末によっては不要ではないものもあるため (単語間のスペースなど)、環境の内容によって異なります。DS.tex\endlinechar=-1\relaxtabular

フローティング環境は後から挿入できます。例:

\begin{table}
  \centering
  \caption{Table caption}
  \scalebox{...}{...}
\end{table}

関連情報