表格对齐

表格对齐

我正在创建一个表格,但表格的最后一行没有得到正确的对齐方式。这只是一个multirow例子muticolumn。当然,我在表格中放了一些虚构的信息和数据 :) 但我的原始表格具有相同的格式。我在下面放了一个最小代码。有两个问题:

  1. 我无法让最后一列中的数字 12 和 1000 像其他数字一样对齐到中心位置。现在我有简单的小数字 12 和 1000,但如果我有更大的数字和小数,对齐会变得更糟。

  2. 第二个问题是将“第二个值与第一个值之间的性别比例”行中的 10 和 3 设置为在“男性”和“女性”之间的中间对齐。

    \documentclass[10pt]{article}
    \usepackage[latin1]{inputenx}
    \usepackage[T1]{fontenc}
    \usepackage{amssymb}
    \usepackage{amsmath}
    \usepackage{booktabs}
    \usepackage[below]{placeins}
    \usepackage{threeparttable}
    \usepackage{multirow}
    
    \begin{document}
    \begin{table}[htbp]
    \begin{center}
    \begin{threeparttable}
    \caption{\label{tab:freqcompa} Testing for table}
    
    \begin{tabular}{@{}lcccc@{}}
    \toprule
    \multicolumn{1}{c}{\multirow{2}{2cm}{Case\tnote{2}}} & \multicolumn{4}{c}{Number 
    of dogs} \\
    \cmidrule(r){2-5}
    \multicolumn{1}{c}{} & \multicolumn{2}{c}{Dogs of type 1} & \multicolumn{2}{c}{
    Very very bad Dogs of type 2\tnote{1}} \\
    \midrule
    \multicolumn{1}{c}{} & \multicolumn{1}{c}{male} & \multicolumn{1}{c}{female}
    & \multicolumn{1}{c}{male} & \multicolumn{1}{c}{female}\\
    $\omega_a= 100$  & $1$ & $2$ & $4$ & $12$ \\[2mm]
    \cmidrule(r){1-1}
    Sex ratio \\[-1.5mm]
    between second \\[-1.5mm]
    and first value & \multicolumn{2}{c}{$2$}  & \multicolumn{2}{c}{$3$} \\[2.3mm]
    \midrule
    \multicolumn{1}{c}{} & \multicolumn{1}{c}{male} & \multicolumn{1}{c}{female}
    & \multicolumn{1}{c}{male} & \multicolumn{1}{c}{female}\\
    $\omega_b= 200$ & $1$ & $60$ & $100$ & $1000$ \\[2mm]
    \cmidrule(r){1-1}
    Sex ratio \\[-1.5mm]
    between second \\[-1.5mm]
    and first value & \multicolumn{2}{c}{$60$}  & \multicolumn{2}{c}{$10$} \\[2.3mm]
    
    \bottomrule
    \end{tabular}
    \begin{tablenotes}
    \item[1]\textit{considering all stray dogs.}
    \item[2]\textit{considering two possible cases}
    \end{tablenotes}
    
    \end{threeparttable}
    \end{center}
    \end{table}
    \end{document} 
    

任何帮助都将不胜感激...

答案1

解释对齐行为:通过这一行

\begin{tabular}{@{}lcccc@{}}

您可以通过 格式化最后一列c@{},删除后面的小空格。但这里

... & \multicolumn{1}{c}{female}\\

您将得到这个默认空间。这就是数字和单词“female”未正确对齐的原因。更改为

... & \multicolumn{1}{c@{}}{female}\\

您会注意到,“女性”、12 和 1000 将水平居中。

答案2

如果您想要居中的最后一列,则应选择 »c« 列类型而不是 »r«(在我输入答案时编辑了?)。您还可以在表格中添加其他改进。而且您不需要那么多\multicolumns。请参阅下面的代码以获取灵感。

\documentclass[10pt]{article}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenx}
\usepackage[font=small,labelfont=bf,tableposition=top]{caption}
\usepackage{booktabs}
\usepackage{threeparttable}
\usepackage{array,multirow}

\begin{document}
  \begin{table}[!ht]
    \caption{Testing for table}\label{tab:freqcompa}
    \centering
    \begin{threeparttable}
      \begin{tabular}{@{}>{\raggedright}m{2.8cm}cccc@{}}\toprule
        \multicolumn{1}{c}{\multirow{2}{*}[-0.5ex]{Case\tnote{2}}} & \multicolumn{4}{c}{Number of dogs} \\ \cmidrule(r){2-5}
        \multicolumn{1}{c}{} & \multicolumn{2}{c}{Dogs of type 1} & \multicolumn{2}{c}{Dogs of type 2\tnote{1}} \\ \midrule
        & male & female & male & female\\
        $\omega_a=100$  & 1 & 2 & 4 & 12 \\ \addlinespace\cmidrule(r){1-1}
        Sex ratio between second and first value & \multicolumn{2}{c}{2}  & \multicolumn{2}{c}{3} \\ \addlinespace\midrule
        & male & female & male & female\\
        $\omega_b=200$ & 1 & 60 & 100 & 1000 \\\addlinespace\cmidrule(r){1-1}
        Sex ratio between second and first value & \multicolumn{2}{c}{60} & \multicolumn{2}{c}{10} \\ \bottomrule
      \end{tabular}
      \begin{tablenotes}
        \item[1]\textit{considering all stray dogs.}
        \item[2]\textit{considering two possible cases}
      \end{tablenotes}
    \end{threeparttable}
  \end{table}
\end{document}

相关内容