我想要一個 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}