That's by design: the author of booktabs
hates vertical rules in tables and I fully agree with him. You could act on spacing parameters, namely
\abovetopsep
(0pt by default), used above a \toprule
\belowbottomsep
(0pt by default), used below a \bottomrule
\aboverulesep
(0.4ex by default), used above a \midrule
, \cmidrule
or \bottomrule
\belowrulesep
(0.65ex by default), used below a \midrule
, \cmidrule
or \toprule
They are all rigid length (no plus
or minus
specifications are allowed and they wouldn't make sense anyway).
By (locally) setting these parameters to zero, the vertical rules will match, but it would simpler not to use booktabs
commands at all: the heavier \toprule
and \bottomrule
would be completely out of place.
Don't use vertical rules and the appearance of your table will improve immediately.
\documentclass{article}
\usepackage{amsmath}
\usepackage{booktabs}
\usepackage{array}
\newcolumntype{L}{>{$}l<{$}}
\newcolumntype{C}{>{$}c<{$}}
\newcolumntype{R}{>{$}r<{$}}
\newcommand{\nm}[1]{\textnormal{#1}}
\begin{document}
\begin{table} [h!]
\centering
\begin{tabular}{LCRCR}
\toprule
\multicolumn{1}{l}{Parameters} &
\multicolumn{2}{c}{Model 1} &
\multicolumn{2}{c}{Model 2} \\
\cmidrule(lr){2-3}
\cmidrule(lr){4-5}
&
\multicolumn{1}{c}{Coefficient} &
\multicolumn{1}{c}{95\% CI} &
\multicolumn{1}{c}{Coefficient} &
\multicolumn{1}{c}{95\% CI} \\
\midrule
\beta_{\nm{concern}_2} & 0.190\makebox[0pt][l]{$^{\ast}$}
& ( 0.113, 0.268) & 0.171 & ( 0.100, 0.241) \\
\beta_{\nm{concern}_3} & 0.117 & ( 0.043, 0.191) & 0.117 & ( 0.050, 0.183) \\
\beta_{\nm{concern}_4} & 0.210 & ( 0.139, 0.281) & 0.190 & ( 0.127, 0.253) \\
\beta_{\nm{concern}_5} & 0.204 & ( 0.135, 0.273) & 0.111 & ( 0.049, 0.173) \\
\beta_{\nm{breath}_2} & 0.157 & ( 0.078, 0.236) & 0.208 & ( 0.136, 0.280) \\
\beta_{\nm{breath}_3} & 0.115 & ( 0.041, 0.189) & 0.100 & ( 0.034, 0.166) \\
\beta_{\nm{breath}_4} & 0.236 & ( 0.160, 0.311) & 0.301 & ( 0.234, 0.368) \\
\beta_{\nm{breath}_5} & 0.092 & ( 0.020, 0.163) & 0.079 & ( 0.015, 0.144) \\
\beta_{\nm{weath}_2} & 0.164 & ( 0.092, 0.236) & 0.137 & ( 0.071, 0.203) \\
\beta_{\nm{weath}_3} & 0.160 & ( 0.089, 0.231) & 0.199 & ( 0.135, 0.263) \\
\beta_{\nm{weath}_4} & 0.141 & ( 0.067, 0.215) & 0.133 & ( 0.066, 0.199) \\
\beta_{\nm{weath}_5} & 0.176 & ( 0.103, 0.249) & 0.257 & ( 0.191, 0.323) \\
\beta_{\nm{sleep}_2} & 0.111 & ( 0.036, 0.187) & 0.135 & ( 0.068, 0.203) \\
\beta_{\nm{sleep}_3} & 0.110 & ( 0.036, 0.184) & 0.176 & ( 0.110, 0.242) \\
\beta_{\nm{sleep}_4} & 0.131 & ( 0.056, 0.205) & 0.162 & ( 0.095, 0.229) \\
\beta_{\nm{sleep}_5} & 0.011 & (-0.064, 0.086) & 0.034 & (-0.033, 0.101) \\
\beta_{\nm{act}_2} & 0.135 & ( 0.060, 0.209) & 0.033 & (-0.033, 0.100) \\
\beta_{\nm{act}_3} & 0.195 & ( 0.121, 0.269) & 0.203 & ( 0.137, 0.268) \\
\beta_{\nm{act}_4} & 0.214 & ( 0.139, 0.290) & 0.254 & ( 0.186, 0.321) \\
\beta_{\nm{act}_5} & 0.224 & ( 0.154, 0.294) & 0.158 & ( 0.095, 0.221) \\
\midrule[\heavyrulewidth]
\multicolumn{5}{l}{\footnotesize$^*$ statistically significant at 5\% level} \\
\bottomrule
\end{tabular}
\caption{Regression Coefficients of model 1 and model 2}\label{beta}
\end{table}
\end{document}
I've made some notable changes.
The subscripts are upright, being words
The alignment is improved by using features of the table itself; for instance, the third and fifth column are right aligned because of the minus signs only in the first coordinate; it wouldn't be so if the minus sign appeared also in the second coordinate or the headers had been wider.
With \cmidrule
it's easier to show how the headers group the columns.
A trick is used for avoiding the * to take up space.
An array
trick is used for setting all columns in math mode, ensuring that the minus signs are printed as such.
\centering
is used instead of the center
environment (that adds vertical space).
If you need to change "95% CI" to "95% Bayesian Interval", the best is to split the long phrase into two lines: modify the block
\multicolumn{1}{c}{Coefficient} &
\multicolumn{1}{c}{95\% CI} &
\multicolumn{1}{c}{Coefficient} &
\multicolumn{1}{c}{95\% CI} \\
\midrule
into
\multicolumn{1}{c}{Coefficient} & \multicolumn{1}{c}{95\% Bayesian} &
\multicolumn{1}{c}{Coefficient} & \multicolumn{1}{c}{95\% Bayesian} \\
& Interval &
& Interval \\
\midrule
One way is to shift up the skip prior to the mid-height \tabucline
with a \\[-1pt]
. See below for 2nd approach.
%Dokumentclass
\documentclass[landscape]{letter}
%Packages
\usepackage[landscape]{geometry}
\usepackage[utf8] {inputenc}
\usepackage {multirow}
\usepackage {tabu}
%Formatting
\pagestyle{empty} %Remove numbering
\begin{document}
\begin{tabu}{ |[1pt] l | l l | l | l |[1pt] }
\tabucline[1 pt]{1-5}
\multicolumn{2}{ |[1pt] l }{ } & \multicolumn{3}{ |[1pt] l |[1pt]}{ } \\ \hline
& & \multicolumn{1}{ |[1pt] l | }{ } & \multicolumn{2}{ l |[1pt] }{ } \\ \hline
y & & \multicolumn{1}{ |[1pt] l | }{ } & \multicolumn{2}{ l |[1pt] }{ } \\[-1pt] \tabucline[1 pt]{3-5}
\hline
x & & \multicolumn{1}{ |[1pt] l | }{ } & & \\ \hline
& & \multicolumn{1}{ |[1pt] l | }{ } & & \\ \hline
& & \multicolumn{1}{ |[1pt] l | }{ } & & \\ \hline
& & \multicolumn{1}{ |[1pt] l | }{ } & & \\ \tabucline[1 pt]{1-5}
\end{tabu}
\end{document}
Alternately, if you want the thin line to bisect the thick line, then the approach: \\[-1pt] \tabucline[1 pt]{3-5}\\[-12.5pt]\hline
works.
%Dokumentclass
\documentclass[landscape]{letter}
%Packages
\usepackage[landscape]{geometry}
\usepackage[utf8] {inputenc}
\usepackage {multirow}
\usepackage {tabu}
%Formatting
\pagestyle{empty} %Remove numbering
\begin{document}
\begin{tabu}{ |[1pt] l | l l | l | l |[1pt] }
\tabucline[1 pt]{1-5}
\multicolumn{2}{ |[1pt] l }{ } & \multicolumn{3}{ |[1pt] l |[1pt]}{ } \\ \hline
& & \multicolumn{1}{ |[1pt] l | }{ } & \multicolumn{2}{ l |[1pt] }{ } \\ \hline
y & & \multicolumn{1}{ |[1pt] l | }{ } & \multicolumn{2}{ l |[1pt] }{ } \\[-1pt] \tabucline[1 pt]{3-5}\\[-12.5pt]
\hline
x & & \multicolumn{1}{ |[1pt] l | }{ } & & \\ \hline
& & \multicolumn{1}{ |[1pt] l | }{ } & & \\ \hline
& & \multicolumn{1}{ |[1pt] l | }{ } & & \\ \hline
& & \multicolumn{1}{ |[1pt] l | }{ } & & \\ \tabucline[1 pt]{1-5}
\end{tabu}
\end{document}
Best Answer
You can use the
\extrarowheight
command from thearray
package to stretch all the rows. Otherwise you can define your own "strut" command to enlarge a single row. The code below is based onarray
's strut box. If you are using vertical lines, then us it on the sides also.EDIT: There is also the bigstrut package
I have also include an example how to do it properly with
booktabs
The output is