summary refs log tree commit diff
path: root/skribe/examples/slide/advi.sty
diff options
context:
space:
mode:
authorLudovic Court`es2005-06-15 13:00:39 +0000
committerLudovic Court`es2005-06-15 13:00:39 +0000
commitfc42fe56a57eace2dbdb31574c2e161f0eacf839 (patch)
tree18111570156cb0e3df0d81c8d104517a2263fd2c /skribe/examples/slide/advi.sty
downloadskribilo-fc42fe56a57eace2dbdb31574c2e161f0eacf839.tar.gz
skribilo-fc42fe56a57eace2dbdb31574c2e161f0eacf839.tar.lz
skribilo-fc42fe56a57eace2dbdb31574c2e161f0eacf839.zip
Initial import of Skribe 1.2d.
Initial import of Skribe 1.2d.


git-archimport-id: lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--base-0
Diffstat (limited to 'skribe/examples/slide/advi.sty')
-rw-r--r--skribe/examples/slide/advi.sty416
1 files changed, 416 insertions, 0 deletions
diff --git a/skribe/examples/slide/advi.sty b/skribe/examples/slide/advi.sty
new file mode 100644
index 0000000..9b5e09f
--- /dev/null
+++ b/skribe/examples/slide/advi.sty
@@ -0,0 +1,416 @@
+%%
+%% This is the original source file advi.sty
+%%
+%% Package `advi' to use with LaTeX 2e
+%% Copyright Roberto Di Cosmo, Jun Furuse, Didier Remy, and Pierre Weis
+%% All rights reserved.
+
+% Which name is ours
+\def \ActiveDVI {Active-DVI}
+
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{advi}
+         [2001/29/08 v0.40 Advi Package for advi Previewer]
+
+%%
+
+%% Identification
+%% Preliminary declarations
+
+\RequirePackage {keyval}
+
+%% Options
+
+\newif \ifadvi@ignore \advi@ignorefalse
+\DeclareOption {ignore}{\advi@ignoretrue}
+
+\ProcessOptions
+% \@ifundefined {AdviOptions}{}{\ExecuteOptions {\AdviOptions}}
+
+%% More declarations
+
+% Auxilliary macros
+
+
+\def \advi@empty{}
+\def \advi@ifempty #1{\def \@test {#1}\ifx \@test \advi@empty 
+  \expandafter \@firstoftwo \else \expandafter \@secondoftwo \fi}
+\def \advi@error #1{\PackageError {Advi}{#1}{Type <RETURN> to proceed.}}
+\def \advi@warning #1{\PackageWarning {Advi}{#1}}
+\def \advi@undefinedenv {\advi@error {Environment \@currenvir\space undefined.
+Maybe you mean \@currenvir ing}}
+\def \advi@special@ {\advi@ifadvi{\special}{\advi@ignore}}
+\def \advi@special #1{\advi@special@ {advi: #1}}
+\def \advi@export #1#2{\@ifdefinable #1{\let #1#2}}
+\def \advi@exportenv #1#2{%
+  \@ifundefined {#1}{\expandafter \let \csname #1\expandafter \endcsname
+                     \csname end#1\endcsname }\relax  
+  \expandafter \@ifdefinable \csname #1\endcsname
+  {\expandafter \let \csname #1\expandafter \endcsname \csname #2\endcsname
+   \expandafter \let \csname end#1\expandafter \endcsname 
+        \csname end#2\endcsname}}
+
+\def \advi@ignore #1{}
+\def \advi@id #1{#1}
+
+\def \advi@ifadvi {\ifadvi@ignore
+  \expandafter \@secondoftwo \else \expandafter \@firstoftwo \fi}
+\advi@export \adviignore \advi@ignoretrue
+\advi@export \ifadvi \advi@ifadvi
+
+%%% Record and play
+
+\newif \ifadvi@recording 
+\def \advi@ifrecording {\ifadvi@recording
+   \expandafter \@firstoftwo \else \expandafter \@secondoftwo \fi}
+\def \advi@ifrecordenv {\ifx \@currenvir \advi@recordenv
+   \expandafter \@firstoftwo \else \expandafter \@secondoftwo \fi}
+
+\def \advi@start {start}
+\def \advi@startplay {start play}
+\define@key{advi@record}{play}[]{\let \advi@do \advi@startplay}
+\def \advi@recordenv {advirecord}
+
+\newenvironment{advi@recording}[2][]%
+  {\begingroup
+     \let \advi@do \advi@start \setkeys{advi@record}{#1}%
+     \advi@special {proc=#2 record=\advi@do}%
+   \endgroup}
+  {\advi@special {proc record=end}}
+\newcommand {\advi@record}[3][]{\advi@recording[#1]{#2}#3\endadvi@recording}
+
+\newcommand {\advi@play}[2][]%
+   {\begingroup
+      \advi@ifempty{#1}{}{\color {#1}}{\advi@special {proc=#2 play}}%
+    \endgroup}
+
+\advi@exportenv {advirecording}{advi@recording} 
+\advi@export \advirecord \advi@record
+\let \endadvirecord \advi@undefinedenv
+\advi@export \adviplay \advi@play
+
+
+%%% Embedded applications
+
+\def \advi@embed@name{anonymous}
+\def \advi@embed@mode{ephemeral}
+\def \advi@embed@width{0pt}
+\def \advi@embed@height{0pt}
+\define@key {advi@embed}{name}{\def \advi@embed@name {#1}}
+\define@key {advi@embed}{width}%
+   {\@tempdima#1\relax \edef \advi@embed@width {\the\@tempdima}}
+\define@key {advi@embed}{height}%
+   {\@tempdima#1\relax \edef \advi@embed@height {\the\@tempdima}}
+\def \advi@definemode #1{%
+  \define@key {advi@embed}{#1}[anonymous]{%
+     \def \advi@embed@mode {#1}\def\advi@embed@name {##1}%
+  }}
+\advi@definemode{ephemeral}
+\advi@definemode{persistent}
+\advi@definemode{sticky}
+
+\def \advi@embed@ #1#2#3#4#5{%
+  \mbox{\advi@special
+          {embed name="#1" mode=#2 width=#3 height=#4 command="#5"}%
+          {\vbox to #4{\hbox to #3{}}}}}
+\def \advi@length #1{\@tempdima #1\relax \the\@tempdima}
+\newcommand{\advi@embed}[2][]{%
+  \mbox {\setkeys {advi@embed}{#1}%
+         \advi@embed@ {\advi@embed@name}{\advi@embed@mode}
+             {\advi@embed@width}{\advi@embed@height}{#2}}}
+
+\newcommand{\advi@killembed}[2][]{\advi@special {kill name="#2" signal="#1"}}
+
+\advi@export \adviembed \advi@embed
+
+\advi@export \advikillembed \advi@killembed 
+
+
+%%% Background colors and images
+
+\def \do #1{\expandafter \def \csname advi@geom@#1@\endcsname {#1}}
+\do {center}
+\do {left}
+\do {right}
+\do {bottom}
+\do {top}
+\do {topleft}
+\do {topright}
+\do {bottomleft}
+\do {bottomright}
+\let \do \relax
+\def \advi@ifnine #1#2#3{\@ifundefined {advi@geom@#1@}{#3}{#2}}
+
+\let \advi@global \relax
+\def \advi@global@ {global}
+\newif \ifadvi@bgactive
+
+\def \advi@bg@do
+ {\do\advi@bgcolor \do\advi@bgimage \do \advi@bgalpha \do\advi@bgblend}
+\def \advi@auto@ { fit=auto}
+\def \advi@bgreset 
+ {\def \do ##1{\expandafter \advi@global
+                  \expandafter \let \noexpand ##1\advi@empty}\advi@bg@do
+  \advi@global \let \advi@bgfit \advi@auto@
+  \advi@global \advi@bgactivefalse}
+\advi@bgreset
+
+\def \advi@none@ {none}
+\def \advi@ifnone #1{\def \@test{#1}\ifx \@test \advi@none@
+  \let \@test \advi@empty \fi \ifx \@test \advi@empty
+  \expandafter \@firstoftwo \else \expandafter \@secondoftwo \fi}
+
+\def \advi@setbg #1#2#3{\advi@ifnone {#1}
+  {\advi@global \expandafter \let \noexpand #1\advi@empty}
+  {\advi@global \expandafter \def \noexpand #1{ #2=#3}%
+   \advi@global \advi@bgactivetrue}}
+\define@key {advi@bg}{color}[]{\advi@setbg{\advi@bgcolor}{color}{#1}}
+\define@key {advi@bg}{image}[]{\advi@setbg{\advi@bgimage}{image}{#1}}
+\define@key {advi@bg}{alpha}[]{\advi@setbg{\advi@bgalpha}{alpha}{#1}}
+\define@key {advi@bg}{blend}[]{\advi@setbg{\advi@bgblend}{blend}{#1}}
+\define@key {advi@bg}{fit}[auto]{\def \advi@bgfit {#1}%
+     \ifx \advi@bgfit \advi@auto@ \else
+     \advi@ifnine {\advi@bgfit}
+       {\advi@global \def \advi@bgfit{ fit=#1}}
+       {\advi@error {Ill formed background fit=#1}}%
+   \fi}
+\def \advi@bgset #1{\advi@ifnone {#1}{\advi@bgreset}{\setkeys {advi@bg}{#1}}}
+
+%\define@key {advi@bg}{inherit}[]{\advi@special{setbg inherit}}
+
+\def \advi@bgemit 
+  {\advi@special 
+     {setbg \advi@bgcolor \advi@bgimage \advi@bgalpha \advi@bgblend
+      \advi@bgfit
+      }}
+\newif \ifadvi@bglocal
+
+\newcommand{\advi@bg}[2][]{%
+  \begingroup 
+  \def \@test {#1}\ifx \@test \advi@global@ \let \advi@global \global
+  \advi@bgset {#2}\else
+  \ifx \@test \advi@empty \else \advi@warning
+     {Optional argument [#1] to \string \advibg ignored}\fi
+  \global \advi@bglocaltrue
+  \advi@bgset{#2}\advi@bgemit \fi
+  \endgroup}
+\def \advi@bgpage
+   {\ifadvi@bgactive \ifadvi@bglocal\else \advi@bgemit \fi\fi
+    \global \advi@bglocalfalse}
+
+\advi@export \advibg \advi@bg
+
+%%% Pausing and waiting
+
+\def\advi@pause {\advi@special{pause}}
+\def\advi@wait#1{\advi@special{wait sec=#1}}
+
+%% export
+\newcommand {\adviwait}[1][]%
+   {\advi@ifempty {#1}{\advi@pause}{\advi@wait {#1}}}
+
+%%% Transparency and alpha blending
+%%% To be revisited. 
+
+\def\advi@epstransparent
+   {\advi@special{epstransparent push true}%
+    \aftergroup \advi@resetepstransparent} 
+\def\advi@epswhite
+   {\advi@special{epstransparent push false}%
+    \aftergroup \advi@resetepstransparent} 
+\def\advi@setalpha#1%
+   {\advi@special{alpha push #1}%
+    \aftergroup \advi@resetalpha} 
+\def\advi@setblend#1%
+   {\advi@special{blend push #1}%
+    \aftergroup\advi@resetblend}
+\def\advi@resetepstransparent {\advi@special{epstransparent pop}}
+\def\advi@resetalpha {\advi@special{alpha pop}}
+\def\advi@resetblend {\advi@special{blend pop}}
+
+\advi@export \epstransparent \advi@epstransparent
+\advi@export \epswhite \advi@epswhite
+\advi@export \setalpha \advi@setalpha
+\advi@export \setblend \advi@setblend
+
+%%% Animated transitions
+
+\def \advi@transfrom{}
+\def \advi@transsteps{}
+\def \advi@settrans {\advi@global \def}
+\define@key {advi@trans}{none} []{\advi@settrans \advi@transmode {none}}
+\define@key {advi@trans}{slide}[]{\advi@settrans \advi@transmode {slide}}
+\define@key {advi@trans}{block}[]{\advi@settrans \advi@transmode {block}}
+\define@key {advi@trans}{wipe} []{\advi@settrans \advi@transmode {wipe}}
+\define@key {advi@trans}{from} {\advi@settrans \advi@transfrom { from=#1}}
+\define@key {advi@trans}{steps}{\advi@settrans \advi@transsteps { steps=#1}}
+
+\def \advi@transemit
+   {\advi@special{trans \advi@transmode \advi@transfrom \advi@transsteps}}
+\newif \ifadvi@translocal 
+\newcommand {\advi@transition}[2][]{%
+  \begingroup
+     \def \@test {#1}\ifx \@test \advi@global@ \let \advi@global \global
+     \setkeys {advi@trans}{#2}\else
+     \ifx \@test \advi@empty \else \advi@warning
+        {Optional argument [#1] to \string \advitransition ignored}\fi
+     \global \advi@translocaltrue
+     \setkeys {advi@trans}{#2}\advi@transemit \fi
+  \endgroup}
+
+\def \advi@transpage
+  {\@ifundefined {advi@transmode}{}
+        {\ifadvi@translocal\else \advi@transemit \fi}%
+   \global \advi@translocalfalse}
+
+%% Hook \advi@setpagesetyle at \@begindvi that run at every page
+
+\def \advi@setpagestyle {\advi@bgpage \advi@transpage}
+\def \endpage@hook {}
+\def \AtEndPage {\g@addto@macro \endpage@hook}
+\AtEndPage {\advi@setpagestyle}
+
+% We must patch \@begindvi to put out hook. 
+% However, hyperref may patch it as well. So we should do it at begin
+% document to have the control (no one after us). 
+% Howver, one must be careful, because \@begindvi redefines itself at the
+% first call to its prerecorded final value. 
+% So our first patch will be overridden with the value that it was
+% meant to have after the first page.
+% Hence, we patch it a second time to put our hook to this final value. 
+
+% we can use \g@addto@macro which redefines #1 to so that it procedes as 
+% before and then execute #2 at the end. 
+
+\def \advi@begindvi@patch
+  {\g@addto@macro \@begindvi      
+      {\endpage@hook \g@addto@macro \@begindvi {\endpage@hook}}}
+
+\AtBeginDocument {\advi@begindvi@patch}
+
+%  {\let \advi@begindvi@save \@begindvi   %% value at begindocument
+%   \def \@begindvi                       %% our new value
+%     {\advi@begindvi@save                %% may redefine \@begindvi
+%      \global\let \advi@begindvi@save    %% so we this new value
+%         \@begindvi                      
+%      \gdef \@begindvi                   %% now and forever
+%         {\advi@begindvi@save \endpage@hook}%
+%      \endpage@hook                      %% our hook for the
+%     }}
+
+
+
+%% Transitions
+
+\def\advi@transbox@save#1#2#3{\advi@special
+  {transbox save width=#1 height=#2 depth=#3}}
+\def\advi@transbox@go#1{\advi@special{transbox go #1}}
+
+\def \advi@transslide {slide}
+\def \advi@transbox #1{%
+   \def \advi@afterbox 
+      {\hbox {\advi@transbox@save{\the\wd0 }{\the\ht0 }{\the\dp0}%
+              \unhbox0\setkeys {advi@trans}{#1}%
+              \advi@transbox@go
+                  {\advi@transmode \advi@transfrom \advi@transsteps}}}%
+   \def \advi@@afterbox {\aftergroup \advi@afterbox} 
+   \afterassignment \advi@@afterbox \setbox0 \hbox } 
+
+\advi@export \advitransition \advi@transition
+\advi@export \advitransbox \advi@transbox
+
+%%% For PS Tricks
+
+\def \advi@moveto {\advi@special {moveto}}
+\def\advi@psput@special#1{%
+\hbox{%
+\pst@Verb{{ \pst@coor }  
+dup exec 2 copy moveto advi@Dict begin printpos end
+\tx@PutCoor 
+\tx@PutBegin}
+\hbox {\advi@moveto \box#1}%
+\pst@Verb{\tx@PutEnd}}}
+
+\def\advi@ncput@iii{%
+\leavevmode
+\hbox{%
+\pst@Verb{%
+\pst@nodedict
+/t \psk@npos def
+tx@NodeDict /LPutPos known { LPutPos } { CP /Y ED /X ED /NAngle 0
+def } ifelse 
+LPutCoor 
+end
+\tx@PutBegin
+}%
+\hbox {\box\pst@hbox}%
+\pst@Verb{\tx@PutEnd}}}
+
+\def \advi@pstricks@patch
+  {\@ifundefined {psput@special}{}
+    {\let \psput@special \advi@psput@special
+     %\@ifundefined {ncput@iii}{}{\let \ncput@iii \advi@ncput@iii}%
+     \pstheader {advi.pro}}}
+\AtBeginDocument {\advi@pstricks@patch}
+
+
+%%% Active DVI
+
+\def \advi@over@ {over}
+\def \advi@click@ {click}
+\def \advi@null {\hbox {}}
+
+\newenvironment {advi@anchoring}[2][over]{%
+   \begingroup
+   \def \@test {#1}\ifx \@test \advi@over@ 
+       \advi@special@ {html:<a advi="#2">}\else
+   \ifx \@test \advi@click@ 
+       \advi@special@ {html:<a hdvi="#2">}\else
+   \advi@error {Incorect anchor mode #1}\fi \fi\endgroup}
+  {\advi@special@ {html:</a>}}
+\newcommand {\advi@anchor}[3][over]%
+   {\advi@anchoring[#1]{#2}#3\endadvi@anchoring}
+
+\def \advi@endanchor #1{#1\endadvi@anchor \endgroup}
+\advi@exportenv {advianchoring}{advi@anchoring}
+\advi@export \advianchor \advi@anchor
+\let \endadvianchor \advi@undefinedenv
+
+%%% Partial patch for overlays -- 0 will be shown > 0 will not be shown
+
+\def \advi@max {0}
+\def \advi@overlay #1{%
+  \advi@ifadvi 
+    {%\advance \c@overlay by 1
+     \ifnum \c@overlay>\advi@max \global \xdef \advi@max {\the \c@overlay}\fi
+     \advi@recording {overlay@#1}\aftergroup \endadvi@recording}
+    {\latex@overlay {#1}}}
+
+\def \advi@overlay@loop
+ {\advi@ifadvi 
+  {\begingroup
+    \c@overlay=0
+    \@whilenum\c@overlay<\advi@max
+    \do {\advance \c@overlay  by 1%
+         \adviwait \adviplay{overlay@\the\c@overlay}}%
+  \endgroup
+  \gdef \advi@max {0}}
+ {\latex@overlay@loop}}
+
+\def \advi@end@slide 
+  {\advi@ifadvi {\overlay@loop}{}\latex@end@slide}
+
+\def \advi@overlay@patch {%
+   \let \latex@overlay \@overlay
+   \let \latex@end@slide \end@slide
+   \let \latex@overlay@loop \overlay@loop
+   \let \@overlay \advi@overlay
+   \let \overlay@loop \advi@overlay@loop
+   \let \end@slide \advi@end@slide
+  }
+
+\@ifundefined {overlay}{}
+   {\AtBeginDocument {\advi@overlay@patch}}
+
+
+\endinput