表格佈局問題

表格佈局問題

我在 LaTeX 中創建 OLS 回歸時遇到一些問題,我真的希望你們中的一些人可以幫助我。我有三個問題:

1)如何讓「Growth 91-92」和「Growth92-93」帶有空格,這樣我就可以看到它是「Growth」類別的一部分。 2)如何讓所有模型(1-5)列的長度都相同? 3)如何讓第一列比模型列大?

我想建立一個表,如下所示:

在此輸入影像描述 我的序言是這樣的:

\documentclass[a4paper,12pt,oneside]{article}
\usepackage[english]{babel}
\usepackage{tikz}
\usepackage{pgf}
\usetikzlibrary{shapes,arrows,positioning,calc,threeparttable} 
\usepackage{tabu}
\usepackage{hyperref}
\usepackage{longtable}
\usepackage{array}
\usepackage{multirow,tabularx,booktabs}
\begin{document}
\begin{table}[H]
\begin{threeparttable}
\renewcommand\arraystretch{1.0}
\medskip
\renewcommand\tabcolsep{1pt}  
\begin{tabular*}{\textwidth}{ @{} p{2.4cm} 
     @{\extracolsep{\fill}}   
     *{10}{S[table-format=2.6]} @{}}
\toprule
& {Model I} & {Model II} & {Model III} & {Model IV} & {Model V} \\
\emph{Afh.\ var.}
& {All partys} & {All partys} & {Social Democrat} & {Liberal} & {Conservative} \\
\midrule
\emph{Uafh.\ var.} \\
Nationalpol. effects & 
\multicolumn{1}{c}{0,11\sym{***}} & 
\multicolumn{1}{c}{0,22\sym{*}} &  
\multicolumn{1}{c}{0,33\sym{***}} &  
\multicolumn{1}{c}{0,44\sym{*}} &  
\multicolumn{1}{c}{0,55\sym{***}} &   \\
& 
\multicolumn{1}{c}{(0,11)} & 
\multicolumn{1}{c}{(0,22)} & 
\multicolumn{1}{c}{(0,33)} & 
\multicolumn{1}{c}{(0,44)} & 
\multicolumn{1}{c}{(0,55)} &  \\
Economic growth & 
\multicolumn{1}{c}{0,11} & 
\multicolumn{1}{c}{0,22} & 
\multicolumn{1}{c}{0,33\sym{***}} & 
\multicolumn{1}{c}{0,44} & 
\multicolumn{1}{c}{0,55\sym{**}} & \\
&
\multicolumn{1}{c}{(0,11)} & 
\multicolumn{1}{c}{(0,22)} & 
\multicolumn{1}{c}{(0,33)} & 
\multicolumn{1}{c}{(0,44)} & 
\multicolumn{1}{c}{(0,55)} & \\
\cmidrule{1-1}
Adjusted R\textsuperscript{2} & 
\multicolumn{1}{c}{0,11} & 
\multicolumn{1}{c}{0,22} & 
\multicolumn{1}{c}{0,33} & 
\multicolumn{1}{c}{0,44} & 
\multicolumn{1}{c}{0,55} &   \\
N & 
\multicolumn{1}{c}{111} & 
\multicolumn{1}{c}{222} & 
\multicolumn{1}{c}{333} & 
\multicolumn{1}{c}{444} & 
\multicolumn{1}{c}{555} &  \\
\bottomrule
\end{tabular*}
\end{threeparttable}
\end{table}

答案1

我建議您對程式碼進行一些更改。

  • 最重要的是,不要將每個數位單元格都封裝在\multicolumn{1}{c}{...}包裝器中。這樣做不僅沒有必要,而且會適得其反:包裝器會覆蓋您選擇的基本列類型的預期格式效果,因此您不會獲得任何預期的格式。

  • 看來您siunitx主要(僅?)使用該套件來獲取其S表列類型,可能是為了實現小數點標記上的數字對齊。如果這種印像是正確的,我建議您實際上使用套件D提供的不同列類型:dcolumn。使用D列類型,處理數字列中出現的括號和符號所需的開銷較少。

  • 為了避免回歸係數和標準誤差線之間出現差距,您可能需要將回歸量的名稱(在第一列中)放在一個小包裝中,該包裝器隱藏了回歸量名稱佔據周圍兩行的事實tabular-就像環境。在下面的程式碼中,我創建了一個\narrowtab為此目的調用的巨集;請隨意將其重命名為其他名稱。

  • 為了讓五個資料列看起來大致等寬,似乎有必要縮寫模型 III 和 V 的標籤。

恐怕我無法解決您的第一個問題,因為您的範例程式碼沒有提及此事。

在此輸入影像描述

\documentclass[a4paper,12pt,oneside]{article}
\usepackage{threeparttable,dcolumn,caption,amsmath,array,booktabs}
\newcommand{\sym}[1]{{}^{#1}} % correct?
\newcommand\mc[1]{\multicolumn{1}{@{}c@{}}{#1}} % handy shortcut macro
\newcommand\narrowtab[2]{%  %% macro to hide depth of its argument from outer tabular
 \ensuremath{\smash{\begin{tabular}[t]{@{}>{\raggedright\arraybackslash}p{#1}@{}}%
     #2 \end{tabular}}}}
\begin{document}
\begin{table}
\caption{Regression results}
\begin{threeparttable}
%\renewcommand\tabcolsep{1pt}  
\begin{tabular*}{\textwidth}{@{} p{1in} @{\extracolsep{\fill}} *{5}{D{,}{,}{2.4}} @{}}
\toprule
& \mc{Model I} & \mc{Model II} & \mc{Model III} & \mc{Model IV} & \mc{Model V} \\
\emph{Afh.\ var.}
& \mc{All partys} & \mc{All partys} & \mc{Soc.\ Dem.} & \mc{Liberal} & \mc{Cons.} \\
\midrule
\emph{Uafh.\ var.} \\
\narrowtab{1in}{Nationalpol.\ effects} & 
0,11\sym{***} & 0,22\sym{*} & 0,33\sym{***} & 0,44\sym{*} & 0,55\sym{***} \\
& (0,11) & (0,22) & (0,33) & (0,44) & (0,55) \\
\addlinespace
\narrowtab{1in}{Economic growth} & 
0,11 & 0,22 & 0,33\sym{***} & 0,44 & 0,55\sym{**}\\
& (0,11) & (0,22) & (0,33) & (0,44) & (0,55) \\
\cmidrule{1-1}
Adjusted R\textsuperscript{2} & 
0,11 & 0,22 & 0,33 & 0,44 & 0,55  \\
N & \mc{111} & \mc{222} & \mc{333} & \mc{444} & \mc{555} \\
\bottomrule
\end{tabular*}
\end{threeparttable}
\end{table}

\end{document}

相關內容