如何解决每行多个 \arrayrulecolor 带有 booktabs
将此带到tex.stackexhange。
问题
假设我想在同一行中使用两种不同颜色的规则……我该如何使它起作用?
这是一个最小的例子:
\documentclass{article}
\usepackage{colortbl}
\usepackage{booktabs}
\begin{document}
\begin{table}[ht]
\begin{tabular}{llll}
\toprule
A & B & alpha & beta\\
\arrayrulecolor{black} \cmidrule[1pt](l){1-1} \arrayrulecolor{red} \cmidrule[1pt](r){2-2} \arrayrulecolor{black} \cmidrule[1pt](l){3-3} \arrayrulecolor{black} \cmidrule[1pt](r){4-4}
1 & 5 & 10 & 100\\
2 & 6 & 11 & 101\\
2 & 7 & 12 & 102\\
3 & 8 & 13 & 103\\
\bottomrule
\end{tabular}
\end{table}
\end{document}
每次调用 \arrayrulecolor{}
时,相应的 cmidrule 都会下移。有没有解决办法?
早期解决方案的问题
注释中提到的解决方案在一行宽度不同的情况下会有些麻烦。考虑这个例子:
\documentclass{article}
\usepackage{colortbl}
\usepackage{booktabs}
\newcommand{\corcmidrule}[1][2pt]{% \corcmidrule[<len>]
\\[\dimexpr-\normalbaselineskip-\belowrulesep-\aboverulesep-#1\relax]%
}
\begin{document}
\begin{table}[ht]
\begin{tabular}{llll}
\toprule
A & B & alpha & beta\\
\arrayrulecolor{black}\cmidrule[1pt](l){1-1}
\corcmidrule[2pt]\arrayrulecolor{black}\cmidrule[2pt](r){2-2}
\corcmidrule[5pt]\arrayrulecolor{black}\cmidrule[5pt](l){3-3}
\corcmidrule[1pt]\arrayrulecolor{black}\cmidrule[1pt](r){4-4}
1 & 5 & 10 & 100\\
2 & 6 & 11 & 101\\
2 & 7 & 12 & 102\\
3 & 8 & 13 & 103\\
\bottomrule
\end{tabular}
\end{table}
\end{document}
这有什么问题吗? 考虑一下没有宏的情况:
\documentclass{article}
\usepackage{colortbl}
\usepackage{booktabs}
\newcommand{\corcmidrule}[1][2pt]{% \corcmidrule[<len>]
\\[\dimexpr-\normalbaselineskip-\belowrulesep-\aboverulesep-#1\relax]%
}
\begin{document}
\begin{table}[ht]
\begin{tabular}{llll}
\toprule
A & B & alpha & beta\\
\arrayrulecolor{black}\cmidrule[1pt](l){1-1}
\cmidrule[2pt](r){2-2}
\cmidrule[5pt](l){3-3}
\cmidrule[1pt](r){4-4}
1 & 5 & 10 & 100\\
2 & 6 & 11 & 101\\
2 & 7 & 12 & 102\\
3 & 8 & 13 & 103\\
\bottomrule
\end{tabular}
\end{table}
\end{document}
宏可能需要修改。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。