居中标题在对齐方式为居中的情况下无法正常工作

居中标题在对齐方式为居中的情况下无法正常工作

下面的标题看起来没有正确居中(但我仍然希望表格跨越整个文本宽度,以便表格不会进入右边距)。

\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 评论)。通过使用,tabulartabularx将获得上面的表格图像:

\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}

相关内容