将Cmidrule重新着色为与小珠相同的颜色

时间:2019-07-18 09:06:06

标签: latex

我正在尝试创建一个带有中间规则的表(cmidrule跳过第一列),但是此cmidrule的颜色不同于hrule。而且我无法使用像可以对中规则重新着色的方法来更改cmidrule的颜色。

\begin{tabular}{lcccc}
   \hline 
         & \multicolumn{2}{c}{Value-Weighted} & \multicolumn{2}{c}{Equal-Weighted}\\
  \cmidrule{2-5}
 & Equity Premium & Information Ratio & Equity Premium & Information Ratio \\ 
  \hline
\end{tabular}

我希望表格中的行具有相同的颜色(请注意,我确实在文档的所有地方都使用hrule,因此最好使用hrule的颜色)

1 个答案:

答案 0 :(得分:3)

请勿混用\hline和规则命令。如果您对表使用一致的样式,则没有问题。

\documentclass{article}

\usepackage{booktabs,colortbl}

\begin{document}
\arrayrulecolor{red}
\begin{tabular}{lcccc}
  % \hline 
  \toprule
  & \multicolumn{2}{c}{Value-Weighted} & \multicolumn{2}{c}{Equal-Weighted}\\
  \cmidrule{2-5}
 & Equity Premium & Information Ratio & Equity Premium & Information Ratio \\ 
  \bottomrule
  %\hline
\end{tabular}

\end{document}

enter image description here

编辑
看到在自动生成的表中使用\hrule是很奇怪的。但是,要解决您的问题,取决于情况。

1 /您的\hrule带有颜色,并且您希望其他表格规则中使用相同的颜色。

在这种情况下,请查看生成的代码。应该有

\color{blue}\hrule width 1cm

\color{\mycolor}\hrule width 1cm

拾取\ hrule使用的任何颜色,并在文档开始处发出

\arrayrulecolor{\mycolor} % or whatever is used by the \hrule

表中的所有规则应具有相似的颜色。

2 /您的\ hrule是黑色的,您想给它们着色。

请不要。

\ hrule是一个非常低级的TeX命令,无法简单地配置其颜色。此外,它的语法很复杂。你可以

\hrule                 % draw a thin line that is \textwidth wide

\hrule height 2p width 3cm depth 0.5ex % specify parameters of the rule

或多或少之间的任何东西。

可以用来重新定义\ hrule的基本方法是

\let\mybasehrule=\hrule              % save definition of \hrule
\def\hrule{\color{blue}\mybasehrule} % and redefine it

但是,\hrule发出\color{black}后,应该立即立即切换回初始颜色,否则,生成的任何东西都会变成蓝色。如果\hrule总是 ,然后在表中后面有一个宏,则可以用类似的方式重新定义该宏,并希望\hrule后面没有例外另一个命令。如果您无法识别出这样的宏,则会被困住。

然后,您必须回到表格后的\hrule初始定义。 \hrule是一个非常基本的TeX宏,几乎所有您使用的软件包都可以直接或间接使用,并且您不想重新定义\hrule并将所有文本随机变为蓝色。

我认为,重写驱动程序以生成合理的表格代码可能比重新定义\hrule以在表中生成彩色规则要简单得多。