\documentclass[UTF8,a4paper]{article}
\usepackage{ctex}
\usepackage{xcolor}
\usepackage{tabularray}
\usepackage{siunitx}
\begin{document}
\centering
\begin{tblr}{|*3{c|}}\hline
\begin{tblr}{ccc}
1 & 测试 & 2 \\
3 & 2测试 & 字 \\
测试3 & 测试 & 4 \\
\end{tblr} & \begin{tblr}{cccc}
测试1 & 5 & 2测试 & 8 \\
6 & 测试 & 100 & 测试2 \\
1测试 & 80 & 666 & 4测试 \\
0.09 & 888 & 0.08 & 231 \\
\end{tblr} & \begin{tblr}{cccc}
测试1 & 5 & 2测试 & 8 \\
6 & 测试 & 100 & 测试2 \\
1测试 & 80 & 666 & 4测试 \\
0.09 & 567 & 0.08 & 2测试 \\
\end{tblr} \\ \hline
\end{tblr}
\end{document}
感谢 @u73286 Eureka老师提供的思路:
-?(?:\d+\.\d*|\.\d+|\d+)
tblr
里面有一个cmd
键, 可以把这个判断写在cmd
里面
PS1.该问题不需要多个嵌套表格,所以mwe代码理论上不应该用三合一的表格
PS2.在tabularray
中上面例子的\usepackage{siunitx}
是无法生效的,请看文档第五章
PS3.在article
文档类选项中的UTF8
是不用显式写出的,已经是默认值
\documentclass{article}
\usepackage{libertinus} % for better looking of number
\usepackage{xcolor}
\usepackage{tabularray}
\ExplSyntaxOn
\newcommand*{\mycolorednum}[2][red]{%
\regex_if_match:nnTF{\A -?(?:\d+\.\d*|\.\d+|\d+) \Z} { #2 }
{
\textcolor{ #1 }{ #2 }
}
{
#2
}
}
\ExplSyntaxOff
\begin{document}
\begin{tblr}{
colspec = *{4}{c},
hlines,vlines,
cells = {cmd = \mycolorednum[magenta]},
}
1 & test & 2 & -1.33\\
3 & 2test & text & 21.2 \\
test-3 & test & 4 & 2.33\\
test1 & 5 & 2test & 8 \\
-6 & test & 100 & test2 \\
-1test & -80 & 66.6 & 4test \\
0.09 & -888 & -0.08 & 231 \\
test1 & -5 & 2test & -8 \\
6 & test & 100 & test2 \\
-.1tt & 80 & 666 & 4test \\
0.09 & -.567 & .08 & 2test \\
\end{tblr}
\end{document}
@u1680 请注意这是「回答区」,不是「评论区」...
@u70550 我点回复的时候不清楚怎么变成了回答了。
@u1680 ...不要看到输入框就输入...

@u70550 下次我再回复的时候注意一下。