From 5d4ee22f407e4c60e9f6ee586d4152a3d6d7287e Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Tue, 19 Dec 2017 00:09:01 +0000 Subject: beamer (18dec17) git-svn-id: svn://tug.org/texlive/trunk@46095 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/tex/latex/beamer/xmpmulti.sty | 177 ++++++++++++++++++++++++ 1 file changed, 177 insertions(+) create mode 100644 Master/texmf-dist/tex/latex/beamer/xmpmulti.sty (limited to 'Master/texmf-dist/tex/latex/beamer/xmpmulti.sty') diff --git a/Master/texmf-dist/tex/latex/beamer/xmpmulti.sty b/Master/texmf-dist/tex/latex/beamer/xmpmulti.sty new file mode 100644 index 00000000000..944c52ccdbf --- /dev/null +++ b/Master/texmf-dist/tex/latex/beamer/xmpmulti.sty @@ -0,0 +1,177 @@ +% Copyright 2000 by Klaus Guntermann +% Copyright 2004 by Till Tantau . +% Copyright 2015 by Vedran Mileti\'c, Joseph Wright +% +% This program can be redistributed and/or modified under the terms +% of the GNU Public License, version 2. + +% +% Copyright notices: Large parts of this file are identical to the +% file mpmulti.sty from the ppower4 distribution. Unfortunately, no +% clear copyright notice is given in the original file nor is even the +% author indicated. The author appears to be Klaus Guntermann and the +% license appears to be GPL, at least the whole package is distributed +% under GPL, so I assume that also applies to the individual +% files. +% + +% +% This file does the same as the original mpmulti.sty. The only +% differences are that a) the package pause is not loaded (it's +% provided automatically by beamer and it should be loaded ``by hand'' +% when using ppower4) and b) a default overlay specification can be +% given (as in \multiinclude[<+->][...]{...}), which will be the +% argument to an actionenv that is put around each image. +% + + +%% mpmulti.sty 09 Sep 2002 +%%------------------------------------------------------------ +%% History: +%% Initial version 14 Apr 2000 +%% Introduced keyword parameters 12 Jun 2000 +%% Introduced new parameters (start,format), changed the +%% global code to take several file counting strings (eg +%% bla-*.mps, foo-*.jpg, etc.), added compatibility with +%% \graphicspath (Jean-Christophe Dubacq) 06 Dec 2001 +%% Generalized the format option, added the end +%% handling and documented extended features in here +%% 09 Sep 2002 +%% +%% Purpose: +%% include multiple metapost pictures and overlay them, +%% inserting a transition effect between them +%% +%% Synopsis: +%% +%% \multiinclude[defaultoverlayspecification]% +%% [pause=transitioncommand, +%% graphics={option for includegraphics}, +%% format=filenameformat, +%% start=number, +%% end=number]{basefilename} +%% +%% Include all metapost generated graphics found in +%% files with the basename "filename", which +%% have a number attached or in the extension. +%% Insert the transitioncommand between the files (defaults +%% to \pause). +%% Further options allow to specify additional specifications +%% for includegraphics, can change the number to start with +%% (default 0) or the number to end with (default 1000000). +%% By default the filenames are as created by mpost in the format +%% "filename.n", where "n" represents the number. +%% The option format with the values like "mps", "png" or "jpg" this +%% can be changed to "filename-n.format", e.g. "example-0.mps" +%% instead of "example.0". +%% Complaints are only written, if the first file is not found. +%% Otherwise including will silently stop. +%% +%% If a defaultoverlayspecification is given, each image is +%% surrounded by an actionenv environment (defined by the beamer +%% class) with this option as argument. An example usage might be +%% +%% \multiinclude[][graphics={height=4cm}]{myimage} +%% +%% Requires: +%% The keyval package for options processing. +%% +%% +%\RequirePackage{pause} +\RequirePackage{keyval} +%% +%% The command should process the optional arguments. +%% +\def\multiinclude{% + \def\@mpm@pause{\pause}\def\@mpm@ospec{}\def\@mpm@endospec{}% + \@ifnextchar [\@mpmulti{\@@@mpmulti[]}} +%% +\newif\if@mpm@groptions\@mpm@groptionsfalse +%% We describe the keys and their default values +\define@key{mpm}{format}[\@mpm@defaultformat]{% + \global\def\@mpm@format##1{##1-\the\@mpm@count.#1}} +\define@key{mpm}{start}[0]{\global\def\@mpm@start{#1}\relax} +\define@key{mpm}{end}[1000000]{\global\def\@mpm@end{#1}\relax} +\define@key{mpm}{pause}[\pause]{\global\def\@mpm@pause{#1}\relax} +\define@key{mpm}{graphics}{\@mpm@groptionstrue + \global\def\@mpm@graphics{\string#1}} +\def\@mpm@defaultformat#1{#1.\the\@mpm@count} +\let\@mpm@format=\@mpm@defaultformat +%% +%% We need a local counter +%% +\newcount\@mpm@count +%% +%% Implement the basic functionality. +%% Try to include the first file unconditionally. +%% This will produce an error message, if no such file can be found. +%% Afterwards we are going to check for more files and stop, when we +%% do not find another file. As long as we find files, these are +%% overlapped to the previous parts. +%% +\def\@mpmulti[{\@ifnextchar<{\@@mpmulti[}{\@@@mpmulti[}} +\def\@@mpmulti[#1]{% + \def\@mpm@pause{\relax}% + \def\@mpm@ospec{\begin{actionenv}#1}% + \def\@mpm@endospec{\end{actionenv}}% + \@ifnextchar[{\@@@mpmulti}{\@@@mpmulti[]}} +\def\@@@mpmulti[#1]#2{% + %% reset the options + \global\def\@mpm@graphics{}% + \global\def\@mpm@start{0}% + \global\def\@mpm@end{1000000}% + %% get the arguments + \setkeys{mpm}{#1}% + %% Insert the first part of the figure + %% and make sure we look also in other places according to path. + \let\@mpm@oldinp@th\input@path\let\input@path\Ginput@path + \@mpm@count=\@mpm@start + \@mpm@ospec% + \if@mpm@groptions% + \edef\@mpm@do@include{\noexpand\includegraphics[\@mpm@graphics]{\@mpm@format{#2}}}% + \@mpm@do@include% + \else% + \includegraphics{\@mpm@format{#2}}% + \fi% + \@mpm@endospec% + \def\@mpmdoit{% Do it by conditional tail recursion. + %% Select the next filename and advance counter + \edef\@mpmfilename{\@mpm@format{#2}}% + %% If the file exists, + \IfFileExists{\@mpmfilename}{% + %% insert the user defined transition (or the default), + \@mpm@pause + %% then process the next part and set up to try again. + \llap{% + \@mpm@ospec% + \if@mpm@groptions + \edef\@mpm@do@include{\noexpand + \includegraphics[\@mpm@graphics]{\@mpmfilename}}% + \@mpm@do@include + \else + \includegraphics{\@mpmfilename}% + \fi% + \@mpm@endospec% + }% + \ifnum\@mpm@count<\@mpm@end\relax + \advance\@mpm@count by 1\relax + \let\@mpmnext\@mpmdoit + \else + \let\@mpmnext\relax + \fi + }{% + %% If no more files exist, set up to stop. + \let\@mpmnext\relax + }% + %% Whatever we had to do (without nesting all the IfFileExists) + \@mpmnext + }% + %% Finally we must start it once, if there is more than one file + %% supposed to be available. + \ifnum\@mpm@count<\@mpm@end\relax + \advance\@mpm@count by 1\relax % start counting + \@mpmdoit % and run the show + \fi + %% and reset the input path after all + \let\input@path\@mpm@oldinp@th +}% -- cgit v1.2.3