使用 \input 读入的表格适合页面宽度

使用 \input 读入的表格适合页面宽度

我正在尝试通过 /input 方法将表格调整到页面宽度,并将其包含在 .tex 文档中。我这样做是因为我正在使用 estout 方法将表格从 Stata 导出到 Latex,并将这些表格包含到我的文档中。但是,有些表格太宽了,我想缩小它们以使其适合。

我认为这个问题与许多要求适合表格的问题不同,因为我通过 /input{} 方法调用表格。但是,我是 Latex 的初学者,可能还没有尝试正确的事情。

理想情况下,我不想手动更改 stata latex 输出,而是 a) 在 Stata estout 中使用某些选项或 b) 在主文档中使用某些 latex 代码。

提前感谢你的帮助!

主要文件:

\documentclass[•]{article}
\usepackage{booktabs}

\begin{document}

\input{tables/desstat_behav_corr}

\end{document}

以及输入文档:

\begin{table}[htbp]
\centering 
\caption{Pairwise correlations of behavioural variables}
\begin{tabular*}{\textwidth}{@{\hskip\tabcolsep\extracolsep\fill}l*{8}{c}} 
\toprule &\multicolumn{8}{c}{}   \\
      &  ceo\_age&   cfo\_age&CapIQ\_CEOfixed\_to\_total&CapIQ\_CEObonus\_to\_total&CapIQ\_CEOlongterm\_to\_total&CapIQ\_CFOfixed\_to\_total&CapIQ\_CFObonus\_to\_total&CapIQ\_CFOlongterm\_to\_total\\
\midrule
ceo\_age   &        1&         &         &         &         &         &         &          \\
cfo\_age   &    0.260&        1&         &         &         &         &         &         \\
CapIQ\_CEOfixed\_to\_total&   0.0202&  -0.0563&        1&         &         &         &         &         \\
CapIQ\_CEObonus\_to\_total&   0.0323&   0.0844&   -0.442&        1&         &         &         &         \\
CapIQ\_CEOlongterm\_to\_total&  0.00911&   0.0740&   -0.316&   0.0130&        1&         &         &         \\
CapIQ\_CFOfixed\_to\_total&  -0.0748&  -0.0879&    0.673&   -0.308&   -0.279&        1&         &         \\
CapIQ\_CFObonus\_to\_total&   0.0708&   0.0534&   -0.380&    0.794&  -0.0360&   -0.361&        1&         \\
CapIQ\_CFOlongterm\_to\_total&   0.0766&   0.0395&   -0.318&  -0.0245&    0.814&   -0.325&  -0.0415&        1\\
\bottomrule
\end{tabular*}
\end{table}

答案1

这个答案是为了解决评论部分中的后续问题“是否有一种方法可以在不触及/input 部分中的代码的情况下缩小表格?'tabular*' 由 Stata 导出命令自动生成”。它可能与 OP 试图实现的目标兼容,也可能不兼容。

首先,让我重申免责声明:

1)由于列标题过宽,表格概念化程度较差;

2)如果希望缩放表格,则应使用tabular,而不是,tabular*因为tabular*事先不知道表格是否过大,并且如果需要缩放则不会提供可接受的输出;

3)任何缩放只能在tabular表格的内部进行,而不能在其table本身进行,因为table它是一个浮点数,不能作为对象进行缩放。

也就是说,我在这里所做的是将表格包装在一个宏中,我称其\totextwidth为将缩放tabular(缩小或保持不变)以适合\textwidth。我使用浮点fp包来计算比例因子,并使用\scaleboxgraphicx来调整大小tabular。它使用 egreg 技巧将长度放入计数寄存器中。

\begin{table}我已经验证,如果将和之间的部分粘贴\end{table}到单独的文件中并使用,这种方法是有效的\input。EDITED 不会将窄表缩放到\textwidth,而只会将宽表缩小到\textwidth

\documentclass[•]{article}
\usepackage{fp}
\usepackage{graphicx}
\usepackage{booktabs}
\newsavebox\mytabularbox
\newcount\figwidthc
\newcount\textwidthc

\newcommand\totextwidth[1]{%
  \sbox{\mytabularbox}{#1}%
  \figwidthc=\wd\mytabularbox%
  \textwidthc=\textwidth%
  \FPdiv\scaleratio{\the\textwidthc}{\the\figwidthc}%
  \FPmin\scaleratio{\scaleratio}{1}%
  \scalebox{\scaleratio}{\usebox{\mytabularbox}}%
}
\begin{document}

%\input{tables/desstat_behav_corr}
\begin{table}[htbp]
\centering 
\caption{Pairwise correlations of behavioural variables}
\totextwidth{%
\begin{tabular}{@{\hskip\tabcolsep\extracolsep\fill}l*{8}{c}} 
\toprule &\multicolumn{8}{c}{}   \\
      &  ceo\_age&   cfo\_age&CapIQ\_CEOfixed\_to\_total&CapIQ\_CEObonus\_to\_total&CapIQ\_CEOlongterm\_to\_total&CapIQ\_CFOfixed\_to\_total&CapIQ\_CFObonus\_to\_total&CapIQ\_CFOlongterm\_to\_total\\
\midrule
ceo\_age   &        1&         &         &         &         &         &         &          \\
cfo\_age   &    0.260&        1&         &         &         &         &         &         \\
CapIQ\_CEOfixed\_to\_total&   0.0202&  -0.0563&        1&         &         &         &         &         \\
CapIQ\_CEObonus\_to\_total&   0.0323&   0.0844&   -0.442&        1&         &         &         &         \\
CapIQ\_CEOlongterm\_to\_total&  0.00911&   0.0740&   -0.316&   0.0130&        1&         &         &         \\
CapIQ\_CFOfixed\_to\_total&  -0.0748&  -0.0879&    0.673&   -0.308&   -0.279&        1&         &         \\
CapIQ\_CFObonus\_to\_total&   0.0708&   0.0534&   -0.380&    0.794&  -0.0360&   -0.361&        1&         \\
CapIQ\_CFOlongterm\_to\_total&   0.0766&   0.0395&   -0.318&  -0.0245&    0.814&   -0.325&  -0.0415&        1\\
\bottomrule
\end{tabular}%
}
\end{table}

\begin{table}[htbp]
\centering
\caption{Narrow table}
\totextwidth{%
\begin{tabular}{|c|}
\hline
Narrow table\\
\hline
\end{tabular}
}%
\end{table}

\end{document}

在此处输入图片描述

相关内容