在 tabularx 中创建具有指定列宽和中心间距的表格

在 tabularx 中创建具有指定列宽和中心间距的表格

我想创建一个可以调整表格整体宽度的表格,因此需要 tabularx 环境。但是,我在配置表格时遇到了困难,因此无法控制:

  1. 每列的单独宽度。
  2. 将每列置于中央。

这是我正在使用的代码:

\documentclass[15pt,twoside]{report}
\usepackage{amsfonts}
\usepackage{tabularx, booktabs}
\usepackage{siunitx}
\usepackage{array}
\begin{document}
\begin{table}[h!]
\centering
\begin{tabularx}{\textwidth}{p{1.5cm}p{1.5cm}p{1.5cm}p{2.5cm}p{1.5cm}}\toprule\\[0.09ex]
Modelling & Reference & $\mu_{s}$ & Modelling & Outcome \\ Noise RMS &  Input Noise & & Time Duration \\ [2ex] \midrule\\ [0.5ex]
Optimal (0.3)& & 0.5 & Stopped once converged & Converged \\ [2ex]
0.05 & & 0.25 & $n=10000$ & Failed to converge \\ [2ex]
 0.1 & & 0.25 & $n=10000$ & Destabilised \\ [2ex]
0.15 & & 0.25 & $n=10000$ & Destabilised \\ [2ex]
0.2 & & 0.25 & $n=10000$ & Destabilised \\ [2ex]
0.25 & & 0.25 & $n=10000$ & Destabilised \\ [2ex]
0.3 & & 0.25 & $n=10000$ & Destabilised \\ [2ex]
0.35 & & 0.25 & $n=10000$ & Destabilised \\ [2ex]
0.4 & & 0.25 & $n=10000$ & Destabilised \\ [2ex]
0.45 & & 0.25 & $n=10000$ & Destabilised \\ [2ex]
 0.5 & & 0.25 & $n=10000$ & Destabilised \\ [0.5ex]\\ \bottomrule
\end{tabularx}
\end{table}

我故意将第二列留空。任何帮助我都会非常感激,因为我已经尝试解决这个问题几个小时了(包括在 tex stack exchange 上搜索类似的帖子),但毫无进展。谢谢。

答案1

tabularx如果您不使用其列,则不需要它,X列会根据可用空间调整其宽度。

M您可能只需要以这种方式定义一种新的列类型:

\newcolumntype{M}[1]{>{\centering\arraybackslash}m{#1}}

您也不需要对长单元格使用不同的行,因为它们会自动换行。

梅威瑟:

\documentclass[twoside]{report}
\usepackage{amsfonts}
\usepackage{tabularx, booktabs}
\usepackage{siunitx}
\usepackage{array}
\newcolumntype{M}[1]{>{\centering\arraybackslash}m{#1}}
\begin{document}
\begin{table}[h!]
\centering
\begin{tabular}{M{1.7cm}M{1.5cm}M{1.5cm}M{2.5cm}M{2cm}}
\toprule
Modelling Noise RMS & Reference Input Noise & $\mu_{s}$ & Modelling Time Duration & Outcome \\
\midrule\\ [0.5ex]
Optimal (0.3)& & 0.5 & Stopped once converged & Converged \\ [2ex]
0.05 & & 0.25 & $n=10000$ & Failed to converge \\ [2ex]
 0.1 & & 0.25 & $n=10000$ & Destabilised \\ [2ex]
0.15 & & 0.25 & $n=10000$ & Destabilised \\ [2ex]
0.2 & & 0.25 & $n=10000$ & Destabilised \\ [2ex]
0.25 & & 0.25 & $n=10000$ & Destabilised \\ [2ex]
0.3 & & 0.25 & $n=10000$ & Destabilised \\ [2ex]
0.35 & & 0.25 & $n=10000$ & Destabilised \\ [2ex]
0.4 & & 0.25 & $n=10000$ & Destabilised \\ [2ex]
0.45 & & 0.25 & $n=10000$ & Destabilised \\ [2ex]
 0.5 & & 0.25 & $n=10000$ & Destabilised \\ [0.5ex]\\ \bottomrule
\end{tabular}
\end{table}
\end{document} 

输出

在此处输入图片描述

顺便说一句,15pt对于该类来说,这不是一个有效的选项report

答案2

这是一个变体:

\documentclass[12pt,twoside]{report}
\usepackage{amsfonts}
\usepackage{tabularx, booktabs}
\usepackage{siunitx}
\usepackage{array}
\usepackage{ragged2e}
\newcolumntype{P}[1]{>{\Centering\arraybackslash}p{#1}}

\begin{document}
\begin{table}[h!]
\centering
\begin{tabular*}{\linewidth}{@{\extracolsep{\fill}}S[table-format=1.2]P{1.4cm}
                            S[table-format=1.2]P{2.5cm}P{1.8cm}}\toprule
{Modelling} & Reference & {$\mu_{s}$} & Modelling & Outcome \\ 
{Noise RMS} &  Input Noise & & Time Duration \\ [2ex] \midrule
{Optimal (0.3)}& & 0.5 & Stopped once converged & Converged \\ [2ex]
0.05 & & 0.25 & $n=10000$ & Failed to converge \\ [2ex]
 0.1 & & 0.25 & $n=10000$ & Destabilised \\ [2ex]
0.15 & & 0.25 & $n=10000$ & Destabilised \\ [2ex]
0.2 & & 0.25 & $n=10000$ & Destabilised \\ [2ex]
0.25 & & 0.25 & $n=10000$ & Destabilised \\ [2ex]
0.3 & & 0.25 & $n=10000$ & Destabilised \\ [2ex]
0.35 & & 0.25 & $n=10000$ & Destabilised \\ [2ex]
0.4 & & 0.25 & $n=10000$ & Destabilised \\ [2ex]
0.45 & & 0.25 & $n=10000$ & Destabilised \\ [2ex]
 0.5 & & 0.25 & $n=10000$ & Destabilised \\ \bottomrule
\end{tabular*}
\end{table}
\end{document}

在此处输入图片描述

相关内容