在表格中的两个单元格之间放置一个 Tikz 向下箭头,同时保持对齐

在表格中的两个单元格之间放置一个 Tikz 向下箭头,同时保持对齐

我想要一个与接下来的两个数字中的任何一个匹配的 tikz 向下箭头:

在此处输入图片描述

在此处输入图片描述

我使用 tikz 的代码放置了箭头,但破坏了第一列中元素的对齐。代码:

\documentclass{article}
\usepackage{booktabs,tikz}
\newcommand\tikzmark[1]{\tikz[remember picture] \node (#1) {};}
\begin{document}
\begin{tabular}{lrr}
  \toprule
  col1 & col2 & col3 \\
  \midrule
  \tikzmark{a} a  & 10 & 0 \\
  b & 4 & 6 \\
  a & 7 & 3 \\
  \tikzmark{b}b  & 6 & 4 \\
  \bottomrule
\end{tabular}
\tikz[remember picture,overlay] \draw[->] (a.west-| b.west) -- (b.west);
\end{document}

结果表:

在此处输入图片描述

答案1

您不需要重新发明轮子,因为您已经有了这个tikzmark库,它非常有效。 表格中的箭头

\documentclass{article}
\usepackage{booktabs,tikz}
\usetikzlibrary{tikzmark}

\begin{document}
    \begin{tabular}{lrr}
      \toprule
      col1 & col2 & col3 \\
      \midrule
      \tikzmarknode{a}{a}  & 10 & 0 \\
      b & 4 & 6 \\
      a & 7 & 3 \\
      \tikzmarknode{b}{b}  & 6 & 4 \\
      \bottomrule
    \end{tabular}
    \tikz[remember picture,overlay] \path(a) --++ (-10pt,0) coordinate (aux) edge[->] (aux|-b);
\end{document}

答案2

根据 chsk 的建议,这里有一个解决方案nicematrix

\documentclass{article}
\usepackage{booktabs,tikz}
\usepackage{nicematrix}

\begin{document}
\begin{NiceTabular}{crr}[create-medium-nodes]
  \toprule
  col1 & col2 & col3 \\
  \midrule
  a  & 10 & 0 \\
  bbb & 4 & 6 \\
  a & 7 & 3 \\
  bb  & 6 & 4 \\
  \bottomrule
\CodeAfter
  \tikz \draw [->] ([xshift=-1mm]2-1-medium.west) -- ([xshift=-1mm]5-1-medium.west) ; 
\end{NiceTabular}
\end{document}

您需要多次编译(因为 PGF/Tikz 节点)。

上述代码的输出

相关内容