投影仪中的水平表格边框和`\arrayrulecolor`

投影仪中的水平表格边框和`\arrayrulecolor`

当我尝试实现这个答案在之前的一个问题中,我发现了一个涉及水平表格边框的问题\arrayrulecolor

\documentclass{beamer}
\usepackage{booktabs} %\cmidrule
\usepackage{hhline} %\hhline
\usepackage{colortbl} %\arrayrulecolor
\begin{document}
%\arrayrulecolor{lightgray}
\frame{
\begin{tabular}{|c|c||c|}\hhline{~|-|-|}
\multicolumn{1}{c|}{} & $M_2$ & $a$\\\hhline{-|--|}
$M_1$ & $M_3$ &\\\hhline{:=:=:b|~|}
$b$ & \multicolumn{1}{c}{} & $x$\\\hline
\end{tabular}
\begin{tabular}{|c|c||c|}\cline{2-3}
\multicolumn{1}{c|}{} & $M_2$ & $a$\\\hline
$M_1$ & $M_3$ &\\\hhline{:=:=:b|~|}
$b$ & \multicolumn{1}{c}{} & $x$\\\hline
\end{tabular}
\begin{tabular}{|c|c||c|}\cmidrule{2-3}\noalign{\vskip-\belowrulesep}
\multicolumn{1}{c|}{} & $M_2$ & $a$\\\hline
$M_1$ & $M_3$ &\\\hhline{:=:=:b|~|}
$b$ & \multicolumn{1}{c}{} & $x$\\\hline
\end{tabular}
}
\end{document}

上面的代码(没有\arrayrulecolor)有如下所示的输出。

漂亮的桌子

但是包含该\arrayrulecolor命令(通过删除它前面的百分号)将导致如下所示的输出。

丑陋的桌子

也就是说,\cline在使用\hhline该命令时停止工作(但仍然有效)。\arrayrulecolor\cmidrule

有什么方法可以让我使用\cline\hhline仍获得不同的边框颜色吗?

答案1

这个很好的答案寻求解决方案。问题是重新定义了用于在与 一起使用时更改规则颜色的beamer宏。但是,它被重新定义的方式会破坏规则。\reset@colorhhlinecolortbl

修复后的 MWE:

\documentclass{beamer}
\usepackage{colortbl} %\arrayrulecolor
\usepackage{hhline} %\hhline
\makeatletter
\let\zz\reset@color
\def\reset@color{\kern\z@\zz}
\makeatother

\begin{document}
\arrayrulecolor{lightgray}
\frame{
\begin{tabular}{|c|c||c|}\hhline{~|-|-|}
\multicolumn{1}{c|}{} & $M_2$ & $a$\\\hhline{-|--|}
$M_1$ & $M_3$ &\\\hhline{:=:=:b|~|}
$b$ & \multicolumn{1}{c}{} & $x$\\\hline
\end{tabular}
}
\end{document}

在此处输入图片描述

相关内容