Cambiar el tamaño de la tabla desde un archivo de látex externo

Cambiar el tamaño de la tabla desde un archivo de látex externo

Soy consciente de que esta pregunta se ha formulado y respondido varias veces, sin embargo, no puedo lograr que las soluciones existentes funcionen para mí.

Tengo una tabla de látex que es el resultado de Stata (software estadístico) y la estoy cargando en mi documento de látex existente usando el comando \input{}. La mesa es demasiado grande y necesito reducirla.

Mi archivo de tabla se ve así:

\begin{table}[htbp]\centering
\def\sym#1{\ifmmode^{#1}\else\(^{#1}\)\fi}
\caption{Linear Model, h=10}
\begin{tabular}{l*{5}{c}}
\hline\hline
                    &\multicolumn{1}{c}{(1)}&\multicolumn{1}{c}{(2)}&\multicolumn{1}{c}{(3)}&\multicolumn{1}{c}{(4)}&\multicolumn{1}{c}{(5)}\\
                &\multicolumn{1}{c}{Corrupt Items}&\multicolumn{1}{c}{Corrupt Resources}&\multicolumn{1}{c}{Diversion Items}&\multicolumn{1}{c}{Fraud Items}&\multicolumn{1}{c}{Overinvoiced Items}\\
\hline
model               &                     &                     &                     &                     &                     \\
T                   &     -0.0226         &     -0.0194         &     -0.0389         &   0.0000768         &     -0.0226         \\
                &     (-0.99)         &     (-0.45)         &     (-1.31)         &      (0.00)         &     (-0.99)         \\
[1em]
R                   &     0.00247         &     0.00510         &     0.00379         &    -0.00140         &     0.00247         \\
                &      (0.78)         &      (0.86)         &      (0.94)         &     (-0.54)         &      (0.78)         \\
[1em]
R*T                 &    -0.00539         &     -0.0161\sym{*}  &    -0.00301         &    -0.00108         &    -0.00539         \\
                &     (-1.35)         &     (-2.13)         &     (-0.58)         &     (-0.32)         &     (-1.35)         \\
[1em]
Constant            &      0.0766\sym{***}&       0.105\sym{**} &      0.0381         &      0.0163         &      0.0766\sym{***}\\
                &      (4.45)         &      (3.26)         &      (1.71)         &      (1.14)         &      (4.45)         \\
\hline
sigma               &                     &                     &                     &                     &                     \\
Constant            &      0.0441\sym{***}&      0.0827\sym{***}&      0.0531\sym{***}&      0.0352\sym{***}&      0.0441\sym{***}\\
                &      (9.41)         &      (9.17)         &      (6.97)         &      (6.93)         &      (9.41)         \\
\hline
Observations        &          54         &          54         &          54         &          54         &          54         \\
\hline\hline
\multicolumn{6}{l}{\footnotesize All are tobit regressions, censored at 0}\\
\multicolumn{6}{l}{\footnotesize \sym{*} \(p<0.05\), \sym{**} \(p<0.01\), \sym{***} \(p<0.001\)}\\
\end{tabular}
\end{table}

Y luego, como lo sugiereesta páginaIntento llamarlo y reescalarlo de esta manera:

\documentclass{beamer}
\mode<presentation> {
\usetheme{Madrid}
}
\usepackage{graphicx} 
\usepackage{booktabs} 
\usepackage{graphics}
\usepackage{subcaption}
\usepackage{mwe}

\newlength{\tempwidth}

\begin{document}

\begin{frame}
\begin{table}
\let\center\empty
\let\endcenter\relax
\centering
\resizebox{.5\width}{!}{\input{tablefile.tex}}
\end{table}
\end{frame}

\end{document}

Sin embargo, todavía me arroja errores y dice "No en modo par externo". ¿Que esta pasando aqui?

Respuesta1

El código sugerido tenía tableinside tabley tableinside resizebox, ninguno de los cuales funcionará.

Si solo ingresas la tabla

\documentclass{beamer}
\mode<presentation> {
\usetheme{Madrid}
}
\usepackage{graphicx} 
\usepackage{booktabs} 
\usepackage{graphics}
\usepackage{subcaption}
\usepackage{mwe}

\newlength{\tempwidth}

\begin{document}

\begin{frame}
{\input{tablefile.tex}}


\end{frame}

\end{document}

entonces es un poco ancho

Overfull \hbox (18.97734pt too wide) in paragraph at lines 4--17

Si desea reducirlo sin editar el archivo generado de ninguna manera, probablemente el mejor gancho sea \centering. \smallfue suficiente para el ejemplo original, para la tabla más grande en el ejemplo editado, necesitas \tiny, aunque me compadezco de tu audiencia si intentan leer tantos datos en una diapositiva :-)

\documentclass{beamer}
\mode<presentation> {
\usetheme{Madrid}
}
\usepackage{graphicx} 
\usepackage{booktabs} 
\usepackage{graphics}
\usepackage{subcaption}
\usepackage{mwe}

\newlength{\tempwidth}

\begin{document}

\begin{frame}
{
\let\oldcentering\centering
\renewcommand\centering{\tiny\oldcentering}
\input{tablefile.tex}}


\end{frame}

\end{document}

