当我尝试实现这个答案在之前的一个问题中,我发现了一个涉及水平表格边框的问题\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@color
hhline
colortbl
修复后的 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}