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>Annotation dict에 항목을 추가하여 레이어를 인식하게 됩니다. 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}

관련 정보