我想将 居中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)使用\noindent
before\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}