Como fazer uma tabela com uma seta redonda ao redor da célula superior esquerda?

Como fazer uma tabela com uma seta redonda ao redor da célula superior esquerda?

Tudo está em questão. O resultado seria assim (desculpe minhas poucas habilidades de desenho):

mesa

Claro que fazer uma mesa não é o problema. Se isso puder ser feito facilmente com um pacote, prefiro fazê-lo em vez de apresentar uma solução no meu preâmbulo.

Responder1

Aqui está uma opção usando TikZ e a matrixbiblioteca.

insira a descrição da imagem aqui

\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}

Se você quiser colocar isso em uma macro, você deve usar ampersand replacement. Existem algumas maneiras de ter as entradas como parâmetros.

insira a descrição da imagem aqui

\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}

Responder2

Aqui está uma solução com {NiceArray}of nicematrixe 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}

Você precisa de várias compilações (por causa dos nós PGF/Tikz).

Saída do código acima

informação relacionada