获取 cline 以覆盖列与前一列之间的空间

获取 cline 以覆盖列与前一列之间的空间
\documentclass{article}
\begin{document}
\begin{tabular}{r||c|c||l}
Hello & test & run & done\\
\cline{2-3}
\end{tabular}
\end{document}
给出以下输出:

在此处输入图片描述

希望输出:

在此处输入图片描述

答案1

只需使用包tblr中的环境即可tabularray

在此处输入图片描述

\documentclass{article}

\usepackage{tabularray}

\begin{document}

\begin{tblr}{r||c|c||l}
Hello & test & run & done\\
\cline{2-3}
\end{tblr}

\end{document}

编辑:具有多行和彩色单元格(尽管对我来说看起来不太好)。

在此处输入图片描述

\documentclass{article}

\usepackage{tabularray}
\usepackage{ninecolors}

\begin{document}

\begin{tblr}{
    colspec = {r||c|c||l},
    row{odd} = {gray9}
}
    Hello & test & run & done\\
    \cline{2-3}
    Hello & test & run & done\\
    \cline{2-3}
    \SetCell[r=2]{c} Hello & test & run & done\\
    \cline{2-3}
     & test & run & done\\
    \cline{2-3}
    Hello & test & run & done\\
    \cline{2-3}
\end{tblr}

\end{document}

答案2

这是一个{NiceTabular}使用 的解决方案nicematrix

该环境与经典环境类似{tabular}nicematrix但也在单元格、行和列下创建 PGF/Tikz 节点。

然后,您可以使用这些节点和 Tikz 来绘制您想要的任何规则。

\documentclass{article}
\usepackage{nicematrix, tikz}

\begin{document}
\begin{NiceTabular}{r||c|c||l}
Hello & test & run & done \\
\CodeAfter \tikz \draw [shorten < = - \arrayrulewidth - \doublerulesep] (2-|2) -- (2-|4) ; 
\end{NiceTabular}
\end{document}

您需要多次编译(因为 PGF/Tikz 节点)。

第一个代码的输出

如果您喜欢更质朴的解决方案:

\documentclass{article}
\usepackage{array}

\begin{document}
\begin{tabular}{r|@{}c|c||l}
Hello & \hspace{\doublerulesep}\vrule\hspace{\arraycolsep}test & run & done \\
\cline{2-3}
\end{tabular}
\end{document}

第二段代码的输出

规则的交界处并不完美,因为\cline(由于历史原因)在下面的行中突出。可以通过稍微提高规则来解决该问题\cline

\documentclass{article}
\usepackage{array}

\begin{document}
\begin{tabular}{r|@{}c|c||l}
Hello & \hspace{\doublerulesep}\vrule\hspace{\arraycolsep}test & run & done \\[-\arrayrulewidth]
\cline{2-3}
\end{tabular}
\end{document}

第三个代码的输出

相关内容