为 tabularray 设计的表格添加标题

为 tabularray 设计的表格添加标题

我想在表格上方添加标题。软件包文档中没有相关信息这里。文档仅解释了如何向长表添加标题,而我的情况并非如此。如能提供任何帮助,不胜感激!

在此处输入图片描述

这是代码:

\usepackage{tabularray}
\usepackage[table]{xcolor}
\usepackage{graphicx}
\begin{document}

\scalebox{0.8}{

\begin{tblr}[caption={"sdsdssdfsdfds"}]{
colspec={cccccccc},
rowspec={Q[gray!20]Q[]Q[gray!10]Q[]Q[gray!10]Q[]Q[gray!10]Q[]}, 
rowhead = 1,
vline{2-8} = {0-1}{0.3pt,gray!50},
vline{2-8} = {2-7}{0.3pt,gray!30},
hline{1,2,8} = {0.1pt,azure5}}
header  & header & header & header & header & header & header & header\\
1  & Beta & Gamma & Alpha & Beta & Gamma & Beta & Gamma\\
2  & Beta & Gamma & Alpha & Beta & Gamma & Beta & Gamma\\
3  & Beta & Gamma & Alpha & Beta & Gamma & Beta & Gamma\\
4  & Beta & Gamma & Alpha & Beta & Gamma & Beta & Gamma\\
5  & Beta & Gamma & Alpha & Beta & Gamma & Beta & Gamma\\
6  & Beta & Gamma & Alpha & Beta & Gamma & Beta & Gamma\\

\end{tblr}

}
\end{document}

答案1

我认为您混淆了tblr环境和table环境。前者用于创建类似表格的结构,而后者是浮动环境。caption(和label)必须放在浮动环境中。

\documentclass{article}

\usepackage[margin=2.5cm]{geometry}
\usepackage{xcolor}
\usepackage{graphicx}

\usepackage{tabularray}

\begin{document}
    
\begin{table}
    \centering
    \caption{Example caption}
    \label{tab:Example}
    \begin{tblr}{
            colspec={*{8}{c}},
            row{odd}={gray!10}, row{1}={gray!20},
            vline{2-Y} = {1}{0.3pt,gray!50},
            vline{2-Y} = {2-Z}{0.3pt,gray!30},
            hline{1,2,Z} = {0.1pt,azure5}
        }
        header  & header & header & header & header & header & header & header\\
        1  & Beta & Gamma & Alpha & Beta & Gamma & Beta & Gamma\\
        2  & Beta & Gamma & Alpha & Beta & Gamma & Beta & Gamma\\
        3  & Beta & Gamma & Alpha & Beta & Gamma & Beta & Gamma\\
        4  & Beta & Gamma & Alpha & Beta & Gamma & Beta & Gamma\\
        5  & Beta & Gamma & Alpha & Beta & Gamma & Beta & Gamma\\
        6  & Beta & Gamma & Alpha & Beta & Gamma & Beta & Gamma\\   
    \end{tblr}
\end{table}     
            
\end{document}

tblr 输出

我还对你的代码做了一些进一步的改进

  • tablexcolor使用时不需要选项tabularray
  • 删除rowhead选项,因为它只需要longtblr
  • 避免使用,\scalebox因为它会导致字体大小不一致
  • 使用*{8}{c}incolspec重复c8时间
  • 用行着色选项替换rowspec定义odd。这更加灵活,因为它不依赖于行数
  • 简化vlinehline定义:您可以使用字母XY和分别Z引用最后三个columns(或rows)。这使您的代码更具可读性,并且如果您以后更改列数,也会更加灵活

答案2

您可以替换tblrtalltblr获取标题。

\documentclass{article}
\usepackage{tabularray}
\usepackage{xcolor} % tabularray doesn't need `table` option
\usepackage{graphicx}
\begin{document}

\scalebox{0.8}{
\begin{talltblr}[
  caption={"sdsdssdfsdfds"}
]{
  colspec={cccccccc},
  rowspec={Q[gray!20]QQ[gray!10]QQ[gray!10]QQ[gray!10]Q}, 
  %rowhead = 1, % only for long tables
  vline{2-8} = {0-1}{0.3pt,gray!50},
  vline{2-8} = {2-7}{0.3pt,gray!30},
  hline{1,2,8} = {0.1pt,azure5},
}
header  & header & header & header & header & header & header & header\\
1  & Beta & Gamma & Alpha & Beta & Gamma & Beta & Gamma\\
2  & Beta & Gamma & Alpha & Beta & Gamma & Beta & Gamma\\
3  & Beta & Gamma & Alpha & Beta & Gamma & Beta & Gamma\\
4  & Beta & Gamma & Alpha & Beta & Gamma & Beta & Gamma\\
5  & Beta & Gamma & Alpha & Beta & Gamma & Beta & Gamma\\
6  & Beta & Gamma & Alpha & Beta & Gamma & Beta & Gamma\\
\end{talltblr}}

\end{document}

相关内容