X
想要使用和之间的空白处r
:
\begin{tabularx}{\textwidth}{Xrrrr}
\hline
& X1 & X2 & X3 & X4 \\
\hline
A & 1\% & 2\% & 2\% & 2.0\% \\
B & 2\% & 3.0\% & 4.0\% & 30.5\% \\
\hline
\end{tabularx}
XXXXX
由于需要右冲洗,因此我不使用。
答案1
我能看到两种解决方案:
继续使用
tabularx
环境,但定义列类型的右对齐版本X
并将其用于第 2 至第 5 列(而不是r
);并且切换到一个
tabular*
环境,继续使用r
第 2 列到第 5 列,并对l
第一列使用一个列类型——或者p
如果第一列需要换行符,则可能使用一个列。
环境通过扩大列(类型和)tabularx
的宽度来工作,而环境通过扩大列间空白量来工作。在上面的屏幕截图中,中间表格中的五列宽度相等(虽然不容易立即看出这一点,因为第一列的材料位于最左侧,第二列的材料位于最右侧);在使用环境的第三张表格中,四个列间空白被设置为等宽。X
R
tabular*
tabular*
对于手头的简单表格,tabular*
基于 的解决方案似乎更可取。但是,如果表格更复杂,tabularx
基于 的解决方案可能更适合您。(毕竟,我认为第一列最终将包含的不仅仅是字母A
和B
...)
\documentclass[]{article}
\usepackage{tabularx}
% Define a flushright version of "X" column type
\newcolumntype{R}{>{\raggedleft\arraybackslash}X}
\begin{document}
\noindent
initial version
\smallskip\noindent
\begin{tabularx}{\textwidth}{Xrrrr}
\hline
& X1 & X2 & X3 & X4 \\
\hline
A & 1\% & 2\% & 2\% & 2.0\% \\
B & 2\% & 3.0\% & 4.0\% & 30.5\% \\
\hline
\end{tabularx}
\bigskip\noindent
\verb|tabularx| environment and columns of type \texttt{X} and \texttt{R}
\smallskip\noindent
\begin{tabularx}{\textwidth}{XRRRR}
\hline
& X1 & X2 & X3 & X4 \\
\hline
A & 1\% & 2\% & 2\% & 2.0\% \\
B & 2\% & 3.0\% & 4.0\% & 30.5\% \\
\hline
\end{tabularx}
\bigskip\noindent
\verb|tabular*| environment and columns of type \texttt{l} and \texttt{r}
\smallskip\noindent
\begin{tabular*}{\textwidth}{l@{\extracolsep{\fill}}rrrr}
\hline
& X1 & X2 & X3 & X4 \\
\hline
A & 1\% & 2\% & 2\% & 2.0\% \\
B & 2\% & 3.0\% & 4.0\% & 30.5\% \\
\hline
\end{tabular*}
\end{document}
答案2
使用时tabularx
您可以设置表格的宽度,在本例中\textwidth
,X
列类型使用的就是该宽度。
如果您希望它更短,除了更改其他列或使用另一个之外tabular
,您可以重新定义该长度,比如.5\textwidth
为页面宽度的一半,等等。