我在使用表格时可能遇到一个非常具体的 LaTeX 问题,因为表格需要以下规范(主要是):
- 我需要支持多页面
- 我需要很多多列
- 我需要彩色细胞
- 我需要能够控制表格中的分页符(这意味着,我有一些行块必须保持在一起[参见 MWE])
- 我需要部分表格规则并且想看看它们;-)
我首先使用了特定的 cline 版本(包含在 MWE 中),它添加了分页控制,但 \cline 与 colortbl 不兼容(Cellcolor 覆盖部分水平线(\cline))。因此我将其改为 \hhline,但是现在我失去了分页符控制,而这很重要。
所以我的主要问题是: 是否可以使用 \hhline 并同时控制分页符?
我知道这可能与惩罚有关,但我不知道如何添加它,或者是否有可能。
PS:我知道 \hhline 会产生不需要的白线,但有一种方法可以修复它(\hhline 在不需要线条的地方添加白线)。我只是把它从 MWE 中去掉了,以使其更小。
这是我的 MWE:
\documentclass[10pt,a7paper,oneside]{scrartcl}
\usepackage{longtable,tabu}
\usepackage{multirow}
\usepackage{xcolor,colortbl}
\usepackage{hhline}
% No-break cline version
\makeatletter
\def\@cline#1-#2\@nil{%
\omit
\@multicnt#1%
\advance\@multispan\m@ne
\ifnum\@multicnt=\@ne\@firstofone{&\omit}\fi
\@multicnt#2%
\advance\@multicnt-#1%
\advance\@multispan\@ne
\leaders\hrule\@height\arrayrulewidth\hfill
\cr
\noalign{\nobreak\vskip-\arrayrulewidth}}
\makeatother
% Shortcut
\newcommand{\cc}[1]{\cellcolor{#1}}
\begin{document}
\begin{longtabu} to \textwidth {|X|X|X|}
\hline
\multicolumn{3}{|l|}{\cc{yellow}Main Entry} \\*
\hhline{|~|-|-|}
% No break control :(
{\cc{yellow}} & {\cc{red}Sub} & {\cc{red}Val} \\* \hhline{|~|-|-|}
{\cc{yellow}} & {\cc{red}Sub} & {\cc{red}Val} \\* \hhline{|~|-|-|}
{\cc{yellow}} & {\cc{red}Sub} & {\cc{red}Val} \\* \hhline{|~|-|-|}
{\cc{yellow}} & {\cc{red}Sub} & {\cc{red}Val} \\* \hhline{|~|-|-|}
{\cc{yellow}} & {\cc{red}Sub} & {\cc{red}Val} \\ \hline
\multicolumn{3}{|l|}{\cc{yellow}Main Entry} \\*
\cline{2-3}
% Break control, but no rules :(
{\cc{yellow}} & {\cc{red}Sub} & {\cc{red}Val} \\* \cline{2-3}
{\cc{yellow}} & {\cc{red}Sub} & {\cc{red}Val} \\* \cline{2-3}
{\cc{yellow}} & {\cc{red}Sub} & {\cc{red}Val} \\* \cline{2-3}
{\cc{yellow}} & {\cc{red}Sub} & {\cc{red}Val} \\* \cline{2-3}
{\cc{yellow}} & {\cc{red}Sub} & {\cc{red}Val} \\ \hline
\multicolumn{3}{|l|}{\cc{yellow}Main Entry} \\*
\cline{2-3}
{\cc{yellow}} & {\cc{red}Sub} & {\cc{red}Val} \\* \cline{2-3}
{\cc{yellow}} & {\cc{red}Sub} & {\cc{red}Val} \\* \cline{2-3}
{\cc{yellow}} & {\cc{red}Sub} & {\cc{red}Val} \\* \cline{2-3}
{\cc{yellow}} & {\cc{red}Sub} & {\cc{red}Val} \\* \cline{2-3}
{\cc{yellow}} & {\cc{red}Sub} & {\cc{red}Val} \\ \hline
& & \kill % Needed for correct table calculation
\end{longtabu}
\end{document}