如何在线性方程组中添加圆圈和箭头?

如何在线性方程组中添加圆圈和箭头?

我如何编写一个线性方程组,使用圆圈和箭头来指示每行应添加的内容。

这是我目前所拥有的:

$S = \begin{cases}
    x_1+2x_2 - 2x_3 = 1 \\
    2x_1 - x_2 + x_3 = 3 \\
    x_1 + 3x_2 + x_3 = 1
\end{cases}$

在此处输入图片描述

它看起来应该是这样的:

在此处输入图片描述

答案1

使用 TikZ 的一个选项:

新版本:

\documentclass{article}
\usepackage{amsmath}
\usepackage{systeme}
\usepackage{tikz}

\newcounter{tmp}

\newcommand\tikzmark[1]{%
\tikz[remember picture,baseline=-0.65ex]
  \node[inner sep=0,outer sep=0] (#1){};%
}

\newcommand\mess[4][25pt]{%
\stepcounter{tmp}%
\begin{tikzpicture}[remember picture,overlay,>=latex,xshift=#1,cyan]
  \node[circle,draw,cyan,inner sep=2pt] at ([xshift=#1]#2) (a\thetmp) {$#4$};
  \draw[->] (a\thetmp.south) |- (#3);
\end{tikzpicture}%
}

\begin{document}

\[
S = 
\systeme{x_1+2x_2 - 2x_3 = 1 \tikzmark{a},
    2x_1 - x_2 + x_3 = 3 \tikzmark{b},
    x_1 + 3x_2 + x_3 = 1 \tikzmark{c}}
\]

\mess{a}{b}{-2}
\mess[55pt]{a}{c}{-1}

\end{document}

解释:

首先,使用 为相关线条放置一些标记\tikzmark,然后使用\mess命令添加带有箭头的圆圈; 的三个强制参数\mess是初始标记的字符串、最终标记的字符串和圆圈内要使用的文本。可选参数控制水平分隔的长度。

还请注意使用systeme包,以便方程组得到很好的排版。

由于代码需要一些内部计算,因此需要两到三次运行才能使元素稳定下来。

在此处输入图片描述

第一个版本

\documentclass{article}
\usepackage{amsmath}
\usepackage{tikz}

\newcommand\mess[2][20pt]{%
\begin{tikzpicture}[overlay,>=latex,yshift=22pt,xshift=#1,cyan]
  \node[circle,draw,cyan,inner sep=2pt] (a) {$#2$};
  \draw[->,shorten >= 3pt] (a.south) |- ([yshift=-9pt,xshift=-#1]a.south);
\end{tikzpicture}%
}

\begin{document}

\[
S = \begin{cases}
    \phantom{0}x_1+2x_2 - 2x_3 = 1 \\
    2x_1 - \phantom{0}x_2 + \phantom{0}x_3 = 3 \mess{-2}\\
    \phantom{0}x_1 + 3x_2 + \phantom{0}x_3 = 1 \mess[40pt]{-1}
\end{cases}
\]

\end{document}

在此处输入图片描述

的强制参数\mess将写在圆形节点中;可选参数允许控制箭头水平部分的长度。

相关内容