Größenänderungstabelle aus externer Latex-Datei

Größenänderungstabelle aus externer Latex-Datei

Mir ist bewusst, dass diese Frage bereits mehrmals gestellt und beantwortet wurde, ich bekomme die vorhandenen Lösungen jedoch nicht zum Laufen.

Ich habe eine Latex-Tabelle, die die Ausgabe von Stata (Statistiksoftware) ist, und lade sie mit dem Befehl \input{} in mein vorhandenes Latex-Dokument. Die Tabelle ist zu groß und ich muss sie verkleinern.

Meine Tabellendatei sieht folgendermaßen aus:

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

Und dann, wie vorgeschlagen vondiese SeiteIch versuche, es aufzurufen und auf diese Weise neu zu skalieren:

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

Dennoch bekomme ich immer noch Fehlermeldungen mit der Meldung „Nicht im Outer-Par-Modus“. Was ist hier los?

Antwort1

Ihr vorgeschlagener Code enthielt tableinside tableund tableinside resizebox, aber keines von beiden funktioniert.

Wenn Sie nur die Tabelle eingeben

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

dann ist es etwas zu breit

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

Wenn Sie es verkleinern möchten, ohne die generierte Datei in irgendeiner Weise zu bearbeiten, ist der beste Ansatz wahrscheinlich \centering. \smallhat für das ursprüngliche Beispiel ausgereicht, für die größere Tabelle im bearbeiteten Beispiel benötigen Sie \tiny, obwohl mir Ihr Publikum leid tut, wenn es versucht, so viele Daten auf einer Folie zu lesen:-)

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

Bildbeschreibung hier eingeben

Antwort2

Anstatt die Größe der Tabelle selbst zu ändern, können Sie Beamer anweisen, den gesamten Rahmen zu verkleinern. Dies \begin{frame}[shrink=30]sollte beispielsweise ausreichen, um Ihre Tabelle unterzubringen.

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

Bildbeschreibung hier eingeben

Antwort3

Wenn die Tabelle tatsächlich zu breit wäre, könnte man sie mit dem folgenden Kludge neu skalieren. Das \begroup... \egroupmacht die Änderungen lokal (insbesondere \endtable). Das minipagewird für benötigt \caption, aber Sie müssen die Breite von kennen, tabularwenn Sie die Überschrift zentriert haben möchten.

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

Hier ist eine beamerVersion. Das Problem tritt auf, wenn beamerversucht wird, den Inhalt der frameUmgebung in einem Makro ( \test) zu sammeln. Das environPaket hatte das gleiche Problem beim Sammeln in . Man kann es beheben, indem man den Inhalt von in eine Savebox außerhalb der Umgebung \BODYlegt .frameframe

Beachten Sie, dass beamerdie Beschriftungen bei nicht selbstzentrierend sind.

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

verwandte Informationen