Tikz e OCG: faça o botão percorrer diferentes camadas

Tikz e OCG: faça o botão percorrer diferentes camadas

Eu gostaria de ter um botão OCG que, quando pressionado, percorresse um conjunto de camadas OCG.

Tentei usar botões OCG de autorreferência, onde cada um alternava entre si (tentei com e sem radiobtngrp). O principal problema é que mesmo quando desativadas, as áreas clicáveis ​​ainda persistem, portanto, clicar só pode alternar o botão superior. Aqui está um exemplo com 2 camadas (mas gostaria de ter mais, se possível):

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

É possível fazer isso funcionar? Alternativamente, seria possível criar um único botão com um contador associado a ele que aumenta cada vez que é clicado, alternando cada vez em uma determinada camada?

Responder1

O Acrobat Reader é atualmente o único visualizador de PDF que oculta corretamente a área sensível ao mouse de um elemento interativo (link, campo de formulário, ...) junto com seu conteúdo digitado que é colocado em uma camada de PDF que está prestes a ser desativada.

De acordo com a especificação do PDF, as anotações do PDF reconhecem a camada adicionando uma /OC <ocg object ref>entrada ao ditado de anotação. O Pkg ocgx2faz isso automaticamente para seus comandos de troca de camadas que são colocados nas camadas do PDF. Todos os visualizadores de PDF, exceto AR, parecem ignorar esta entrada, o que é claramente um bug desses visualizadores.

A implementação correta deste recurso em visualizadores de PDF permite percorrermúltiploCamadas PDF por meio de links de troca de camada localizados no mesmo local da página, como no exemplo a seguir:

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

Para outros visualizadores além de AR, comoEvidência, no máximo 2 camadas podem ser alternadas por umsolteirobotão. Este botão não precisaria ser colocado em uma camada:

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

informação relacionada