I need to create a slide with multiple tabulars and use arrow to point to elements inside those tabulars.
However, I'm having trouble to specify where tabulars, texts and arrows should appear. How can I do this?
My minimal non-working example follows:
\documentclass{beamer} % only frames
\usepackage{tikz}
\usetikzlibrary{shapes.geometric,positioning,matrix}
\newcommand{\tikzmark}[1]{\tikz[remember picture] \node[coordinate] (#1) {#1};}
\begin{document}
\begin{frame}\frametitle{Example}
\begin{tabular}{ccccc}
\tikzmark{col1}
\begin{tabular}{|c|}\hline
\tikzmark{elem1}2\\\hline
3\\\hline
7\\\hline
6\\\hline
1\\\hline
5\\\hline
4\\\hline
\end{tabular}&
\tikzmark{col2}
\begin{tabular}{|c|}\hline
\tikzmark{elem2}4\\\hline
2\\\hline
1\\\hline
3\\\hline
6\\\hline
7\\\hline
5\\\hline
\end{tabular}&
\tikzmark{mat}
\begin{tabular}{|c|c|c|c|}\hline
1&0&1&0\\\hline
1&0&0&1\\\hline
0&1&0&1\\\hline
0&1&0&1\\\hline
0&1&0&1\\\hline
1&0&1&0\\\hline
1&0&1&0\\\hline
\end{tabular}&
\tikzmark{sigMat}
\begin{tabular}{|c|c|c|c|}\hline
\tikzmark{elem3}2&1&2&1\\\hline
2&1&4&1\\\hline
1&2&1&2\\\hline
\end{tabular}
\end{tabular}
\begin{tikzpicture}[remember picture]
\node [above=.01cm of col2] {\tiny Text Above columns};
\node[above=.01cm of mat] {\tiny Above 1st matrix};
\node[above=.1cm of sigMat]{\tiny Above 2nd matrix};
\node[above=2cm of mat,text width=6cm] (txt1) {Arrows go from here to...};
\path[draw,->] (txt1.south west) -- node {goes to 1st elem} (elem1);
\path[draw,->] (txt1.south) -- node {goes to 2nd elem} (elem2);
\path[draw,->] (txt1.south east) -- node {goes to 3rd elem} (elem3);
\end{tikzpicture}
\end{frame}
\end{document}
This results in the following slide:
tikzmark
. And you place the marks at weird places, and the output is a result of this. Why did you put\tikzmark{mat}
where you put it?\tikzmark{mat}
there to be a point referring to the 7x4 matrix.overlay
in thetikzpicture
. It needs to become\begin{tikzpicture}[remember picture,overlay]
.