使用 tabularray 创建高级表

使用 tabularray 创建高级表

我听说tabular tabularray应该使用 而不是 。我认为这是对的,因为经典表格在与行颜色结合时会出现故障。但我实在搞不懂如何使用tabularray

在下面的代码中,我提供了使用 创建的主表tabular和使用 创建的第二个表tabularray,它们应该是第一个表的精确副本。问题是辅助表看起来不正确,甚至无法编译,因为出于未知原因tabularray不支持标题。至少不是直接的,我确信可以添加标题,但这也是我无法做到的。

\documentclass{article}
\usepackage{graphicx}
\usepackage{xcolor,colortbl}
\usepackage{multirow}
\usepackage{hhline}
\definecolor{rowcol}{rgb}{0.7, 0.7, 0.7}

\usepackage{tabularray}

\title{TEST2}
\author{Anon}
\date{May 2023}

\begin{document}

\maketitle

\section{Introduction}

%main table
\begin{table}[!htbp]
\large
\begin{center}
\begin{tabular}{ |>{\centering\arraybackslash}m{2cm}||c|c|c| } 
\hline
\multirow{2}{*}{} & \multicolumn{3}{c|}{Description} \\
\hhline{~---}
                  & 1 & 2 & 3 \\
\hline
\hline
\rowcolor{rowcol}
A & 11 & 11 & 11 \\
\hline
B & 12 & 11 & 12 \\
\hline
\rowcolor{rowcol}
C & 12 & 12 & 12 \\
\hline
\end{tabular}
\end{center}
\caption{Caption} \label{tablelabel}
\end{table}

%table above remake
\begin{table}
\begin{tblr}{
  hlines, vlines,
  colspec={X[l,m]|X[c,m] X[c,m] X[c,m]},
  column{1}={font=\bfseries},
  cell{1}{1,1} = {c=3}{c},
  row{2}={bg=rowcol},
  row{4}={bg=rowcol},
  row{6}={bg=rowcol}
}
  & Description \\
  & 1 & 2 & 3 \\
  A & 10 & 20 & 30 \\
  B & 15 & 25 & 35 \\
  C & 12 & 22 & 32 \\
\end{tblr}
\caption{Table 2}
\label{tablelabel2}
\end{table}

\end{document}

答案1

tabular我无法重现您所给出的标题的问题,实际上,将 a或 a放在tabularraya 内table与 a 一起放置并不重要\caption。无论如何,这应该是原始表格的正确重制(但在双单元格边框相接处有更好的间隙):

\documentclass{article}
\usepackage{xcolor}
\usepackage{tabularray}
\definecolor{rowcol}{rgb}{0.7, 0.7, 0.7}

\begin{document}

\begin{table}
\centering
\begin{tblr}{
  colspec={ Q[c,m,wd=2cm] Q[c,m] Q[c,m] Q[c,m] },
  cells={font=\large},
  cell{1}{1}={r=2}{},
  cell{1}{2}={c=3}{},
  row{odd[3]}={bg=rowcol},
  hline{1-Z}={1}{-}{leftpos=0, rightpos=0},
  hline{3}={2}{-}{leftpos=0, rightpos=0},
  vlines,
  vline{2}={2}{-}{},
}
  & Description \\
  & 1 & 2 & 3 \\
  A & 10 & 20 & 30 \\
  B & 15 & 25 & 35 \\
  C & 12 & 22 & 32 \\
\end{tblr}
\caption{Caption} \label{tablelabel2}
\end{table}

\end{document}

在此处输入图片描述

请注意,我用 替换了hlineshline{1-Z}={1}{-}{leftpos=0, rightpos=0}实现更好的间隙。此外,使用row{odd[3]}={bg=rowcol},您可以一次性设置从第 3 行开始的所有奇数行的背景。并且正如 Zarko 所建议的那样,最好使用\centering而不是嵌套center环境。

相关内容