tabularray,是否存在与 cell{ 等效的}{} 在表格\SetCell中?

tabularray,是否存在与 cell{ 等效的}{} 在表格\SetCell中?

请考虑以下 MWE:

\documentclass[border=3mm]{standalone}
\usepackage{xcolor}
\usepackage{tabularray}

\begin{document}
\begin{tblr}{hlines, vlines,
             cell{1}{2-4} = {bg=gray9}
            }
1 & Beta & Gamma & Delta    \\
2 & Beta & Gamma & Delta    \\
3 & \SetCell[c=2]{bg=red8}
    Beta & Gamma & Delta    \\
\end{tblr}
\end{document}

产生

在此处输入图片描述

问题:是否存在与选项中使用的设置\SetCell(用于第三行)等效的设置?我希望使用一个设置来获得相同的结果 。cell{3}{2-3} = {bg=red8}tblr\SetCell

答案1

这是一个可以做到这一点的函数。它给出的结果与您的代码相同。据我所知,它本身没有类似的功能tabularray

\documentclass[border=3mm]{standalone}
\usepackage{xcolor}
\usepackage{tabularray}

\ExplSyntaxOn

% Usage: \SetCellRange[r=#rows,c=#cols]{style}. Default: r=1,c=1
\NewTableCommand \SetCellRange [2] []  
{
  \tl_set:Nn \l__tblr_row_span_num_tl { 1 }
  \tl_set:Nn \l__tblr_col_span_num_tl { 1 }
  \keys_set:nn { tblr-cell-span } { #1 }
  \int_set:Nn \l_tmpa_int { \value{rownum} + \l__tblr_row_span_num_tl - 1 }
  \int_set:Nn \l_tmpb_int { \value{colnum} + \l__tblr_col_span_num_tl - 1 }
  \tblr_set_cell:nnnn { \value{rownum}-\int_use:N \l_tmpa_int }
                      { \value{colnum}-\int_use:N \l_tmpb_int } { } { #2 }
}

\ExplSyntaxOff

\begin{document}
\SetTblrTracing{all}
\begin{tblr}{hlines, vlines}
1 & \SetCellRange[c=3]{bg=gray9} Beta & Gamma & Delta    \\
2 & Beta & Gamma & Delta    \\
3 & \SetCell[c=2]{bg=red8}
    Beta & Gamma & Delta    \\
\end{tblr}
\end{document}

答案2

我建议为此用途定义一个简短的命令:

\documentclass[border=3mm]{standalone}

\usepackage{xcolor}
\usepackage{tabularray}

\NewTableCommand\SC{\SetCell{bg=red8}}

\begin{document}

\begin{tblr}{hlines, vlines,
             cell{1}{2-4} = {bg=gray9}
            }
1 & Beta & Gamma & Delta    \\
2 & Beta & Gamma & Delta    \\
3 & \SC Beta & \SC Gamma & Delta    \\
\end{tblr}

\end{document}

在此处输入图片描述

相关内容