From 44ee0abf2e2a1ed4ed69374b15a65d8c0bdadd3e Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Thu, 4 Oct 2012 18:37:38 +0000 Subject: ocgx git-svn-id: svn://tug.org/texlive/trunk@27878 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/ocgx/README | 1 + Master/texmf-dist/doc/latex/ocgx/demo-ocgx.pdf | Bin 690074 -> 690079 bytes Master/texmf-dist/doc/latex/ocgx/demo-ocgx.tex | 377 --------------------- .../texmf-dist/doc/latex/ocgx/ocgx-example-1.tex | 9 - .../texmf-dist/doc/latex/ocgx/ocgx-manual-en.pdf | Bin 298007 -> 332391 bytes .../texmf-dist/doc/latex/ocgx/ocgx-manual-en.tex | 321 ------------------ 6 files changed, 1 insertion(+), 707 deletions(-) delete mode 100644 Master/texmf-dist/doc/latex/ocgx/demo-ocgx.tex delete mode 100644 Master/texmf-dist/doc/latex/ocgx/ocgx-example-1.tex delete mode 100644 Master/texmf-dist/doc/latex/ocgx/ocgx-manual-en.tex (limited to 'Master/texmf-dist/doc/latex') diff --git a/Master/texmf-dist/doc/latex/ocgx/README b/Master/texmf-dist/doc/latex/ocgx/README index ceaa2325e3f..6930d370280 100644 --- a/Master/texmf-dist/doc/latex/ocgx/README +++ b/Master/texmf-dist/doc/latex/ocgx/README @@ -6,6 +6,7 @@ LaTeX package to use OCG (Optional Content Groups) within a PDF document without license ======= + Copyright (C) 2012 by Paul Gaborit This file may be distributed and/or modified diff --git a/Master/texmf-dist/doc/latex/ocgx/demo-ocgx.pdf b/Master/texmf-dist/doc/latex/ocgx/demo-ocgx.pdf index 879b7e485b8..55845d25aa3 100644 Binary files a/Master/texmf-dist/doc/latex/ocgx/demo-ocgx.pdf and b/Master/texmf-dist/doc/latex/ocgx/demo-ocgx.pdf differ diff --git a/Master/texmf-dist/doc/latex/ocgx/demo-ocgx.tex b/Master/texmf-dist/doc/latex/ocgx/demo-ocgx.tex deleted file mode 100644 index 0d82850d3b7..00000000000 --- a/Master/texmf-dist/doc/latex/ocgx/demo-ocgx.tex +++ /dev/null @@ -1,377 +0,0 @@ -% 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. - -\documentclass[11pt,hyperref={colorlinks=false,runcolor=blue}]{beamer} -%\usetheme{Warsaw} -\usepackage[T1]{fontenc} -\usepackage{lmodern} -\usepackage{tikz} -\usetikzlibrary{backgrounds,fit,calc,shadows,chains,ocgx} -\usepgflibrary{shapes.geometric} -\usepackage{microtype} -\usepackage{url} -\usepackage{fancyvrb} -\usepackage{listings} -\lstdefinestyle{TeXcode}{ - fancyvrb=true, - language=[LaTeX]TeX, - basicstyle=\scriptsize\ttfamily, - keywordstyle=\color{blue}\bfseries, - commentstyle=\color{red!50!black}\itshape, - stringstyle=\ttfamily\color{green!50!black}, - showspaces=false, - showstringspaces=false, - backgroundcolor=\color{white}, - fontadjust=true, - aboveskip=1ex, - belowskip=1ex, - emphstyle=\color{blue}\bfseries, - keepspaces=true, - flexiblecolumns=true, - emph={switchocg,showocg,hideocg,actionsocg,usetikzlibrary} -} -\newcommand\TkzTileWallPaper[3]{ - \pgfmathtruncatemacro{\nx}{\paperwidth/#1} - \foreach \dx in {0,...,\nx}{ - \pgfmathtruncatemacro{\ny}{\paperheight/#2} - \foreach \dy in {0,...,\ny}{ - \node[anchor=south west,inner sep=0pt] - at ([xshift=#1 * \dx,yshift=#2 * \dy]current page.south west) - {\includegraphics[width=#1,height=#2]{#3}}; - } - } -} - -\setbeamersize{text margin left=3mm,text margin right=3mm} - -\newcommand\latex{{\rmfamily\LaTeX}} - -\newcommand{\TikZ}{Ti\emph{k}Z} - -\begin{document} -\begin{frame}[fragile] - \frametitle{\latex{}, OCG \& \TikZ{} (without JavaScript): \texttt{ocgx} package} - \framesubtitle{by Paul \textsc{Gaborit} wiht help of Paul - \textsc{Isambert}} - - \begin{alertblock}{PDF readers} - To fully enjoy this demonstration, use \emph{Adobe Reader}, - \emph{Foxit Reader} or \emph{evince}! - \end{alertblock} - - \begin{columns} - - \column{.6\linewidth} - - \begin{block}{Simple example: code} - \begin{lstlisting}[style=TeXcode] -\begin{ocg}{My first OCG}{refmyfirstocg}{1} - Some content... -\end{ocg} - -\switchocg{refmyfirstocg}% -{\textcolor{red}{Click me!}} -\end{lstlisting} - \end{block} - - \column{.4\linewidth} - - \begin{block}{Simple example: result} - - \begin{ocg}{My first OCG}{refmyfirstocg}{1} - Some content... - \end{ocg} - - \switchocg{refmyfirstocg}% - {\textcolor{red}{Click me!}} - - \end{block} - \end{columns} - -\end{frame} - -\begin{frame} - \frametitle{First example with Ti\emph{k}Z} - - {\centering - \begin{tikzpicture}[font=\small] - \begin{scope}[ocg={ref=toto,status=visible,name=ok}] - \fill[orange] circle(10pt); - \node[draw,rounded corners,hide ocg=toto] at (0,-1) {Hide}; - \node[draw,rounded corners,switch ocg=toto] at (2,-1) {Switch}; - \end{scope} - \node[show ocg=toto,text=red] at (0,-2) {Show}; - \end{tikzpicture}\par} - - \begin{itemize} - \item \switchocg{toto}{\Large \textcolor{red}{A very long phrase to - show that a link can be on multiple lines\ldots}\par\textcolor{red}{And with two - paragraphs!}} - \item The ``Switch'' button is \textbf{always} useable! - \end{itemize} -\end{frame} - -\tikzset{% - button on/.style={% - draw,circle,drop shadow, - line width=1pt, - fill=lime!50, - switch ocg with mark on={#1}{}, - }, -} -\begin{frame} - \frametitle{An ordered stack} - - \centering - \begin{tikzpicture} - \foreach \col[count=\c] in {red,orange,yellow,lime,cyan,blue,violet}{ - \pgfmathtruncatemacro{\num}{mod(\c+1,2)+1} - \pgfmathsetmacro{\rad}{8-\c} - \begin{scope}[xshift=-.3*\c cm,ocg={name=s\num,ref=s\num}] - \node[ellipse,draw,line width=1pt, - minimum width=1.1*\rad cm,minimum height=.9*\rad cm, - fill=\col!70,drop shadow={fill=black}](t){}; - \node[left=3pt of t.east,fill=white, - fill opacity=.5,text opacity=1,circle,inner sep=0pt]{S\num}; - \end{scope} - } - \end{tikzpicture} - - \begin{tikzpicture} - \node[button on=s1](but){}; - \node[right=0 of but]{Switch S1}; - \node[below=3pt of but,button on=s2](but){}; - \node[right=0 of but]{Switch S2}; - \end{tikzpicture} - -\end{frame} - -\begin{frame} - \frametitle{RGB and CMY color models with \texttt{xcolor}} - - \def\mylist{red/0,yellow/60,green/120,cyan/180,blue/240,magenta/300} - \centering\begin{tikzpicture}[line width=1pt] - \begin{scope} - \node at (90:25mm) {RGB color}; - \foreach \col/\angle in \mylist { - \colorlet{rgb \col}[rgb]{\col} - \draw (\angle:5mm) circle [radius=10mm]; - \begin{scope}[on background layer] - \begin{scope}[ocg={ref=RGB\col,name=RGB \col}] - \fill[fill=rgb \col,fill opacity=.5] - (\angle:5mm) circle [radius=10mm]; - \end{scope} - \end{scope} - - \node[rounded corners=1mm,draw,line width=1pt, - minimum size=3mm,fill=rgb \col,fill opacity=.5, - drop shadow, - inner sep=0,inner xsep=0, - switch ocg with mark on={RGB\col}{}] - at (\angle:20mm){}; - } - \end{scope} - \begin{scope}[xshift=70mm] - \node at (90:25mm) {CMY color}; - \foreach \col/\angle in \mylist { - \colorlet{cmy \col}[cmyk]{\col} - \draw (\angle:5mm) circle [radius=10mm]; - \begin{scope}[on background layer] - \begin{scope}[ocg={ref=CMY\col,name=CMY \col}] - \fill[fill=cmy \col,fill opacity=.5] - (\angle:5mm) circle [radius=10mm]; - \end{scope} - \end{scope} - - \node[rounded corners=1mm,draw,line width=1pt, - minimum size=3mm,fill=cmy \col,fill opacity=.5, - drop shadow,inner sep=0,outer sep=0, - switch ocg with mark on={CMY\col}{}] - at (\angle:20mm){}; - } - \end{scope} - - \begin{scope}% - [xshift=35mm,start chain=going below,node distance=.5mm,font=\tiny] - \node[on chain] at (0,20mm) {Toogle groups}; - \node% - [on chain,draw,rounded corners=1mm,fill=white,drop shadow, - minimum size=3mm,inner sep=1mm, - switch ocg={RGBred RGBblue RGBgreen CMYred CMYblue CMYgreen}, - ] - {red, green, blue}; - \node% - [on chain,draw,rounded corners=1mm,fill=white,drop shadow, - minimum size=3mm,inner sep=1mm, - switch ocg={RGByellow RGBcyan RGBmagenta CMYyellow CMYcyan CMYmagenta}, - ] - {cyan, magenta, yellow}; - - \node[on chain] {Show groups}; - \node% - [on chain,draw,rounded corners=1mm,fill=white,drop shadow, - minimum size=3mm,inner sep=1mm, - show ocg={RGBred RGBblue RGBgreen CMYred CMYblue CMYgreen}, - ] - {red, green, blue}; - \node% - [on chain,draw,rounded corners=1mm,fill=white,drop shadow, - minimum size=3mm,inner sep=1mm, - show ocg={RGByellow RGBcyan RGBmagenta CMYyellow CMYcyan CMYmagenta}, - ] - {cyan, magenta, yellow}; - - \node[on chain] {Hide groups}; - \node% - [on chain,draw,rounded corners=1mm,fill=white,drop shadow, - minimum size=3mm,inner sep=1mm, - hide ocg={RGBred RGBblue RGBgreen CMYred CMYblue CMYgreen}, - ] - {red, green, blue}; - \node% - [on chain,draw,rounded corners=1mm,fill=white,drop shadow, - minimum size=3mm,inner sep=1mm, - hide ocg={RGByellow RGBcyan RGBmagenta CMYyellow CMYcyan CMYmagenta}, - ] - {cyan, magenta, yellow}; - \end{scope} - - \end{tikzpicture}\par - -\end{frame} - -\foreach \name/\link/\ltxlink/\tiles in {% - The Big Show/% - {http://designfestival.com/the-cicada-principle-and-why-it-matters-to-web-designers/}/% - {http://latex-community.org/know-how/433-tiled-backgrounds}/% - {% - curtain1/32.7pt/\paperheight,% - curtain2/90pt/\paperheight,% - curtain3/210.9pt/\paperheight% - },% - Mosaic/% - {http://designfestival.com/cicada/break-it-down/?id=95}/% - {http://latex-community.org/know-how/433-tiled-backgrounds}/% - {% - mosaic1/30pt/30pt,% - mosaic2/70pt/70pt,% - mosaic3/110pt/110pt,% - mosaic4/110pt/110pt% - }% -}{ - \begin{frame} - \begin{tikzpicture}[remember picture,overlay] - \foreach \pictname/\wid/\hei in \tiles { - \begin{scope}[ocg={name=\pictname,ref=\pictname}] - \TkzTileWallPaper{\wid}{\hei}{\pictname} - \end{scope} - } - - \end{tikzpicture} - - \centering\begin{tikzpicture}[start chain=going below,node distance=1em] - \node[fill=white,fill opacity=.75,align=center, - text=black,font=\tiny\bfseries,text opacity=1, - on chain, - rounded corners=2mm] - {{\huge\name}\\\url{\link}\\(\latex{} \url{\ltxlink})}; - - \foreach \pictname/\wid/\hei in \tiles { - - \node[on chain,text=white,fill=black,fill opacity=.5,text opacity=1, - text width=3cm,align=center,font=\bfseries] - (a) {\hspace{5mm}\pictname}; - - \node[rounded corners=1mm,draw,line width=1pt,% - minimum size=3mm,top color=white,bottom color=black, - fill opacity=.5, - drop shadow={fill=black}, - switch ocg with mark on={\pictname}{}] - at ([xshift=3mm,yshift=.5mm]a.west) {}; - - } - \end{tikzpicture}\par - \end{frame} -} - -\begin{frame} - \frametitle{Microtype demo} - - \def\sampletext{% - Margin kerning is the adjustments of the characters at the - margins of a typeset text. A simplified employment of margin - kerning is hanging punctuation. Margin kerning is needed for - optical alignment of the margins of a typeset text, because - mechanical justification of the margins makes them look rather - ragged. Some characters can make a line appear shorter to the - human eye than others. Shifting such characters by an - appropriate amount into the margins would greatly improve the - appearance of a typeset text.% - } - - \tikzset{ - checkbox/.style={ - draw,circle,line width=.5pt,% - minimum size=.5em,top color=white,bottom color=cyan, - fill opacity=1, - inner sep=0, - drop shadow={fill=black,shadow xshift=.5mm,shadow yshift=-.5mm}, - }, - sampletext/.style={ - text width=8cm,align=justify, - font=\small, - fill=yellow!20, - inner xsep=1.5cm, - inner ysep=1cm, - draw=gray, - }, - } - - {\centering - \begin{tikzpicture} - \begin{scope}[ocg={name=With Protrusion,ref=protrusion}] - \microtypesetup{protrusion=true}% - \begin{scope}[ocg={name=With Expansion,ref=expansion}] - \microtypesetup{expansion=true}% - \node[sampletext]{\sampletext\par};% - \end{scope} - - \begin{scope}[ocg={name=Without Expansion,status=invisible,ref=no-expansion}] - \microtypesetup{expansion=false}% - \node[sampletext]{\sampletext\par};% - \end{scope} - \end{scope} - - \begin{scope}[ocg={name=Without Protrusion,status=invisible,ref=no-protrusion}] - \microtypesetup{protrusion=false}% - \begin{scope}[ocg={name=With Expansion,ref=expansion}] - \microtypesetup{expansion=true}% - \node[sampletext]{\sampletext\par};% - \end{scope} - - \begin{scope}[ocg={name=Without Expansion,status=invisible,ref=no-expansion}] - \microtypesetup{expansion=false}% - \node[sampletext]{\sampletext\par};% - \end{scope} - \end{scope} - \end{tikzpicture}\par - } - - Microtype : - \begin{tikzpicture} - \node[checkbox,switch ocg with mark on={protrusion}{no-protrusion}]{}; - \end{tikzpicture} with protrusion - \begin{tikzpicture} - \node[checkbox,switch ocg with mark on={expansion}{no-expansion}]{}; - \end{tikzpicture} with expansion - -\end{frame} -\end{document} -%%% Local Variables: -%%% mode: latex -%%% TeX-master: t -%%% End: diff --git a/Master/texmf-dist/doc/latex/ocgx/ocgx-example-1.tex b/Master/texmf-dist/doc/latex/ocgx/ocgx-example-1.tex deleted file mode 100644 index 37808b74832..00000000000 --- a/Master/texmf-dist/doc/latex/ocgx/ocgx-example-1.tex +++ /dev/null @@ -1,9 +0,0 @@ -\documentclass{article} -\usepackage{ocgx} -\begin{document} -\begin{ocg}{OCG 1}{ocg1}{1} - first example. -\end{ocg} - -\switchocg{ocg1}{Button.} -\end{document} diff --git a/Master/texmf-dist/doc/latex/ocgx/ocgx-manual-en.pdf b/Master/texmf-dist/doc/latex/ocgx/ocgx-manual-en.pdf index 7b4fabcaeb8..8458c34ed29 100644 Binary files a/Master/texmf-dist/doc/latex/ocgx/ocgx-manual-en.pdf and b/Master/texmf-dist/doc/latex/ocgx/ocgx-manual-en.pdf differ diff --git a/Master/texmf-dist/doc/latex/ocgx/ocgx-manual-en.tex b/Master/texmf-dist/doc/latex/ocgx/ocgx-manual-en.tex deleted file mode 100644 index e2e7571e8b0..00000000000 --- a/Master/texmf-dist/doc/latex/ocgx/ocgx-manual-en.tex +++ /dev/null @@ -1,321 +0,0 @@ -% 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. - -\documentclass[a4paper]{ltxdoc} -\usepackage[vmargin=2cm,hmargin=3.5cm]{geometry} -\usepackage[latin1]{inputenc} -\usepackage[T1]{fontenc} -\usepackage{lmodern} -\usepackage{xcolor} -\usepackage{ifthen} -\usepackage{doc} -\usepackage{fancyvrb} -\usepackage{newverbs} -\usepackage{listings} -\lstdefinestyle{TeXcode}{ - fancyvrb=true, - language=[LaTeX]TeX, - basicstyle=\ttfamily, - keywordstyle=\color{blue}\bfseries, - commentstyle=\color{red!50!black}\itshape, - stringstyle=\ttfamily\color{green!50!black}, - showspaces=false, - showstringspaces=false, - backgroundcolor=\color{cyan!10}, - fontadjust=true, - aboveskip=1ex, - belowskip=1ex, - emphstyle=\color{blue}\bfseries, - keepspaces=true, - flexiblecolumns=true, - emph={switchOCG,showOCG,hideOCG,actionsOCG,usetikzlibrary} -} -\newenvironment{prog}[1]{\vspace{1ex}--- \texttt{\emph{#1}} ---}{} -\newcommand{\TeXexample}[3][]{ - \ifthenelse{\equal{#1}{}}{\begin{prog}{#2}}{\begin{prog}{#2 (#1)}} - \lstinputlisting[style=TeXcode,aboveskip=0ex,#3]{#2} - \end{prog} -} - -\usepackage{url} -\usepackage[colorlinks]{hyperref} -\usepackage[english]{babel} -\usepackage[babel]{microtype} -\usepackage{parskip} -\usepackage{tikz} -\usetikzlibrary{shadows} -\usepackage[all]{nowidow} -\usepackage{ocgx} - -\newcounter{mynotes} -\newenvironment{note}{% - \tikzpicture - \node[%draw=black,line width=.1pt, - rounded corners=1em, - inner xsep=1.3em, inner ysep=.8em, - text width=\linewidth-2.6em-\pgflinewidth, - align=justify, - draw=cyan!50!black, - fill=white, - fill=yellow!20, - line width=1pt, - drop shadow={fill=cyan!50!black}, - ] (note) \bgroup% -}{% - \egroup; - \node[circle,overlay, - %fill=white,draw=cyan!50!black, - draw=white,fill=cyan!50!black,text=white, - line width=2pt, - drop shadow={fill=cyan!50!black}, - font=\small\bfseries,inner sep=4pt] - at (note.north west){\stepcounter{mynotes}\arabic{mynotes}}; - \endtikzpicture\par\vspace{.1em}% -} - - -\newverbcommand\code{\color{red}}{} -\newverbcommand\style{\hspace{-2em}\color{red}}{} -\newcommand\argument[1]{\textcolor{black}{\ttfamily #1}} -\newcommand\TikZ{Ti\emph{k}Z} - -\title{The \texttt{ocgx} package (version \ocgxversion)} -\author{% - Paul \textsc{Isambert} - \and% - Paul \textsc{Gaborit}\\\url{paul.gaborit@gmail.com}} -\date{\today} - -\begin{document} -\maketitle - -The \code+ocgx+ package extends and documents the \code+ocg+ package -(which comes with Asymptote) which allows you to create OCGs -(\emph{Optional Content Group}) in PDF documents. - -Every OCG includes \TeX{} material into a layer of the PDF file. Each of -these layers can be displayed or not. Links can enable or disable the -display of OCGs. - -The \code+ocgx+ package does not use Javascript embedded in the PDF -document to enable or disable OCGs. Thus, it is usable with several PDF -readers (to date, it has been successfully tested with \emph{Acrobat - Reader}, \emph{Foxit Reader}, and \emph{Evince}). - -\section{Usage} - -Here is a simple example. - -\TeXexample{ocgx-example-1.tex}{} - -This document creates an OCG called \emph{ocg1} containing the text -``\emph{first example.}'' which is visible. You can show or hide this -OCG by clicking the link ``\emph{Button.}''. - -\subsection{Create OCGs} - -\begin{note} - The \code+ocg+ package written by Michael \textsc{Ritzert} comes - without documentation. In my knowledge, the only documentation for - this package is offered (by Kjell Magne Fauske) on the weblog of - TeXample.net: - \url{http://www.texample.net/weblog/2008/nov/02/creating-pdf-layers/}. -\end{note} - - -\DescribeEnv{ocg}% -The \code+ocg+ environment (provided by the package \code+ocg+) creates -OCGs. It requires three arguments. The first argument is the name of the -OCG as it appears in the PDF viewer. The second argument is the internal -name used to reference this OCG. The third argument is a flag that -indicates whether the OCG should be visible or not (1 for visible, 0 for -invisible). The content of the environment (any \TeX material) is added -into the OCG. - -The following code creates an OCG named \emph{OCG name} with -\emph{refocg} as internal reference. The content of this OCG is -``\emph{content...}''. This OCG is visible (the third argument is 1). - -\begin{lstlisting}[style=TeXcode] - \begin{ocg}{OCG name}{refocg}{1} - content... - \end{ocg} -\end{lstlisting} - -\begin{note} - The same reference can be used with several \code+ocg+ environments (not - necessarily in the same page). All materials are grouped in the same - OCG. Only the first name provided will be used. -\end{note} - -\begin{note} - A reference of an OCG consists of letters (A-Z, a-z), numbers (0-9) - and possibly the \code+@+ character. -\end{note} - -\begin{note} - The content of the \code+ocg+ environment should not span across - multiple pages. Currently, nothing prevents you to try it but the - result will certainly not be the one you were expecting! -\end{note} - -\begin{note} - It is possible to nest an OCG in another OCG. To display the internal - OCG, both the internal and external OCGs need to be in the visible - state. -\end{note} - -\subsection{Manage the visibility of OCGs} - -\DescribeMacro{\switchocg}% -The \code+\switchocg+ macro turns its second argument into a clickable -link that toggles the visibility status of all listed OCGs (by their -reference) in its first argument: if an OCG was visible, it becomes -invisible, and conversely, if an OCG was invisible, it becomes visible. - -The following code creates the link \emph{toggle} that switches the -visibility status of OCGs whose references are \emph{ocg1} and -\emph{ocg2}: - -\begin{lstlisting}[style=TeXcode] - \switchocg{ocg1 ocg2}{toggle} -\end{lstlisting} - -\DescribeMacro{\showocg}% -The \code+\showocg+ macro turns its second argument into a clickable -link that make visible all OCGs whose references are listed in its first -argument: an invisible OCG becomes visible and an OCG already visible -remains visible. - -The following code creates the link \emph{show} which makes visible the -OCGs whoses references are \emph{ocg1} and \emph{ocg2}: - -\begin{lstlisting}[style=TeXcode] - \showocg{ocg1 ocg2}{show} -\end{lstlisting} - -\DescribeMacro{\hideocg}% -The \code+\hideocg+ macro turns its second argument into a clickable -link that make invisible all OCGs whose references are listed in its -first argument: a visible OCG becomes invisible and an OCG already -invisible remains invisible. - -The following code creates the link \emph{hide} which makes invisible -the OCGs whoses references are \emph{ocg1} and \emph{ocg2}: -\begin{lstlisting}[style=TeXcode] - \hideocg{ocg1 ocg2}{hide} -\end{lstlisting} - -\DescribeMacro{\actionsocg}% -The \code+\actionsocg+ macro transforms its fourth argument in a -clickable link. Its three first arguments are lists of references of -OCGs. The first list contains references of OCGs which visibility status -is to be toggled. The second list contains references of OCGs to be set -visible. The third list contains references of OCGs to be set invisible. - -The following code creates the link \emph{actions} to toggle the -visibility status of the OCG named \emph{ocg1}, to make visible the OCG -named \emph{ocg3}, and to make invisible OCG named \emph{ocg2}: - -\begin{lstlisting}[style=TeXcode] - \actionsocg{ocg1}{ocg3}{ocg2}{actions} -\end{lstlisting} - -\subsection{Usage with \TikZ{}} - -You can use the \code+ocgx+ package with \TikZ{}. The package provides a -\TikZ{} library offering five specific styles to transform a path -(\code+\path+ or \code+\node+) in a clickable link. To use it, simply -add the following lines in your preamble: - -\begin{lstlisting}[style=TeXcode] - \usepackage{tikz} - \usetikzlibrary{ocgx} -\end{lstlisting} - -\begin{list}{} -\item -\noindent\style+/tikz/switch ocg+\argument{=\{\emph{}\}} - -This style transforms the path or the current node in a link acting as -if it was produced by the macro \code+\switchocg+ (the visibility status -of referenced OCGs is reversed). - -\noindent\style+/tikz/show ocg+\argument{=\{\emph{}\}} - -This style transforms the path or the current node in a link acting as -if it was produced by the macro \code+\showocg+ (the referenced OCGs are -made visible). - -\noindent\style+/tikz/hide ocg+\argument{=\{\emph{}\}} - -This style transforms the path or the current node in a link acting as -if it was produced by the macro \code+\hideocg+ (the referenced OCGs are -made invisible). - -\noindent\style+/tikz/actions ocg+\argument{=\{\emph{}\}\{\emph{}\}\{\emph{}\}} - -This style transforms the path or the current node in a link acting as -if it is produced by the macro \code+\actionsocg+ (the visibility status -of OCGs of the first list is reversed, the OCGs in the second list are -made visible and those of the third list are made invisible). - -\noindent\style+/tikz/switch ocg with mark on+\argument{=\{\emph{}\}\{\emph{}\}} - -\noindent\style+/tikz/switch ocg with mark off+\argument{=\{\emph{>}\}\{\emph{}\}} - -These styles transform the path or the current node in a link acting as -if it is produced by the macro \code+\switchocg+ (the visibility status -of referenced OCGs in the list is reversed). - -A mark (currently a simple cross) is drawn over the current path or node -in an OCG whose reference is \texttt{\emph{ocg reference}}. The -visibility status of this OCG will be reversed as those of the entire -list. - -If the OCG whose reference is \texttt{\emph{ocg reference}} does not -exist, it is created with an empty name and its initial visibility state -is true with \code+on+ and false with \code+off+. -\end{list} - -\begin{note} - Whatever the shape of the current path or node is, it is its - \emph{bounding box} that is used to make the link (the link is always - \emph{rectangular} and \emph{horizontal}). -\end{note} - -\section{Examples} - -The document \code+demo-ocgx.tex+ provides several examples of usage of -package \code+ocgx+ with \TikZ{} (and \code+beamer+). - -\section{Limits and bugs} - -\begin{enumerate} -\item Links are always horizontal rectangles! -\item An \code+ocg+ environment spanning across multiple pages are not - detected and don't work correctly. -\item The list of OCGs created by \code+ocg+ is seen by viewers as a - long flat list. Their possible hierarchy is not displayed. -\item The packages \code+ocg+ and \code+ocgx+ are not compatible with Plain-\TeX{}. -\end{enumerate} - -\section{Development} -This package is still experimental. It is released on CTAN. You can -recover the latest version on \url{https://github.com/polgab/ocgx}. Any -help to participate in its development is welcome: contact the -maintainer (\url{paul.gaborit@gmail.com}). - -\end{document} - - - -%%% Local Variables: -%%% mode: latex -%%% TeX-master: t -%%% End: -- cgit v1.2.3