如何使表格中的行线仅跨越每列的给定百分比?

如何使表格中的行线仅跨越每列的给定百分比?

我正在尝试制作一个表格,其中行线仅跨越每列的一定百分比(例如 75% 位于单元格中间)。换句话说,它们不是像“H”这样连接列线,而是看起来更像 |-|。此外,我只希望某些列具有这种形状,而不是所有列(例如 4 列表的第 1 至 3 列)。如果我使用 \rule 的固定宽度表格,我可以做到这一点,但它需要一个宽度参数,而且我还没能弄清楚如何让宽度调整到最终的列宽。

可能的途径可能是以我尚未尝试过的方式使用 \rule。或者修改 \cline,使其不跨越整个列。

答案1

这是可能的,但是必须考虑一个合适的界面来设置百分比:

\documentclass{article}

\makeatletter
\def\cpartline#1{\@cpartline#1\@nil}
\def\@cpartline#1-#2\@nil{%
  \omit
  \@multicnt#1%
  \advance\@multispan\m@ne
  \ifnum\@multicnt=\@ne\@firstofone{&\omit}\fi
  \@multicnt#2%
  \advance\@multicnt-#1%
  \advance\@multispan\@ne
  \hfill
        \leaders\hrule\@height\arrayrulewidth\hfill
        \leaders\hrule\@height\arrayrulewidth\hfill
        \leaders\hrule\@height\arrayrulewidth\hfill
  \hfill
  \cr
  \noalign{\vskip-\arrayrulewidth}}
\makeatother
\begin{document}
\begin{tabular}{|l|l|}
some longer text & an some more\\\cpartline{1-1}\cpartline{2-2}
blb & blb\\\cpartline{1-2}
\end{tabular}
\end{document}

enter image description here

答案2

您可以在列前后留出一些空间,然后使用cline{<>}命令跳过额外空列内的水平规则。(75%)例如,要达到所需的百分比,您应该微调空列宽度@{ }

\documentclass{article}
\begin{document}
\begin{tabular}{|*3{c@{ }c@{ }c|} c|}\hline 
& c11 & & & c12 & & & c13 & & c14 \\ \cline{2-2}\cline{5-5}\cline{8-8}\cline{10-10} 
& c21 & & & c22 & & & c23 & & c24 \\ \cline{2-2}\cline{5-5}\cline{8-8}\cline{10-10} 
& c31 & & & c32 & & & c33 & & c34 \\ \cline{2-2}\cline{5-5}\cline{8-8}\cline{10-10} 
& c41 & & & c42 & & & c43 & & c44 \\ \hline 
\end{tabular} 
\end{document}

enter image description here

相关内容