summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2010-04-03 15:43:44 +0000
committerKarl Berry <karl@freefriends.org>2010-04-03 15:43:44 +0000
commit8713286a652ae4ef7b6dc49efe024fff8cc6c760 (patch)
tree6e7255b50747996cc6657bad583d93861dff603f
parent64f3e6f8cd6421a34822bfd1b5303c2cb67409f5 (diff)
ocgtools 0.5 (31mar10)
git-svn-id: svn://tug.org/texlive/trunk@17663 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/doc/latex/ocgtools/README20
-rw-r--r--Master/texmf-dist/doc/latex/ocgtools/examples/book.jpgbin0 -> 53523 bytes
-rw-r--r--Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-example-beamer-Hannover.pdfbin0 -> 484368 bytes
-rw-r--r--Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-example-beamer-Hannover.tex11
-rw-r--r--Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-example-beamer-Marburg.pdfbin0 -> 484754 bytes
-rw-r--r--Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-example-beamer-Marburg.tex13
-rw-r--r--Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-example-beamer.pdfbin0 -> 477962 bytes
-rw-r--r--Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-example-beamer.tex8
-rw-r--r--Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-example-minimal.pdfbin0 -> 80716 bytes
-rw-r--r--Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-example-minimal.tex52
-rw-r--r--Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-example-pdfscreen-nopanel.pdfbin0 -> 395918 bytes
-rw-r--r--Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-example-pdfscreen-nopanel.tex17
-rw-r--r--Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-example-pdfscreen-panelleft.pdfbin0 -> 462261 bytes
-rw-r--r--Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-example-pdfscreen-panelleft.tex17
-rw-r--r--Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-example-pdfscreen.pdfbin0 -> 462400 bytes
-rw-r--r--Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-example-pdfscreen.tex17
-rw-r--r--Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-example-web-leftpanel.pdfbin0 -> 460671 bytes
-rw-r--r--Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-example-web-leftpanel.tex34
-rw-r--r--Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-example-web-rightpanel.pdfbin0 -> 461503 bytes
-rw-r--r--Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-example-web-rightpanel.tex33
-rw-r--r--Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-example-web.pdfbin0 -> 435044 bytes
-rw-r--r--Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-example-web.tex19
-rwxr-xr-xMaster/texmf-dist/doc/latex/ocgtools/examples/ocgtools-preview.bat5
-rw-r--r--Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-preview.pdfbin0 -> 449767 bytes
-rw-r--r--Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-preview.sh6
-rw-r--r--Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-preview.tex65
-rwxr-xr-xMaster/texmf-dist/doc/latex/ocgtools/examples/ocgtools-test.bat42
-rw-r--r--Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-test.sh42
-rw-r--r--Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-test.tex254
-rw-r--r--Master/texmf-dist/doc/latex/ocgtools/examples/preview-temp.pdfbin0 -> 55026 bytes
-rw-r--r--Master/texmf-dist/doc/latex/ocgtools/examples/tall.jpgbin0 -> 79752 bytes
-rw-r--r--Master/texmf-dist/doc/latex/ocgtools/examples/wide.jpgbin0 -> 85584 bytes
-rw-r--r--Master/texmf-dist/doc/latex/ocgtools/ocgtools.pdfbin0 -> 260210 bytes
-rw-r--r--Master/texmf-dist/source/latex/ocgtools/ocgtools.dtx902
-rw-r--r--Master/texmf-dist/source/latex/ocgtools/ocgtools.ins56
-rw-r--r--Master/texmf-dist/tex/latex/ocgtools/ocgtools.sty489
-rwxr-xr-xMaster/tlpkg/bin/tlpkg-ctan-check2
-rw-r--r--Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc1
-rw-r--r--Master/tlpkg/tlpsrc/ocgtools.tlpsrc0
39 files changed, 2104 insertions, 1 deletions
diff --git a/Master/texmf-dist/doc/latex/ocgtools/README b/Master/texmf-dist/doc/latex/ocgtools/README
new file mode 100644
index 00000000000..5e52a5cd8aa
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/ocgtools/README
@@ -0,0 +1,20 @@
+The package ocgtools is designed to insert OGC (Optional Group
+Content, known as layers) into PDF presentations. From the user's
+point of view, the package allows to insert in an comfortable way any
+TeX material into separate layers in PDF document and also insert
+links which toggle theselayers on and off. Parts of the PDF document
+like formatted text, tables, math formulas or graphics can be turned
+to visible or invisible state by clicking active links or buttons.
+
+Similar packages are cooltooltips, pdfcomment, AcroTeX and
+fancytooltips. See the ocgtools package documentation for differences
+between ocgtools and the other packages.
+
+The package is distributed with examples build from one source using
+several presentation packages (beamer, web, pdfscreen). All necessary
+files are on Texlive 2009. Allmost all necessary files are on CTAN,
+the file ocg.sty is at
+http://www.tug.org/svn/texlive/trunk/Master/texmf/tex/latex/asymptote/ocg.sty
+
+
+
diff --git a/Master/texmf-dist/doc/latex/ocgtools/examples/book.jpg b/Master/texmf-dist/doc/latex/ocgtools/examples/book.jpg
new file mode 100644
index 00000000000..dfa9376e31e
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/ocgtools/examples/book.jpg
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-example-beamer-Hannover.pdf b/Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-example-beamer-Hannover.pdf
new file mode 100644
index 00000000000..16b10a6b527
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-example-beamer-Hannover.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-example-beamer-Hannover.tex b/Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-example-beamer-Hannover.tex
new file mode 100644
index 00000000000..28993cf7350
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-example-beamer-Hannover.tex
@@ -0,0 +1,11 @@
+\documentclass{beamer}
+\usetheme{Hannover}
+
+\usepackage[transparent,minimouseover
+]{ocgtools}
+
+%\usepackage{helvet}
+
+\input ocgtools-test.tex
+
+\end{document}
diff --git a/Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-example-beamer-Marburg.pdf b/Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-example-beamer-Marburg.pdf
new file mode 100644
index 00000000000..0a9b46a8b49
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-example-beamer-Marburg.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-example-beamer-Marburg.tex b/Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-example-beamer-Marburg.tex
new file mode 100644
index 00000000000..ea461b69bcb
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-example-beamer-Marburg.tex
@@ -0,0 +1,13 @@
+\let\oldlabel\label
+\documentclass{beamer}
+
+\usetheme{Marburg}
+\usepackage[transparent,minimouseover
+]{ocgtools}
+
+\AtBeginDocument{\let\label\oldlabel}
+%\usepackage{helvet}
+
+\input ocgtools-test.tex
+
+\end{document}
diff --git a/Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-example-beamer.pdf b/Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-example-beamer.pdf
new file mode 100644
index 00000000000..91d9b782375
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-example-beamer.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-example-beamer.tex b/Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-example-beamer.tex
new file mode 100644
index 00000000000..331c0a37438
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-example-beamer.tex
@@ -0,0 +1,8 @@
+\documentclass{beamer}
+\usepackage[transparent,
+minimouseover
+]{ocgtools}
+%\usepackage{helvet}
+
+\input ocgtools-test.tex
+\end{document}
diff --git a/Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-example-minimal.pdf b/Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-example-minimal.pdf
new file mode 100644
index 00000000000..b1c7890948d
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-example-minimal.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-example-minimal.tex b/Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-example-minimal.tex
new file mode 100644
index 00000000000..94780ac5d5e
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-example-minimal.tex
@@ -0,0 +1,52 @@
+\documentclass{article}
+
+\usepackage{ocgtools}
+
+\layerVshift=1in
+\advance\layerVshift by 16pt % determined experimentally
+
+\begin{document}
+
+\ocgtext{Test}{We test placing OCG's.} for placing OCG's:
+
+\hbox to \hsize{\hss\begin{minipage}{0.2\linewidth}
+ \ocgminitextlb{lb}{This is optional OCG.}
+
+ \ocgminitextrb{rb}{This is optional OCG.}
+
+ \ocgminitextlt{lt}{This is optional OCG.}
+
+ \ocgminitextrt{rt}{This is optional OCG.}
+\end{minipage}
+\hss\hss\hss
+\begin{minipage}{0.2\linewidth}
+ \ocgminitextlb{lb}{This is optional OCG.}
+
+ \ocgminitextrb{rb}{This is optional OCG.}
+
+ \ocgminitextlt{lt}{This is optional OCG.}
+
+ \ocgminitextrt{rt}{This is optional OCG.}
+\end{minipage}
+\hss
+}
+\newpage
+
+\ocgminitextlb{New}{New} \ocgminitextrb{page}{page}.
+
+Second line
+
+\bigskip
+
+\ocgminitext{New}{New} \ocgminitext{page}{page}.
+
+Second line
+\newpage
+
+Plain page.
+\newpage
+
+\ocgminitextlb{Last}{Last} \ocgminitextrb{page}{page}.
+
+Second line on last page.
+\end{document}
diff --git a/Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-example-pdfscreen-nopanel.pdf b/Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-example-pdfscreen-nopanel.pdf
new file mode 100644
index 00000000000..078e3b4aff9
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-example-pdfscreen-nopanel.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-example-pdfscreen-nopanel.tex b/Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-example-pdfscreen-nopanel.tex
new file mode 100644
index 00000000000..48c859b1b77
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-example-pdfscreen-nopanel.tex
@@ -0,0 +1,17 @@
+\documentclass{article}
+\usepackage[pdftex,
+nopanel,
+screen]{pdfscreen}
+
+\margins{0.25in}{0.25in}{0.25in}{0.25in} %left,right,top,bot
+%\screensize{6in}{8in}
+\screensize{4.875in}{6.5in}
+
+%\usepackage{times}
+
+\usepackage[transparent,
+nobutton, nopageclose
+]{ocgtools}
+
+\input ocgtools-test.tex
+\end{document}
diff --git a/Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-example-pdfscreen-panelleft.pdf b/Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-example-pdfscreen-panelleft.pdf
new file mode 100644
index 00000000000..a2b56e139b8
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-example-pdfscreen-panelleft.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-example-pdfscreen-panelleft.tex b/Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-example-pdfscreen-panelleft.tex
new file mode 100644
index 00000000000..89af37a8681
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-example-pdfscreen-panelleft.tex
@@ -0,0 +1,17 @@
+\documentclass{article}
+\usepackage[pdftex,
+panelleft,
+screen]{pdfscreen}
+
+\margins{0.25in}{0.25in}{0.25in}{0.25in} %left,right,top,bot
+%\screensize{6in}{8in}
+\screensize{4.875in}{6.5in}
+
+%\usepackage{times}
+
+\usepackage[transparent,
+nobutton, nopageclose
+]{ocgtools}
+
+\input ocgtools-test.tex
+\end{document}
diff --git a/Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-example-pdfscreen.pdf b/Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-example-pdfscreen.pdf
new file mode 100644
index 00000000000..528c9a8b0ea
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-example-pdfscreen.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-example-pdfscreen.tex b/Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-example-pdfscreen.tex
new file mode 100644
index 00000000000..48921a775a9
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-example-pdfscreen.tex
@@ -0,0 +1,17 @@
+\documentclass{article}
+\usepackage[pdftex,
+panelright,
+screen]{pdfscreen}
+
+\margins{0.25in}{0.25in}{0.25in}{0.25in} %left,right,top,bot
+%\screensize{6in}{8in}
+\screensize{4.875in}{6.5in}
+
+%\usepackage{times}
+
+\usepackage[transparent,
+nobutton, nopageclose
+]{ocgtools}
+
+\input ocgtools-test.tex
+\end{document}
diff --git a/Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-example-web-leftpanel.pdf b/Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-example-web-leftpanel.pdf
new file mode 100644
index 00000000000..aee41b3da7c
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-example-web-leftpanel.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-example-web-leftpanel.tex b/Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-example-web-leftpanel.tex
new file mode 100644
index 00000000000..12e80f8e2a6
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-example-web-leftpanel.tex
@@ -0,0 +1,34 @@
+\documentclass{article}
+\usepackage[%latextoc,
+noxcolor,leftpanel,
+usetemplates,pdftex]{web}
+%\usepackage{times}
+\screensize{4.875in}{6.5in}
+\margins{12pt}{24pt}{24pt}{24pt}
+
+\definecolor{pozadi}{rgb}{1,1,0.9}
+\pagecolor{pozadi}
+
+\usepackage[%transparent,
+%nobutton
+minimouseover
+]{ocgtools}
+
+\buildpanel
+{%
+\null
+\vfill
+\textbf{Ocgtools demo}
+
+\bigskip
+by
+
+\bigskip
+Robert Ma\v{r}\'{i}k
+\vfill
+\panelNaviGroup % defined in web
+}
+
+
+\input ocgtools-test.tex
+\end{document}
diff --git a/Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-example-web-rightpanel.pdf b/Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-example-web-rightpanel.pdf
new file mode 100644
index 00000000000..a8f992ed667
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-example-web-rightpanel.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-example-web-rightpanel.tex b/Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-example-web-rightpanel.tex
new file mode 100644
index 00000000000..6ede932b445
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-example-web-rightpanel.tex
@@ -0,0 +1,33 @@
+\documentclass{article}
+\usepackage[%latextoc,
+noxcolor,rightpanel,
+usetemplates,pdftex]{web}
+%\usepackage{times}
+\screensize{4.875in}{6.5in}
+\margins{12pt}{24pt}{24pt}{24pt}
+
+\definecolor{pozadi}{rgb}{1,1,0.9}
+\pagecolor{pozadi}
+
+\usepackage[%transparent,
+%nobutton
+minimouseover
+]{ocgtools}
+
+\buildpanel
+{%
+\null
+\vfill
+\textbf{Ocgtools demo}
+
+\bigskip
+by
+
+\bigskip
+Robert Ma\v{r}\'{i}k
+\vfill
+\panelNaviGroup % defined in web
+}
+
+\input ocgtools-test.tex
+\end{document}
diff --git a/Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-example-web.pdf b/Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-example-web.pdf
new file mode 100644
index 00000000000..3e18973fa50
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-example-web.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-example-web.tex b/Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-example-web.tex
new file mode 100644
index 00000000000..ffdd2212447
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-example-web.tex
@@ -0,0 +1,19 @@
+\documentclass{article}
+\usepackage[%latextoc,
+noxcolor,
+usetemplates,pdftex]{web}
+%\usepackage{times}
+\screensize{4.875in}{6.5in}
+\margins{12pt}{24pt}{24pt}{24pt}
+
+\definecolor{pozadi}{rgb}{1,1,0.9}
+\pagecolor{pozadi}
+
+\usepackage[%transparent,
+%nobutton,
+insertvisible,
+minimouseover
+]{ocgtools}
+
+\input ocgtools-test.tex
+\end{document}
diff --git a/Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-preview.bat b/Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-preview.bat
new file mode 100755
index 00000000000..7f0a9ab7a29
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-preview.bat
@@ -0,0 +1,5 @@
+pdflatex "\AtBeginDocument{\usepackage[pdftex,displaymath,floats,active,tightpage]{preview}}\PassOptionsToPackage{noocg}{ocgtools} \def\ocgpreview#1#2{#2}\input ocgtools-preview "
+copy ocgtools-preview.pdf preview-temp.pdf
+pdflatex ocgtools-preview
+pdflatex ocgtools-preview
+pdflatex ocgtools-preview
diff --git a/Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-preview.pdf b/Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-preview.pdf
new file mode 100644
index 00000000000..cb4a7094f1f
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-preview.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-preview.sh b/Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-preview.sh
new file mode 100644
index 00000000000..344d55fef7b
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-preview.sh
@@ -0,0 +1,6 @@
+pdflatex "\AtBeginDocument{\usepackage[pdftex,displaymath,floats,active,tightpage]{preview}}\PassOptionsToPackage{noocg}{ocgtools} \def\ocgpreview#1#2{#2}\input $1 "
+cp $1.pdf preview-temp.pdf
+grep '\\newlabel{' ocgtools-preview.aux | sed 's/newlabel/maplabelstoall/g' > preview.labels
+pdflatex $1
+pdflatex $1
+pdflatex $1
diff --git a/Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-preview.tex b/Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-preview.tex
new file mode 100644
index 00000000000..a80693b3d73
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-preview.tex
@@ -0,0 +1,65 @@
+\documentclass{article}
+\usepackage[%latextoc,
+noxcolor,
+usetemplates,pdftex]{web}
+%\usepackage{times}
+\screensize{4.875in}{6.5in}
+\margins{12pt}{24pt}{24pt}{24pt}
+
+\definecolor{pozadi}{rgb}{1,1,0.9}
+\pagecolor{pozadi}
+
+%\scrollmode
+
+\title{OCGtools and preview}
+
+\optionalPageMatter{
+ \begin{center}
+ \colorbox{yellow}{\begin{minipage}{0.5\linewidth} This is a demo
+ file to test cooperation between ocgtools and preview
+ packages. Go to the Section \ref{page} on page \pageref{page}
+ and put you mouse to the question marks following referrences
+ to figure and equation. The figure and equation should appear
+ in minilayer at the same page.
+
+ The concept is DoItYourself, see the source
+ \texttt{.tex} file and script \texttt{ocgtools-preview.sh}.
+ \end{minipage}}
+ \end{center}
+}
+
+\def\title#1{}
+\usepackage[minimouseover]{ocgtools}
+
+
+\ifx\ocgpreview\undefined\def\ocgpreview#1#2{#1}\fi
+
+ \ocgpreview{\AtBeginDocument{
+ \gdef\maplabeltopage#1#2{\expandafter\xdef\csname ocgtools@page@#1\endcsname{#2}
+\message{^^J OCG: page #2}}
+ \gdef\savemaplabels#1#2#3#4{\xdef\ocgtoolstemp{#2}}
+ \gdef\maplabelstoall#1#2{\savemaplabels#2 \maplabeltopage{#1}{\ocgtoolstemp}}
+ \input preview.labels
+ \let\orieqref\eqref
+ \let\oriref\ref
+ \def\eqref#1{(\oriref{#1})%
+ \expandafter\ifx\csname ocgtools@page@#1\endcsname\relax\else
+ \,{\ocgminitext{$^{\text{?}}$}%
+ {\includegraphics[page=\csname ocgtools@page@#1\endcsname]{preview-temp}}}%
+ \fi}%
+ \def\ref#1{\oriref{#1}%
+ \expandafter\ifx\csname ocgtools@page@#1\endcsname\relax\else
+ \,{\ocgminitext{$^{\text{?}}$}%
+ {\includegraphics[page=\csname ocgtools@page@#1\endcsname]{preview-temp}}}%
+ \fi}%
+ }}{\AtBeginDocument{
+ \newwrite\refsfile
+ \pagecolor{lightblue}
+ \immediate\openout\refsfile=preview.labels
+ \let\orilabel\label
+ \def\label#1{\orilabel{#1}\write\refsfile{\string\maplabeltopage{#1}{\thepage}}}
+ }}
+
+\input ocgtools-test.tex
+
+\end{document}
diff --git a/Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-test.bat b/Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-test.bat
new file mode 100755
index 00000000000..84155c14cf0
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-test.bat
@@ -0,0 +1,42 @@
+pdflatex ocgtools-example-web
+pdflatex ocgtools-example-web
+mpost mfpic-picture.mp
+pdflatex ocgtools-example-web
+
+pdflatex ocgtools-example-web-leftpanel
+pdflatex ocgtools-example-web-leftpanel
+pdflatex ocgtools-example-web-leftpanel
+
+pdflatex ocgtools-example-web-rightpanel
+pdflatex ocgtools-example-web-rightpanel
+pdflatex ocgtools-example-web-rightpanel
+
+pdflatex ocgtools-example-pdfscreen-panelleft
+pdflatex ocgtools-example-pdfscreen-panelleft
+pdflatex ocgtools-example-pdfscreen-panelleft
+
+pdflatex ocgtools-example-pdfscreen-nopanel
+pdflatex ocgtools-example-pdfscreen-nopanel
+pdflatex ocgtools-example-pdfscreen-nopanel
+
+pdflatex ocgtools-example-pdfscreen
+pdflatex ocgtools-example-pdfscreen
+pdflatex ocgtools-example-pdfscreen
+
+pdflatex ocgtools-example-beamer
+pdflatex ocgtools-example-beamer
+pdflatex ocgtools-example-beamer
+
+pdflatex ocgtools-example-beamer-Hannover
+pdflatex ocgtools-example-beamer-Hannover
+pdflatex ocgtools-example-beamer-Hannover
+
+pdflatex ocgtools-example-beamer-Marburg
+pdflatex ocgtools-example-beamer-Marburg
+pdflatex ocgtools-example-beamer-Marburg
+
+pdflatex ocgtools-example-minimal
+pdflatex ocgtools-example-minimal
+pdflatex ocgtools-example-minimal
+
+ocgtools-preview.bat \ No newline at end of file
diff --git a/Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-test.sh b/Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-test.sh
new file mode 100644
index 00000000000..a722cf2947b
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-test.sh
@@ -0,0 +1,42 @@
+pdflatex ocgtools-example-web
+pdflatex ocgtools-example-web
+mpost mfpic-picture.mp
+pdflatex ocgtools-example-web
+
+pdflatex ocgtools-example-web-leftpanel
+pdflatex ocgtools-example-web-leftpanel
+pdflatex ocgtools-example-web-leftpanel
+
+pdflatex ocgtools-example-web-rightpanel
+pdflatex ocgtools-example-web-rightpanel
+pdflatex ocgtools-example-web-rightpanel
+
+pdflatex ocgtools-example-pdfscreen-panelleft
+pdflatex ocgtools-example-pdfscreen-panelleft
+pdflatex ocgtools-example-pdfscreen-panelleft
+
+pdflatex ocgtools-example-pdfscreen-nopanel
+pdflatex ocgtools-example-pdfscreen-nopanel
+pdflatex ocgtools-example-pdfscreen-nopanel
+
+pdflatex ocgtools-example-pdfscreen
+pdflatex ocgtools-example-pdfscreen
+pdflatex ocgtools-example-pdfscreen
+
+pdflatex ocgtools-example-beamer
+pdflatex ocgtools-example-beamer
+pdflatex ocgtools-example-beamer
+
+pdflatex ocgtools-example-beamer-Hannover
+pdflatex ocgtools-example-beamer-Hannover
+pdflatex ocgtools-example-beamer-Hannover
+
+pdflatex ocgtools-example-beamer-Marburg
+pdflatex ocgtools-example-beamer-Marburg
+pdflatex ocgtools-example-beamer-Marburg
+
+pdflatex ocgtools-example-minimal
+pdflatex ocgtools-example-minimal
+pdflatex ocgtools-example-minimal
+
+sh ocgtools-preview.sh ocgtools-preview \ No newline at end of file
diff --git a/Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-test.tex b/Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-test.tex
new file mode 100644
index 00000000000..6089b771aca
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/ocgtools/examples/ocgtools-test.tex
@@ -0,0 +1,254 @@
+\usepackage[metapost]{mfpic}
+\opengraphsfile{mfpic-picture}
+\usepackage{amsmath}
+\usepackage{helvet}
+\let\rmdefault\sfdefault
+
+\usepackage{wrapfig}
+
+% new page which works in beamer class only
+\def\beamernewpage{\ifx \usetheme \undefined \relax \else \newpage\fi}
+
+% background for web.sty package
+\ifx \ifweb@navibar \undefined \relax \else
+\definecolor{lightgray}{rgb}{0.9,0.9,0.9}
+\newbox\backgroundbox
+\newbox\backgroundboxa
+\setbox\backgroundboxa=\hbox{\rotatebox{20}{{\color{lightgray}\Large ocgtools\color{black}}}}
+\newbox\backgroundboxb
+\setbox\backgroundboxb=\hbox to \paperwidth{\xleaders\copy\backgroundboxa\hfill}
+\newbox\backgroundboxc
+\setbox\backgroundboxc=\vbox to \paperheight{\xleaders\copy\backgroundboxb\vfill}
+\makeatletter
+ \def\ocgtools@shipoutstart@hook{\hbox to 0 pt{%
+ \kern -1in \vbox to 0 pt{\vss\copy\backgroundboxc}
+ \hss}}
+\makeatother
+\fi
+
+\begin{document}
+
+\fboxsep=4pt
+
+\title{Ocgtools demo}
+\author{Robert Ma\v{r}\'{i}k}
+
+\maketitle
+\def\maxwell{
+\nabla \cdot D&= \rho \\
+\nabla \cdot B&=0 \\
+\nabla \times E&=- \frac{\partial B}{\partial t}\\
+\nabla \times H&=J+ \frac{\partial D}{\partial t}}
+
+\tableofcontents
+\beamernewpage
+\makeatletter\ifx\PDFSCR@Info\undefined\relax\else\newpage\fi\makeatother
+
+\section{Introduction}
+
+\vbox to 0 pt{\noindent\hbox{\ocgpicture[width=3cm]{book.jpg}}
+ \vss}
+
+\hangindent=3.5cm \hangafter -5 \noindent This is test file for
+\texttt{ocgtools} package. You can (using \texttt{pdflatex}) insert
+hidden \TeX{} material into PDF files and open/close by clicking
+active links. The active links in this document are pictures (like the
+picture in this paragraph) or blue text. There are two kinds of
+behavior
+\begin{itemize}
+\item OCG spans over allmost whole PDF pages (with black or
+ transparent boundary) and can be hidden by clicikng anywhere in the
+ page -- \makeatletter
+ \ocgtext{Try it here!}{Click \ifocg@hide@button anywhere \else red cross \fi to close.} \makeatother
+
+\item OCG is small and can be hidden either with the same link which
+ opens this text or with red mark on the right top corner --
+ \ocgminitext[4cm]{Try it here!}{Click the same link or the red mark
+ to close.}
+\end{itemize}
+
+\beamernewpage Note that the pictures may look darker in Adobe Reader
+on Linux if you use package option \texttt{transparent} (means
+transparent boundary of the OCG's, used for example in demos for
+Beamer class and \verb|pdfscreen.sty| package). For comparison you can
+look at the original picture \href{http://math.mendelu.cz/en/analyza?lang=en}{here}) or at the
+demos which use \verb|web.sty| package. \ocgtext[5cm]{PDF viewer}{More
+ preciselly, Adobe Reader. \par \bigskip It is well known program.
+ You can install it on both Linux and Windows.} uses another
+rendering when trasparency is called and this seems to be system
+dependent. So be carefull when combining
+\ocgminitext[3cm]{\texttt{transparent}}{\rightskip 0 pt plus 1 fill
+ This comment is in \texttt{vbox} with specified width and may
+ contain new paragraphs. It is rather long and placed on the top of
+ the page. Hence \textit{it is shifted a bit to fit the area on the
+ screen}. However, if the papersize is small (like for Beamer test
+ files), the bottom part remains invisible for reader.
+
+\smallskip 2-nd paragraph.
+
+\smallskip 3-rd paragraph. This is the last paragraph.} option and
+bitmap pictures.
+
+\definecolor{green}{rgb}{0.5,1,0.5}
+\begin{minipage}[c]{0.4\linewidth}
+ \ocgtext[4cm]{\begin{align}\label{eq:maxwell}\maxwell
+ \end{align}
+ }{\colorbox{green}{\kern-2\fboxsep\hbox to \hsize{\hss Maxwell equations\hss}}$$\begin{aligned} \maxwell
+ \end{aligned}$$}
+\end{minipage}\hskip 0 pt plus 1 filll
+\begin{minipage}[c]{0.2\linewidth}
+\ocgpicture[width=\linewidth]{tall.jpg}
+\end{minipage}\hskip 0 pt plus 1 filll
+\begin{minipage}{0.3\linewidth}
+ Here we test \ocgminitextlt{ocg's}{{\color{red}O}ptional {\color{red}C}ontents {\color{red}G}roup} which are inside group (Maxwell's equation in minipage) and which are
+ taller than wide (little golf player).
+\end{minipage}
+
+\newpage
+\section{Options of the package}
+
+\begin{wrapfigure}[5]{r}{4cm}
+ \ocgpicture[width=4cm]{wide.jpg}
+\end{wrapfigure}
+This is some \ocgtext{random text}{anmf asdfh akdfjha adfjh akjdfh }
+to see that \ocgminitextlb{\texttt{wrapfig}}{Wrapfig is a package for
+ \LaTeX.} works and wide pictures are scaled properly. Several
+options are available for the package \verb|ocgtools|:
+\ocgminitext[6cm]{transparent}{\texttt{beamer} and \texttt{pdfscreen}
+ demo files are compiled with \texttt{transparent} option -- the
+ black boundary of big layers is opaque.},
+\ocgminitext[6cm]{insertvisible}{The file \texttt{*-web-nopanel.tex}
+ is compiled with \texttt{insertvisible} option. The layers are
+ inserted as visible layers and are turned to invisible when the PDF
+ file is opened.},
+ \ocgminitext[8cm]{nobutton}{Normally the pages
+ with active layers have a transparent button which can be used to
+ hide this layer. The user simply clicks anywhere and the layers
+ become hidden. In some viewers (like Foxit Reader) the button is not
+ 100\% transparent. This option allows not to include the big button
+ to hide layers. The layers can be closed by clicking the red cross
+ below. Demo files based on \texttt{pdfscreen} are compiled with this option.
+ Use this option to make the document accessible to Foxit Reader users.},
+\ocgminitext{noocg}{All OCG's are ignored},
+\ocgminitext[6cm]{noprogressmsg}{No messagae about processing OCG's at
+ the first page when document is opened.},
+\ocgminitext[8cm]{minimouseover}{\texttt{web} and \texttt{beamer} demo
+ files are compiled with \texttt{minimouseover} option. You can open
+ the minilayer by mouseover action in the area which is in the form
+ of invisible square 8pt$\times$8pt placed at the bottom right corner
+ of the referrence text.},
+\ocgminitext[8cm]{mouseover}{The same as
+ \texttt{minimouseover}, but works also for big layers. No demo file is
+ compiled with this option.},
+\ocgminitext[8cm]{nopageclose}{By default, layers and buttons for hiding them are
+ turned into hidden when entering a page. This option turns this behavior off.
+ Demo files based on \texttt{pdfscreen} are compiled with this option.}
+(each option has an associated
+minilayer with an explanation). Examples distributed with the package
+are in the form of demo files based on three packages (\verb|beamer|,
+\verb|web|, \verb|pdfscreen|). Each example has three variants with no
+panel, with panel on the right and on the left and each example is
+compiled with different options. The current document is compiled with
+the following options: {\bfseries \makeatletter
+ \if@ocgtools@transparent transparent, \fi \if@ocgtools@insertvisible
+ insertvisible, \fi \ifocg@hide@button \relax \else nobutton, \fi
+ \ifocgtools@noocg noocg, \fi \ifx \ocgtools@progressmsg\relax
+ noprogressmsg, \fi \if@ocgtools@mouseover mouseover,\fi
+ \if@ocgtools@minimouseover minimouseover,\fi \if@ocgtools@pageclose\else nopageclose,\fi \makeatother }
+
+
+\newpage
+\section{A taste of mathematics}
+
+\def\a{\begin{mfpic}[80][40]{-0.1}{2}{-0.1}{2.8}
+ \gfill[green]\btwnfcn{0,1.5,0.1}{1+(x-1.2)**2}{0}
+ \axes
+ \xmarks{1.5}
+ \tlabelsep{4pt}
+ \tlabel[tc](0,0){$a$}
+ \tlabel[tc](1.5,0){$b$}
+ \pen{1pt}
+ \function{0,1.5,0.1}{1+(x-1.2)**2}
+ \end{mfpic}}
+
+ \begin{figure}
+ \centering
+ \ocgtext{\a}{\a}
+ \caption{Floating figure}
+ \label{fig:figure}
+ \end{figure}
+
+ Mfpic pictures can be scaled easily (see the floating figure).
+
+ \beamernewpage We can add explanation to some computations easily
+ (Note the text \verb|Why?| inserted automatically by redefining
+ macro \verb|\ocgtextend|).
+
+{\def\ocgtextend{\raise0.75\baselineskip\hbox to 0 pt{\hss\tiny\color{red}Why?}\hss}
+ \global\def\dx{\,\mathrm{d}x}
+\begin{eqnarray}\label{eq:label}
+\int\ln x\dx&\ocgminitext[4cm]={Integration by parts $$\int\ln x\dx=\int1\cdot\ln x \dx$$}&x\ln x-\int x\frac 1x\dx\\
+&\ocgminitext={Formula $\int 1\dx=x$}&x\ln x - x +C
+\end{eqnarray}
+
+}
+
+\newpage
+\section{Few more tests}
+Package \verb|ocgtools.sty| redefines output routine via
+\verb|atbegshi.sty| package. From this reason it may be incompatible
+with some other packages dealing with output routine. However, the
+package \verb|eso-pic.sty| works fine.
+
+Test for placing OCG's:
+
+\hbox to \hsize{\hss\begin{minipage}{0.2\linewidth}
+ \ocgminitextlb{lb}{This is optional OCG.}
+
+ \ocgminitextrb{rb}{This is optional OCG.}
+
+ \ocgminitextlt{lt}{This is optional OCG.}
+
+ \ocgminitextrt{rt}{This is optional OCG.}
+\end{minipage}
+\hss\hss\hss
+\begin{minipage}{0.2\linewidth}
+ \ocgminitextlb{lb}{This is optional OCG.}
+
+ \ocgminitextrb{rb}{This is optional OCG.}
+
+ \ocgminitextlt{lt}{This is optional OCG.}
+
+ \ocgminitextrt{rt}{This is optional OCG.}
+\end{minipage}
+\hss
+}
+
+\ifx \usetheme \undefined
+We inserted equation \eqref{eq:label} and Figure \ref{fig:figure} in
+this document.
+
+The reference to Maxwell equations \eqref{eq:maxwell} works only if
+compiled on Linux via \texttt{ocgtools-preview.sh} (called from
+\texttt{ocgtools-test.sh} automatically with correct parameter). \fi
+
+\label{page}
+\newpage
+
+\ocgminitextlb{New}{New} \ocgminitextrb{page}{page}.
+
+Second line
+
+\bigskip
+
+\ocgminitext{New}{New} \ocgminitext{page}{page}.
+
+Second line
+\newpage
+
+Plain page.
+\newpage
+
+\ocgminitextlb{Last}{Last} \ocgminitextrb{page}{page}.
+
+Second line on last page.
diff --git a/Master/texmf-dist/doc/latex/ocgtools/examples/preview-temp.pdf b/Master/texmf-dist/doc/latex/ocgtools/examples/preview-temp.pdf
new file mode 100644
index 00000000000..2ad3cf76360
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/ocgtools/examples/preview-temp.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/ocgtools/examples/tall.jpg b/Master/texmf-dist/doc/latex/ocgtools/examples/tall.jpg
new file mode 100644
index 00000000000..7df7b6ef2fc
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/ocgtools/examples/tall.jpg
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/ocgtools/examples/wide.jpg b/Master/texmf-dist/doc/latex/ocgtools/examples/wide.jpg
new file mode 100644
index 00000000000..130885e5dd7
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/ocgtools/examples/wide.jpg
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/ocgtools/ocgtools.pdf b/Master/texmf-dist/doc/latex/ocgtools/ocgtools.pdf
new file mode 100644
index 00000000000..7f007807a04
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/ocgtools/ocgtools.pdf
Binary files differ
diff --git a/Master/texmf-dist/source/latex/ocgtools/ocgtools.dtx b/Master/texmf-dist/source/latex/ocgtools/ocgtools.dtx
new file mode 100644
index 00000000000..4d9a399a154
--- /dev/null
+++ b/Master/texmf-dist/source/latex/ocgtools/ocgtools.dtx
@@ -0,0 +1,902 @@
+% \iffalse meta-comment
+%
+% Copyright (C) 2010 by Robert Marik <marik@mendelu.cz>
+% -----------------------------------------------------
+%
+% This file may be distributed and/or modified under the conditions of
+% the LaTeX Project Public License, either version 1.2 of this license
+% or (at your option) any later version. The latest version of this
+% license is in:
+%
+% http://www.latex-project.org/lppl.txt
+%
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% \fi
+%
+% \iffalse
+%<*driver>
+\ProvidesFile{ocgtools.dtx}
+%</driver>
+%<package>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
+%<package>\ProvidesPackage{ocgtools}
+%<*package>
+ [2010/04/01 v0.5 ocgtools.dtx file]
+%</package>
+%
+%<*driver>
+\documentclass{ltxdoc}
+\usepackage{a4wide,url,color}
+\EnableCrossrefs
+\CodelineIndex
+\RecordChanges
+
+\begin{document}
+ \DocInput{ocgtools.dtx}
+ \PrintChanges
+ \PrintIndex
+\end{document}
+%</driver>
+% \fi
+%
+% \CheckSum{821}
+%
+% \CharacterTable
+% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+% Digits \0\1\2\3\4\5\6\7\8\9
+% Exclamation \! Double quote \" Hash (number) \#
+% Dollar \$ Percent \% Ampersand \&
+% Acute accent \' Left paren \( Right paren \)
+% Asterisk \* Plus \+ Comma \,
+% Minus \- Point \. Solidus \/
+% Colon \: Semicolon \; Less than \<
+% Equals \= Greater than \> Question mark \?
+% Commercial at \@ Left bracket \[ Backslash \\
+% Right bracket \] Circumflex \^ Underscore \_
+% Grave accent \` Left brace \{ Vertical bar \|
+% Right brace \} Tilde \~}
+%
+%
+% \changes{v0.5}{2010/04/01}{First public version}
+%
+% \GetFileInfo{ocgtools.dtx}
+%
+% \DoNotIndex{\newcommand,\newenvironment,\def}
+%
+% \title{The \textsf{ocgtools} package\thanks{This document
+% corresponds to \textsf{ocgtools}~\fileversion, dated \filedate.}
+% \thanks{Supported by grant 131/2010 of Higher
+% Education Development Fund (FRV\v S) }} \author{Robert Ma\v r\'\i k \\
+% \texttt{marik@mendelu.cz}}
+%
+% \maketitle
+%
+% \section{Introduction}
+%
+% The package |ocgtools| is designed to insert OGC (Optional Group
+% Content) into PDF presentations. From the user's point of view, the
+% package allows to insert in an comfortable way any \TeX{} material
+% into separate layer in PDF document and insert links which toggle
+% this layer on/off. Hence parts of PDF document like formatted text,
+% tables, math formulas or graphics can be turned to visible or
+% invisible state by clicking active links or buttons.
+%
+% Similar packages are |cooltooltips|, |pdfcomment|, |AcroTeX| and
+% |fancytooltips|. In contrast to |cooltooltips| and |pdfcomment|, we
+% can work with any \TeX{} material, not only plain text. In contrast
+% to |fancytooltips|, no external file is necessary and more
+% minilayers (see below) can be opened simultaneously on one
+% page. However, |fancytooltips| and |ocgtools| can be combined in the
+% same document, even on the same page. |AcroTeX| has far more
+% possibilities than |ocgtools|, but has three disadvantages: (1)
+% limited support for |pdftex| (no layers with |pdftex| driver) (2)
+% PDF file needs postprocessing (3) for the post-processing the non-free
+% Adobe Acrobat Professional is necessary. However, the user of
+% |ocgtools| must have |AcroTeX| installed, since we use its
+% capability to insert buttons and JavaScripts into document (|eforms|
+% and |insdljs| packages).
+%
+% Two types of OCG objects can be inserted
+% \begin{itemize}
+% \item \textit{layers}: OCG's which span across the whole size of paper
+% (scaled if necessary)
+% \item \textit{minilayers}: OCG's which have their natural size and
+% are placed somewhere close to the link which toggles them on/off.
+% \end{itemize}
+%
+% The user should use viewer which allows to hide/reveal layers by
+% JavaScript. This includes especially Adobe Reader. Some limited
+% functionality is also in Foxit Reader (see the option |nobutton|
+% below). In some other viewers (like |xpdf|) users see red warning on
+% the first page (see |\ocgtools@msg|), all layers are visible and
+% cannot be hidden.
+%
+% \marginpar{\texttt{Important comment!}}\textbf{\color{red} Big
+% warning:} Unfortunately, with this package you may make your PDF
+% files \textbf{less portable} even if you use Adobe Reader! Till now,
+% we observed the following problems:
+% \begin{itemize}
+% \item jpg pictures may look darker when using \texttt{transparent}
+% option and \textbf{Linux} version of Adobe Reader -- Adobe Reader
+% switches to different rendering method which seems to be system
+% dependent. Hope, Adobe fixes this problem soon.
+% \item The layer with initial message on the first page which should
+% be hidden to the users of Adobe Reader is sometimes still visible,
+% if the PDF file is opened in Internet browser. From this reason,
+% layer \texttt{ocgtools0} is switched on and then off when
+% initializing PDF document. Hope, this workaround solves the
+% problem. If not, report the problem with a minimal example, please.
+% \end{itemize}
+%
+% \section{Examples} Several examples are distributed with the
+% package. We have one minimal example, one example which shows
+% cooperation with |preview.sty| and mainly -- examples which show
+% cooperation with three most popular packages to build
+% presentations. This includes |web.sty|, |pdfscreen.sty| and
+% |beamer.cls|. We have three demo files for each -- with no panel,
+% with panel on the right and with panel on the left. All examples can
+% be recompiled by running |ocgtools-test.bat| on Windows and
+% |ocgtools-test.sh| on Linux.
+%
+% \section{Usage}
+%
+% All the packages we use are on CTAN or in \TeX live2009. The file
+% |ocg.sty| is a part of |asymptote| package\footnote{Do not
+% interchange with the |ocg.sty| provided by \"Osterreichische
+% Computer Geselshafft. The correct file |ocg.sty| is at
+% \url{http://www.tug.org/svn/texlive/trunk/Master/texmf/tex/latex/asymptote/ocg.sty}}.
+% |AcroTeX| is quite old on CTAN but the version on CTAN works well.
+% New version of |AcroTeX| is at |www.acrotex.net|, if necessary.
+%
+% \bigskip \textbf{Prerequisities}: Only |pdflatex| is supported. The
+% route via |dvips| or |dvipdfm| is not (yet?) supported (this
+% restriction follows from |ocg.sty| and |transparent.sty|
+% packages). To work with the package load |color.sty| and
+% |hyperref.sty| packages. (This is usually done automatically by most
+% packages which are used to build PDF presentations. If not, these
+% packages are loaded by |ocgtools| automatically as soon as
+% |\definecolor| and |\href| remain undefined, respectively.) You may
+% use also |xcolor.sty|, but this package is not compatible with
+% |transparent| option. \bigskip
+%
+% You have to compile your |.tex| file \textit{three times} (!). If
+% you change your document and create new layer, you have to compile
+% three times again. After most changes (which include change in
+% position of but not the number of layers) you have to compile twice
+% to put layers on correct position. If you change the content of text
+% layers or minilayers, one compilation is sufficient.
+%
+% \bigskip
+% Load package |ocgtools.sty| as usual:
+% \cs{usepackage}\oarg{options}|{ocgtools}|. Options include:
+% \begin{description}
+% \item[\texttt{transparent}] Layers in fact do not span over the
+% whole page, but the material of layer is scaled to some reasonable
+% size (we keep aspect ratio). If the layer is activated, the page
+% is covered by a uniform color |ocgbg| and the layer is placed on
+% the top. The options |transparent| makes the color |ocgbg|
+% transparent. Looks cool, but it could be slow and could change
+% some colors of bitmap pictures (and this behavior seems to be
+% system dependent -- looks differently on Linux and differently on
+% Windows). The transparency is achieved by putting the command
+% |\ocgtools@transparent| on appropriate place. The default setting
+% is |\def\ocgtools@transparent{\transparent{0.4}}|. Use something
+% like
+% like the following three lines to override:\\
+% |\makeatletter|\\
+% |\def\ocgtools@transparent{\transparent{0.6}}|\\
+% |\makeeatother|
+% \item[\texttt{nobutton}] The pages with active layers have a
+% transparent button which can be used to hide this layer. The user
+% simply clicks anywhere and the layers become hidden. In some
+% viewers (like Foxit Reader) the button is not 100\% transparent.
+% This option allows not to include the big button to hide layers.
+% The layers can be closed by clicking the red cross
+% below.
+% \item[\texttt{insertvisible}] In some rare cases problems with OCG's
+% occur on Windows installation of \TeX. Temporary (I hope)
+% workaround is to use this option, which inserts OCG's as visible.
+% The visibility is turned off when the PDF is opened on the first
+% page.
+% \item[\texttt{mouseover}] Layers can be opened by MouseOver action.
+% The corresponding active area is an invisible square with side 8pt
+% placed on the right bottom corner of the text or picture which
+% opens the layer. More details: MouseOver opens the layer and
+% MouseExit hides this layer again. If mouse button is clicked, the
+% layer remains opened after exiting the button.
+% \item[\texttt{minimouseover}] As mouseover, but restricted to
+% minilayers.
+% \item[\texttt{noocg}] The package and its commands are ignored.
+% \item[\texttt{noprogressmsg}] Opening PDF on the first page show the
+% message related to initial processing layers. This option turns
+% the message off.
+% \item[\texttt{nopageclose}] By default, all layers become off and
+% all buttons become hidden if the page is changed. The option
+% \texttt{nopageclose} suppresses this behavior.
+% \end{description}
+%
+% The macro |\ocgtext|\oarg{width}\marg{text1}\marg{text2}
+% \DescribeMacro{\ocgtext} is used to create layer which contains any
+% \LaTeX{} material. \meta{text1} is a text which is written in an
+% ``usual'' way (in blue color which indicates that this text can be
+% used to hide/unhide another object) and this text is used to
+% hide/unhide layer with \meta{text2} (which could be text divided
+% into more than one paragraph, figure created by |mfpic| or any
+% \LaTeX{} material). \meta{text2} is either placed into |\hbox| (if
+% \meta{width} is 0\,pt, which is default) or wrapped by |\vbox| with |\hsize|
+% equal to \meta{width} (in the opposite case).
+%
+%
+%
+% \DescribeMacro{\ocgpicture} The macro
+% |\ocgpicture|\oarg{params}\marg{picture} is used to insert a picture
+% which is used as a link to layer with bigger version of this
+% picture. The optional parameter \meta{params} is used by
+% |\includegraphics| command to draw picture in text. The layer
+% contains scaled version of the picture (aspect ratio is preserved).
+%
+% \DescribeMacro{\ocgminitext} The macro
+% |\ocgminitext|\oarg{width}\marg{text1}\marg{text2} is used to create
+% layer containing \meta{text2} which is placed near the right top
+% corner of \meta{text1}. \meta{text2} is placed into |\hbox| or
+% |vbox| with given |hsize| according to the value of \meta{width},
+% as has been explained at |\ocgtext| macro. Macros |\ocgminitextrb|,
+% |\ocgminitextlt| and |\ocgminitextlb| can be used to place the
+% minilayer to the right bottom, left to and left bottom corner.
+%
+% \DescribeMacro{\ocgtextstart}\DescribeMacro{\ocgtextend} Macros
+% |\ocgtextstart| and |\ocgtextend| are used to denote the start and
+% the end of hyperlink which is used to hide/reveal layers. Default
+% setting is |\def\ocgtextstart{\color{blue}}| and |\def\ocgtextend{}|
+% and hence, the links are blue and there is no mark at the end of the
+% link.
+%
+% \DescribeMacro{ocgpaper}\DescribeMacro{ocgbg} The colors |ocgbg| and
+% |ocgpaper| are used to set the colors which are used to hide page
+% and color which is used as background for text produced by
+% |\ocgtext| and |\ocgminitext| commands. The default setting is
+% |\definecolor{ocgpaper}{rgb}{1,1,0.2}| and
+% |\definecolor{ocgbg}{rgb}{0,0,0}|.
+%
+% \DescribeMacro{\layerHshift} \DescribeMacro{\layerVshift} The
+% dimensions |\layerHshift| and |\layerVshift| are used to place
+% layers exactly on the top of the page. If presentation packages
+% |web|, |beamer| or |pdfscreen| are used, then the length is set
+% automatically.
+%
+% \DescribeMacro{\ocgtools@shipoutstart@hook}
+% \DescribeMacro{\ocgtools@shipoutend@hook} Commands
+% |\ocgtools@shipoutstart@hook| and |\ocgtools@shipoutend@hook| are
+% introduced to insert some material at the begin and at the end of
+% the box with the page contents. Can be used for example to put
+% background to the presentation. Both commands should produce boxes
+% of zero dimensions, i.e. use something like \begin{verbatim}
+% \makeatletter \def\ocgtools@shipoutstart@hook{\hbox to 0 pt{\kern
+% -1in \Huge A\hss}} \makeatother \end{verbatim} to insert letter "A"
+% into the left bottom corner. Note that you will see this letter only
+% if the background of the presentation is transparent. See also the
+% files |ocgtools-example-web*.tex| and |ocgtools-example-web*.pdf|
+% for slightly more complicated background.
+%
+% \DescribeMacro{\ocgclosechar} \DescribeMacro{\ocgtools@msg} Macro
+% |\ocgclosechar| is used to print mark which is used to close layers
+% and minilayers and |\ocgtools@msg| contains string for users of
+% viewers which do not support layers (see the first few lines of the
+% code for default settings).
+%
+% \section{Possible future development and known problems}
+% \begin{enumerate}
+% \item Test and support more packages for slides than current
+% web.sty, pdfscreen.sty and beamer.sty? Which ones?
+% \item Using |preview| package it is possible to extract equations
+% and figures from the document and redefine |\ref| and |\eqref|
+% commands in such a way that clicking (or mouseover) opens on the
+% current page the layer with this equation (figure) and shift
+% clicking moves the user to the page with this equation
+% (figure). Or would |fancytooltips| produce better results in this
+% case (smaller PDF file)? See also the paper by Ross More at
+% \url{http://www.tug.org/TUGboat/Articles/tb29-3/tb93moore.pdf}. See
+% the |ocgtools-preview.*| files for some initial attempts in this
+% direction.
+% \item Introduce draft mode, which prints all layers at the end of
+% document with links there and back?
+% \item Improve placement of minitextlayers. Currently we have one the
+% reference point for both minitextlayers aligned to top and
+% bottom, which is far from optimal.
+% \item In some rare cases the layers may be not inserted properly
+% when the \LaTeX{} file is compiled on \textbf{Windows} -- see the
+% option \texttt{insertvisible} which solves this problems in most
+% cases. Since the author has limited access to \TeX{}
+% installations on Windows and hence reporting of problems with a
+% minimal example is highly appreciated.
+% \item The package cannot be used to hide 3D graphics inserted by
+% |movie15| package. However, you can put this graphics into
+% floating window or full-screen using capabilities of Acrobat Reader
+% 9.
+% \item If you open and close layer and then use "Back"
+% (Alt+LeftArrow), the layer opens again, but the button to hide
+% this layer becomes unavailable. Possible solution is to define
+% open action and close action for each layer (is it possible in
+% current PDF specification?).
+% \end{enumerate}
+%
+% \StopEventually{}
+%
+% \section{Implementation}
+% Initial settings
+% \begin{macrocode}
+%<*package>
+\def\ocgtools@msg{If message does not disappear after a short time, the
+ author either did not compile the \LaTeX{} file three times, or your
+ PDF viewer does not support OCG. Use Adobe Reader!}
+
+\def\ocgtextstart{\color{blue}}
+\def\ocgtextend{}
+\ifx\definecolor\undefined\RequirePackage{color}\fi
+\ifx\href\undefined\RequirePackage[pdftex]{hyperref}\fi
+\definecolor{ocgpaper}{rgb}{1,1,0.2}
+\definecolor{ocgbg}{rgb}{0,0,0}
+\RequirePackage{graphicx}
+\RequirePackage{pifont}
+\RequirePackage{ocg}
+
+\def\ocgclosechar{\ding{56}}
+% \end{macrocode}
+% Make packages and options known.
+% \begin{macrocode}
+\RequirePackage{atbegshi}
+\RequirePackage[pdftex]{eforms}
+\newif\if@ocgtools@transparent\@ocgtools@transparentfalse
+\DeclareOption{transparent}{\@ocgtools@transparenttrue}
+\newif\if@ocgtools@insertvisible\@ocgtools@insertvisiblefalse
+\def\ocgtools@initialvisibility{0}
+\DeclareOption{insertvisible}{\@ocgtools@insertvisibletrue
+ \def\ocgtools@initialvisibility{1}}
+\newif\ifocg@hide@button\ocg@hide@buttontrue
+\DeclareOption{nobutton}{\ocg@hide@buttonfalse}
+\newif\ifocgtools@noocg\ocgtools@noocgfalse
+\DeclareOption{noocg}{\ocgtools@noocgtrue}
+\def\ocgtools@progressmsg{\lower \layerVshift\hbox to 0 pt{ %space
+ \textField[\V{OCGtools: processing OCG's ...}\BG{1}
+ \textColor{1 0 0} \textSize{10}]%
+{ocgtoolsmsg}{6cm}{20pt}\hss}}%
+\DeclareOption{noprogressmsg}{\let\ocgtools@progressmsg\relax}
+\newif\if@ocgtools@minimouseover \@ocgtools@minimouseoverfalse
+\DeclareOption{minimouseover}{\@ocgtools@minimouseovertrue}
+\newif\if@ocgtools@mouseover \@ocgtools@mouseoverfalse
+\DeclareOption{mouseover}{\@ocgtools@mouseovertrue \@ocgtools@minimouseovertrue}
+\newif\if@ocgtools@pageclose \@ocgtools@pageclosetrue
+\DeclareOption{nopageclose}{\@ocgtools@pageclosefalse}
+\ProcessOptions
+% \end{macrocode}
+% We insert JavaScripts which are evaluated when the file is opened at
+% the first page.
+% \begin{macrocode}
+\edef\ocgtools@pdfpageattr{
+/AA << /O << /S /JavaScript /JS
+ (
+% \end{macrocode}
+% We close layers, if the page is opened. If the document is opened
+% and \texttt{ocgtoolsOCGs} is not initialized, we skip to
+% \texttt{catch} part and initialize.
+% \begin{macrocode}
+ try{
+ var temp = ocgtoolsOCGs.length;
+ \if@ocgtools@pageclose
+ for(var i=0; ocgtoolsOCGs && i<ocgtoolsOCGs.length;i++)
+ {
+ ocgtoolsOCGs[i].state = false;
+ }
+ \fi
+ }
+% \end{macrocode}
+% We initialize document -- we find all layers, put into
+% \texttt{ocgtoolsOCGs} field and make them hidden.
+% \begin{macrocode}
+ catch (e){
+% \end{macrocode}
+% No dotted rectangle for buttons which have focus.
+% \begin{macrocode}
+ app.focusRectg = false;
+% \end{macrocode}
+% The OCG objects inserted by ocgtools are stored in variable
+% |ocgtoolsOCGs| when the PDF document is opened on the first page.
+% \begin{macrocode}
+ var iniocgtoolsOCGs = this.getOCGs();
+ var ocgtoolsOCGs = [];
+ for(var i=0; iniocgtoolsOCGs && i<iniocgtoolsOCGs.length;i++)
+ {
+ if(iniocgtoolsOCGs[i].name.substr(0,8) == "ocgtools")
+ {
+ ocgtoolsOCGs.push(iniocgtoolsOCGs[i]);
+ \if@ocgtools@insertvisible
+ iniocgtoolsOCGs[i].state=false;
+ \fi
+ }
+ }
+ iniocgtoolsOCGs[0].state=true;
+ iniocgtoolsOCGs[0].state=false;
+ \ifx\ocgtools@progressmsg\relax\relax\else
+ this.getField("ocgtoolsmsg").hidden=true;
+ \fi
+ }
+ \ifocg@hide@button
+ this.getField("OcgtoolsBtn.HideButton.main").hidden = true;
+ \fi
+ )
+ >> >>
+}
+
+\expandafter\global\expandafter\pdfpageattr\expandafter{\ocgtools@pdfpageattr}
+
+\def\ocgtools@transparent{}
+\if@ocgtools@transparent
+\RequirePackage{transparent} \def\ocgtools@transparent{\transparent{0.4}}
+\fi
+% \end{macrocode}
+% Internal variables
+% \begin{macrocode}
+\newif\ifocg@minitext@left
+\newif\ifocg@minitext@bottom
+\newcount\ocgtools@layercount
+\newskip\ocgtools@left@skip
+\newskip\ocgtools@bottom@skip
+\newdimen\ocgtools@maxheight
+\newdimen\ocgtools@maxwidth
+% \end{macrocode}
+% We introduce lengths which can be used to finetune position of layers
+% on the screen. These lengths are not necessary for plain pages
+% (like article class with geometry package) and beamer.
+% \begin{macrocode}
+\newdimen\layerHshift \layerHshift=0pt
+\newdimen\layerVshift \layerVshift=0pt
+% \end{macrocode}
+% We need small shift for web.sty.
+% \begin{macrocode}
+\ifx\@Rightmargin\undefined\else
+ \layerVshift=3pt
+\fi
+% \end{macrocode}
+% We need another shift for pdfscreen.sty.
+% \begin{macrocode}
+\ifx\PDFSCR@Warning\undefined\else
+ \layerVshift=\@Bottommargin
+\fi
+
+\newtoks\ocgtools@layer@toks
+\ocgtools@layer@toks{}
+\newbox\ocgtools@box@a
+\newbox\ocgtools@box@b
+\newif\ifocg@page@contains@layer
+% \end{macrocode}
+% We modify |shipout| routine and insert content of layers on the top of
+% PDF pages.
+% \begin{macrocode}
+\def\ocgtools@one{1}
+\let\ocgtools@shipoutstart@hook\relax
+\let\ocgtools@shipoutend@hook\relax
+\AtBeginShipout{%
+\setbox\AtBeginShipoutBox=\hbox{%
+% \end{macrocode}
+% Hook which can be used to place backgound.
+% \begin{macrocode}
+\ocgtools@shipoutstart@hook
+% \end{macrocode}
+% We insert the page first.
+% \begin{macrocode}
+\hbox to 0 pt{\box\AtBeginShipoutBox\hss}\kern -1in\kern \layerHshift
+% \end{macrocode}
+% We insert the layers.
+% \begin{macrocode}
+\ocg@page@contains@layerfalse
+\lower \layerVshift \hbox{\the\ocgtools@layer@toks}%
+% \end{macrocode}
+% If at least one layer has been inserted, we insert button which
+% can be used to hide layers.
+% \begin{macrocode}
+\ifocg@page@contains@layer
+ \vbox to 0 pt{\kern -\paperheight \kern\layerVshift\hbox to 0 pt{\ocgtools@HideBtn\hss}\vss}%
+\fi
+% \end{macrocode}
+% We insert progress field on the first page.
+% \begin{macrocode}
+\xdef\ocgtools@currpage{\thepage}%
+\ifx\ocgtools@currpage\ocgtools@one
+\ocgtools@progressmsg
+\fi
+% \end{macrocode}
+% We finish the box.
+% \begin{macrocode}
+\hss \ocgtools@shipoutend@hook%
+\kern 1in \kern -\layerHshift%
+}%
+}
+% \end{macrocode}
+% We create buttons which are used to hide all layers (if we create
+% buttons, we keep possibility to make them hidden, in contrast to
+% links).
+% \begin{macrocode}
+\def\ocgtools@HideBtn{\pushButton[\W{0}\BG{}\S{S}\BC{}\H{N}\F{\FHidden}\A{\JS{
+ for(var i=0; ocgtoolsOCGs && i<ocgtoolsOCGs.length;i++)
+ {
+ ocgtoolsOCGs[i].state = false;
+ }
+ \ifocg@hide@button this.getField("OcgtoolsBtn.HideButton").hidden = true; \fi
+ }}]{OcgtoolsBtn.HideButton.main}{\paperwidth}{\paperheight}}
+% \end{macrocode}
+% We create buttons which are attached to the top right corner
+% of each minilayer and can be used to hide the corresponding minilayer.
+% \begin{macrocode}
+\newcommand\ocgtools@HideMiniLayer[1]
+{\setbox\ocgtools@box@a=\hbox{{\color{red}\ocgclosechar}}%
+\hbox to \wd\ocgtools@box@a%
+{\hbox{{\color{red}\ocgclosechar}}\hss%
+\hbox{\pushButton[\W{0}\S{S}\BG{}\BC{}\H{N}%
+\F{\FHidden}\A{\JS{
+ for(var i=0; ocgtoolsOCGs && i<ocgtoolsOCGs.length;i++)
+ {
+ if(ocgtoolsOCGs[i].name == "ocgtools#1")
+ ocgtoolsOCGs[i].state = false;
+ }
+ this.getField("OcgtoolsBtn.HideButton.mini.#1").hidden = true;
+ }}]%
+ {OcgtoolsBtn.HideButton.mini.#1}{\wd\ocgtools@box@a}{\ht\ocgtools@box@a}}}}
+% \end{macrocode}
+% We create buttons which are attached tothe bottom right corner
+% of the screen and can be used to hide all layers.
+% \begin{macrocode}
+\newcommand\ocgtools@HideLayers[1]{%
+\setbox\ocgtools@box@a=\hbox{{\color{red}\ocgclosechar}}%
+\hbox to \wd\ocgtools@box@a%
+{\hbox{{\color{red}\ocgclosechar}}\hss%
+\hbox{\pushButton[\W{0}\S{S}\BG{}\BC{}\H{N}%
+\F{\FHidden}\A{\JS{
+ for(var i=0; ocgtoolsOCGs && i<ocgtoolsOCGs.length;i++)
+ {
+ ocgtoolsOCGs[i].state = false;
+ }
+ \ifocg@hide@button
+ this.getField("OcgtoolsBtn.HideButton.main").hidden = true;
+ \fi
+ }}]%
+ {OcgtoolsBtn.HideButton.corner.#1}{\wd\ocgtools@box@a}{\ht\ocgtools@box@a}}}}
+% \end{macrocode}
+% To hide/unhide layers and minilayers we use modified code from
+% http://www.texample.net/weblog/2008/nov/02/creating-pdf-layers/
+% \begin{macrocode}
+\newcommand{\ocgtools@ToggleLayer}[2]{%
+ % #1: layer name,
+ % #2: link text
+ \leavevmode%
+ \pdfstartlink user {
+ /Subtype /Link
+ /Border [0 0 0]%
+ /H /N
+ /A <<
+ /S/JavaScript
+ /JS (
+ for(var i=0; ocgtoolsOCGs && i<ocgtoolsOCGs.length;i++)
+ {
+ if(ocgtoolsOCGs[i].name == "ocgtools#1")
+ ocgtoolsOCGs[i].state = !ocgtoolsOCGs[i].state;
+ else
+ ocgtoolsOCGs[i].state = false;
+ }
+ \ifocg@hide@button this.getField("OcgtoolsBtn.HideButton.main").hidden = false;\fi
+ this.getField("OcgtoolsBtn.HideButton.corner").hidden = false;
+ this.getField("OcgtoolsBtn.HideButton.corner.#1").setFocus();
+ )
+ >>
+ }#2%
+ \if@ocgtools@mouseover
+ \hbox to 0 pt{\hss\pushButton[\W{0}\S{S}\BG{}\BC{}\H{N}%
+ \A{\JS{
+ var OpenedByMouseEnter#1=false;
+ \ifocg@hide@button this.getField("OcgtoolsBtn.HideButton.main").hidden = false;\fi
+ this.getField("OcgtoolsBtn.HideButton.corner").hidden = false;
+ this.getField("OcgtoolsBtn.HideButton.corner.#1").setFocus();
+ }}
+ \AA{\AAMouseEnter{\JS{ for(var i=0; ocgtoolsOCGs && i<ocgtoolsOCGs.length;i++)
+ {
+ var OpenedByMouseEnter#1=true;
+ if(ocgtoolsOCGs[i].name == "ocgtools#1")
+ ocgtoolsOCGs[i].state = true;
+ else
+ ocgtoolsOCGs[i].state = false;
+ }
+ }}
+ \AAMouseExit{\JS{
+ if (OpenedByMouseEnter#1)
+ {for(var i=0; ocgtoolsOCGs && i<ocgtoolsOCGs.length;i++)
+ {
+ if(ocgtoolsOCGs[i].name == "ocgtools#1")
+ ocgtoolsOCGs[i].state = false;
+ }}
+ }}}]
+ {OcgtoolsBtn.MaxiButton.#1}{8pt}{8pt}}%
+ \fi
+ \pdfendlink%
+}
+
+\newcommand{\ocgtools@ToggleMiniLayer}[2]{%
+ % #1: layer name,
+ % #2: link text
+ \leavevmode%
+ \pdfstartlink user {
+ /Subtype /Link
+ /Border [0 0 0]%
+ /H /N
+ /A <<
+ /S/JavaScript
+ /JS (
+ for(var i=0; ocgtoolsOCGs && i<ocgtoolsOCGs.length;i++)
+ {
+ if(ocgtoolsOCGs[i].name == "ocgtools#1")
+ ocgtoolsOCGs[i].state = !ocgtoolsOCGs[i].state;
+ }
+ this.getField("OcgtoolsBtn.HideButton.mini.#1").hidden =
+ !this.getField("OcgtoolsBtn.HideButton.mini.#1").hidden;
+ if (!this.getField("OcgtoolsBtn.HideButton.mini.#1").hidden)
+ {this.getField("OcgtoolsBtn.HideButton.mini.#1").setFocus();}
+ )
+ >>
+ }#2%
+ \if@ocgtools@minimouseover
+ \hbox to 0 pt{\hss\pushButton[\W{0}\S{S}\BG{}\BC{}\H{N}%
+ \A{\JS{
+ var OpenedByMouseEnter#1=false;
+ this.getField("OcgtoolsBtn.HideButton.mini.#1").setFocus();
+ }}
+ \AA{\AAMouseEnter{\JS{for(var i=0; ocgtoolsOCGs && i<ocgtoolsOCGs.length;i++)
+ {
+ var OpenedByMouseEnter#1=true;
+ if(ocgtoolsOCGs[i].name == "ocgtools#1")
+ ocgtoolsOCGs[i].state = true;
+ }
+ this.getField("OcgtoolsBtn.HideButton.mini.#1").hidden = false;
+ }}
+ \AAMouseExit{\JS{
+ if (OpenedByMouseEnter#1)
+ {
+ for(var i=0; ocgtoolsOCGs && i<ocgtoolsOCGs.length;i++)
+ {
+ if(ocgtoolsOCGs[i].name == "ocgtools#1")
+ ocgtoolsOCGs[i].state = false;
+ }
+ this.getField("OcgtoolsBtn.HideButton.mini.#1").hidden = true;
+ }
+ }}}]
+ {OcgtoolsBtn.MiniButton.#1}{8pt}{8pt}}%
+ \fi
+ \pdfendlink%
+}
+
+% \end{macrocode}
+% Macros dealing with |\savepos| from Vit Zyka's paper in CSTUG
+% Bulletin (ISSN 1211-6661, No. 2, 2007)
+% \begin{macrocode}
+\newwrite\posHandle
+\def\posFile{\jobname.pos}
+\def\posOpen{\openout\posHandle=\posFile}
+\def\posClose{\closeout\posHandle}
+\ifocgtools@noocg
+\else
+\AtBeginDocument{\InputIfFileExists{\posFile}{}{}%
+\ocgtools@maxheight=0.9\paperheight
+\ocgtools@maxwidth=0.9\paperwidth
+\expandafter\global\expandafter\def\csname ocgtools@textcontent@0\endcsname
+{{\color{red}\bfseries\ocgtools@msg}}
+\expandafter\ocgtools@layer@toks\expandafter{\the\ocgtools@layer@toks
+\ocg@place@text{0}{1}{5cm}}
+\posOpen}
+\AtEndDocument{\posClose}
+\fi
+
+% \end{macrocode}
+% The following commands create links to hide/unhide layers and
+% minilayers and write information on the layer number, page and layer
+% content into the |pos| file. The content of textlayer is stored in
+% command |\ocgtools@textcontent@<n>| where |<n>| is the number of the
+% layer. Similarly, the content of the minitextlayer is stored in
+% |\ocgtools@minitextcontent@<n>|.
+% \begin{macrocode}
+\newcommand\ocgpicture[2][]{%
+\global\advance\ocgtools@layercount by 1%
+\ocgtools@ToggleLayer{\the\ocgtools@layercount}%
+{\leavevmode\includegraphics[#1]{#2}}%
+\expandafter\write\expandafter\posHandle\expandafter{%
+\expandafter\string\expandafter\ocgtoolsplacepicture\expandafter{%
+\the\ocgtools@layercount}{\thepage}{#2}}%
+}
+
+\newcommand\ocgtext[3][0pt]{%
+\global\advance\ocgtools@layercount by 1%
+\ocgtools@ToggleLayer{\the\ocgtools@layercount}%
+{\leavevmode{\ocgtextstart #2\ocgtextend}}%
+\expandafter\write\expandafter\posHandle\expandafter{%
+\expandafter\string\expandafter\ocgtoolsplacetext\expandafter{%
+\the\ocgtools@layercount}{\thepage}{#1}}%
+\expandafter\global\expandafter\def
+\csname ocgtools@textcontent@\the\ocgtools@layercount\endcsname{#3}%
+}
+
+\newcommand\ocgminitextlt[3][0pt]{%
+\ocg@minitext@lefttrue\do@ocg@minitext{#1}{#2}{#3}{lt}}%
+\newcommand\ocgminitextrt[3][0pt]{%
+\ocg@minitext@leftfalse\do@ocg@minitext{#1}{#2}{#3}{rt}}%
+\newcommand\ocgminitextlb[3][0pt]{%
+\ocg@minitext@lefttrue\do@ocg@minitext{#1}{#2}{#3}{lb}}%
+\newcommand\ocgminitextrb[3][0pt]{%
+\ocg@minitext@leftfalse\do@ocg@minitext{#1}{#2}{#3}{rb}}%
+\let\ocgminitext\ocgminitextrt
+
+\long\def\do@ocg@minitext#1#2#3#4{%
+\global\advance\ocgtools@layercount by 1\relax%
+\leavevmode
+\ifocg@minitext@left
+ \vbox to 0 pt{\kern 0.5\baselineskip\hbox to 0 pt{\hss\pdfsavepos}\vss}%
+\fi
+\ocgtools@ToggleMiniLayer{\the\ocgtools@layercount}%
+{{\ocgtextstart #2\ocgtextend}}%
+\ifocg@minitext@left\else\pdfsavepos\fi
+\expandafter\write\expandafter\posHandle\expandafter{%
+\expandafter\string\expandafter\ocgtoolsplaceminitext\expandafter
+{\the\ocgtools@layercount}{\thepage}{\the\pdflastxpos}%
+{\the\pdflastypos}{}{#1}{#4}}%
+\expandafter\global\expandafter\def
+\csname ocgtools@minitextcontent@\the\ocgtools@layercount\endcsname{#3}%
+}%
+
+% \end{macrocode}
+% These commands appear in |pos| file and we read these commands at the
+% begin of the document. Pictures are stored in token register, texts
+% for layers and minilayers are stored in commands defined by
+% |\csname|.
+% \begin{macrocode}
+\newcommand\ocgtoolsplacepicture[3]{%
+\expandafter\global\expandafter\ocgtools@layer@toks\expandafter
+{\the\ocgtools@layer@toks \ocg@place@picture{#1}{#2}{#3}}}
+
+\newcommand\ocgtoolsplacetext[3]{%
+\expandafter\global\expandafter\ocgtools@layer@toks\expandafter
+{\the\ocgtools@layer@toks\ocg@place@text{#1}{#2}{#3}}}
+
+\newcommand\ocgtoolsplaceminitext[7]{%
+\expandafter\global\expandafter\ocgtools@layer@toks\expandafter
+{\the\ocgtools@layer@toks \ocg@place@minitext{#1}{#2}{#3}{#4}{#5}{#6}{#7}}}
+
+% \end{macrocode}
+% These commands are called in output routine for each layer on each
+% page. They put the layer on the page, if the layer should be here
+% (i.e., if the second parameter equals |\thepage|).
+% \begin{macrocode}
+\def\ocg@place@picture#1#2#3{\def\tempnuma{#2}\edef\tempnumb{\thepage}%
+\ifx\tempnumb\tempnuma
+ \global\ocg@page@contains@layertrue
+ \vbox to 0 pt{\vss\hbox to 0pt%
+ {\hbox{\begin{ocg}{ocgtools#1}{ocgtools#1}{\ocgtools@initialvisibility}%
+ \ocgtools@drawpicture{#3}{#1}\end{ocg}}\hss}}%
+\fi}
+
+\def\ocg@place@text#1#2#3{\def\tempnuma{#2}\edef\tempnumb{\thepage}%
+\ifx\tempnumb\tempnuma
+ \global\ocg@page@contains@layertrue
+ \vbox to 0 pt{\vss\hbox to 0 pt{\hbox{%
+ \begin{ocg}{ocgtools#1}{ocgtools#1}{\ocgtools@initialvisibility}%
+ \ocgtools@drawtext{#3}{\csname ocgtools@textcontent@#1\endcsname}{#1}%
+ \end{ocg}}\hss}}%
+\fi}
+
+\long\def\ocg@place@minitext#1#2#3#4#5#6#7{%
+\def\tempnuma{#2}\edef\tempnumb{\thepage}%
+\def\ocg@placement{#7}%
+\def\ocg@rb{rb}\def\ocg@lb{lb}\def\ocg@rt{rt}\def\ocg@lt{lt}%
+\ocg@minitext@leftfalse\ocg@minitext@bottomfalse
+\ifx\ocg@placement\ocg@lb
+ \ocg@minitext@lefttrue\ocg@minitext@bottomtrue
+\fi
+\ifx\ocg@placement\ocg@rb
+ \ocg@minitext@leftfalse\ocg@minitext@bottomtrue\fi
+\ifx\ocg@placement\ocg@lt
+ \ocg@minitext@lefttrue\ocg@minitext@bottomfalse
+\fi
+\ifx\tempnumb\tempnuma
+ \ocgtools@left@skip=#3sp minus #3sp%
+ \ocgtools@bottom@skip=#4sp%
+ \setbox\ocgtools@box@a=\hbox{\begin{ocg}{ocgtools#1}{ocgtools#1}{\ocgtools@initialvisibility}%
+ \ocgtools@drawminitext{#6}{\csname ocgtools@minitextcontent@#1\endcsname}{#1}
+ \end{ocg}}%
+ \ifocg@minitext@left
+ \ifdim \ocgtools@left@skip>\wd\ocgtools@box@a
+ \advance \ocgtools@left@skip by -\wd\ocgtools@box@a plus 0 pt minus -\wd\ocgtools@box@a
+ \else
+ \ocgtools@left@skip=0pt\relax
+ \fi
+ \fi
+ \ifocg@minitext@bottom
+ \advance \ocgtools@bottom@skip by -\ht\ocgtools@box@a
+ \fi
+ \hbox to 0 pt{\hbox to \paperwidth{\hskip \ocgtools@left@skip
+ \vbox to 0 pt{\vss
+ \vbox to \paperheight{\vskip 0 pt plus 1 fill
+ \box\ocgtools@box@a\vskip \ocgtools@bottom@skip}
+ }%
+ \hskip 0 pt plus 1 fill}\hss}%
+\fi
+}
+
+% \end{macrocode}
+% This code actually gives a graphical representation of the layers.
+% \begin{macrocode}
+\def\ocgtools@drawpicture#1#2{\vbox to \paperheight{\vbox to 0 pt{{%
+\ocgtools@transparent\color{ocgbg}%
+\hrule width \paperwidth height \paperheight}\vss}\vss
+\hbox to \paperwidth{\hss
+\setbox\ocgtools@box@a=\hbox{\includegraphics[height=\ocgtools@maxheight]{#1}}%
+\ifdim\wd\ocgtools@box@a>\ocgtools@maxwidth
+ \includegraphics[width=\ocgtools@maxwidth]{#1}\else \box\ocgtools@box@a
+\fi
+\hss}%
+\vss
+\hbox to \paperwidth {\hss\ocgtools@HideLayers{#2}}}}
+
+\newdimen\ocg@textdimen
+
+\long\def\ocgtools@drawtext#1#2#3{\vbox to \paperheight{%
+\vbox to 0 pt{{\ocgtools@transparent\color{ocgbg}%
+\hrule width \paperwidth height \paperheight}\vss}\vss\hbox to \paperwidth
+{\hss
+\ocg@textdimen=#1
+\ifdim\ocg@textdimen=0pt
+ \setbox\ocgtools@box@a=\hbox{\colorbox{ocgpaper}{#2}}%
+\else
+ \setbox\ocgtools@box@a=\hbox{\colorbox{ocgpaper}%
+ {\vbox{\hsize=#1\relax\rightskip 0 pt plus 1 fil\relax #2}}}%
+\fi
+\setbox\ocgtools@box@b\hbox{\resizebox{!}{\ocgtools@maxheight}{\copy\ocgtools@box@a}}%
+\ifdim\wd\ocgtools@box@b>\ocgtools@maxwidth
+ \resizebox{\ocgtools@maxwidth}{!}{\box\ocgtools@box@a}
+\else
+ \box\ocgtools@box@b
+\fi
+\hss}%
+\vss
+\hbox to \paperwidth {\hss\ocgtools@HideLayers{#3}}}}
+
+\def\ocg@empty{}
+
+\newcommand\ocgtools@drawminitext[3]{\ocg@textdimen=#1
+\ifdim\ocg@textdimen=0pt
+ \setbox\ocgtools@box@a=\hbox{\colorbox{ocgpaper}{#2\ }}%
+\else \setbox\ocgtools@box@a=\hbox{\colorbox{ocgpaper}%
+ {\vbox{\hsize=#1\relax\rightskip 0 pt plus 1 fil\relax #2}}}%
+\fi
+\def\temp{#3}%
+\ifx\temp\ocg@empty
+\box\ocgtools@box@a
+\else
+\hbox{\copy\ocgtools@box@a\raise\ht\ocgtools@box@a
+\vbox to 0 pt{\hbox to 0 pt{\hss
+\ocgtools@HideMiniLayer{#3}}\vss}}%
+\fi
+}
+
+\ifocgtools@noocg
+ \renewcommand\ocgpicture[2][]{\leavevmode\includegraphics[#1]{#2}}
+ \renewcommand\ocgtext[3][0pt]{\leavevmode #2}
+ \long\def\do@ocg@minitext#1#2#3#4{\leavevmode #2}%
+ \renewcommand\ocgtoolsplacepicture[3]{}
+ \renewcommand\ocgtoolsplacetext[3]{}
+ \renewcommand\ocgtoolsplaceminitext[7]{}
+\fi
+
+%</package>
+% \end{macrocode}
+%
+% \Finale
+\endinput
+
+
+
diff --git a/Master/texmf-dist/source/latex/ocgtools/ocgtools.ins b/Master/texmf-dist/source/latex/ocgtools/ocgtools.ins
new file mode 100644
index 00000000000..d8d016b6e24
--- /dev/null
+++ b/Master/texmf-dist/source/latex/ocgtools/ocgtools.ins
@@ -0,0 +1,56 @@
+%%
+%% Copyright (C) 2010 by Robert Marik <marik@mendelu.cz>
+%%
+%% This file may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License, either version 1.2 of this license
+%% or (at your option) any later version. The latest version of this
+%% license is in:
+%%
+%% http://www.latex-project.org/lppl.txt
+%%
+%% and version 1.2 or later is part of all distributions of LaTeX version
+%% 1999/12/01 or later.
+%%
+
+\input docstrip.tex
+\keepsilent
+
+\usedir{tex/latex/ocgtools}
+
+\preamble
+
+This is a generated file.
+
+Copyright (C) 2010 by Robert Marik <marik@mendelu.cz>
+
+This file may be distributed and/or modified under the conditions of
+the LaTeX Project Public License, either version 1.2 of this license
+or (at your option) any later version. The latest version of this
+license is in:
+
+ http://www.latex-project.org/lppl.txt
+
+and version 1.2 or later is part of all distributions of LaTeX version
+1999/12/01 or later.
+
+\endpreamble
+
+\generate{\file{ocgtools.sty}{\from{ocgtools.dtx}{package}}
+}
+
+\obeyspaces
+\Msg{*************************************************************}
+\Msg{* *}
+\Msg{* To finish the installation you have to move the following *}
+\Msg{* files into a directory searched by TeX: *}
+\Msg{* *}
+\Msg{* ocgtools.sty *}
+\Msg{* *}
+\Msg{* To produce the documentation run the file *}
+\Msg{* ocgtools.dtx through LaTeX. *}
+\Msg{* *}
+\Msg{* Happy TeXing! *}
+\Msg{* *}
+\Msg{*************************************************************}
+
+\endbatchfile
diff --git a/Master/texmf-dist/tex/latex/ocgtools/ocgtools.sty b/Master/texmf-dist/tex/latex/ocgtools/ocgtools.sty
new file mode 100644
index 00000000000..5cac7f126ee
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/ocgtools/ocgtools.sty
@@ -0,0 +1,489 @@
+%%
+%% This is file `ocgtools.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% ocgtools.dtx (with options: `package')
+%%
+%% This is a generated file.
+%%
+%% Copyright (C) 2010 by Robert Marik <marik@mendelu.cz>
+%%
+%% This file may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License, either version 1.2 of this license
+%% or (at your option) any later version. The latest version of this
+%% license is in:
+%%
+%% http://www.latex-project.org/lppl.txt
+%%
+%% and version 1.2 or later is part of all distributions of LaTeX version
+%% 1999/12/01 or later.
+%%
+\NeedsTeXFormat{LaTeX2e}[1999/12/01]
+\ProvidesPackage{ocgtools}
+ [2010/04/01 v0.5 ocgtools.dtx file]
+\def\ocgtools@msg{If message does not disappear after a short time, the
+ author either did not compile the \LaTeX{} file three times, or your
+ PDF viewer does not support OCG. Use Adobe Reader!}
+
+\def\ocgtextstart{\color{blue}}
+\def\ocgtextend{}
+\ifx\definecolor\undefined\RequirePackage{color}\fi
+\ifx\href\undefined\RequirePackage[pdftex]{hyperref}\fi
+\definecolor{ocgpaper}{rgb}{1,1,0.2}
+\definecolor{ocgbg}{rgb}{0,0,0}
+\RequirePackage{graphicx}
+\RequirePackage{pifont}
+\RequirePackage{ocg}
+
+\def\ocgclosechar{\ding{56}}
+\RequirePackage{atbegshi}
+\RequirePackage[pdftex]{eforms}
+\newif\if@ocgtools@transparent\@ocgtools@transparentfalse
+\DeclareOption{transparent}{\@ocgtools@transparenttrue}
+\newif\if@ocgtools@insertvisible\@ocgtools@insertvisiblefalse
+\def\ocgtools@initialvisibility{0}
+\DeclareOption{insertvisible}{\@ocgtools@insertvisibletrue
+ \def\ocgtools@initialvisibility{1}}
+\newif\ifocg@hide@button\ocg@hide@buttontrue
+\DeclareOption{nobutton}{\ocg@hide@buttonfalse}
+\newif\ifocgtools@noocg\ocgtools@noocgfalse
+\DeclareOption{noocg}{\ocgtools@noocgtrue}
+\def\ocgtools@progressmsg{\lower \layerVshift\hbox to 0 pt{ %space
+ \textField[\V{OCGtools: processing OCG's ...}\BG{1}
+ \textColor{1 0 0} \textSize{10}]%
+{ocgtoolsmsg}{6cm}{20pt}\hss}}%
+\DeclareOption{noprogressmsg}{\let\ocgtools@progressmsg\relax}
+\newif\if@ocgtools@minimouseover \@ocgtools@minimouseoverfalse
+\DeclareOption{minimouseover}{\@ocgtools@minimouseovertrue}
+\newif\if@ocgtools@mouseover \@ocgtools@mouseoverfalse
+\DeclareOption{mouseover}{\@ocgtools@mouseovertrue \@ocgtools@minimouseovertrue}
+\newif\if@ocgtools@pageclose \@ocgtools@pageclosetrue
+\DeclareOption{nopageclose}{\@ocgtools@pageclosefalse}
+\ProcessOptions
+\edef\ocgtools@pdfpageattr{
+/AA << /O << /S /JavaScript /JS
+ (
+ try{
+ var temp = ocgtoolsOCGs.length;
+ \if@ocgtools@pageclose
+ for(var i=0; ocgtoolsOCGs && i<ocgtoolsOCGs.length;i++)
+ {
+ ocgtoolsOCGs[i].state = false;
+ }
+ \fi
+ }
+ catch (e){
+ app.focusRectg = false;
+ var iniocgtoolsOCGs = this.getOCGs();
+ var ocgtoolsOCGs = [];
+ for(var i=0; iniocgtoolsOCGs && i<iniocgtoolsOCGs.length;i++)
+ {
+ if(iniocgtoolsOCGs[i].name.substr(0,8) == "ocgtools")
+ {
+ ocgtoolsOCGs.push(iniocgtoolsOCGs[i]);
+ \if@ocgtools@insertvisible
+ iniocgtoolsOCGs[i].state=false;
+ \fi
+ }
+ }
+ iniocgtoolsOCGs[0].state=true;
+ iniocgtoolsOCGs[0].state=false;
+ \ifx\ocgtools@progressmsg\relax\relax\else
+ this.getField("ocgtoolsmsg").hidden=true;
+ \fi
+ }
+ \ifocg@hide@button
+ this.getField("OcgtoolsBtn.HideButton.main").hidden = true;
+ \fi
+ )
+ >> >>
+}
+
+\expandafter\global\expandafter\pdfpageattr\expandafter{\ocgtools@pdfpageattr}
+
+\def\ocgtools@transparent{}
+\if@ocgtools@transparent
+\RequirePackage{transparent} \def\ocgtools@transparent{\transparent{0.4}}
+\fi
+\newif\ifocg@minitext@left
+\newif\ifocg@minitext@bottom
+\newcount\ocgtools@layercount
+\newskip\ocgtools@left@skip
+\newskip\ocgtools@bottom@skip
+\newdimen\ocgtools@maxheight
+\newdimen\ocgtools@maxwidth
+\newdimen\layerHshift \layerHshift=0pt
+\newdimen\layerVshift \layerVshift=0pt
+\ifx\@Rightmargin\undefined\else
+ \layerVshift=3pt
+\fi
+\ifx\PDFSCR@Warning\undefined\else
+ \layerVshift=\@Bottommargin
+\fi
+
+\newtoks\ocgtools@layer@toks
+\ocgtools@layer@toks{}
+\newbox\ocgtools@box@a
+\newbox\ocgtools@box@b
+\newif\ifocg@page@contains@layer
+\def\ocgtools@one{1}
+\let\ocgtools@shipoutstart@hook\relax
+\let\ocgtools@shipoutend@hook\relax
+\AtBeginShipout{%
+\setbox\AtBeginShipoutBox=\hbox{%
+\ocgtools@shipoutstart@hook
+\hbox to 0 pt{\box\AtBeginShipoutBox\hss}\kern -1in\kern \layerHshift
+\ocg@page@contains@layerfalse
+\lower \layerVshift \hbox{\the\ocgtools@layer@toks}%
+\ifocg@page@contains@layer
+ \vbox to 0 pt{\kern -\paperheight \kern\layerVshift\hbox to 0 pt{\ocgtools@HideBtn\hss}\vss}%
+\fi
+\xdef\ocgtools@currpage{\thepage}%
+\ifx\ocgtools@currpage\ocgtools@one
+\ocgtools@progressmsg
+\fi
+\hss \ocgtools@shipoutend@hook%
+\kern 1in \kern -\layerHshift%
+}%
+}
+\def\ocgtools@HideBtn{\pushButton[\W{0}\BG{}\S{S}\BC{}\H{N}\F{\FHidden}\A{\JS{
+ for(var i=0; ocgtoolsOCGs && i<ocgtoolsOCGs.length;i++)
+ {
+ ocgtoolsOCGs[i].state = false;
+ }
+ \ifocg@hide@button this.getField("OcgtoolsBtn.HideButton").hidden = true; \fi
+ }}]{OcgtoolsBtn.HideButton.main}{\paperwidth}{\paperheight}}
+\newcommand\ocgtools@HideMiniLayer[1]
+{\setbox\ocgtools@box@a=\hbox{{\color{red}\ocgclosechar}}%
+\hbox to \wd\ocgtools@box@a%
+{\hbox{{\color{red}\ocgclosechar}}\hss%
+\hbox{\pushButton[\W{0}\S{S}\BG{}\BC{}\H{N}%
+\F{\FHidden}\A{\JS{
+ for(var i=0; ocgtoolsOCGs && i<ocgtoolsOCGs.length;i++)
+ {
+ if(ocgtoolsOCGs[i].name == "ocgtools#1")
+ ocgtoolsOCGs[i].state = false;
+ }
+ this.getField("OcgtoolsBtn.HideButton.mini.#1").hidden = true;
+ }}]%
+ {OcgtoolsBtn.HideButton.mini.#1}{\wd\ocgtools@box@a}{\ht\ocgtools@box@a}}}}
+\newcommand\ocgtools@HideLayers[1]{%
+\setbox\ocgtools@box@a=\hbox{{\color{red}\ocgclosechar}}%
+\hbox to \wd\ocgtools@box@a%
+{\hbox{{\color{red}\ocgclosechar}}\hss%
+\hbox{\pushButton[\W{0}\S{S}\BG{}\BC{}\H{N}%
+\F{\FHidden}\A{\JS{
+ for(var i=0; ocgtoolsOCGs && i<ocgtoolsOCGs.length;i++)
+ {
+ ocgtoolsOCGs[i].state = false;
+ }
+ \ifocg@hide@button
+ this.getField("OcgtoolsBtn.HideButton.main").hidden = true;
+ \fi
+ }}]%
+ {OcgtoolsBtn.HideButton.corner.#1}{\wd\ocgtools@box@a}{\ht\ocgtools@box@a}}}}
+\newcommand{\ocgtools@ToggleLayer}[2]{%
+ % #1: layer name,
+ % #2: link text
+ \leavevmode%
+ \pdfstartlink user {
+ /Subtype /Link
+ /Border [0 0 0]%
+ /H /N
+ /A <<
+ /S/JavaScript
+ /JS (
+ for(var i=0; ocgtoolsOCGs && i<ocgtoolsOCGs.length;i++)
+ {
+ if(ocgtoolsOCGs[i].name == "ocgtools#1")
+ ocgtoolsOCGs[i].state = !ocgtoolsOCGs[i].state;
+ else
+ ocgtoolsOCGs[i].state = false;
+ }
+ \ifocg@hide@button this.getField("OcgtoolsBtn.HideButton.main").hidden = false;\fi
+ this.getField("OcgtoolsBtn.HideButton.corner").hidden = false;
+ this.getField("OcgtoolsBtn.HideButton.corner.#1").setFocus();
+ )
+ >>
+ }#2%
+ \if@ocgtools@mouseover
+ \hbox to 0 pt{\hss\pushButton[\W{0}\S{S}\BG{}\BC{}\H{N}%
+ \A{\JS{
+ var OpenedByMouseEnter#1=false;
+ \ifocg@hide@button this.getField("OcgtoolsBtn.HideButton.main").hidden = false;\fi
+ this.getField("OcgtoolsBtn.HideButton.corner").hidden = false;
+ this.getField("OcgtoolsBtn.HideButton.corner.#1").setFocus();
+ }}
+ \AA{\AAMouseEnter{\JS{ for(var i=0; ocgtoolsOCGs && i<ocgtoolsOCGs.length;i++)
+ {
+ var OpenedByMouseEnter#1=true;
+ if(ocgtoolsOCGs[i].name == "ocgtools#1")
+ ocgtoolsOCGs[i].state = true;
+ else
+ ocgtoolsOCGs[i].state = false;
+ }
+ }}
+ \AAMouseExit{\JS{
+ if (OpenedByMouseEnter#1)
+ {for(var i=0; ocgtoolsOCGs && i<ocgtoolsOCGs.length;i++)
+ {
+ if(ocgtoolsOCGs[i].name == "ocgtools#1")
+ ocgtoolsOCGs[i].state = false;
+ }}
+ }}}]
+ {OcgtoolsBtn.MaxiButton.#1}{8pt}{8pt}}%
+ \fi
+ \pdfendlink%
+}
+
+\newcommand{\ocgtools@ToggleMiniLayer}[2]{%
+ % #1: layer name,
+ % #2: link text
+ \leavevmode%
+ \pdfstartlink user {
+ /Subtype /Link
+ /Border [0 0 0]%
+ /H /N
+ /A <<
+ /S/JavaScript
+ /JS (
+ for(var i=0; ocgtoolsOCGs && i<ocgtoolsOCGs.length;i++)
+ {
+ if(ocgtoolsOCGs[i].name == "ocgtools#1")
+ ocgtoolsOCGs[i].state = !ocgtoolsOCGs[i].state;
+ }
+ this.getField("OcgtoolsBtn.HideButton.mini.#1").hidden =
+ !this.getField("OcgtoolsBtn.HideButton.mini.#1").hidden;
+ if (!this.getField("OcgtoolsBtn.HideButton.mini.#1").hidden)
+ {this.getField("OcgtoolsBtn.HideButton.mini.#1").setFocus();}
+ )
+ >>
+ }#2%
+ \if@ocgtools@minimouseover
+ \hbox to 0 pt{\hss\pushButton[\W{0}\S{S}\BG{}\BC{}\H{N}%
+ \A{\JS{
+ var OpenedByMouseEnter#1=false;
+ this.getField("OcgtoolsBtn.HideButton.mini.#1").setFocus();
+ }}
+ \AA{\AAMouseEnter{\JS{for(var i=0; ocgtoolsOCGs && i<ocgtoolsOCGs.length;i++)
+ {
+ var OpenedByMouseEnter#1=true;
+ if(ocgtoolsOCGs[i].name == "ocgtools#1")
+ ocgtoolsOCGs[i].state = true;
+ }
+ this.getField("OcgtoolsBtn.HideButton.mini.#1").hidden = false;
+ }}
+ \AAMouseExit{\JS{
+ if (OpenedByMouseEnter#1)
+ {
+ for(var i=0; ocgtoolsOCGs && i<ocgtoolsOCGs.length;i++)
+ {
+ if(ocgtoolsOCGs[i].name == "ocgtools#1")
+ ocgtoolsOCGs[i].state = false;
+ }
+ this.getField("OcgtoolsBtn.HideButton.mini.#1").hidden = true;
+ }
+ }}}]
+ {OcgtoolsBtn.MiniButton.#1}{8pt}{8pt}}%
+ \fi
+ \pdfendlink%
+}
+
+\newwrite\posHandle
+\def\posFile{\jobname.pos}
+\def\posOpen{\openout\posHandle=\posFile}
+\def\posClose{\closeout\posHandle}
+\ifocgtools@noocg
+\else
+\AtBeginDocument{\InputIfFileExists{\posFile}{}{}%
+\ocgtools@maxheight=0.9\paperheight
+\ocgtools@maxwidth=0.9\paperwidth
+\expandafter\global\expandafter\def\csname ocgtools@textcontent@0\endcsname
+{{\color{red}\bfseries\ocgtools@msg}}
+\expandafter\ocgtools@layer@toks\expandafter{\the\ocgtools@layer@toks
+\ocg@place@text{0}{1}{5cm}}
+\posOpen}
+\AtEndDocument{\posClose}
+\fi
+
+\newcommand\ocgpicture[2][]{%
+\global\advance\ocgtools@layercount by 1%
+\ocgtools@ToggleLayer{\the\ocgtools@layercount}%
+{\leavevmode\includegraphics[#1]{#2}}%
+\expandafter\write\expandafter\posHandle\expandafter{%
+\expandafter\string\expandafter\ocgtoolsplacepicture\expandafter{%
+\the\ocgtools@layercount}{\thepage}{#2}}%
+}
+
+\newcommand\ocgtext[3][0pt]{%
+\global\advance\ocgtools@layercount by 1%
+\ocgtools@ToggleLayer{\the\ocgtools@layercount}%
+{\leavevmode{\ocgtextstart #2\ocgtextend}}%
+\expandafter\write\expandafter\posHandle\expandafter{%
+\expandafter\string\expandafter\ocgtoolsplacetext\expandafter{%
+\the\ocgtools@layercount}{\thepage}{#1}}%
+\expandafter\global\expandafter\def
+\csname ocgtools@textcontent@\the\ocgtools@layercount\endcsname{#3}%
+}
+
+\newcommand\ocgminitextlt[3][0pt]{%
+\ocg@minitext@lefttrue\do@ocg@minitext{#1}{#2}{#3}{lt}}%
+\newcommand\ocgminitextrt[3][0pt]{%
+\ocg@minitext@leftfalse\do@ocg@minitext{#1}{#2}{#3}{rt}}%
+\newcommand\ocgminitextlb[3][0pt]{%
+\ocg@minitext@lefttrue\do@ocg@minitext{#1}{#2}{#3}{lb}}%
+\newcommand\ocgminitextrb[3][0pt]{%
+\ocg@minitext@leftfalse\do@ocg@minitext{#1}{#2}{#3}{rb}}%
+\let\ocgminitext\ocgminitextrt
+
+\long\def\do@ocg@minitext#1#2#3#4{%
+\global\advance\ocgtools@layercount by 1\relax%
+\leavevmode
+\ifocg@minitext@left
+ \vbox to 0 pt{\kern 0.5\baselineskip\hbox to 0 pt{\hss\pdfsavepos}\vss}%
+\fi
+\ocgtools@ToggleMiniLayer{\the\ocgtools@layercount}%
+{{\ocgtextstart #2\ocgtextend}}%
+\ifocg@minitext@left\else\pdfsavepos\fi
+\expandafter\write\expandafter\posHandle\expandafter{%
+\expandafter\string\expandafter\ocgtoolsplaceminitext\expandafter
+{\the\ocgtools@layercount}{\thepage}{\the\pdflastxpos}%
+{\the\pdflastypos}{}{#1}{#4}}%
+\expandafter\global\expandafter\def
+\csname ocgtools@minitextcontent@\the\ocgtools@layercount\endcsname{#3}%
+}%
+
+\newcommand\ocgtoolsplacepicture[3]{%
+\expandafter\global\expandafter\ocgtools@layer@toks\expandafter
+{\the\ocgtools@layer@toks \ocg@place@picture{#1}{#2}{#3}}}
+
+\newcommand\ocgtoolsplacetext[3]{%
+\expandafter\global\expandafter\ocgtools@layer@toks\expandafter
+{\the\ocgtools@layer@toks\ocg@place@text{#1}{#2}{#3}}}
+
+\newcommand\ocgtoolsplaceminitext[7]{%
+\expandafter\global\expandafter\ocgtools@layer@toks\expandafter
+{\the\ocgtools@layer@toks \ocg@place@minitext{#1}{#2}{#3}{#4}{#5}{#6}{#7}}}
+
+\def\ocg@place@picture#1#2#3{\def\tempnuma{#2}\edef\tempnumb{\thepage}%
+\ifx\tempnumb\tempnuma
+ \global\ocg@page@contains@layertrue
+ \vbox to 0 pt{\vss\hbox to 0pt%
+ {\hbox{\begin{ocg}{ocgtools#1}{ocgtools#1}{\ocgtools@initialvisibility}%
+ \ocgtools@drawpicture{#3}{#1}\end{ocg}}\hss}}%
+\fi}
+
+\def\ocg@place@text#1#2#3{\def\tempnuma{#2}\edef\tempnumb{\thepage}%
+\ifx\tempnumb\tempnuma
+ \global\ocg@page@contains@layertrue
+ \vbox to 0 pt{\vss\hbox to 0 pt{\hbox{%
+ \begin{ocg}{ocgtools#1}{ocgtools#1}{\ocgtools@initialvisibility}%
+ \ocgtools@drawtext{#3}{\csname ocgtools@textcontent@#1\endcsname}{#1}%
+ \end{ocg}}\hss}}%
+\fi}
+
+\long\def\ocg@place@minitext#1#2#3#4#5#6#7{%
+\def\tempnuma{#2}\edef\tempnumb{\thepage}%
+\def\ocg@placement{#7}%
+\def\ocg@rb{rb}\def\ocg@lb{lb}\def\ocg@rt{rt}\def\ocg@lt{lt}%
+\ocg@minitext@leftfalse\ocg@minitext@bottomfalse
+\ifx\ocg@placement\ocg@lb
+ \ocg@minitext@lefttrue\ocg@minitext@bottomtrue
+\fi
+\ifx\ocg@placement\ocg@rb
+ \ocg@minitext@leftfalse\ocg@minitext@bottomtrue\fi
+\ifx\ocg@placement\ocg@lt
+ \ocg@minitext@lefttrue\ocg@minitext@bottomfalse
+\fi
+\ifx\tempnumb\tempnuma
+ \ocgtools@left@skip=#3sp minus #3sp%
+ \ocgtools@bottom@skip=#4sp%
+ \setbox\ocgtools@box@a=\hbox{\begin{ocg}{ocgtools#1}{ocgtools#1}{\ocgtools@initialvisibility}%
+ \ocgtools@drawminitext{#6}{\csname ocgtools@minitextcontent@#1\endcsname}{#1}
+ \end{ocg}}%
+ \ifocg@minitext@left
+ \ifdim \ocgtools@left@skip>\wd\ocgtools@box@a
+ \advance \ocgtools@left@skip by -\wd\ocgtools@box@a plus 0 pt minus -\wd\ocgtools@box@a
+ \else
+ \ocgtools@left@skip=0pt\relax
+ \fi
+ \fi
+ \ifocg@minitext@bottom
+ \advance \ocgtools@bottom@skip by -\ht\ocgtools@box@a
+ \fi
+ \hbox to 0 pt{\hbox to \paperwidth{\hskip \ocgtools@left@skip
+ \vbox to 0 pt{\vss
+ \vbox to \paperheight{\vskip 0 pt plus 1 fill
+ \box\ocgtools@box@a\vskip \ocgtools@bottom@skip}
+ }%
+ \hskip 0 pt plus 1 fill}\hss}%
+\fi
+}
+
+\def\ocgtools@drawpicture#1#2{\vbox to \paperheight{\vbox to 0 pt{{%
+\ocgtools@transparent\color{ocgbg}%
+\hrule width \paperwidth height \paperheight}\vss}\vss
+\hbox to \paperwidth{\hss
+\setbox\ocgtools@box@a=\hbox{\includegraphics[height=\ocgtools@maxheight]{#1}}%
+\ifdim\wd\ocgtools@box@a>\ocgtools@maxwidth
+ \includegraphics[width=\ocgtools@maxwidth]{#1}\else \box\ocgtools@box@a
+\fi
+\hss}%
+\vss
+\hbox to \paperwidth {\hss\ocgtools@HideLayers{#2}}}}
+
+\newdimen\ocg@textdimen
+
+\long\def\ocgtools@drawtext#1#2#3{\vbox to \paperheight{%
+\vbox to 0 pt{{\ocgtools@transparent\color{ocgbg}%
+\hrule width \paperwidth height \paperheight}\vss}\vss\hbox to \paperwidth
+{\hss
+\ocg@textdimen=#1
+\ifdim\ocg@textdimen=0pt
+ \setbox\ocgtools@box@a=\hbox{\colorbox{ocgpaper}{#2}}%
+\else
+ \setbox\ocgtools@box@a=\hbox{\colorbox{ocgpaper}%
+ {\vbox{\hsize=#1\relax\rightskip 0 pt plus 1 fil\relax #2}}}%
+\fi
+\setbox\ocgtools@box@b\hbox{\resizebox{!}{\ocgtools@maxheight}{\copy\ocgtools@box@a}}%
+\ifdim\wd\ocgtools@box@b>\ocgtools@maxwidth
+ \resizebox{\ocgtools@maxwidth}{!}{\box\ocgtools@box@a}
+\else
+ \box\ocgtools@box@b
+\fi
+\hss}%
+\vss
+\hbox to \paperwidth {\hss\ocgtools@HideLayers{#3}}}}
+
+\def\ocg@empty{}
+
+\newcommand\ocgtools@drawminitext[3]{\ocg@textdimen=#1
+\ifdim\ocg@textdimen=0pt
+ \setbox\ocgtools@box@a=\hbox{\colorbox{ocgpaper}{#2\ }}%
+\else \setbox\ocgtools@box@a=\hbox{\colorbox{ocgpaper}%
+ {\vbox{\hsize=#1\relax\rightskip 0 pt plus 1 fil\relax #2}}}%
+\fi
+\def\temp{#3}%
+\ifx\temp\ocg@empty
+\box\ocgtools@box@a
+\else
+\hbox{\copy\ocgtools@box@a\raise\ht\ocgtools@box@a
+\vbox to 0 pt{\hbox to 0 pt{\hss
+\ocgtools@HideMiniLayer{#3}}\vss}}%
+\fi
+}
+
+\ifocgtools@noocg
+ \renewcommand\ocgpicture[2][]{\leavevmode\includegraphics[#1]{#2}}
+ \renewcommand\ocgtext[3][0pt]{\leavevmode #2}
+ \long\def\do@ocg@minitext#1#2#3#4{\leavevmode #2}%
+ \renewcommand\ocgtoolsplacepicture[3]{}
+ \renewcommand\ocgtoolsplacetext[3]{}
+ \renewcommand\ocgtoolsplaceminitext[7]{}
+\fi
+
+\endinput
+%%
+%% End of file `ocgtools.sty'.
diff --git a/Master/tlpkg/bin/tlpkg-ctan-check b/Master/tlpkg/bin/tlpkg-ctan-check
index 6b000b5658e..0a536209a72 100755
--- a/Master/tlpkg/bin/tlpkg-ctan-check
+++ b/Master/tlpkg/bin/tlpkg-ctan-check
@@ -207,7 +207,7 @@ my @TLP_working = qw(
nfssext-cfr niceframe nicetext nih nkarta noitcrul
nomencl nomentbl nonfloat nostarch notes notes2bib
ntgclass ntheorem-vn numname numprint
- oberdiek ocr-latex octavo ofs ogham oldstyle
+ oberdiek ocgtools ocr-latex octavo ofs ogham oldstyle
onlyamsmath onrannual opcit
ordinalpt orkhun othello oubraces outline
pagecont pagenote pagerange paper papercdcase papertex
diff --git a/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc b/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc
index 2bcda038428..049993999e6 100644
--- a/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc
+++ b/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc
@@ -408,6 +408,7 @@ depend ntabbing
depend ntheorem
depend numname
depend numprint
+depend ocgtools
depend ocr-latex
depend octavo
depend oldstyle
diff --git a/Master/tlpkg/tlpsrc/ocgtools.tlpsrc b/Master/tlpkg/tlpsrc/ocgtools.tlpsrc
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/Master/tlpkg/tlpsrc/ocgtools.tlpsrc