diff options
Diffstat (limited to 'macros/latex/contrib/fldigigal/fldigigal.dtx')
-rw-r--r-- | macros/latex/contrib/fldigigal/fldigigal.dtx | 452 |
1 files changed, 0 insertions, 452 deletions
diff --git a/macros/latex/contrib/fldigigal/fldigigal.dtx b/macros/latex/contrib/fldigigal/fldigigal.dtx deleted file mode 100644 index 520d1bdf8d..0000000000 --- a/macros/latex/contrib/fldigigal/fldigigal.dtx +++ /dev/null @@ -1,452 +0,0 @@ -%\iffalse -%<*copyright> -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% fldigigal.sty package, 2010-23-10 %% -%% Copyright (C) 2010 D. P. Story %% -%% dpstory@uakron.edu %% -%% %% -%% This program can redistributed and/or modified under %% -%% the terms of the LaTeX Project Public License %% -%% Distributed from CTAN archives in directory %% -%% macros/latex/base/lppl.txt; either version 1 of the %% -%% License, or (at your option) any later version. %% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%</copyright> -%<package>\NeedsTeXFormat{LaTeX2e}[1997/12/01] -%<package>\ProvidesPackage{fldigigal} -%<package> [2010/12/29 v0.5c fldigigal: Create a Flash Digital Gallery, Acrobat Distiller only (dps)] -%<*driver> -\documentclass{ltxdoc} -\usepackage[colorlinks,hyperindex]{hyperref} -%\pdfstringdefDisableCommands{\let\\\textbackslash} -%\EnableCrossrefs \CodelineIndex -\begin{document} -\def\CMD#1{\textbackslash#1} - \GetFileInfo{fldigigal.sty} - \title{\textsf{fldigigal}: Package for creating a Flash Digital Gallery} - \author{D. P. Story\\ - Email: \texttt{dpstory@uakron.edu}} - \date{processed \today} - \maketitle - \tableofcontents - \let\Email\texttt - \DocInput{fldigigal.dtx} - \PrintIndex -\end{document} -%</driver> -% \fi -% \MakeShortVerb{|} -% \StopEventually{} -% -% \DoNotIndex{\def,\edef,\gdef,\xdef,\global,\long,\let} -% \DoNotIndex{\expandafter,\string,\the,\ifx,\else,\fi} -% \DoNotIndex{\csname,\endcsname,\relax,\begingroup,\endgroup} -% \DoNotIndex{\DeclareTextCommand,\DeclareTextCompositeCommand} -% \DoNotIndex{\space,\@empty,\special} -% -% \begin{macrocode} -%<*package> -% \end{macrocode} -% \begin{macrocode} -\RequirePackage{xkeyval} -\RequirePackage{rmannot}[2010/12/22] -% \end{macrocode} -% -% \section{Introduction} -% -% \section{Implementation} -% This package offers the \LaTeX/Distiller user the ability to create -% \emph{Flash Photo Galleries}. There are several photo gallery layouts -% to select from, and some dynamic options that can be specified. The -% digital photographs (\textsf{JPG}, \textsf{PNG}, or \textsf{GIF}) may -% be embedded in the PDF document, or may reside online and referenced by -% an \textsf{URL}. -% -% \begin{macro}{\fdgFolder} The path to the folder containing -% the the \textsf{SWF} files of this distribution. This path is set through -% the \texttt{fldigigal.cfg} file. -% \begin{macrocode} -\newcommand{\fdgFolder}{C:/Users/Public/Documents/My TeX Files/% - tex/latex/aeb/aebpro/fldigigal/swf} -% \end{macrocode} -% \end{macro} -% We input the file \texttt{fldigigal.cfg} which should contain a re-definition -% of the command \cs{fdgFolder}, the path to the Flash Digital Gallery \textsf{SWFs}. -% \begin{macrocode} -\InputIfFileExists{fldigigal.cfg}{}{} -% \end{macrocode} -% \subsection{Main Code} -% In this section we define the \cs{fdgXmlList} and \cs{fgRmAnnot}, and their -% supporting cast of characters. -% \begin{macrocode} -% \end{macrocode} -% An internal command for getting the rma object based on the current page and the -% name of the annot. -% \begin{macrocode} -\def\fdg@namegdef#1{\expandafter\gdef\csname #1\endcsname} -\def\fdg@namexdef#1{\expandafter\xdef\csname #1\endcsname} -% \end{macrocode} -% We define \cs{fdg@iso}, which, within the \cs{image} command, we declare that -% \verb!\let\iso\fdg@iso!, defining the \cs{iso} command to enter special characters -% in the \texttt{caption} attribute. -% \begin{macrocode} -{\catcode`\#=12 \catcode`\&=12 \catcode`\!=6 - \gdef\fdg@iso!1{&#!1;} -} -% \end{macrocode} -% \begin{macro}{\fdgXmlList} -% The \cs{fdgXmlList} command describes the photos to be displayed in the -% digital gallery. Here is an example of the structure: -%\begin{verbatim} -%\fdgXmlList[showcount]{myDigis}{% -% \image{path=\myPhotosLocal/Chrysanthemum.jpg,caption=Chrysanthemum} -% \image{path=\myPhotosLocal/Desert.jpg,caption=Desert} -% \image{path=\myPhotosOnline/Hydrangeas.jpg,caption=Hydrangeas,online} -% \image{path=\myPhotosOnline/Jellyfish.jpg,caption=Jellyfish,online} -% \image{path=\myPhotosOnline/Koala.jpg,caption=Koala,online} -% \image{path=\myPhotosOnline/Lighthouse.jpg,caption=Lighthouse,online} -% \image{path=\myPhotosOnline/Penguins.jpg,caption=Penguins,online} -% \image{path=\myPhotosOnline/Tulips.jpg,caption=Tulips,online} -%} -%\end{verbatim} -% The first optional argument takes any optional arguments; at this time, the -% only option is \texttt{showcount}, where the photo number and total number of -% photos is displayed, e.g. \texttt{(2 of 8)}. The default is not to show the count. -% The second parameter is the unique name of the gallery. The third parameter consists -% of any number of image specifications. The \cs{image} command has three properties: -% \texttt{path}, \texttt{caption}, and \texttt{online}. These are describe -% in more detail below. -% \begin{macro}{path} The absolute path (url) to the photo; the path may be on a local -% hard drive, or on the Internet. Paths may (should) be defined using the -% the \cs{definePath}, defined in the \texttt{eforms} package. -%\begin{verbatim} -% \definePath{\myPhotosOnline}{% -% http://www.math.uakron.edu/~dpstory/photos/pa_demo} -% \definePath{\myPhotosLocal}{% -% C:/Users/Public/Pictures/Sample Pictures} -%\end{verbatim} -% \begin{macrocode} -\define@key{fdgxml}{path}[]{\def\fdg@pa@path{#1}} -% \end{macrocode} -% \end{macro} -% \DescribeMacro{caption} A (short) string that describes the photo. If the -% \texttt{caption} key is not present, the filename of the digital photo is used. -% \begin{macrocode} -\define@key{fdgxml}{caption}[]{\def\fdg@pa@caption{#1}} -% \end{macrocode} -% \DescribeMacro{online} A Boolean key, which if true, signals that the path -% to the photo is on the Internet (\texttt{http://}). If the \texttt{online} key is not -% present, the path is assumed to be local, and the photo will be embedded in the PDF. -% \begin{macrocode} -\define@boolkey{fdgxml}{online}[true]{} -% \end{macrocode} -% We set the global defaults of these key-value pairs. -% \begin{macrocode} -\setkeys{fdgxml}{path,caption,online=false} -% \end{macrocode} -% We use this counter to count the digis as they are defined by the \cs{image} -% macro. -% \begin{macrocode} -\newcount\cntdigis -% \end{macrocode} -% \DescribeMacro{\image} There are two definitions of the \cs{image} command: -% \cs{fdg@cnt@images} and \cs{fdg@image}.\par\medskip\noindent -% \cs{fdg@cnt@images} counts the number of images. -% \begin{macrocode} -\def\fdg@cnt@images#1{\advance\cntdigis1 } -% \end{macrocode} -% \cs{fdg@image} does all the work in writing the photo information to an XML file. -% \begin{macrocode} -\def\fdg@image#1{\begingroup - \let\Name\rma@resource\let\urlName\rma@urlresource - \setkeys{fdgxml}{#1}% - \global\advance\cntdigis1 -% \end{macrocode} -% We expand the internal name of the digital resource. The name has the form -% \texttt{Im<number>(<name>)}. -% \begin{macrocode} - \edef\@digiImgName{Im\the\cntdigis(\fdg@CurrDigiName)}% -% \end{macrocode} -% Use \cs{saveNamedPath} to save this name and path. -% \begin{macrocode} - \saveNamedPath{\@digiImgName}{\fdg@pa@path}% -% \end{macrocode} -% Get the basename and extension using the \cs{Name} command. -% \begin{macrocode} - \edef\fdg@NamedExp{\expandafter\Name\expandafter{\@digiImgName}}% -% \end{macrocode} -% If the caption is empty, use the \texttt{basename.ext} -% \begin{macrocode} - \ifx\fdg@pa@caption\@empty\def\fdg@pa@caption{\fdg@NamedExp}\fi -% \end{macrocode} -% If \texttt{online} is true, write the full url path to the xml using -% the \cs{urlName} macro. -% \begin{macrocode} - \ifKV@fdgxml@online - \edef\fdg@urlNamedExp{% - \expandafter\urlName\expandafter{\@digiImgName}}% - \fdg@IWVO{\space\space\space\space - <image title='\fdg@pa@caption\fdg@cntOf{\the\cntdigis}'>% - \fdg@urlNamedExp</image> - }% - \else -% \end{macrocode} -% If online is not listed, or is set to \texttt{false} we embed. We -% accumulate all resources that are embedded in \cs{fdg@embededResources} -% \begin{macrocode} - \toks0=\expandafter{\fdg@embededResources}% - \ifx\fdg@embededResources\@empty - \xdef\fdg@embededResources{\@digiImgName}\else - \xdef\fdg@embededResources{\the\toks0,\@digiImgName}\fi - \fdg@IWVO{\space\space\space\space - <image title='\fdg@pa@caption\fdg@cntOf{\the\cntdigis}'>% - \fdg@NamedExp</image> - }% - \fi -\endgroup} -% \end{macrocode} -% Convenience macro for writing to the XML file -% \begin{macrocode} -\def\fdg@IWVO{\immediate\write\verbatim@out} -% \end{macrocode} -% A (internal) interface to the digi resources. The one argument -% is the name of the gallery these digis are associated with. -% \begin{macrocode} -\def\embededResources#1{\csname #1ERs\endcsname} -% \end{macrocode} -% The internal name of the xmlList. The argument is the name of the gallery. -% \begin{macrocode} -\def\xmlListiv#1{xmlList4#1} -% \end{macrocode} -% \begin{macro}{\fdgcntOf} -% The internal command for writing the photo count is \cs{fdg@cntOf}. Initially, -% we \cs{let} \cs{fdg@cntOf} to \cs{@gobble} -% \begin{macrocode} -\let\fdg@cntOf\@gobble -% \end{macrocode} -% \begin{macrocode} -\newcommand{\fdgcntOf}[1]{\space(#1 of \fdg@numDigis)} -% \end{macrocode} -% \end{macro} -% The options of \cs{fdgXmlList}. If \texttt{true} the photo number is displayed, if \texttt{false}, -% the default, no photo number is displayed.\par\medskip\noindent -% \DescribeMacro{showcount} When the \texttt{showcount} option is specified, we \cs{let} \cs{fdg@cntOf} -% to \cs{fdgcntOf}. The command may be redefined. The first argument is the photo -% number, the command \cs{fdg@numDigis} expands to the total number of photos. -% \begin{macrocode} -\define@boolkey{fdgXML}{showcount}[true]{% - \ifKV@fdgXML@showcount\let\fdg@cntOf\fdgcntOf\else - \let\fdg@cntOf\@gobble\fi -} -% \end{macrocode} -%\DescribeMacro{nowrite} When we set this switch, we \cs{let} -% \cs{fdg@IWVO} to \cs{@gobble}, and do not open a \cs{newwrite} stream. -% \begin{macrocode} -\define@boolkey{fdgXML}{nowrite}[true]{} -% \end{macrocode} -% Set the defaults for he \cs{fdgXML} family. -% \begin{macrocode} -\setkeys{fdgXML}{showcount=false,nowrite=false} -% \end{macrocode} -% Finally, we have the definition of \cs{fdgXmlList}. -% \begin{macrocode} -\newcommand{\fdgXmlList}[3][]{% -\begingroup - \setkeys{fdgXML}{#1}% - \ifKV@fdgXML@nowrite\let\fdg@IWVO\@gobble\fi - \cntdigis=0 \gdef\fdg@embededResources{}% - \ifKV@fdgXML@nowrite\else - \newwrite \fdg@writexmllist - \immediate\openout \fdg@writexmllist=#2.xml - \let\verbatim@out\fdg@writexmllist - \fi -% \end{macrocode} -% Open he photos xml file and write the top level -% \begin{macrocode} - \fdg@IWVO{<photos>}% - \@ifundefined{#2@fdgdigis}{% - \fdg@namegdef{#2@fdgdigis}{#2}% - \def\fdg@CurrDigiName{#2}% - }{\PackageError{fldigigal}{Name already chosen}}% -% \end{macrocode} -% The \texttt{\#3} parameter contains the \cs{image} listing. -% we first count the number of images using \cs{fdg@cnt@images}. -% \begin{macrocode} - \let\image\fdg@cnt@images#3% - \edef\fdg@numDigis{\the\cntdigis}% -% \end{macrocode} -% Now, we repeat, but this time with \cs{fdg@image}. -% \begin{macrocode} - \def\'{'}\let\iso\fdg@iso - \cntdigis=0 \let\image\fdg@image#3% -% \end{macrocode} -% Close out XML List -% \begin{macrocode} - \fdg@IWVO{</photos>}% - \ifKV@fdgXML@nowrite\else - \immediate\closeout \fdg@writexmllist - \fi -\endgroup -% \end{macrocode} -% Save the path to the newly created xml list under the name -% \texttt{xmlList4<name>} -% \begin{macrocode} - \saveNamedPath{xmlList4#2}{\pathToSource/#2.xml}% -% \end{macrocode} -% Define a command to save the embedded resources. -% \begin{macrocode} - \fdg@namexdef{#2ERs}{\ifx\fdg@embededResources\@empty\else,\fi - \fdg@embededResources}% -} -\@onlypreamble{\fdgXmlList} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\fgRmannot} -% This is the command that actually places the SWF. It uses the \cs{rmAnnot} command -% from the \textsf{rmannot} package. -% \paragraph*{Define Key-Value Pairs.} We declare two keys for \cs{fgRmannot}: \texttt{gallery} and \texttt{flashvars}. -% We use gallery to select the gallery (layout), and flashvars to set some basic -% parameters of the SWF. -% \begin{macrocode} -\define@key{fgRmAnnot}{flashvars}[]{\def\fgRmAnnot@flashvars{}} -\let\fgRmAnnot@flashvars\@empty -\define@key{fgRmAnnot}{galleryopts}[]{\def\fgRmAnnot@galleryopts{#1}} -% \end{macrocode} -% The `\cs{saveNamePath}' definitions for the three supported galleries. -% I have a custom gallery for no apparent reason (actually, if I want to -% create and test a new gallery, I can set it up to use the \texttt{custom} key. -% \begin{macrocode} -\saveNamedPath{fdg_vt1}{\fdgFolder/fdg_vt1.swf} -\saveNamedPath{fdg_ht1}{\fdgFolder/fdg_ht1.swf} -\saveNamedPath{fdg_nt1}{\fdgFolder/fdg_nt1.swf} -\saveNamedPath{custom}{\fdgFolder/fdg_vt1.swf} -% \end{macrocode} -% \paragraph*{fgGalleryOpts keys.}We now define the key value pairs for the \texttt{fgGalleryOpts} family. -% These are the keys as listed by \texttt{galleryopts}. -% -% \DescribeMacro{gallery} At this time, we offer four choices for a design, more to follow as I learn -% more about Flash Pro CS5. -% \begin{macrocode} -\define@choicekey+{fgGalleryOpts}{gallery}[\val\nr]% - {vthumbs1,hthumbs1,nothumbs1,custom}[vthumbs1]{% - \ifcase\nr\relax - \def\fgGalleryOpts@gallery{fdg_vt1}\or - \def\fgGalleryOpts@gallery{fdg_ht1}\or - \def\fgGalleryOpts@gallery{fdg_nt1}\or - \def\fgGalleryOpts@gallery{custom}\fi -}{} -% \end{macrocode} -% \DescribeMacro{trans} Some standard transitions for the photos. -% \begin{macrocode} -\define@choicekey+{fgGalleryOpts}{trans}[\val\nr]% - {Blinds,Fade,Fly,Iris,Photo,PixelDissolve,Rotate,% - Squeeze,Wipe,Zoom,Random}[Random]{% - \edef\fgGalleryOpts@trans{\val}% -}{} -\let\fgGalleryOpts@trans\@empty -% \end{macrocode} -% \DescribeMacro{delay} The amount of delay between the automatic display of -% a new photo. The default is 6 (seconds) -% \begin{macrocode} -\define@key{fgGalleryOpts}{delay}[6]{\def\fgGalleryOpts@delay{#1}} -\let\fgGalleryOpts@delay\@empty -% \end{macrocode} -% \DescribeMacro{auto} A Boolean switch, which if \texttt{true}, the photos are displayed -% automatically, the delay is determined by the \texttt{delay} key. The default is \texttt{auto=true}. -% \begin{macrocode} -\define@boolkey{fgGalleryOpts}{auto}[true]{% - \edef\fgGalleryOpts@auto{\ifKV@fgGalleryOpts@auto - true\else false\fi}} -% \end{macrocode} -% \DescribeMacro{transOn} A Boolean switch, which if \texttt{true}, a transition effect is used to transition -% between photos. -% \begin{macrocode} -\define@boolkey{fgGalleryOpts}{transOn}[true]{% - \edef\fgGalleryOpts@transOn{\ifKV@fgGalleryOpts@transOn - true\else false\fi}} -% \end{macrocode} -% \DescribeMacro{captionalign} For all galleries except for \texttt{fdg\_nt1} we can align -% the position of the caption: \texttt{left}, \texttt{right}, or \texttt{center}. The default is \texttt{left}. -% \begin{macrocode} -\define@choicekey+{fgGalleryOpts}{captionalign}[\val\nr]% - {left,right,center}[left]{% - \edef\fgGalleryOpts@captionalign{\val}% -}{} -\let\fgGalleryOpts@captionalign\@empty -% \end{macrocode} -% \DescribeMacro{nocaptions} A Boolean switch, which if \texttt{true}, no caption is written the the caption bar. -% The default is \texttt{false}, captions are written. -% \begin{macrocode} -\define@boolkey{fgGalleryOpts}{nocaptions}[true]{% - \edef\fgGalleryOpts@nocaptions{\ifKV@fgGalleryOpts@nocaptions - true\else false\fi}} -% \end{macrocode} -% \DescribeMacro{nocaptionstext} If \texttt{nocaptions} is set to \texttt{true}, the value of this -% key is used as the caption for all the photos. If \texttt{nocaptionstext} is not listed, or has not value, the empty -% string is used. -% \begin{macrocode} -\define@key{fgGalleryOpts}{nocaptionstext}[]{% - \def\fgGalleryOpts@nocaptionstext{#1}} -% \end{macrocode} -% Global defaults for the \texttt{fgGalleryOpts} family. -% \begin{macrocode} -\setkeys{fgGalleryOpts}{gallery,transOn,auto=true,nocaptions=false,nocaptionstext} -% \end{macrocode} -% \DescribeMacro{\fgRmAnnot} Now for the definition of \cs{fgRmAnnot}. -% \begin{macrocode} -\newcommand{\fgRmAnnot}[2][]{\begingroup - \@ifundefined{#2@fdgdigis}% - {\PackageError{fldigigal}{The name `#2' is not defined - for\MessageBreak this \string\fgRmAnnot}{Gallery names - are defined using \string\fdgXmlList}}% -% \end{macrocode} -% We get the key-value pairs for the \texttt{fgRmAnnot} family, then -% within the \texttt{galleryopts} key, we process those options as well. -% \begin{macrocode} - \setkeys*{fgRmAnnot}{#1}\edef\XKV@rm@saved{\XKV@rm}% - \edef\tmp@setkeysEx{\noexpand\setkeys{fgGalleryOpts}% - {\fgRmAnnot@galleryopts}}\tmp@setkeysEx -% \end{macrocode} -% We build part of the \texttt{flashvars} that correspond to this application. -% The macro \cs{merged@flashvars} merges the flash variables entered directly -% by the document author to control the \cs{rmAnnot}. -% \begin{macrocode} - \edef\merged@flashvars{\fgRmAnnot@flashvars% - \ifKV@fgGalleryOpts@auto\else&% - auto=\fgGalleryOpts@auto\fi - \ifx\fgGalleryOpts@delay\@empty\else&% - delay=\fgGalleryOpts@delay\fi - \ifx\fgGalleryOpts@trans\@empty\else&% - transitionType=\fgGalleryOpts@trans\fi - \ifKV@fgGalleryOpts@transOn\else&% - transitionOn=\fgGalleryOpts@transOn\fi - \ifx\fgGalleryOpts@captionalign\@empty\else&% - captionalign=\fgGalleryOpts@captionalign\fi - \ifKV@fgGalleryOpts@nocaptions&% - nocaptions=\fgGalleryOpts@nocaptions% - \ifx\gGalleryOpts@nocaptionstext\@empty\else&% - nocaptionstext=\fgGalleryOpts@nocaptionstext\fi\fi - }% -% \end{macrocode} -% OK, now we create an \cs{rmAnnot} with the desired parameters. -% We populate the \texttt{flashvars} key. -% \begin{macrocode} - \rmAnnot[\XKV@rm@saved, - flashvars={xmlPath=\Name{\xmlListiv{#2}}\merged@flashvars},% - resources={\xmlListiv{#2}\embededResources{#2}}% - ]{320bp}{240bp}{\fgGalleryOpts@gallery}% - \endgroup -} -% \end{macrocode} -% \end{macro} -% \begin{macrocode} -%</package> -% \end{macrocode} -\endinput -History: - (2010/12/29 v0.5c) the auto option did not have a default value, fixed - (2010/12/25 v0.5b) version date referenced for the rmannot package was - incorrect, should read 2010/12/22. - (2010/12/25 v0.5a) remove some spurious spaces, and changed the size - of \fgRmAnnot from 640bp x 480bp to 320bp x 240bp - (2010/12/23 v0.5) First publication |