答案1
灵感来自我对上一个问题的回答:
\documentclass{article}
\usepackage{array}
\newlength{\defaultarrayrulewidth}
\newcommand{\Cline}[2]{%
\noalign{\global\setlength{\defaultarrayrulewidth}{\arrayrulewidth}}%
\noalign{\global\setlength{\arrayrulewidth}{#1}}\cline{#2}%
\noalign{\global\setlength{\arrayrulewidth}{\defaultarrayrulewidth}}}
\begin{document}
\begin{tabular}{|c|c|c|c|c|}
\hline
A1 & A2 & A3& A4& A5 \\
\cline{1-1} \Cline{1pt}{2-3} \cline{4-5}
B1 & \multicolumn{1}{!{\vrule width 1pt}c|}{B2}& \multicolumn{1}{c!{\vrule width 1pt}}{B3}& B4 & B5 \\
\hline
C1 & \multicolumn{1}{!{\vrule width 1pt}c|}{C2} & \multicolumn{1}{c!{\vrule width 1pt}}{C3}& C4 & C5\\
\cline{1-1} \Cline{1pt}{2-3} \cline{4-5}
D1 & D2 & D3& D4& D5\\
\hline
\end{tabular}
\end{document}
答案2
使用{NiceTabular}
,nicematrix
您只需使用命令\Block
(由 提供nicematrix
)。
\documentclass{article}
\usepackage{nicematrix}
\begin{document}
\begin{NiceTabular}{ccccc}[hvlines]
A1 & A2 & A3 & A4 & A5 \\
B1 & \Block[draw,line-width=1pt,transparent]{2-2}{}
B2 & B3 & B4 & B5 \\
C1 & C2 & C3 & C4 & C5 \\
D1 & D2 & D3 & D4 & D5 \\
\end{NiceTabular}
\end{document}
transparent
命令的键\Block
表示它对于 键创建的垂直和水平规则是“透明的hvlines
” {NiceTabular}
。
\CodeAfter
如果您不想在主数组中使用指令,您可以使用由创建的 PGF/TikZ 节点在所谓的 TikZ 中绘制粗体框架nicematrix
。
\documentclass{article}
\usepackage{nicematrix,tikz}
\begin{document}
\begin{NiceTabular}{ccccc}[hvlines]
A1 & A2 & A3 & A4 & A5 \\
B1 & B2 & B3 & B4 & B5 \\
C1 & C2 & C3 & C4 & C5 \\
D1 & D2 & D3 & D4 & D5 \\
\CodeAfter
\tikz \draw [line width = 1pt] (2-|2) rectangle (4-|4) ;
\end{NiceTabular}
\end{document}
输出是一样的。