решение1
Вот вариант с использованием TiкZ и matrix
библиотека.
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{matrix}
\begin{document}
\begin{tikzpicture}
\matrix (mymatrix) [matrix of nodes, nodes={draw, minimum size=6mm, outer sep=0pt}, column sep=-\pgflinewidth, row sep=-\pgflinewidth]
{ & 0 & 1\\
0 & 0 & 1\\
1 & 0 & 0\\};
\draw[->, shorten <=1mm, shorten >=1mm, looseness=1.2]
(mymatrix-2-1.north west)to[out=90, in=180]node[below right=-3pt]{+}(mymatrix-1-2.north west);
\end{tikzpicture}
\end{document}
Если вы хотите поместить это в макрос, вы должны использовать ampersand replacement
. Есть несколько способов использовать записи в качестве параметров.
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{matrix}
\newcommand{\mymatrix}[2]{
\begin{tikzpicture}
\foreach \a/\b/\c/\d/\e/\f/\g/\h in {#2}
\matrix (mymatrix) [matrix of nodes, nodes={draw, minimum size=6mm, outer sep=0pt},
column sep=-\pgflinewidth, row sep=-\pgflinewidth,
ampersand replacement=\&
]
{ \& \a \& \b\\
\c \& \d \& \e\\
\f \& \g \& \h\\};
\draw[->, shorten <=1mm, shorten >=1mm, looseness=1.2]
(mymatrix-2-1.north west)to[out=90, in=180]node[below right=-3pt]{#1}(mymatrix-1-2.north west);
\end{tikzpicture}
}
\begin{document}
\mymatrix{+}{0/1/0/0/1/1/1/0}\qquad\mymatrix{$\times$}{0/1/0/0/0/1/0/1}
\end{document}
решение2
Вот решение с {NiceArray}
использованием nicematrix
и Tikz.
\documentclass{article}
\usepackage{nicematrix,tikz}
\begin{document}
$\begin{NiceArray}{ccc}[hvlines,corners = NW]
& 0 & 1 \\
0 & 0 & 1 \\
1 & 0 & 0
\CodeAfter
\tikz [shorten > = 1pt, shorten <= 1pt]
\draw [->] (2-|1) to [bend left = 45] node [below right,outer sep = -4pt] {$+$} (1-|2) ;
\end{NiceArray}$
\end{document}
Вам потребуется несколько компиляций (из-за узлов PGF/Tikz).