Farben umschalten mit ocgx

Farben umschalten mit ocgx

Ich möchte das Paket verwenden, ocgxum ein PDF mit einem Button zu erstellen, der beim Anklicken seine Farbe von rot über grün zu unsichtbar zu rot (und so weiter) ändert. Ich habe Folgendes versucht:

\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}

Dies ermöglicht jedoch nur den Wechsel von Rot auf Grün und wieder zurück auf Rot. Wie kann ich einen Button mit drei Zuständen erhalten?

Antwort1

Dies geschieht bequem mit democgx2Paket, das bietetOptionsfeldgruppen( ocgUmgebungsoption radiobtngrp=<name>). Von allen OCGs (PDF-Ebenen), die zur selben Optionsfeldgruppe gehören, kann immer nur eine aktiviert werden, wodurch die zuvor aktivierte OCG automatisch ausgeblendet wird. Dies ermöglicht das Erstellen anklickbarer Schaltflächen mit zyklischer Abhängigkeit beliebiger Zykluslänge.

Das folgende Beispiel verkettet die Zustände Rot, Grün, Blau und Keine Farbe.

\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}

(Es kann erforderlich sein, das *.auxerste zu löschen, wenn das ocgxPaket zuvor verwendet wurde.)


Derselbe Effekt könnte auch ohne eine Optionsfeldgruppe erreicht werden, indem man den \actionsocg{}{}{}{}Befehl anstelle des einfacheren verwendet \showocg{}{}, wie im Originalbeitrag. Aber auch hier ist das ocgx2Paket erforderlich, das sicherstellt, dass die auf den verschiedenen Ebenen befindlichen Schaltlinks entsprechend der Sichtbarkeit der OCG, mit der sie verknüpft sind, korrekt aktiviert/deaktiviert werden:

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 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}

verwandte Informationen