我想从节点内的表格单元格画一条线。
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{positioning}
\newcommand{\mk}[2]{\tikz \node (#1) {#2};}%
\begin{document}
\begin{tikzpicture}[>=latex]
\node (N1) [shape=rectangle] {
\begin{tabular}{|c|c|c|}
\multicolumn{3}{c}{title} \\ \hline
\mk{A}{11} & 12 & 13 \\ \hline
21 & 22 & 23 \\ \hline
\end{tabular}
};
\node[right=1cm of N1,draw] (N2) {X};
\draw[<->,red] (A) -- ([yshift=1cm]A) -| (N2);
\end{tikzpicture}
\end{document}
但:
答案1
您的方法嵌套了tikzpicture
s,这是不受支持的。我可以看到两个明显的选择:
- 使用
tikzmark
s\subnode
。 - 用一个
matrix
。
他们来了
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{positioning,tikzmark}
\begin{document}
\begin{tikzpicture}[>=latex,remember picture]
\node (N1) [shape=rectangle] {
\begin{tabular}{|c|c|c|}
\multicolumn{3}{c}{title} \\ \hline
\subnode{A}{11} & 12 & 13 \\ \hline
21 & 22 & 23 \\ \hline
\end{tabular}
};
\node[right=1cm of N1,draw] (N2) {X};
\draw[<->,red] (A.north) -- ++(0,0.5) -| (N2);
\end{tikzpicture}
\end{document}
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{positioning,matrix}
\begin{document}
\begin{tikzpicture}[>=latex]
\path node[matrix,matrix of nodes,label=above:title,
cells={nodes={draw}},
column sep=-\pgflinewidth/2,row sep=-\pgflinewidth/2]
(N)
{ 11 & 12 & 13 \\
21 & 22 & 23 \\
};
\node[right=1cm of N-2-3,draw] (N2) {X};
\draw[<->,red] (N-1-1) -| (N2);
\end{tikzpicture}
\end{document}