答案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 节点)。