ocgxで色を切り替える

ocgxで色を切り替える

ocgxこのパッケージを使用して、クリックすると色が赤から緑、非表示、赤 (など) に変わるボタンを含む PDF を作成したいと思います。次のことを試しました。

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

しかし、これは赤から緑へ、そして再び赤へ変化するだけです。 3 つの状態を持つボタンを取得するにはどうすればよいでしょうか?

答え1

これは、ocgx2パッケージはラジオボタングループ(ocg環境オプションradiobtngrp=<name>)。同じラジオ ボタン グループに属するすべての OCG (PDF レイヤー) のうち、一度に有効にできるのは 1 つだけです。有効にしていた OCG は自動的に非表示になります。これにより、任意のサイクル長の循環依存関係を持つクリック可能なボタンを構築できます。

次の例では、赤、緑、青、無色状態を連鎖させます。

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

*.aux(パッケージが以前に使用されていた場合は、最初のものを削除する必要がある場合がありますocgx。)


\actionsocg{}{}{}{}ラジオ ボタン グループを使用せずに、元の投稿のように、より単純な の代わりに コマンドを使用して、同じ効果を実現することもできます\showocg{}{}。ただし、この場合もocgx2パッケージが必要であり、これにより、異なるレイヤーにあるスイッチング リンクが、関連付けられている OCG の可視性に応じて正しく有効化/無効化されます。

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

関連情報