![在 tabularx 中创建具有指定列宽和中心间距的表格](https://linux22.com/image/308080/%E5%9C%A8%20tabularx%20%E4%B8%AD%E5%88%9B%E5%BB%BA%E5%85%B7%E6%9C%89%E6%8C%87%E5%AE%9A%E5%88%97%E5%AE%BD%E5%92%8C%E4%B8%AD%E5%BF%83%E9%97%B4%E8%B7%9D%E7%9A%84%E8%A1%A8%E6%A0%BC.png)
我想创建一个可以调整表格整体宽度的表格,因此需要 tabularx 环境。但是,我在配置表格时遇到了困难,因此无法控制:
- 每列的单独宽度。
- 将每列置于中央。
这是我正在使用的代码:
\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}