
Ich möchte ein interaktives Diagramm mit der Maus erstellen. Beispielsweise soll der entsprechende Bereich hervorgehoben werden, wenn die Maus über eine Textbeschriftung fährt. Unten sehen Sie ein Beispieldiagramm:
\documentclass[border=2mm]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[yscale=-1,>=latex]
\foreach \a/\b/\c/\d/\desc [count=\j] in {
0/0/5/8/box1,
0/0/5/8/box2,
1/1/4/7/box3,
0/0/3/6/box4
}{
\path (-2,0) ++(0,\j) coordinate (A);
\draw (\a,\b) rectangle (\c,\d);
\draw[<-,red] (\a,\b) -- (A) node[anchor=east,pos=1] {\desc};
}
\end{tikzpicture}
\end{document}
Wenn Sie mit der Maus über Box1 fahren, sollte der Bereich (0,0) - (5,8) hervorgehoben werden. Ich weiß, dass Animationen unterstützt werden, aber sie sind nicht interaktiv (Steuerung über die Mausposition).
Antwort1
Hier ein Beispiel mit dem ocgx2 Paket. Die Datei muss zweimal kompiliert werden und erfordert den PDF Reader Acrobat Reader, Foxit Reader oder evince. Um eine Zone zu aktivieren, muss man auf den Namen der Box klicken.
Vielen Dank an @AlexG, den Betreuer des ocgx2
Pakets, für die Angabe in einem Kommentar, wie sichergestellt werden kann, dass die Aktivierung einer Ebene die anderen mit der Option deaktiviert opts={radiobtngrp=myBoxes}}
.
\documentclass[border=2mm]{standalone}
\usepackage[tikz]{ocgx2}
\begin{document}
\begin{tikzpicture}[yscale=-1,>=latex]
\foreach \a/\b/\c/\d/\desc [count=\j] in {
0/0/5/8/box1,
0/0/2/4/box2,
1/1/4/7/box3,
0/0/3/6/box4
}{
\path (-2,0) ++(0,\j) coordinate (A);
\draw (\a,\b) rectangle (\c,\d);
\begin{scope}[ocg={name=box\j,ref=box\j,status=invisible,opts={radiobtngrp=myBoxes}}]
\fill[red!30] (\a,\b) rectangle (\c,\d);
\end{scope}
\draw[<-,red] (\a,\b) -- (A) node[anchor=east,pos=1,switch ocg=box\j] {\desc};
}
\end{tikzpicture}
\end{document}