tabularx:使用 X 和 r 之间的空白

tabularx:使用 X 和 r 之间的空白

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的宽度来工作,而环境通过扩大列间空白量来工作。在上面的屏幕截图中,中间表格中的五列宽度相等(虽然不容易立即看出这一点,因为第一列的材料位于最左侧,第二列的材料位于最右侧);在使用环境的第三张表格中,四个列间空白被设置为等宽。XRtabular*tabular*

对于手头的简单表格,tabular*基于 的解决方案似乎更可取。但是,如果表格更复杂,tabularx基于 的解决方案可能更适合您。(毕竟,我认为第一列最终将包含的不仅仅是字母AB...)

\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您可以设置表格的宽度,在本例中\textwidthX列类型使用的就是该宽度。

如果您希望它更短,除了更改其他列或使用另一个之外tabular,您可以重新定义该长度,比如.5\textwidth为页面宽度的一半,等等。

示例图片

相关内容