From 873660d1a83ece926fe7206288dda9c36b349c1b Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Thu, 12 Jan 2006 23:46:03 +0000 Subject: generic 1 git-svn-id: svn://tug.org/texlive/trunk@613 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/tex/generic/xypic/movie.cls | 325 ++++++++++++++++++++++++++ 1 file changed, 325 insertions(+) create mode 100644 Master/texmf-dist/tex/generic/xypic/movie.cls (limited to 'Master/texmf-dist/tex/generic/xypic/movie.cls') diff --git a/Master/texmf-dist/tex/generic/xypic/movie.cls b/Master/texmf-dist/tex/generic/xypic/movie.cls new file mode 100644 index 00000000000..7c3f29d73f6 --- /dev/null +++ b/Master/texmf-dist/tex/generic/xypic/movie.cls @@ -0,0 +1,325 @@ +%% $Id: movie.cls,v 3.4 1997/05/18 01:14:25 krisrose Exp $ -*-latex-*- +%% +%% ``LaTeX Movie'' document class for DVI animations. +%% Copyright (c) 1994-1997 Kristoffer H. Rose +%% +%% This file is part of the Xy-pic package for graphs and diagrams in TeX. +%% Copyright (c) 1991-1997 Kristoffer H. Rose +%% +%% The Xy-pic package is free software; you can redistribute it and/or modify +%% it under the terms of the GNU General Public License as published by the +%% Free Software Foundation; either version 2 of the License, or (at your +%% option) any later version. +%% +%% The Xy-pic package is distributed in the hope that it will be useful, but +%% WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +%% or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +%% for more details. +%% +%% You should have received a copy of the GNU General Public License along +%% with this package; if not, write to the Free Software Foundation, Inc., +%% 675 Mass Ave, Cambridge, MA 02139, USA. +%% +\ifx\xyloaded\undefined \input xy \fi + +\NeedsTeXFormat{LaTeX2e} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Version. + +\def\next$#1: #2 #3${#2} +\edef\next{\noexpand\ProvidesClass{movie}% + [\next$Date: 1997/05/18 01:14:25 $ + Movies in LaTeX v.\next$Revision: 3.4 $.]}\next + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Options. + +% nocaption (omit caption at lower left; default) +% caption (include caption) +\newif\ifm@caption +\DeclareOption{nocaption}{\m@captionfalse} +\DeclareOption{caption}{\m@captiontrue} + +% nocount (omit count at lower left; default) +% count (include count) +\newif\ifm@count +\DeclareOption{nocount}{\m@countfalse} +\DeclareOption{count}{\m@counttrue} + +% notime (omit elapsed time in "seconds"; default) +% time (include elapsed time) +\newif\ifm@time +\DeclareOption{notime}{\m@timefalse} +\DeclareOption{time}{\m@timetrue} + +% loop (make the animation loop; default) +% once (don't loop) +\def\loop@@{-ns2} +\DeclareOption{loop}{\def\loop@@{-ns2}} +\DeclareOption{once}{\def\loop@@{-once}} + +% Paper size (ignored since result is never printed). +\DeclareOption{a4paper}{} +\DeclareOption{a5paper}{} +\DeclareOption{b5paper}{} +\DeclareOption{letterpaper}{} +\DeclareOption{legalpaper}{} +\DeclareOption{executivepaper}{} +\DeclareOption{landscape}{} + +%\vsize=9in \voffset=0in +%\hsize=7in \hoffset=0in % safe? :) + +\newdimen\textheight \textheight=\vsize +\newdimen\textwidth \textwidth=\hsize + +% Font size. +\renewcommand\normalsize{\fontsize{10}{12}\selectfont} +\DeclareOption{10pt}{\renewcommand\normalsize{\fontsize{10}{12}\selectfont}} +\DeclareOption{11pt}{\renewcommand\normalsize{\fontsize{11}{13}\selectfont}} +\DeclareOption{12pt}{\renewcommand\normalsize{\fontsize{12}{14}\selectfont}} + +% Driver (passed on to packages). +\DeclareOption{cmactex}{\OptionNotUsed} +\DeclareOption{dvips}{\OptionNotUsed} +\DeclareOption{dvitops}{\OptionNotUsed} +\DeclareOption{emtex}{\OptionNotUsed} +\DeclareOption{ln}{\OptionNotUsed} +\DeclareOption{oztex}{\OptionNotUsed} +\DeclareOption{textures}{\OptionNotUsed} +\DeclareOption{xdvi}{\OptionNotUsed} + +% ...remaining options are numeric assignments... +\def\m@keys{} +\def\add@m@keys#1{\expandafter\def\expandafter\m@keys\expandafter{\m@keys,#1}} +\DeclareOption*{\expandafter\add@m@keys\expandafter{\CurrentOption}} + +\ProcessOptions* + +\LoadClass{article} +\pagestyle{empty} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Dependencies. + +\RequirePackage{keyval} % key=value pair support +\input xy % Xy-pic kernel (not package to prevent clash) + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Parameters (set via options or the setup). + +% pixel= (makes \pixels{} a valid ; default: 1in/300) +% dpi= (dots per inch ~ pixel=1in/number) +\newdimen\m@pixel \m@pixel=0.0033333333in +\define@key{movie}{pixel}{\m@pixel=#1\relax} +\define@key{movie}{dpi}{\m@pixel=1in \divide \m@pixel by #1\relax} + +% height= +% width= +\newdimen\m@height \m@height=2in +\newdimen\m@width \m@width=2in +\define@key{movie}{height}{\m@height=#1\relax} +\define@key{movie}{width}{\m@width=#1\relax} + +% tick= (set the duration of each frame to seconds) +% fps= (frames per second ~ tick=1/number) +\newdimen\m@tick \m@tick=0.083333333pt +\define@key{movie}{tick}{\m@tick=#1pt\relax} +\define@key{movie}{fps}{\m@tick=1pt \divide \m@tick by #1\relax} + +\def\next#1{\setkeys{movie}{#1}} +\expandafter\next\expandafter{\m@keys} +\let\m@keys=\undefined + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Setting parameters explicitly... + +\def\MovieSetup#1{\setkeys{movie}{#1}} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Internals. + +\def\m@caption{} + +\countdef\m@scene=1 % count1 = scene# +\countdef\m@frame=2 % count2 = frame# (in scene) + +\font\fiverm=cmr5 % safe small font + +\newdimen\m@total \m@total=0pt % total elapsed time + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% User accessible progress macros: + +\def\theFrame{0} +\def\theScene{0} + +\def\theF{0} +\def\theFr{1} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% User command: \scene [] {...} +% +% Produce scene of seconds (default: 1.0) with each frame produced +% by ... centered in vertical mode. + +\newif\iflastframe@ +\newdimen\m@length % duration of scene +\newdimen\m@init % start of zoom + +\newcommand\scene{% + \@ifnextchar*{\lastframe@true \DN@*{\scene@i}\next@}% + {\lastframe@false \scene@i}} + +\newcommand\scene@i[1][1]{\scene@ii{#1}} + +\def\setm@caption#1{\xdef\m@caption{#1}} + +\long\def\scene@ii#1#2{{% + \let\caption=\setm@caption + \global\advance\m@scene\@ne \edef\theScene{\the\m@scene}% + \global\m@frame=\z@ \m@length=#1pt \m@init=\z@ + \loop + \dimen@=\m@frame\m@tick + \ifdim\dimen@<\m@length + \scene@frame{#2}% + \repeat + \iflastframe@ \scene@frame{#2}\fi + \dimen@=#1pt \advance\dimen@ by -\m@frame\m@tick + \ifdim.1\m@tick<\ifdim\dimen@<\z@-\fi\dimen@ + \dimen@=\m@frame\m@tick + \@warning{scene \the\m@scene\space rounded from #1 to + \expandafter\unPT@\the\dimen@\space seconds}% + \fi}\ignorespaces} + +\def\scene@frame#1{\frame@compute + \null + \vfill + \hrule width\m@width + \hbox to\m@width{\hss + \vbox to\m@height{\hsize=\m@width \null\vfil{#1}\vfil\null}% + \hss}% + \setbox0=\hbox{% + \setbox0=\hbox to\m@width{\hss\fiverm\strut + \ifm@caption \m@caption \fi + \ifm@time \quad \m@nicetotal s \fi + \ifm@count \quad \the\m@scene.% + \ifnum\m@frame<100 0\ifnum\m@frame<10 0\fi\fi\the\m@frame\fi}% + \dimen0=\dp0 \ht0=0pt \dp0=0pt \raise\dimen0\box0}% + \ht0=0pt \dp0=0pt \box0\relax + \hrule width\m@width + \global\advance\m@frame\@ne + \global\advance\m@total\m@tick + \eject} + +\def\frame@compute{% + \edef\theFrame{\the\m@frame}% + \dimen@=\m@frame\m@tick \advance\dimen@-\m@init + \ifdim\dimen@<\z@ \dimen@=\z@ \fi + \ifdim\dimen@>\m@length \dimen@=\m@length \fi + \quotient@\theF\dimen@\m@length + \dimen@=-\dimen@ \advance\dimen@\m@length + \quotient@\theFr\dimen@\m@length} + +\def\m@nicetotal{% + \edef\tmp{\expandafter\removePT@\the\m@total}% + \expandafter\twodecimals@\tmp 00@} +\def\twodecimals@#1.#2#3#4@{#1.#2#3} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Triggers. +% +% Triggers are used to make the individual frames in a scene different! :) + +% \F{C} expands to C(F) where F = (#frames / frame#) ; 0.0 < F <= 1.0 . +% \Fr{C} expands to C(Fr) where Fr = 1 - F . + +\def\F{\expandafter\F@\expandafter{\theF}} +\def\Fr{\expandafter\F@\expandafter{\theFr}} + +\def\F@#1#2{#2(#1)} + +% \Zoom[A;B]{C} expands C zooming onto the interval [A;B], i.e., within C the +% interval [0;1] really denotes the (current) interval [A;B] ... + +% Specifically: F F inside [A;B] +% 0;A 0 +% A;B F-A / B-A +% B;1 1 + +\newcommand\Zoom[1][0;1]{\Zoom@#1;} +\def\Zoom@#1;#2;#3{{% + \dimen@=#1\m@length \advance\dimen@\m@init + \m@length=#2\m@length \advance\m@length\m@init + \advance\m@length-\dimen@ \m@init=\dimen@ + \frame@compute #3}} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Preliminary FADING support... +% +% by Ross Moore; depends on Xy-pic `ps' backend... +% +% use as a modifier: \drop[][!\F\lighten] +% use as a modifier: \drop[][!\F\darken}] +% +% \lighten(1) = white \lighten(0) = natural colour +% \darken (1) = black \darken (0) = natural colour +% +\def\lighten@(#1){/@col #1 def{1 sub 1 @col sub mul 1 add}settransfer} +\def\darken@(#1){/@col #1 def{1 @col sub mul}settransfer} + +\xywithoption{ps}{\let\lighten=\lighten@ \let\darken=\darken@} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Dump size file. +% +\AtEndDocument{\dumpsizefile} + +\newwrite\m@write + +{\catcode`p=12 \catcode`t=12 \gdef\unPT@#1pt{#1}} + +\def\dumpsizefile{\immediate\openout\m@write=\jobname.size +% + \dimen@=1in \divide\dimen@\m@pixel + \immediate\write\m@write{dpi=\number\dimen@}% +% + \dimen@=\m@tick \multiply\dimen@ by 1000\advance\dimen@.5\m@tick + \divide\dimen@\p@ \immediate\write\m@write{delay=\number\dimen@}% +% + \immediate\write\m@write{loop=\loop@@}% +% + \immediate\closeout\m@write} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Misc. class-provided commands... + +\DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm} +\DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf} +\DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt} +\DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf} +\DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit} +\DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl} +\DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% The End. + +\endinput + +% $Log: movie.cls,v $ +% Revision 3.4 1997/05/18 01:14:25 krisrose +% Essential bugfixes. +% +% Revision 1.5 1997/05/13 12:36:26 krisrose +% Intermediate version; factors function nicely. +% +% Revision 1.4 1997/05/01 21:55:44 krisrose +% Works again. +% +% Revision 1.3 1997/02/11 04:20:19 krisrose +% Fits new dvitogif89a 1.1 :) +% +% Moved to Xy-pic hierarchy. -- cgit v1.2.3