如图, 需要这样的效果, 想要用 tabularray
, 但是 vlines
, hlines
在控制边框的时候只能整条控制, 没有办法精确到某一个单元格去控制框线, 问了 deepseek, 给出的代码都不能编译, 胡乱造没有的参数, 如果用 tikz
画的画, 一个一个画小矩形又觉得非常麻烦.
因此请教:
tabularray
能不能做到精确控制单元格边框?tikz
怎么画效率高一点?感谢.
感觉这上面的图像某个数学益智小游戏...
tabularray
方案(耐心即可)tabularray
能不能做到精确控制单元格边框?
可以,耐下心看看对应部分的文档即可,真的不长,而且你目标明确...
\documentclass{article}
\usepackage{libertinus}
\usepackage{tabularray}
\setlength\lTblrDefaultHruleWidthDim{2pt}%
\setlength\lTblrDefaultVruleWidthDim{2pt}%
\begin{document}
\begin{tblr}{
colspec = *{4}{Q[c,.75cm]},
stretch=0,
rows = {ht=1cm,font=\bfseries\Large},
hline{1} = {1-2}{},
hline{2} = {1-2,4}{},
hline{3-4},
vline{1} = {1,3}{},
vline{2-3},
vline{4-5} = {2-3}{},
}
A & B & & \\
& C & & D \\
E & F & G & H \\
\end{tblr}
\end{document}
不过我觉得控制严格「正方形」可能不总是太轻松....
这样是不是也勉强可行呢...语法更加简单一些...
\documentclass{article}
\usepackage{libertinus}
\usepackage{tabularray}
\usepackage{xcolor}
\begin{document}
\begin{tblr}{
colspec = *{4}{Q[c,.75cm]},
stretch=0,
rows = {ht=1cm,font=\bfseries\Large},
cell{1}{1-2} = {bg=gray!20},
cell{2}{2,4} = {bg=gray!20},
row{3} = {bg=gray!20},
}
A & B & & \\
& C & & D \\
E & F & G & H \\
\end{tblr}
\end{document}
TBC.
tikz
方案,也许可以定义坐标系,如果内容「A,B,...,H」 的大小不变的话,封装一个「在给定坐标绘制对应node
」的命令也许可行(?)不擅长tikz
...我不打算用了
另外,总是应该先看看文档,最好不要过于依赖ds。
非常感谢, 我在手册里面找同类例子没找到, 仅有说明没有例子那些没有看懂. 感谢.
@u13203
@u13203 不知道你会不会觉得
Q[c,.75cm]
和ht=1cm
不太一致...可以调整一下
colsep
:@u13203 有更好的更自动化的办法,详情可见这个x-post:
我在这里就只贴我自己基于
tikz
的matrix
库的实现:嗯这个方法也能通过
minimum size
实现完全严格控制为「正方形」个人觉得算是本问题的最佳实践了...