
Deseo crear un gráfico interactivo con el mouse, por ejemplo, si pasa el mouse sobre alguna etiqueta de texto, luego resalte el área relacionada. A continuación se muestra un gráfico de ejemplo:
\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}
Si pasa el mouse sobre el cuadro 1, debería resaltar el área (0,0) - (5,8). Conozco soporte de animación pero no es interactivo (control mediante la posición del mouse).
Respuesta1
A continuación se muestra un ejemplo utilizando el paquete ocgx2. El archivo debe compilarse dos veces y requiere el lector de PDF Acrobat Reader, Foxit Reader o evince. Para activar una zona es necesario hacer clic en el nombre de la casilla.
Muchas gracias a @AlexG, mantenedor del ocgx2
paquete, por especificar en el comentario cómo asegurarse de que la activación de una capa deshabilite las demás con la opción 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}