相对列宽与表格中的其他格式相结合

相对列宽与表格中的其他格式相结合

我可以看到可以通过 tabularx 包实现相对列宽,如下图所示这个问题。我希望我的表格能够覆盖整个文本宽度,并提供相对列宽来指示应如何分配空间。但是,我的表格已经应用了特定格式,我无法协调格式的实现和相对列宽。

下面显示的是我已用最小工作示例生成的表格的图像,其代码也在下面。我现在拥有的是一个横跨整个文本宽度的表格。它有一个标题行,具有特定的文本格式和单元格颜色。后续行具有交替的彩色背景。现在,列宽设置为足够长以容纳表中的数据。我想要结合 tabularx 包(或任何其他实现此目标的包/功能)的功能,以表示列的相对宽度(对于下面的示例)应分别为 0.15、0.15、0.55 和 0.15,同时仍保留其余的表格格式。这样,列实际上就横跨整个文本宽度。我找不到这样做的方法!


当前表输出 在此处输入图片描述

生成上表的当前最小工作示例

\documentclass{article}

\usepackage[letterpaper,margin=1in]{geometry} % Handles geometry of page layout
\usepackage[table]{xcolor} % Colors tables nicely
\usepackage{tabularx}

\definecolor{greyblue}{rgb}{0.6353,0.6863,0.7686}
% Defines command \rowstyle for specifying style for entire row
\newcolumntype{+}{>{\global\let\currentrowstyle\relax}}
\newcolumntype{^}{>{\currentrowstyle}}
\newcommand {\rowstyle}[1]{\gdef\currentrowstyle{#1} %
    #1\ignorespaces
}

\begin{document}

{\rowcolors{2}{black!5}{black!15} % Specify alternating row colors
    \begin{table}[h]
        \label{table_1} \centering
        \begin{tabularx}{\linewidth}{ +c^c^l^c }
            \hline
            \rowcolor{greyblue} \rowstyle{\bfseries} % Specify the header row is grey-blue in color and bold
            Header 1 & Header 2 & Really Long Header 3   & Header 4 \\ % Header row
            A    & B  & CDEFGHIJKLMNOPQRSTUVWXY  & Z    \\
            1    & 2  & 345  & 6    \\
            \hline
        \end{tabularx}
    \end{table}
}

\end{document}

答案1

像这样?

在此处输入图片描述

梅威瑟:

\documentclass{article}
\usepackage[letterpaper,margin=1in]{geometry} % Handles geometry of page layout
\usepackage[table]{xcolor} % Colors tables nicely
\usepackage{tabularx}

\definecolor{greyblue}{rgb}{0.6353,0.6863,0.7686}
% Defines command \rowstyle for specifying style for entire row
\newcolumntype{+}{>{\global\let\currentrowstyle\relax}}
\newcolumntype{^}{>{\currentrowstyle}}
\newcolumntype{C}{>{\centering\arraybackslash}X}    % <-- new
\newcolumntype{L}{>{\raggedright\arraybackslash}X}
\newcommand {\rowstyle}[1]{\gdef\currentrowstyle{#1} %
    #1\ignorespaces
}

\begin{document}

    \begin{table}[htb]
\renewcommand\arraystretch{1.2}
\rowcolors{2}{black!5}{black!15} % Specify alternating row colors
\centering
\caption{}% label has sence only if it is present
    \label{table_1}
\begin{tabularx}{\linewidth}{+>{\hsize=0.15\hsize}C ^   % <-- changed
                              >{\hsize=0.15\hsize}C ^   % <-- changed
                              >{\hsize=0.55\hsize}L     % <-- changed
                              >{\hsize=0.15\hsize}C }   % <-- changed
    \hline
\rowcolor{greyblue}\rowstyle{\bfseries} % Specify the header row is grey-blue in color and bold
Header 1    & Header 2  & Really Long Header 3      & Header 4  \\ % Header row
A           & B         & CDEFGHIJKLMNOPQRSTUVWXY   & Z         \\
1           & 2         & 345                       & 6         \\
    \hline
\end{tabularx}
    \end{table}
\end{document}

相关内容