我想要一个与接下来的两个数字中的任何一个匹配的 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 节点)。