请考虑以下 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}