我怎样才能在矩阵中的某一列周围绘制一个彩色框,并带有箭头和如下文本:
这是我目前拥有的代码:
\documentclass[11pt]{book}
\usepackage{amsmath,amsfonts,amssymb,amsthm}
\makeatletter
\renewcommand*\env@matrix[1][*\c@MaxMatrixCols c]{%
\hskip -\arraycolsep
\let\@ifnextchar\new@ifnextchar
\array{#1}}
\makeatother
\usepackage{tikz}
\begin{document}
\begin{equation}
\begin{bmatrix}[cccc|c]
1 & 0 & -1 & 0 & 0 \\
0 & 1 & 2 & 0 & 0 \\
0 & 0 & 0 & 1 & 0
\end{bmatrix}\\
\end{equation}
\end{document}
答案1
最简单的方法是将矩阵写为 TikZ 矩阵并添加所需的列框并注释:
\documentclass[11pt]{book}
\usepackage{amsmath,amsfonts,amssymb,amsthm}
\usepackage{tikz}
\usetikzlibrary{arrows.meta,bending,matrix,positioning}
\begin{document}
\begin{equation}
\begin{tikzpicture}[
node distance=1mm and 0mm,
baseline]
\matrix (M1) [matrix of nodes,{left delimiter=[},{right delimiter=]}]
{
1 & 0 & -1 & 0 & 0 \\
0 & 1 & 2 & 0 & 0 \\
0 & 0 & 0 & 1 & 0 \\
};
\draw (M1-1-4.north east) -- (M1-3-4.south east);
\draw[red,very thick]
(M1-1-3.north west) -| (M1-3-3.south east) -| (M1-1-3.north west);
\node (fv) [below right=of M1.south east,align=left,
font=\sffamily\bfseries] {free\\variable};
\draw[blue!60,very thick,shorten >=1mm,-{Stealth[bend]}]
(fv.west) to [out=180,in=270] (M1-3-3.south);
\end{tikzpicture}
\end{equation}
\end{document}