diff options
author | Karl Berry <karl@freefriends.org> | 2012-09-28 22:49:39 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2012-09-28 22:49:39 +0000 |
commit | 02339c48110d49c5009d1553b3df1629e77e53cc (patch) | |
tree | 782c829c3c160327103800c54a9a9c6421cbce59 /Master/texmf-dist/tex/latex/ocgx/ocgx.sty | |
parent | 0ed5ceced7eb70c664f715399d598f21d542e0c9 (diff) |
new tikz package ocgx (28sep12)
git-svn-id: svn://tug.org/texlive/trunk@27845 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/ocgx/ocgx.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/ocgx/ocgx.sty | 111 |
1 files changed, 111 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/ocgx/ocgx.sty b/Master/texmf-dist/tex/latex/ocgx/ocgx.sty new file mode 100644 index 00000000000..5df7a1bb52c --- /dev/null +++ b/Master/texmf-dist/tex/latex/ocgx/ocgx.sty @@ -0,0 +1,111 @@ +% Copyright (C) 2012 by Paul Gaborit +% +% This file may be distributed and/or modified +% +% 1. under the LaTeX Project Public License and/or +% 2. under the GNU Public License. + +\NeedsTeXFormat{LaTeX2e}[1994/06/01] +\def\ocgxversion{0.2} +\ProvidesPackage{ocgx}[2012/09/27 v\ocgxversion{} manage OCG in PDF document] +\RequirePackage{ocg} + +%%%% small patch to ocg.sty %%%% +% called from the aux file +\def\@ocg@makeknown#1#2#3{% #1: OCG name, #2: OC id, #3: on/off + \@ifundefined{OCG#2}{% + \message{OCG#2}% + \expandafter\gdef\csname OCG#2\endcsname{#1}% + \immediate\pdfobj{<< /Type /OCG /Name (#1) >>}% new ocg + \xdef\@ocg@curocg{\the\pdflastobj\space 0 R}% reference to id + % *** PATCH *** + \expandafter\xdef\csname OCGpdfobj#2\endcsname{\@ocg@curocg} + % *** END OF PATCH *** + \xdef\@ocg@ocgs{\@ocg@ocgs\space\@ocg@curocg}% list of all OCGs in "first defined" order + \ifnum#3=1 %on + \xdef\@ocg@ocgson{\@ocg@ocgson\space\@ocg@curocg}% list of all default-on OCGs + \else% + \xdef\@ocg@ocgsoff{\@ocg@ocgsoff\space\@ocg@curocg}% list of all default-off OCGs + \fi% + \xdef\@ocg@layersnames{% + \@ocg@layersnames\space/OC#2\space\@ocg@curocg% name-to-id mapping + }% + }{% + \message{OCG#2 reopened}% + % layer reopened + }% +} +%%%% END OF PATCH %%%% + +\csname ocgx@end:ENDOFOCGS\endcsname +\def\ocgx@listOCG#1 {% + \unless\ifcsname ocgx@end:#1\endcsname + \ifcsname OCGpdfobj#1\endcsname + \expandafter\def\expandafter\ocgx@list\expandafter{% + \ocgx@list + \csname OCGpdfobj#1\endcsname\space}% + \fi% + \expandafter\ocgx@listOCG + \fi +} + +\long\def\switchocg#1#2{% + \def\ocgx@list{}% + \ocgx@listOCG#1 ENDOFOCGS % + \leavevmode% + \pdfstartlink user {% + /Subtype /Link + /A << /S/SetOCGState /State [/Toggle \ocgx@list] >> + /Border [0 0 0] + }% + #2\pdfendlink% +} + +\long\def\showocg#1#2{% + \def\ocgx@list{}% + \ocgx@listOCG#1 ENDOFOCGS % + \leavevmode% + \pdfstartlink user {% + /Subtype/Link + /A << /S/SetOCGState + /State [/ON \ocgx@list] >> + /Border [0 0 0] + }% + #2\pdfendlink% +} + +\long\def\hideocg#1#2{% + \def\ocgx@list{}% + \ocgx@listOCG#1 ENDOFOCGS % + \leavevmode% + \pdfstartlink user {% + /Subtype/Link + /A << /S/SetOCGState + /State [/OFF \ocgx@list] >> + /Border [0 0 0] + }% + #2\pdfendlink% +} + +\long\def\actionsocg#1#2#3#4{% + \def\ocgx@list{}% + \ocgx@listOCG#1 ENDOFOCGS % + \edef\ocgx@toswitch{\ocgx@list}% + % + \def\ocgx@list{}% + \ocgx@listOCG#1 ENDOFOCGS % + \edef\ocgx@toshow{\ocgx@list}% + % + \def\ocgx@list{}% + \ocgx@listOCG#1 ENDOFOCGS % + \edef\ocgx@tohide{\ocgx@list}% + % + \leavevmode% + \pdfstartlink user{% + /Subtype/Link + /A << /S/SetOCGState + /State [/Toggle \ocgx@toswitch /ON \ocgx@toshow /OFF \ocgx@tohide] >> + /Border [0 0 0] + }% + #4\pdfendlink% +} |