向 NiceTabular 添加弯曲箭头

向 NiceTabular 添加弯曲箭头

我没能使用 TikZ 将红色弯曲箭头添加到表格中。我感到很惭愧…… :-)

我并不是在寻找自动化解决方案。

在此处输入图片描述

这是仅适用于表格的代码。

\documentclass[a4paper, 13pt]{scrartcl}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

\usepackage{nicematrix}


\begin{document}
        \begin{NiceTabular}{r|l}
            $k$ & $u(k)$
            \\ \hline
            $0$ & $10$
            \\ \hline
            $1$ & $8,\!5    = 0,\!5 \times 10 + 3,\!5$
            \\ \hline
            $2$ & $7,\!75   = 0,\!5 \times 8,\!5 + 3,\!5$
            \\ \hline
            $3$ & $7,\!375  = 0,\!5 \times 7,\!75 + 3,\!5$
            \\ \hline
            $4$ & $7,\!1875 = 0,\!5 \times 10 + 3,\!5$
% Not good even with a straight arrow !
%           \CodeAfter
%           \begin{tikzpicture}
%               \draw[->, red] (2-2) edge (3-2);
%               \draw[->, red] (3-2) edge (4-2);
%           \end{tikzpicture}
        \end{NiceTabular}
\end{document}

答案1

改编

  • 使用foreach循环实现自动化(为所有线创建相同的箭头)
  • basiceval在 foreach 循环中添加了用于简单索引计算的命令
  • 设置选项create-large-nodesNiceTabular参见手动的,部分:“‘中型节点’和‘大型节点’”)
  • 使用.east节点的和xshiftyshift进行精细定位
  • 更改类选项13ptfontsize=13pt解决警告

笔记

  • 您还可以使用或作为全局解决方案,而不是,\!在数学模式下使用 删除逗号后的空格(但如果需要,则必须在逗号后添加空格)。{,}\usepackage{icomma}

代码

\documentclass[a4paper, fontsize=13pt]{scrartcl}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

\usepackage{nicematrix}

\usepackage{tikz}

\def\basiceval#1{\the\numexpr#1\relax}

\begin{document}
    \begin{NiceTabular}[create-large-nodes]{r|l}
        $k$ & $u(k)$
        \\ \hline
        $0$ & $10$
        \\ \hline
        $1$ & $8,\!5    = 0,\!5 \times 10 + 3,\!5$
        \\ \hline
        $2$ & $7,\!75   = 0,\!5 \times 8,\!5 + 3,\!5$
        \\ \hline
        $3$ & $7,\!375  = 0,\!5 \times 7,\!75 + 3,\!5$
        \\ \hline
        $4$ & $7,\!1875 = 0,\!5 \times 10 + 3,\!5$

        \CodeAfter
        \begin{tikzpicture}
            \foreach \i in {2, ..., 5} {
                \draw[->, red] ([xshift=2mm, yshift=-.5mm] \i-2-large.east) to [bend left=50] ([xshift=2mm, yshift=.5mm] \basiceval{\i+1}-2-large.east);
            }
       \end{tikzpicture}
    \end{NiceTabular}
\end{document}

结果

在此处输入图片描述

答案2

只是为了留下另一种可能性(因为以前的答案已经被接受),知道nicematrix在表格中的线相交处和单元格的中心处创建节点,您可以轻松访问它们:

\documentclass[a4paper, 12pt]{scrartcl}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{tikz}

\usepackage{nicematrix}


\begin{document}
        \begin{NiceTabular}{r|l}[name=A]
            $k$ & $u(k)$
            \\ \hline
            $0$ & $10$
            \\ \hline
            $1$ & $8,\!5    = 0,\!5 \times 10 + 3,\!5$
            \\ \hline
            $2$ & $7,\!75   = 0,\!5 \times 8,\!5 + 3,\!5$
            \\ \hline
            $3$ & $7,\!375  = 0,\!5 \times 7,\!75 + 3,\!5$
            \\ \hline
            $4$ & $7,\!1875 = 0,\!5 \times 10 + 3,\!5$
            
            \CodeAfter
            \begin{tikzpicture}
                \foreach \i in {1.5,2.5,...,5.5} 
                    {
                    \pgfmathsetmacro{\j}{\i+1};
                    \draw[red,->] ([yshift=-2pt]\i-|3) to[out=-20,in=20,looseness=2] ([yshift=2pt]\j-|3);
                    }
            \end{tikzpicture}
        \end{NiceTabular}
        
\end{document}

large nodes顺便说一句,这种方法可以阻止您使用,这也是一种好方法。

九字方格和箭头

相关内容