了解 tblr 环境中的扩展

了解 tblr 环境中的扩展

我试图理解标记和扩展在以下问题中的工作方式。我想通过一个命令tblr从包中创建一个环境,该命令以编程方式执行一些格式化。不幸的是,环境不喜欢这样。下面显示了一个最小的工作示例。如果我手动将单元格 (1, 2) 和 (1, 3) 涂成橙色,则不会出现任何问题:tabularraytblr

\documentclass{article}

% Packages
\usepackage{tabularray}
\usepackage{xcolor}

% Commands
\newcommand{\someRow}{1}
\newcommand{\someColumns}{2, 3}
\newcommand{\someColour}{orange}
\newcommand{\someTable}{%
    \begin{tblr}{
        colspec = {ccc},
%        cell{\someRow}{\someColumns} = {\someColour},
        cell{1}{2,3} = {orange!20},
    }
        a & b & c \\
        d & e & f \\
        g & h & i
    \end{tblr}
}

% Document
\begin{document}
    \someTable
\end{document}

表格显示正确的单元格,并以橙色标出

但是,如果我想要值2, 3和分别作为调用函数和orange!20的结果出现(即,如果我取消注释第 15 行并注释掉第 16 行),我会收到一堆错误,首先是:\someColumns\someColour

./main.tex:26: Missing = inserted for \ifnum.
<to be read again> 
                   ,
l.26     \someTable

如果有人能帮助我解决这个问题,并解释一下这里发生的事情,我将非常感激!

答案1

在此处输入图片描述

您可以在传递给之前扩展参数tblr

\documentclass{article}

% Packages
\usepackage{tabularray}
\usepackage{xcolor}

% Commands
\newcommand{\someRow}{1}
\newcommand{\someColumns}{2, 3}
\newcommand{\someColour}{orange}
\newcommand{\someTable}{%
\ExpandArgs{ne}
\begin{tblr}{
        colspec = {ccc},
        cell{\someRow}{\someColumns} = {\someColour},
%        cell{1}{2,3} = {orange!20},
    }
        a & b & c \\
        d & e & f \\
        g & h & i
    \end{tblr}
}

% Document
\begin{document}
    \someTable
\end{document}

相关内容