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 становятся Layer-aware путем добавления /OC <ocg object ref>записи в словарь Annotation. Pkg ocgx2делает это автоматически для своих команд переключения слоев, которые размещаются в слоях PDF. Все просмотрщики PDF, за исключением AR, похоже, игнорируют эту запись, что явно является ошибкой этих просмотрщиков.

Правильная реализация этой функции в программах просмотра 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}

Связанный контент