居中 tabularx

居中 tabularx

我想将 居中tabularx,而不是单元格内容,而是表格本身。阅读有关 的内容后tabular,我尝试了\centering

以下是我的想法:

% arara: xelatex
% arara: xelatex

\documentclass{scrartcl}

\usepackage{array}
\usepackage{tabularx}

\newcolumntype{°}{>{\global\let\currentrowstyle\relax}}
\newcolumntype{^}{>{\currentrowstyle}}

\begin{document}

{\small
\centering
\begin{tabularx}{200pt}{@{}°c^c^c@{}}
a & b & c
\\
d & e & f
\\
\end{tabularx}
}

\end{document}

它通常会渲染tabularx,但不会居中。我也尝试过,\begin{center}\end{center}但没有成功。

我如何将其置于中心?

答案1

您使用 tabularx,它至少需要一个类型为 X 的列,它会调整其宽度以填充并适合您最初作为参数提供的宽度。

其次,你要求所有线宽的表格。这意味着已经居中,因为使用了所有可用空间。

这里有一个以 X 列为中心的内容。

在此处输入图片描述

\documentclass{scrartcl}

\usepackage{array}
\usepackage{tabularx}

\newcolumntype{°}{>{\global\let\currentrowstyle\relax}}
\newcolumntype{^}{>{\currentrowstyle}}

\begin{document}

Left\dotfill

\begin{center}
\small
\begin{tabularx}{.5\linewidth}{@{}°c^Xc@{}}\hline
a & b & c
\\
d & e & f
\\\hline
\end{tabularx}
\end{center}

\dotfill Right

{\small
\hfill\begin{tabularx}{.5\linewidth}{@{}°c^Xc@{}}\hline
a & b & c
\\
d & e & f
\\\hline
\end{tabularx}\hfill\strut
}

Left\dotfill
\end{document}

答案2

这是一个解决方案,(a)使用三个居中的“X”型列,(b)使用\noindentbefore\begin{tabularx}...来确保tabularx环境占据文本块的整个宽度。我还删除了°^列规范,因为它们似乎没有任何作用。(但是,我可能错了……)

在此处输入图片描述

\documentclass{scrartcl}
%\usepackage{array} %% 'array' is loaded automatically by 'tabularx'
\usepackage{tabularx,booktabs}
\newcolumntype{C}{>{\centering\arraybackslash}X} % centered version of 'X' col. type

\begin{document}

\noindent
\begin{tabularx}{\linewidth}{@{} CCC @{}}
\toprule
a & b & c \\
d & e & f \\
\bottomrule
\end{tabularx}

\end{document}

相关内容