我正在创建许多表格,并想将某个区域中的文本颜色更改为红色,请参见下面的图片中的示例:
为此,我希望任何带有字母的列或行(带有红色字符或空白单元格)交叉的单元格中包含红色文本。
我的代码如下所示:
\begin{center}
\begin{tabular}{ |c|c|c|c|c|c| }
\hline
&W&X&Y&Z&Stock\\
\hline
A&\textcolor{red}{11}&\textcolor{red}{3}&&&14\\
\hline
B&&\textcolor{red}{12}&\textcolor{red}{4}&&16\\
\hline
C&&&&&20\\
\hline
Demand&11&15&14&10&50\\
\hline
\end{tabular}
\end{center}
这种方法有效,但每次都耗费大量时间\textcolor{red}{number}
。有没有什么捷径?
答案1
定义您想要着色的列并设置禁用和启用着色的机制。
\documentclass{article}
\usepackage{xcolor,array}
\newcommand{\docolor}{\ifcoloring\color{red}\fi}
\newif\ifcoloring
\newcommand{\startcoloring}{\global\coloringtrue}
\newcommand{\stopcoloring}{\global\coloringfalse}
\begin{document}
\begin{tabular}{|c| *{4}{>{\docolor}c|} c| }
\hline
\stopcoloring
&W&X&Y&Z&Stock\\
\hline
\startcoloring
A&11&3&&&14\\
\hline
B&&12&4&&16\\
\hline
C&&&&&20\\
\hline
\stopcoloring
Demand&11&15&14&10&50\\
\hline
\end{tabular}
\end{document}
答案2
序言中有关着色的一些命令定义:
\documentclass[a4paper, 11pt]{article}
\usepackage[table]{xcolor}
\def\cred#1{\textcolor{red}{#1}}
\newcommand\colr{\color{red}}
\def\mybluecell{\cellcolor{blue!30}}
\begin{document}
\begin{tabular}{ |c|c|c|c|c|c| }
\hline
&W&X&Y&Z&Stock\\
\hline
A&\cred{11}&\textcolor{red}{3}&&&14\\
\hline
B&&\colr 12& \mybluecell 4&&16\\
\hline
C&&&&&20\\
\hline
Demand&11&15&14&10&50\\
\hline
\end{tabular}
\end{document}
您可以使用简称,以便于编写命令。
输出: