使用 tikzmark 在 tabularx 中列之间的箭头

使用 tikzmark 在 tabularx 中列之间的箭头

我想要一个包含三列的表格,并在表格的行之间添加一些箭头。因此,这是我的代码:

\documentclass{article}
\usepackage{tabularx}
\usepackage{tikz}
\newcommand{\tm}[1]{\tikz[overlay, remember picture,
   baseline=(#1.base), anchor=west] \node [inner sep=0pt] (#1) {};}

\begin{document}

\begin{table}[ht]
\begin{tabularx}{\linewidth}{ c|c|c }
    \ul{livedb} & \ul{app code} & \ul{intowodw fact.podio\_orders only} \\
    \hline
    \hline
    \ul{property table} & & \\
    id \tm{A} & \tm{1} property.id or id & \\
    country\_id \tm{B} & \tm{2} property.country\_id & \\
    name \tm{C} & \tm{3} property.name & \\
\end{tabularx}
\caption{Caption}\label{tab:danos}
\begin{tikzpicture}[overlay, remember picture]
   \draw[<->] (A) edge (1)
              (B) edge (2)
              (C) edge (3);
\end{tikzpicture}
\end{table}
\end{document}

但这就是我所拥有的,我想将箭头与文本对齐,但我遇到了麻烦。

在此处输入图片描述

你知道该怎么做吗?你能帮助我吗?

最好的

答案1

像这样?

在此处输入图片描述

在图书馆的帮助下tikznode

\documentclass{article}
\usepackage{tabularx}
\usepackage{tikz}
\usetikzlibrary{tikzmark}       % new

\begin{document}
    \begin{table}[ht]
\begin{tabularx}{\linewidth}{ c|c|c }
livedb      & app code  & intowodw fact.podio\_orders only    \\
    \hline
property table          &                                       &   \\
\tikzmarknode{a1}{id}   & \tikzmarknode{a2}{property.id or id}  &   \\
\tikzmarknode{b1}{country\_id}   & \tikzmarknode{b2}{property.country\_id}    & \\
\tikzmarknode{c1}{name} & \tikzmarknode{c2}{property.name}      &   \\
\end{tabularx}
%
\begin{tikzpicture}[overlay, remember picture,
                    every edge/.append style={<->, shorten >=2pt, shorten <=2pt}]
\draw   (a1) edge (a2)
        (b1) edge (b2)
        (c1) edge (c2);
\end{tikzpicture}
\end{table}
\end{document}

注意:要获得正确的结果,您需要进行两次编译。您可能需要强制进行第一次编译,因为(最近在 CTAN 上)tikznode库中存在错误,或者您可以尝试在“github”上找到其可用版本,那里有修复程序。

相关内容