我正在使用该tabularray
软件包,并且我想在表格中的几个特定单元格之间插入垂直边框,如下表左侧所示。如 MWE 代码所示,我可以通过hline
结合使用选项和相关单元格的行号来获得此类行。但是,我想在不使用绝对行号的情况下做到这一点如果可能的话 — — 理想情况下,在与边框本身相邻的单元格之一中使用命令,类似于 MWE 中的“所需源”代码 — — 这样我就可以在表的其他位置添加/删除行,并让这些边框段保持正确的内容行。
(在我最终的用例中,还存在多行和多列单元格,以及具有背景颜色的单元格,因此强烈建议采用能够与这些单元格很好地兼容的解决方案。)
\documentclass[margin=3mm]{standalone}
\usepackage{tabularray}
\newcommand{\cellvline}{\textbullet} % placeholder to be redefined
\begin{document}
Desired output:
\begin{tblr}{vline{1,Z},hline{1,Z},vline{2}={3}{solid},vline{4}={2}{solid}}
a1 & a2 & a3 & a4 \\
b1 & b2 & b3 & b4 \\
c1 & c2 & c3 & c4 \\
\end{tblr}
\hspace{2em}
Desired source:
\begin{tblr}{vline{1,Z},hline{1,Z}}
a1 & a2 & a3 & a4 \\
b1 & b2 & b3 & \cellvline b4 \\
c1 & \cellvline c2 & c3 & c4 \\
\end{tblr}
\end{document}
答案1
最简单且似乎是唯一的方法:
\documentclass[margin=3mm]{standalone}
\usepackage{xcolor}
\usepackage{tabularray}
\begin{document}
\begin{tblr}{hline{1,Z}={solid}, vline{1,Z}={1-Z}{solid},
vline{2}={Z}{solid, fg=red},
vline{Y}={Y}{solid,fg=blue},
colspec= {Q[c]}
}
a1 & a2 & a3 & a4 \\
b1 & b2 & b3 & b4 \\
c1 & c2 & c3 & c4 \\
\end{tblr}
\end{document}
编辑:
您可以在表格单元格中插入“\SetVline”,但是,您仍然需要知道单元格在哪一行......
\documentclass[margin=3mm]{standalone}
\usepackage{xcolor}
\usepackage{tabularray}
\begin{document}
\begin{tblr}{hline{1,Z}={solid}, vline{1,Z}={1-Z}{solid},
colspec= {Q[c]}
}
a1 & a2 & a3 & a4 \\
b1 & b2 & b3 & \SetVline{2}{blue5} b4 \\
c1 & \SetVline{3}{red5} c2
& c3 & c4 \\
\end{tblr}
\end{document}
结果和以前一样。