我正在创建一个表格,但表格的最后一行没有得到正确的对齐方式。这只是一个multirow
例子muticolumn
。当然,我在表格中放了一些虚构的信息和数据 :) 但我的原始表格具有相同的格式。我在下面放了一个最小代码。有两个问题:
我无法让最后一列中的数字 12 和 1000 像其他数字一样对齐到中心位置。现在我有简单的小数字 12 和 1000,但如果我有更大的数字和小数,对齐会变得更糟。
第二个问题是将“第二个值与第一个值之间的性别比例”行中的 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«(在我输入答案时编辑了?)。您还可以在表格中添加其他改进。而且您不需要那么多\multicolumn
s。请参阅下面的代码以获取灵感。
\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}