Alternar colores con ocgx

Alternar colores con ocgx

Quiero usar el ocgxpaquete para crear un pdf con un botón que cambia su color al hacer clic en él de rojo a verde, de invisible a rojo (y así sucesivamente). Intenté lo siguiente:

\documentclass{beamer}
\usepackage{xcolor}
\usepackage{ocgx}
\begin{document}
\begin{frame}
\begin{ocg}{Bul01r}{ocg01r}{1}\actionsocg{ocg01g ocg01r}{}{}{\textcolor{red}{\textbullet}}\end{ocg} \hspace{-0.32cm}
\begin{ocg}{Bul01g}{ocg01g}{0}\actionsocg{ocg01g}{}{}{\textcolor{green}{\textbullet}}\end{ocg}
\end{frame}
\end{document}

Pero esto sólo permite cambiar de rojo a verde y de nuevo a rojo. ¿Cómo puedo obtener un botón con tres estados?

Respuesta1

Esto se hace convenientemente con elocgx2paquete que proporcionaGrupos de botones de radio( ocgopción de entorno radiobtngrp=<name>). De todos los OCG (capas de PDF) que pertenecen al mismo grupo de botones de opción, solo se puede habilitar uno a la vez, ocultando automáticamente el OCG previamente habilitado. Esto permite crear botones en los que se puede hacer clic con dependencia cíclica de una duración de ciclo arbitraria.

El siguiente ejemplo encadena estados rojo, verde, azul y sin color.

\documentclass{beamer}
\usepackage{xcolor}
\usepackage{ocgx2}

\begin{document}
\begin{frame}
  \makebox[0pt][l]{%
    \begin{ocg}[radiobtngrp=myBullets]{Bul01r}{ocg01r}{1}\showocg{ocg01g}{\textcolor{red}{\textbullet}}\end{ocg}%
  }%
  \makebox[0pt][l]{%
    \begin{ocg}[radiobtngrp=myBullets]{Bul01g}{ocg01g}{0}\showocg{ocg01b}{\textcolor{green}{\textbullet}}\end{ocg}%
  }%
  \makebox[0pt][l]{%
    \begin{ocg}[radiobtngrp=myBullets]{Bul01b}{ocg01b}{0}\showocg{ocg01x}{\textcolor{blue}{\textbullet}}\end{ocg}%
  }%
  \begin{ocg}[radiobtngrp=myBullets]{Bul01x}{ocg01x}{0}\showocg{ocg01r}{$\circ$}\end{ocg}%
\end{frame}
\end{document}

(Puede que sea necesario eliminar el *.auxprimero, si el ocgxpaquete se utilizó antes).


El mismo efecto también podría lograrse sin un grupo de botones de opción, usando el \actionsocg{}{}{}{}comando en lugar del más simple \showocg{}{}, como en la publicación original. Pero nuevamente, esto requiere el ocgx2paquete, que garantiza que los enlaces de conmutación que residen en las diferentes capas estén habilitados/deshabilitados correctamente de acuerdo con la visibilidad del OCG al que están asociados:

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% version without radio button group, using \actionsocg
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\documentclass{beamer}
\usepackage{xcolor}
\usepackage{ocgx2}

\begin{document}
\begin{frame}
  \makebox[0pt][l]{%
    \begin{ocg}{Bul01r}{ocg01r}{1}\actionsocg{}{ocg01g}{ocg01r}{\color{red}\textbullet}\end{ocg}%
  }%
  \makebox[0pt][l]{%
    \begin{ocg}{Bul01g}{ocg01g}{0}\actionsocg{}{ocg01b}{ocg01g}{\color{green}\textbullet}\end{ocg}%
  }%
  \makebox[0pt][l]{%
    \begin{ocg}{Bul01b}{ocg01b}{0}\actionsocg{}{ocg01x}{ocg01b}{\color{blue}\textbullet}\end{ocg}%
  }%
  \begin{ocg}{Bul01x}{ocg01x}{0}\actionsocg{}{ocg01r}{ocg01x}{$\circ$}\end{ocg}%
\end{frame}
\end{document}

información relacionada