Tikz & OCG: 異なるレイヤーを循環するボタンを作成する

Tikz & OCG: 異なるレイヤーを循環するボタンを作成する

押すと OCG レイヤーのセットが循環する OCG ボタンが欲しいです。

私は、それぞれが他のボタンを切り替える自己参照 OCG ボタンの使用を試しました ( ありとなしの両方を試しましたradiobtngrp)。主な問題は、オフに切り替えてもクリック可能な領域が残っているため、クリックすると一番上のボタンしか切り替えられないことです。以下は 2 つのレイヤーの例です (ただし、可能であればもっとレイヤーを増やしたいです)。

\documentclass{article}

\usepackage[tikz]{ocgx2}
\tikzstyle{button}=[minimum width=15mm, rounded corners,  draw=white!50!black!100,  bottom color=white]

\begin{document}

\begin{center}
\begin{tikzpicture}
    \begin{ocg}[radiobtngrp=myRadioButtons]{OCG 0}{1}{1}
        \node[button, hide ocg=1, show ocg=2] (n1) at (0,0) {$Button 1$};
    \end{ocg}
    \begin{ocg}[radiobtngrp=myRadioButtons]{OCG 1}{2}{0}
        \node[button, hide ocg=2, show ocg=1] (n2) at (0.5,0){$Button 2$};
    \end{ocg}
\end{tikzpicture}
\end{center}
\end{document}

これを機能させることは可能ですか? あるいは、特定のレイヤーを切り替えるたびにクリックされるたびに増加するカウンターが関連付けられた単一のボタンを作成することは可能ですか?

答え1

Acrobat Reader は現在、無効にしようとしている PDF レイヤーに配置されているインタラクティブ要素 (リンク、フォーム フィールドなど) のマウスに反応する領域とそのタイプセット コンテンツを正しく非表示にする唯一の PDF ビューアです。

PDF 仕様によれば、PDF 注釈は/OC <ocg object ref>注釈辞書にエントリを追加することでレイヤー対応になります。pkg は、ocgx2PDF レイヤーに配置されているレイヤー切り替えコマンドに対してこれを自動的に行います。AR 以外のすべての PDF ビューアはこのエントリを無視しているようですが、これは明らかにそれらのビューアのバグです。

PDFビューアでこの機能を正しく実装すると、複数次の例のように、ページ上の同じ場所にあるレイヤー切り替えリンクを使用して PDF レイヤーを切り替えることができます。

\documentclass[margin=5]{standalone}

\usepackage[tikz]{ocgx2}
\tikzstyle{button}=[minimum width=15mm, rounded corners,  draw=white!50!black!100,  bottom color=white]

\begin{document}

\begin{tikzpicture}
  \begin{scope}[ocg={name=OCG 1, ref=1, visibility=on, opts={radiobtngrp=myRadioButtons}}]
    \node[button, show ocg=2] (n0) at (0,0) {Button 1};
  \end{scope}
  \begin{scope}[ocg={name=OCG 2, ref=2, visibility=off, opts={radiobtngrp=myRadioButtons}}]
    \node[button, show ocg=3] at (n0) {Button 2};
  \end{scope}
  \begin{scope}[ocg={name=OCG 3, ref=3, visibility=off, opts={radiobtngrp=myRadioButtons}}]
    \node[button, show ocg=4] at (n0) {Button 3};
  \end{scope}
  \begin{scope}[ocg={name=OCG 4, ref=4, visibility=off, opts={radiobtngrp=myRadioButtons}}]
    \node[button, show ocg=1] at (n0) {Button 4};
  \end{scope}
\end{tikzpicture}

\end{document}

AR以外のビューアの場合、例えばエビンス最大2つのレイヤーを切り替えることができます。シングルボタン。このボタンはレイヤー自体に配置する必要はありません。

% example with 2 PDF Layers that works in Evince
\documentclass[margin=5]{standalone}

\usepackage[tikz]{ocgx2}
\tikzstyle{button}=[minimum width=15mm, rounded corners,  draw=white!50!black!100,  bottom color=white]

\begin{document}

\begin{tikzpicture}
  \node[button, switch ocg={1, 2}] (n0) at (0,0) {\phantom{Button 1}};
  \begin{scope}[ocg={name=OCG 1, ref=1, visibility=on}]
    \node[minimum width=15mm] at (n0) {Button 1};
  \end{scope}
  \begin{scope}[ocg={name=OCG 2, ref=2, visibility=off}]
    \node[minimum width=15mm] at (n0) {Button 2};
  \end{scope}
\end{tikzpicture}

\end{document}

関連情報