Как сделать таблицу с круглой стрелкой вокруг верхней левой ячейки?

Как сделать таблицу с круглой стрелкой вокруг верхней левой ячейки?

Все дело в вопросе. Результат будет выглядеть так (простите за мои плохие навыки рисования):

стол

Составление таблицы, конечно, не проблема. Если это можно легко сделать с помощью пакета, я бы предпочел сделать это вместо того, чтобы делать решение в моей преамбуле.

решение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).

Вывод кода выше

Связанный контент