Im Anschluss daran Post. Ich möchte Pfeile mit Tabellen verwenden. Meine Tabellen sind jedoch zu groß und ich möchte sie mithilfe von neu skalieren . Wenn ich jedoch in den bearbeiteten Tabellen scalebox
die Position „a“ verwende , ist die Position falsch. scheint sich an den Punkt zu erinnern, bevor die Tabelle bearbeitet wird.tikzmark
scalebox
tikzmark
scalebox
Haben Sie eine Lösung für dieses Problem?
Hier ist ein Beispiel:
\documentclass[pdf]{beamer}
\mode<presentation>{}
\usepackage[english]{babel}
\usepackage{color, colortbl}
\usepackage{tikz}
\usetikzlibrary{tikzmark, positioning, fit, shapes.misc}
\usetikzlibrary{decorations.pathreplacing, calc}
\tikzset{brace/.style={decorate, decoration={brace}},
brace mirrored/.style={decorate, decoration={brace,mirror}},
}
\newcolumntype{g}{>{\columncolor{red}}c}
\begin{document}
\begin{frame}
\begin{tabular}{ | l | l |}
\hline
letter & number \\ \hline
\tikzmark{x}A & 1\tikzmark{a} \\ \hline
A & 2 \\ \hline
\tikzmark{y}A & 1\tikzmark{b} \\ \hline
\tikzmark{w}B & 1 \\ \hline
\tikzmark{z}B & 2 \\ \hline
\end{tabular}
\begin{tikzpicture}[remember picture, overlay]
\draw ($(pic cs:a) + (3.5em,0)$) edge[bend left=60,-stealth] ($(pic cs:b) + (3.5em,0)$) node [midway, right, xshift=5pt, yshift=5pt] {Duplicate};
\draw[brace mirrored, thick] ($(pic cs:x) + (-8pt,1ex)$)--($(pic cs:y) + (-8pt,-1ex)$) node [midway, left] {A};
\draw[brace mirrored, thick] ($(pic cs:w) + (-8pt,1ex)$)--($(pic cs:z) + (-8pt,-1ex)$) node [midway, left] {B};
\end{tikzpicture}
\tikzset{
every picture/.style={remember picture,baseline},
every node/.style={
inner sep=0pt,
anchor=base,
minimum width=1.8cm,
align=center,
text depth=.25ex,
outer sep=1.5pt},
every path/.style={
thick,
rounded corners
}
}
\begin{table}
\scalebox{0.7}{
\centering
\begin{tabular}{|c|c|c|g|c|}
\hline
bla & bla & bla & $b_1$\tikzmark{c}\\
bla & bla & bla & bla \\\hline
bla & bla & bla & bla \\\hline
bla & bla & bla & bla \\\hline
bla & bla & bla & bla \\\hline
\end{tabular}
}
\end{table}
\begin{tikzpicture}[remember picture,overlay]
\node [right=2cm,above=2cm,minimum width=0pt] at ({pic cs:c}) (A) {A};
\draw [<-,out=5,in=180] ([xshift=0pt]{pic cs:c}) to (A);
\end{tikzpicture}
\end{frame}
\end{document}
Antwort1
Alte Frage, aber hier sind zwei mögliche Problemumgehungen, die beide die Nichtverwendung beinhalten \scalebox
.
Reduzieren Sie die Größe der Tabelle, indem Sie die Schriftgröße verringern und/oder
\tabcolsep
statt mit\scalebox
. Dann\tikzmark
funktioniert es einwandfrei.Platzieren Sie es
tabular
in einem TikZnode
mitscale=X
den Optionen und zeichnen Sie den Pfeil relativ zu den Knotenankern. Dies ist\tikzmark
jedoch nicht so bequem wie mit der Lösung, da Sie den Endpunkt des Pfeils manuell herausfinden müssen.
\documentclass[pdf]{beamer}
\mode<presentation>{}
\usepackage[english]{babel}
\usepackage{color, colortbl}
\usepackage{tikz}
\usetikzlibrary{tikzmark, positioning, fit, shapes.misc}
\usetikzlibrary{decorations.pathreplacing, calc}
\tikzset{brace/.style={decorate, decoration={brace}},
brace mirrored/.style={decorate, decoration={brace,mirror}},
}
\newcolumntype{g}{>{\columncolor{red}}c}
\begin{document}
\begin{frame}
\begin{tabular}{ | l | l |}
\hline
letter & number \\ \hline
\tikzmark{x}A & 1\tikzmark{a} \\ \hline
A & 2 \\ \hline
\tikzmark{y}A & 1\tikzmark{b} \\ \hline
\tikzmark{w}B & 1 \\ \hline
\tikzmark{z}B & 2 \\ \hline
\end{tabular}
\begin{tikzpicture}[remember picture, overlay]
\draw ($(pic cs:a) + (3.5em,0)$) edge[bend left=60,-stealth] ($(pic cs:b) + (3.5em,0)$) node [midway, right, xshift=5pt, yshift=5pt] {Duplicate};
\draw[brace mirrored, thick] ($(pic cs:x) + (-8pt,1ex)$)--($(pic cs:y) + (-8pt,-1ex)$) node [midway, left] {A};
\draw[brace mirrored, thick] ($(pic cs:w) + (-8pt,1ex)$)--($(pic cs:z) + (-8pt,-1ex)$) node [midway, left] {B};
\end{tikzpicture}
\tikzset{
every picture/.style={remember picture,baseline},
every node/.style={
inner sep=0pt,
anchor=base,
minimum width=1.8cm,
align=center,
text depth=.25ex,
outer sep=1.5pt},
every path/.style={
thick,
rounded corners
}
}
\begin{table}
\scriptsize % or \tiny or \footnotesize
\setlength\tabcolsep{2pt}
\centering
\begin{tabular}{|c|c|c|g|c|}
\hline
bla & bla & bla & $b_1$\tikzmark{c} \\
bla & bla & bla & bla \\\hline
bla & bla & bla & bla \\\hline
bla & bla & bla & bla \\\hline
bla & bla & bla & bla \\\hline
\end{tabular}
\end{table}
\begin{tikzpicture}[remember picture,overlay]
\node [right=2cm,above=2cm,minimum width=0pt] at ({pic cs:c}) (A) {A};
\draw [<-,out=5,in=180] ([xshift=0pt]{pic cs:c}) to (A);
\end{tikzpicture}
\end{frame}
\begin{frame}
\begin{tabular}{ | l | l |}
\hline
letter & number \\ \hline
\tikzmark{x2}A & 1\tikzmark{a2} \\ \hline
A & 2 \\ \hline
\tikzmark{y2}A & 1\tikzmark{b2} \\ \hline
\tikzmark{w2}B & 1 \\ \hline
\tikzmark{z2}B & 2 \\ \hline
\end{tabular}
\begin{tikzpicture}[remember picture, overlay]
\draw ($(pic cs:a2) + (3.5em,0)$) edge[bend left=60,-stealth] ($(pic cs:b2) + (3.5em,0)$) node [midway, right, xshift=5pt, yshift=5pt] {Duplicate};
\draw[brace mirrored, thick] ($(pic cs:x2) + (-8pt,1ex)$)--($(pic cs:y2) + (-8pt,-1ex)$) node [midway, left] {A};
\draw[brace mirrored, thick] ($(pic cs:w2) + (-8pt,1ex)$)--($(pic cs:z2) + (-8pt,-1ex)$) node [midway, left] {B};
\end{tikzpicture}
\tikzset{
every picture/.style={remember picture,baseline},
every node/.style={
inner sep=0pt,
anchor=base,
minimum width=1.8cm,
align=center,
text depth=.25ex,
outer sep=1.5pt},
every path/.style={
thick,
rounded corners
}
}
\begin{table}
\centering
\begin{tikzpicture}
\node [inner sep=0pt,scale=0.7] (table) {%
\begin{tabular}{|c|c|c|g|c|}
\hline
bla & bla & bla & $b_1$ \\
bla & bla & bla & bla \\\hline
bla & bla & bla & bla \\\hline
bla & bla & bla & bla \\\hline
bla & bla & bla & bla \\\hline
\end{tabular}};
\begin{scope}[overlay]
\node [right=2cm,above=2cm,minimum width=0pt] at (table.north east) (A) {A};
\draw [<-,out=5,in=180] ([xshift=-5pt,yshift=-8pt]table.north east) to (A);
\end{scope}
\end{tikzpicture}
\end{table}
\end{frame}
\end{document}