矩阵的颜色对角线

矩阵的颜色对角线

我想给矩阵的对角线和非对角线元素着色:

我有:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{amssymb,amsmath,amsthm,enumitem}
\usepackage[a4paper, total={6in, 8in}]{geometry}
\usepackage{hyperref}


\usepackage{tikz}

\newcommand{\tikzmark}[2]{
    \tikz[overlay,remember picture,baseline] 
    \node[anchor=base] (#1) {$#2$};
}
\begin{document}

\begin{equation}
    \begin{pmatrix}
        \tikzmark{top}{A_{11}} & A_{12} & A_{13} & \cdots  & A_{1n} \\ 
        A_{21} & A_{22} & A_{23} & \cdots  & A_{2n} \\ 
        A_{31} & A_{32} & A_{33} & \cdots  & A_{3n} \\ 
        \vdots  & \vdots   & \vdots  & \vdots  & \vdots  \\ 
        A_{n1} & A_{n2} & A_{n3} & \cdots  & \tikzmark{bottom}{A_{nn}} \\ 
    \end{pmatrix}
\end{equation}
\begin{tikzpicture}[overlay,remember picture]
     \draw[opacity=.5,line width=4mm,] (top.center) -- (bottom.center);
\end{tikzpicture}

\end{document}

最终结果是:

在此处输入图片描述

但是,我想让所有变量都变成彩色,而不是从中间开始和结束。我该怎么做?

此致

答案1

\documentclass{article}
\usepackage{amsmath}
\usepackage{tikz}
\usetikzlibrary{tikzmark}
\begin{document}
\begin{equation}
\begin{pmatrix}
\tikzmarknode{top}{A_{11}} & A_{12} & A_{13} & \cdots  & A_{1n} \\ 
A_{21} & A_{22} & A_{23} & \cdots  & A_{2n} \\ 
A_{31} & A_{32} & A_{33} & \cdots  & A_{3n} \\ 
\vdots  & \vdots   & \vdots  & \vdots  & \vdots  \\ 
A_{n1} & A_{n2} & A_{n3} & \cdots  & \tikzmarknode{bottom}{A_{nn}} \\ 
\end{pmatrix}
\end{equation}
\begin{tikzpicture}[overlay, remember picture]
\draw[red, opacity=.5, line width=5mm, line cap=round] (top.north west) -- (bottom.south east);
\end{tikzpicture}
\end{document}

带红色对角线的矩阵

答案2

您可以为行的开始和结束指定一个锚点:

(top.north west) -- (bottom.south east)

除此之外,您还可以使用 和 移动绘图的开始和结束的位置xshiftyshift

([xshift=-3pt, yshift=3pt]top.center) -- ([xshift=3pt, yshift=-3pt]bottom.center)

答案3

供参考,以下是您可以使用 执行{pNiceArray}的操作nicematrix

\documentclass{article}
\usepackage{nicematrix,tikz}

\begin{document}

$\begin{pNiceArray}{cccw{c}{9mm}c}
\CodeBefore 
  \tikz \draw [red!30,line width=4.5mm] 
              (1-|1) -- (last-|last) ;
\Body
    A_{11} & A_{12} & A_{13} & \cdots  & A_{1n} \\ 
    A_{21} & A_{22} & A_{23} & \cdots  & A_{2n} \\ 
    A_{31} & A_{32} & A_{33} & \cdots  & A_{3n} \\ 
    \vdots  & \vdots   & \vdots  & \vdots  & \vdots  \\ 
    A_{n1} & A_{n2} & A_{n3} & \cdots  & A_{nn} \\ 
\end{pNiceArray}$

\end{document}

您需要进行多次编译(因为nicematrix在后台使用了 PGF/Tikz)。

上述代码的输出

相关内容