我正在制作一个带有垂直虚线的表格,因此我使用的是 NiceTabular 环境而不是 tabular 环境。我希望垂直线不会绘制在我使用的 \Block 内(如文档中所述)https://ctan.math.washington.edu/tex-archive/macros/latex/contrib/nicematrix/nicematrix.pdf第 7 页底部),但事实似乎并非如此。
如何从 \Block 中删除虚线?这是我的代码,在 Overleaf 中运行:
\documentclass{article}
\usepackage{nicematrix}
\begin{document}
\begin{table}[]
\centering
\begin{NiceTabular}{|c ||c:c:c||}
\hline
& \Block{1-3}{Resources} & & \\
& 1 & 2 & 3 \\ \hline \hline
Part 1 & a & b& c\\
\hline
Part 2 & d & e & f\\
\hline
\end{NiceTabular}
\end{table}
\end{document}
先感谢您!
答案1
这是一个错误,已在 nicematrix 6.2 版(2021-09-09)中解决。
但是,如果您坚持使用旧版本或者您想要另一种类型的虚线规则,则可以使用 Tikz 绘制虚线规则(或任何您想要的规则)。
\documentclass{article}
\usepackage{nicematrix,tikz}
\begin{document}
\begin{table}[]
\centering
\begin{NiceTabular}{|c||ccc||}
\Hline
& \Block{1-3}{Resources} & & \\
& 1 & 2 & 3 \\ \Hline \Hline
Part 1 & a & b& c\\
\Hline
Part 2 & d & e & f\\
\Hline
\CodeAfter
\tikz \draw [dotted] (2-|3) -- (last-|3) (2-|4) -- (last-|4) ;
\end{NiceTabular}
\end{table}
\end{document}
答案2
使用新的表包tabularray
也很简单:
\documentclass{article}
\usepackage{tabularray}
\begin{document}
\begin{table}[ht]
\centering
\begin{tblr}{hline{1,3-Z},
vline{3,4}={dashed},
colspec={|c||ccc||}
}
& \SetCell[c=3]{c}
Resources & & \\
& 1 & 2 & 3 \\
\hline
Part 1 & a & b & c \\
Part 2 & d & e & f \\
\end{tblr}
\end{table}
\end{document}
附录:
使用tabularray
软件包版本 2021N 及更高版本,可以绘制与双线交叉的垂直线(请参阅下面的 LJR 注释)。这将启用选项belowpos=1
(请参阅下面的 MWE):
\documentclass{article}
\usepackage{tabularray}
\begin{document}
\begin{table}[ht]
\caption{Example when vertical lines crossover double horizontal lines}
\centering
\begin{tblr}{hline{1,3-Z},
vline{1,2,Z}={1}{-}{belowpos=1}, %<---
vline{2,Z}={2}{-}{belowpos=1}, %<---
vline{3,4}={dashed},
colspec={ c ccc },
}
& \SetCell[c=3]{c}
Resources & & \\
& 1 & 2 & 3 \\
\hline
Part 1 & a & b & c \\
Part 2 & d & e & f \\
\end{tblr}
\end{table}
\end{document}
答案3
最新版本nicematrix
(2021-09-09 的 v. 6.2) 解决了该错误。现在,这些块符合虚线规则。
\documentclass{article}
\usepackage{nicematrix}
\begin{document}
\begin{table}[]
\centering
\begin{NiceTabular}{|c ||c:c:c||}
\hline
& \Block{1-3}{Resources} & & \\
& 1 & 2 & 3 \\ \hline \hline
Part 1 & a & b& c\\
\hline
Part 2 & d & e & f\\
\hline
\end{NiceTabular}
\end{table}
\end{document}
您需要多次编译(因为nicematrix
在后台使用 PGF/Tikz 节点)。