Redimensionar uma tabela importada de outro arquivo TeX

Redimensionar uma tabela importada de outro arquivo TeX

É possível redimensionar uma tabela importada de outra tabela sem precisar modificar o código LaTeX do arquivo de onde a tabela foi importada? Eu estava pensando em algo como:

\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}

A tabela no arquivo DS.tex é semelhante a esta:

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

Recebi como esperado o erro: ! Erro LaTeX: Não está no modo par externo.

Gostaria de saber se é possível redimensionar a tabela no arquivo DS sem modificá-la.

Responder1

Um ambiente flutuante ( table, figure, ...) não pode ser colocado em um \hboxou \scaleboxque usa internamente \hbox. No entanto, o ambiente pode ser redefinido localmente:

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

\ignorespacese \unskipremova espaços nas extremidades das linhas no arquivo DS.texque importa no modo horizontal. Uma alternativa é usar \endlinechar=-1\relax, mas isso depende do conteúdo do tabularambiente, pois alguns finais de linha podem não ser indesejados (por exemplo, espaço entre palavras).

O ambiente flutuante pode ser inserido posteriormente, por exemplo:

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

informação relacionada