所以我知道這個問題已經被問過並回答過幾次,但是我無法讓現有的解決方案為我工作。
我有一個乳膠表,它是 Stata(統計軟體)的輸出,我使用 \input{} 命令將其載入到我現有的乳膠文件中。桌子太大了,我需要縮小它。
我的表文件如下所示:
\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}
然後按照建議這一頁我嘗試以這種方式調用它並重新調整它:
\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}
然而,它仍然給我帶來錯誤,說「不在外部標準模式下」。這裡發生了什麼事?
答案1
您建議的程式碼有table
insidetable
和table
inside resizebox
,兩者都不起作用。
如果你只是輸入表格
\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}
那麼它有點太寬了
Overfull \hbox (18.97734pt too wide) in paragraph at lines 4--17
如果您想縮小它而不以任何方式編輯生成的文件,可能最好的掛鉤是\centering
.\small
對於原始範例來說已經足夠了,對於編輯後的範例中的較大表格,您需要\tiny
,儘管如果您的觀眾嘗試在幻燈片上閱讀這麼多數據,我很遺憾他們:-)
\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}
答案2
您可以告訴 Beamer 縮小整個框架,而不是自己調整表格大小。例如,\begin{frame}[shrink=30]
應該足以容納您的桌子。
\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}
答案3
如果表格實際上太寬,可以使用以下組合重新調整其大小。\begroup
....\egroup
使更改成為本地的(尤其是)\endtable
。是minipage
必需的,但如果您希望標題居中,則\caption
需要知道 的寬度。tabular
\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}
這是一個beamer
版本。當beamer
嘗試將環境內容收集frame
到巨集 ( ) 中時會出現此問題\test
。該environ
包在將其收集到\BODY
.人們可以透過將內容frame
放入環境之外的保存箱來修復它frame
。
請注意,使用 時beamer
,標題不會自動居中。
\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}