控制 NiceTabular (NiceMatrix) 中的垂直规则

控制 NiceTabular (NiceMatrix) 中的垂直规则

有没有办法cline在环境中对垂直规则进行更细粒度的控制(沿着允许水平规则的路线)NiceTabular

例如,我想消除右上角“语义”和“实质性”之间的垂直线:

在此处输入图片描述

在常规表格环境中,我只需使用两个多列命令,例如\multicolumn{1}{l}{Semantic} & \multicolumn{1}{l}{Substantive}。有没有办法在 NiceMatrix NiceTabular 环境中复制此操作?MWE:

\begin{NiceTabular}{p{2.5cm}p{2.5cm}p{2.5cm}|p{2.5cm}}
&& \Block{1-2}{Subject}&\\
&& \textbf{Semantic} & \textbf{Substantive} \\
\cline{3-4}
\Block{2-1}{Justification} & \textbf{Semantic} & Surplusage & Common law \\
\cline{3-4}
& \textbf{Substantive} & Whole code & Lenity
\end{NiceTabular}

答案1

您可以使用一个空块,它将阻止第二行的垂直规则(下面的命令\Block{1-2}{})。

\documentclass{article}
\usepackage{nicematrix}

\begin{document}

\begin{NiceTabular}{p{2.5cm}p{2.5cm}p{2.5cm}|p{2.5cm}}
&& \Block{1-2}{Subject}&\\
&& \Block{1-2}{}\textbf{Semantic} & \textbf{Substantive} \\
\cline{3-4}
\Block{2-1}{Justification} & \textbf{Semantic} & Surplusage & Common law \\
\cline{3-4}
& \textbf{Substantive} & Whole code & Lenity
\end{NiceTabular}

\end{document}

与往常一样nicematrix,您需要进行多次编译。

上述代码的输出

您还可以将垂直规则添加为空白块的边框(\Block[borders=right]{2-1}{}下面的命令)。

\documentclass{article}
\usepackage{nicematrix}

\begin{document}

\begin{NiceTabular}{p{2.5cm}p{2.5cm}p{2.5cm}p{2.5cm}}
&& \Block{1-2}{Subject}&\\
&& \textbf{Semantic} & \textbf{Substantive} \\
\cline{3-4}
\Block{2-1}{Justification} & \textbf{Semantic} & 
\Block[borders=right]{2-1}{}
Surplusage & Common law \\
\cline{3-4}
& \textbf{Substantive} & Whole code & Lenity
\end{NiceTabular}

\end{document}

输出并不完全相同,因为现在规则是在构造数组之后绘制的,并且没有为列(3 和 4)之间的垂直规则保留任何空间。当然,这只是 0.4 pt 的差异。

第二段代码的输出

您还可以使用 Tikz 进行绘图\CodeAfter:(\CodeAfter \tikz \draw (3-|4) -- (last-|4);当然,这项技术需要对 Tikz 有最基本的了解)。

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

\begin{document}

\begin{NiceTabular}{p{2.5cm}p{2.5cm}p{2.5cm}p{2.5cm}}
&& \Block{1-2}{Subject}&\\
&& \textbf{Semantic} & \textbf{Substantive} \\
\cline{3-4}
\Block{2-1}{Justification} & \textbf{Semantic} & 
Surplusage & Common law \\
\cline{3-4}
& \textbf{Substantive} & Whole code & Lenity 
\CodeAfter \tikz \draw (3-|4) -- (last-|4) ; 
\end{NiceTabular}

\end{document}

输出是一样的。

相关内容