例子:
\begin{tabular}{|c|c|}
\hline
1 & 2 \\
\cline{1-1}\cline{2-2}
3 & 4 \\
\hline
\end{tabular}
我只想cline
覆盖表格的一半单元格。或者我可以指定行开始的偏移量(例如跳过第一个厘米)。
这很容易实现吗?
(一种解决方法是引入另一列,然后multicolumn
在各处使用。但这有点烦人。另外,我也不确定如何控制列的宽度。这可能相关。)
(这看起来非常相关。我没有通过 Google 找到这个。也许可以将其标记为重复。虽然这个解决方案对我来说不太管用(我遇到了一些错误),而且我不太理解它。我认为对于其他使用我的 Google 搜索词来找到这个的人来说,发布这篇文章仍然很有价值。)
答案1
使用 tikz 和 nicematrix 很容易。
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc}
\usepackage{nicematrix}
\begin{document}
\begin{NiceTabular}{cc}[cell-space-top-limit=4pt]
1 & 2 \\
3 & 4 \\
\CodeAfter
\tikz\draw (3 -| 1) rectangle (1 -| 3);
\tikz\draw (1 -| 2) -- (3 -| 2);
\tikz\draw[red] ($(2 -| 1)!0.5!(2 -| 2)$) -- (2 -| 3);
\end{NiceTabular}
\end{document}
答案2
我找到了一个解决方案(改编自这里):
\makeatletter
\def\cpartlineleft#1{\@cpartlineleft#1\@nil}
\def\@cpartlineleft#1,#2\@nil{%
\omit
\@multicnt#1%
\advance\@multispan\m@ne
\ifnum\@multicnt=\@ne\@firstofone{&\omit}\fi
\@multicnt#1%
\advance\@multicnt-#1%
\advance\@multispan\@ne
\kern#2
\leaders\hrule\@height\arrayrulewidth\hfill
\leaders\hrule\@height\arrayrulewidth\hfill
\cr
\noalign{\vskip-\arrayrulewidth}}
\makeatother
然后我可以将其用作:
\begin{tabular}{|c|c|}
\hline
1 & 2 \\
\cpartlineleft{1,1em}\cline{2-2}
3 & 4 \\
\hline
\end{tabular}