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>向注释字典添加条目来实现层感知。Pkgocgx2会自动为放置在 PDF 图层上的图层切换命令执行此操作。除 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}

相关内容