矩阵块的着色元素

矩阵块的着色元素

假设我有矩阵

A = [ a_11 a_12 a_13 a_14; a_21 a_22 a_23 a_24; a_31 a_23 _a33 a_34; ]

数字在哪里,我想用红色绘制块a_ij的元素。有没有一种简单的方法可以一次性绘制它们,而不是使用命令等?3 x 3A(1:3, 1:3)\textcolor{red}{a_11}\textcolor{red}{a_22}

答案1

TeX 是一种宏语言。冗长的表达式\textcolor{red}{a_{12}}可以用简单的宏定义来缩写,例如:

\documentclass{article}
\usepackage{amsmath}
\usepackage{color}
\begin{document}
  \[
    A =
    \def\ba#1#2{a_{#1#2}}
    \def\ra{\color{red}\ba}
    \begin{bmatrix}
      \ra11 & \ra12 & \ra13 & \ba14 \\
      \ra21 & \ra22 & \ra23 & \ba24 \\
      \ra31 & \ra32 & \ra33 & \ba34
    \end{bmatrix}
  \]
\end{document}

结果

答案2

更新

您可以声明一个包含颜色的新列类型:

\documentclass[table]{article}
\usepackage{xcolor}
\usepackage{array}

\newcolumntype{E}{>{\color{red}}c}

\begin{document}

\[
\left[
\begin{array}{*{3}{E}c}
1 & 2 & 3 & 0 \\
4 & 5 & 6 & 0 \\
7 & 8 & 9 & 0 
\end{array}
\right]
\]

\end{document}

在此处输入图片描述

这可以使用collcell

\documentclass[table]{article}
\usepackage{tikz}
\usepackage{collcell}

\newcommand\ColCell[1]{%
  \pgfmathparse{#1>0?1:0}%
    \ifnum\pgfmathresult=1\relax\color{red}\fi#1}

\newcolumntype{E}{>{\collectcell\ColCell}c<{\endcollectcell}}

\begin{document}

\[
\left[
\begin{array}{*{6}{E}}
1 & 2 & 3 & 4 & 0 \\
5 & 0 & 7 & 8 & 0 \\
1 & 2 & 0 & 4 & 0 \\
5 & 6 & 7 & 8 & 0 \\
\end{array}
\right]
\]

\end{document}

在此处输入图片描述

相关内容