将矩形绘制到数组中

将矩形绘制到数组中

我的MWE

\documentclass[a4paper,11pt]{article}

\begin{document}
\begin{equation}
\begin{array}{ccccc}
16\cdot I_1  & + & 11\cdot I_2  & =& 13\\
11\cdot I_1 & + & 16\cdot I_2 & =& 17
\end{array}
\end{equation}
\end{document}

我想要做的是画一个矩形来表示未知变量和已知系数。这个方程可能有 3 个或 4 个变量。下面是一个示例图。可以吗?

在此处输入图片描述

答案1

我确信有一个好的tikz方法可以做到这一点,但是在这里,我只是布置了一系列连续的列,并\fbox在相应的列周围添加了 es。

\documentclass[10pt]{article}
\usepackage{tabstackengine,xcolor}
\TABstackMath
\newcommand\redbox[1]{\textcolor{red}{\fbox{\textcolor{black}{#1}}}}
\begin{document}
\[
\TABbinary
\fboxsep=2pt
\fboxrule=1pt
\tabbedCenterstack{16\cdot\\11\cdot}
\redbox{\tabbedCenterstack{I_1\\I_1}}
\tabbedCenterstack{+11\cdot\\+16\cdot}
\redbox{\tabbedCenterstack{I_2\\I_2}}
\tabbedCenterstack{=\\=}
\redbox{\tabbedCenterstack{13\\17}}
\]
\end{document}

在此处输入图片描述

尽管我不使用带选项卡的列,但我还是使用\tabbedCenterstack来代替\Centerstack,这样我就可以使用\TABbinary添加{}到每一列每一侧的功能,从而确保=+和 的适当间距\cdot

答案2

您可以使用该hf-tikz包:

\documentclass{article}
\usepackage{amsmath,array}
\usepackage[norndcorners,customcolors,nofill]{hf-tikz}

\hfsetbordercolor{red!70}

\begin{document}

\begin{equation}
\tikzset{left offset=-0.02,right offset=0.02,disable rounded corners=true}
\begin{array}{@{} *{2}{ c @{} >{{}}c<{{}} @{} } c @{}}
16\cdot \tikzmarkin{A}I_1  & + & 11\cdot \tikzmarkin{B}I_2  & = & \tikzmarkin{C}13\\[1ex]
11\cdot I_1\tikzmarkend{A} & + & 16\cdot I_2\tikzmarkend{B} & = & 17\tikzmarkend{C}
\end{array}
\end{equation}

\end{document}

在此处输入图片描述

相关内容