ingrese la descripción de la imagen aquí

Respuesta2

En lugar de cambiar el tamaño de la tabla usted mismo, puede decirle a Beamer que reduzca todo el marco. Por ejemplo, \begin{frame}[shrink=30]debería ser suficiente para acomodar tu mesa.

\documentclass{beamer}
\mode<presentation> {
\usetheme{Madrid}
}
%\usepackage{graphicx} 
\usepackage{booktabs} 
%\usepackage{graphics}
\usepackage{subcaption}
%\usepackage{mwe}

\newlength{\tempwidth}

\def\sym#1{\ifmmode^{#1}\else\(^{#1}\)\fi}

\begin{document}

\begin{frame}[shrink=30]
\begin{table}
\caption{Linear Model, h=10}
\begin{tabular}{l*{5}{c}}
    \toprule
    & \multicolumn{1}{c}{(1)} & \multicolumn{1}{c}{(2)} & \multicolumn{1}{c}{(3)} & \multicolumn{1}{c}{(4)} & \multicolumn{1}{c}{(5)}\\
    & \multicolumn{1}{c}{Corrupt Items} & \multicolumn{1}{c}{Corrupt Resources} & \multicolumn{1}{c}{Diversion Items} & \multicolumn{1}{c}{Fraud Items} & \multicolumn{1}{c}{Overinvoiced Items}\\
    \midrule
    model & & & & & \\
    T & -0.0226 & -0.0194 & -0.0389 & 0.0000768 & -0.0226 \\
    & (-0.99) & (-0.45) & (-1.31) & (0.00) & (-0.99) \\[1em]
    R & 0.00247 & 0.00510 & 0.00379 & -0.00140 & 0.00247 \\
    & (0.78) & (0.86) & (0.94) & (-0.54) & (0.78) \\[1em]
    R*T & -0.00539 & -0.0161\sym{*} & -0.00301 & -0.00108 & -0.00539 \\
    & (-1.35) & (-2.13) & (-0.58) & (-0.32) & (-1.35) \\[1em]
    Constant & 0.0766\sym{***} & 0.105\sym{**} & 0.0381 & 0.0163 & 0.0766\sym{***}\\
    & (4.45) & (3.26) & (1.71) & (1.14) & (4.45) \\
    \midrule
    sigma & & & & & \\
    Constant & 0.0441\sym{***} & 0.0827\sym{***} & 0.0531\sym{***} & 0.0352\sym{***} & 0.0441\sym{***}\\
    & (9.41) & (9.17) & (6.97) & (6.93) & (9.41) \\
    \midrule
    Observations&54 &54 &54 &54 &54 \\
    \bottomrule
    \multicolumn{6}{l}{\footnotesize All are tobit regressions, censored at 0}\\
    \multicolumn{6}{l}{\footnotesize \sym{*} \(p<0.05\), \sym{**} \(p<0.01\), \sym{***} \(p<0.001\)}\\
\end{tabular}
\end{table}
\end{frame}

\end{document}

ingrese la descripción de la imagen aquí

Respuesta3

Si la tabla fuera demasiado ancha, se podría cambiar su escala utilizando el siguiente truco. El \begroup... \egrouphace que los cambios sean locales (especialmente \endtable). Es minipagenecesario para \caption, pero necesita saber el ancho de tabularsi desea que el título esté centrado.

\documentclass[12pt, a4paper]{scrartcl}

\usepackage{graphicx}

\newlength{\tempwidth}

\begin{document}

\begin{table}
\bgroup
  \def\table[#1]{}% gobble [htbp]
  \let\endtable\relax
  \let\centering\relax
  \settowidth{\tempwidth}{\def\caption#1{}% width of tabular
    \input{tablefile.tex}}%
  \resizebox{\textwidth}{!}{\begin{minipage}{\tempwidth}%
    \input{tablefile.tex}
  \end{minipage}}%
\egroup
\end{table}

\end{document}

Aquí hay una beamerversión. El problema ocurre cuando beamerse intenta reunir el contenido del frameentorno en una macro ( \test). El environpaquete tuvo el mismo problema al reunirlo \BODY. Se puede solucionar colocando el contenido de frameen una caja de seguridad fuera del frameentorno.

Tenga en cuenta que con beamer, los subtítulos no son egocéntricos.

\documentclass{beamer}
\mode<presentation> {
\usetheme{Madrid}
}
%\usepackage{graphicx} 
\usepackage{booktabs} 
%\usepackage{graphics}
\usepackage{subcaption}
%\usepackage{mwe}

\newlength{\tempwidth}
\newsavebox{\tempbox}

\begin{document}

\savebox{\tempbox}{%
  \expandafter\edef\csname @captype\endcsname{table}% table caption
  \def\table[#1]{}% gobble [htbp]
  \let\endtable\relax
  %\let\centering\relax
  \settowidth{\tempwidth}{\def\caption#1{}% gobble caption
    \input{tablefile}}% width of tabular
  \resizebox{\textwidth}{!}{\begin{minipage}{\tempwidth}%
    \input{tablefile}
  \end{minipage}}%
}

\begin{frame}
\frametitle{Test}
\usebox{\tempbox}
\end{frame}
\end{document}

información relacionada