我正在尝试整理一系列表格,这些表格显示了使用单纯形法(运筹学概念)的行减少。我试图突出显示单纯形法中使用的行和列,这些特定的行和列一直在变化。我尝试了以下操作:
\documentclass[12pt]{article}
\usepackage[margin=1cm,landscape,paperwidth=3in,paperheight=3in]{geometry}
\usepackage{amsmath,booktabs,colortbl}
\usepackage[table]{xcolor}
\pagestyle{empty}
\begin{document}
\newcolumntype{M}{>{$}c<{$}}
\newcolumntype{P}{>{\columncolor{gray!75}}M}
\rowcolors{2}{gray!25}{}
\begin{tabular}{|MPM|}
\hline
x_1 & y_1 & z_1 \\
x_2 & y_2 & z_2 \\
x_3 & y_3 & z_3 \\
x_4 & y_4 & z_4 \\
x_5 & y_5 & z_5 \\
x_6 & y_6 & z_6 \\
\hline
\end{tabular}
\end{document}
但似乎每次调用都会\rowcolor
覆盖指定的列颜色。有什么办法可以解决这个问题吗?
答案1
colortbl 相当随意地使行颜色优先于列颜色,如果您希望扭转这一决定,您只需改变顺序\CT@column@color
,\CT@row@color
您可以通过应用下面的补丁宏来做到这一点:
\documentclass[12pt]{article}
\usepackage[margin=1cm,landscape,paperwidth=3in,paperheight=3in]{geometry}
\usepackage{amsmath,booktabs,colortbl}
\usepackage[table]{xcolor}
\makeatletter
\def\tmpp#1\@addtopreamble#2#3!{%
\tmp#2!{#1}{#3}}
\def\tmp#1\CT@column@color\CT@row@color#2!#3#4{%
\def\@classz{#3\@addtopreamble{#1\CT@row@color\CT@column@color#2}#4}}
\expandafter\tmpp\@classz!
\makeatother
\pagestyle{empty}
\begin{document}
\newcolumntype{M}{>{$}c<{$}}
\newcolumntype{P}{>{\columncolor{gray!75}}M}
\rowcolors{2}{gray!25}{}
\begin{tabular}{|MPM|}
\hline
x_1 & y_1 & z_1 \\
x_2 & y_2 & z_2 \\
x_3 & y_3 & z_3 \\
x_4 & y_4 & z_4 \\
x_5 & y_5 & z_5 \\
x_6 & y_6 & z_6 \\
\hline
\end{tabular}
\end{document}
答案2
在 的环境中nicematrix
,您可以指定应用颜色指令的顺序。
\documentclass[12pt]{article}
\usepackage{nicematrix}
\begin{document}
\[\begin{NiceArray}{|ccc|}
\CodeBefore
\columncolor{gray!75}{2}
\rowcolors{2}{gray!25}{}
\Body
\Hline
x_1 & y_1 & z_1 \\
x_2 & y_2 & z_2 \\
x_3 & y_3 & z_3 \\
x_4 & y_4 & z_4 \\
x_5 & y_5 & z_5 \\
x_6 & y_6 & z_6 \\
\Hline
\end{NiceArray}\]
\[\begin{NiceArray}{|ccc|}
\CodeBefore
\rowcolors{2}{gray!25}{}
\columncolor{gray!75}{2}
\Body
\Hline
x_1 & y_1 & z_1 \\
x_2 & y_2 & z_2 \\
x_3 & y_3 & z_3 \\
x_4 & y_4 & z_4 \\
x_5 & y_5 & z_5 \\
x_6 & y_6 & z_6 \\
\Hline
\end{NiceArray}\]
\end{document}
此外,您将在所有 PDF 查看器中获得完美的输出。