longtblr
我正在尝试在命令中的tabularray
包上使用背景颜色\SetCell
,但似乎只能使用命名的颜色。例如之前用 定义的颜色\definecolor
。我正在构建一个生成器,想使用现场定义的颜色。
\definecolor{c5E90CB}{HTML}{5E90CB}
...
\SetCell[r=1,c=3]{bg=c5E90CB,halign=l,valign=h}\makecell{Test instructions and report}
我想直接使用颜色定义,而不预先定义它 - 类似于
\SetCell[r=1,c=3]{bg=\color[HTML]{5E90CB},halign=l,valign=h}{Test instructions and report}
但这不起作用。
谢谢,Blaž
答案1
是否可以在“单元格部分”的某个地方定义颜色?在之后
\hline
或&
之前\SetCell
?
是的,您可以使用它\NewTableCommand
来创建一个\DefineColor
命令。然后您可以将其放在单元格的开头。
\documentclass{article}
\usepackage{xcolor}
\usepackage{tabularray}
\NewTableCommand{\DefineColor}[3]{\definecolor{#1}{#2}{#3}}
\begin{document}
\begin{tblr}{lcr}
\hline
Alpha & Beta & Gamma \\
\hline
\DefineColor{c5E90CB}{HTML}{5E90CB}
\SetCell[r=1,c=3]{bg=c5E90CB,halign=l,valign=h} Epsilon & & \\
\hline
Iota & Kappa & Lambda \\
\hline
\end{tblr}
\end{document}
答案2
这是一个稍微自动化的解决方案,可以避免选择颜色名称(以及答案这个问题更确切地说):
\documentclass{article}
\usepackage{xcolor}
\usepackage{tabularray}
\newcounter{CurrentCellBgColor}
\NewTableCommand{\SetCellBgColor}[2]{%
\stepcounter{CurrentCellBgColor}%
\definecolor{CurrentCellBgColor-\theCurrentCellBgColor}{#1}{#2}%
\SetCell{bg=CurrentCellBgColor-\theCurrentCellBgColor}%
}
\begin{document}
\begin{tblr}{lcr}
\hline
Alpha & Beta & Gamma \\
\hline
\SetCellBgColor{HTML}{5E90CB}
\SetCell[r=1,c=3]{halign=l,valign=h} Epsilon & & \\
\hline
\SetCellBgColor{HTML}{905eCB}
\SetCell[r=1,c=3]{halign=c,valign=h} Epsilon & & \\
\hline
\SetCellBgColor{rgb}{200,100,0}
\SetCell[r=1,c=3]{halign=r,valign=h} Epsilon & & \\
\hline
Iota & Kappa & Lambda \\
\hline
\end{tblr}
\end{document}