下面的标题看起来没有正确居中(但我仍然希望表格跨越整个文本宽度,以便表格不会进入右边距)。
\documentclass{book}
\usepackage{caption}
\usepackage{tabularx}
\begin{document}
\begin{table}[h]
\setlength{\tabcolsep}{10pt}
\centering
\renewcommand{\arraystretch}{1.6}
\begin{tabularx}{\textwidth}{c|c|c|c|c|}
\multicolumn{1}{c}{} & \multicolumn{1}{c}{$s$} & \multicolumn{1}{c}{$r$} & \multicolumn{1}{c}{$t$} & \multicolumn{1}{c}{$u$} \\
\cline{2-5}
{$s$} & $1234567890$ & $1234567890$ & $1234567890$ & $1234567890$ \\
\cline{2-5}
{$r$} & $1234567890$ & $1234567890$ & $1234567890$ & $1234567890$ \\
\cline{2-5}
{$t$} & $1234567890$ & $1234567890$ & $1234567890$ & $1234567890$ \\
\cline{2-5}
{$u$} & $1234567890$ & $1234567890$ & $1234567890$ & $1234567890$ \\
\cline{2-5}
\end{tabularx}
\captionsetup{justification=centering}
\caption{Parametrised glue matrix for any gorge constraint}
\end{table}
\end{document}
答案1
您可能希望获得类似这样的东西:
您的标题相对于文本宽度居中,但表格的位置看起来好像向左移动。这是使用的结果tabularx
(参见上面的 David Carlisle 评论)。通过使用,tabular
您tabularx
将获得上面的表格图像:
\documentclass{book}
\usepackage{caption}
\usepackage{array}
\usepackage{showframe}
\renewcommand*\ShowFrameColor{\color{red}}
\begin{document}
\begin{table}[h]
\setlength{\tabcolsep}{10pt}
\centering
\renewcommand{\arraystretch}{1.6}
\begin{tabular}{>{$}c<{$}|*{4}{>{$}c<{$}|}}
\multicolumn{1}{c}{}
& \multicolumn{1}{c}{$s$}
& \multicolumn{1}{c}{$r$}
& \multicolumn{1}{c}{$t$}
& \multicolumn{1}{c}{$u$}\\
\cline{2-5}
s & 1234567890 & 1234567890 & 1234567890 & 1234567890 \\
\cline{2-5}
r & 1234567890 & 1234567890 & 1234567890 & 1234567890 \\
\cline{2-5}
t & 1234567890 & 1234567890 & 1234567890 & 1234567890 \\
\cline{2-5}
u & 1234567890 & 1234567890 & 1234567890 & 1234567890 \\
\cline{2-5}
\end{tabular}
\captionsetup{justification=centering}
\caption{Parametrised glue matrix for any gorge constraint}
\end{table}
\end{document}
如您所见,在上面的 MWE 中,我在 MWE 中稍微优化了您的代码。
答案2
要使用tabularx
具有预设宽度的环境(此处\textwidth
:),您必须使用X
列类型——直接使用或以某种适当修改的形式使用。在下面的示例中,我将其定义C
为居中版本,X
并将其用于 5 列中的 4 列;只有第一列被分配了类型c
。
\documentclass{book}
\usepackage{caption,tabularx,ragged2e}
\newcolumntype{C}{>{\Centering\arraybackslash}X} % centered 'X' column
\newcolumntype{D}{>{$}c<{$}} % automatic math-mode centered column
\newcommand\mc[1]{\multicolumn{1}{@{}D@{}}{#1}} % handy shortcut macro
\begin{document}
\begin{table}[h]
\captionsetup{justification=Centering}
\setlength{\tabcolsep}{10pt}
\renewcommand{\arraystretch}{1.6}
\begin{tabularx}{\textwidth}{@{} D|C|C|C|C| }
\mc{} & \mc{s} & \mc{r} & \mc{t} & \mc{u} \\
\cline{2-5}
s & $1234567890$ & $1234567890$ & $1234567890$ & $1234567890$ \\
\cline{2-5}
r & $1234567890$ & $1234567890$ & $1234567890$ & $1234567890$ \\
\cline{2-5}
t & $1234567890$ & $1234567890$ & $1234567890$ & $1234567890$ \\
\cline{2-5}
u & $1234567890$ & $1234567890$ & $1234567890$ & $1234567890$ \\
\cline{2-5}
\end{tabularx}
\caption{Parametrised glue matrix for any gorge constraint}
\end{table}
\end{document}