diff options
author | Norbert Preining <norbert@preining.info> | 2018-06-11 12:42:37 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2018-06-11 12:42:37 +0900 |
commit | 7773e55cad46b0305e833329e97c73e80f318805 (patch) | |
tree | 21ab1828303e5c0cd84720c9840be82cbd6083a4 /texmf-dist/source/latex/digicap-pro | |
parent | 119c41f672f44e3acc86d1518ed0a3d8e0149d77 (diff) |
add digicap-pro
Diffstat (limited to 'texmf-dist/source/latex/digicap-pro')
-rw-r--r-- | texmf-dist/source/latex/digicap-pro/digicap-pro.dtx | 783 | ||||
-rw-r--r-- | texmf-dist/source/latex/digicap-pro/digicap-pro.ins | 60 | ||||
-rw-r--r-- | texmf-dist/source/latex/digicap-pro/doc/digicap_man.tex | 685 |
3 files changed, 1528 insertions, 0 deletions
diff --git a/texmf-dist/source/latex/digicap-pro/digicap-pro.dtx b/texmf-dist/source/latex/digicap-pro/digicap-pro.dtx new file mode 100644 index 00000000..00e23502 --- /dev/null +++ b/texmf-dist/source/latex/digicap-pro/digicap-pro.dtx @@ -0,0 +1,783 @@ +% \iffalse +%<*copyright> +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% digicap-pro package, %% +%% Copyright (C) 2008--2018 %% +%% dpstory@acrotex.net %% +%% %% +%% 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.2 of the %% +%% License, or (at your option) any later version. %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%</copyright> +%<package>\NeedsTeXFormat{LaTeX2e} +%<package>\ProvidesPackage{digicap-pro} +%<package> [2018/05/13 v1.3 Transparent Captions with Photos (dps)] +%<*driver> +\documentclass{ltxdoc} +\usepackage[colorlinks,hyperindex=false]{hyperref} +\pdfstringdefDisableCommands{\let\\\textbackslash}% +\def\CMD#1{\textbackslash{#1}}\def\EXCL{!} +\let\opt\texttt \let\app\textsf \let\pkg\textsf \let\env\texttt +\OnlyDescription % comment out for implementation details +\EnableCrossrefs +\CodelineIndex +\RecordChanges +\bgroup\ttfamily +\gdef\brpr#1{\char123\relax#1\char125\relax}\egroup +\let\darg\brpr +\let\env\texttt +\let\opt\texttt +\def\visispace{\symbol{32}} +\def\ameta#1{\ensuremath{\langle\textit{\texttt{#1}}\rangle}} +\def\meta#1{\textsl{\texttt{#1}}} +\def\SUB#1{\ensuremath{{}_{\mbox{\scriptsize\ttfamily#1}}}} +\InputIfFileExists{aebdocfmt.def}{\PackageInfo{digicap-pro}{Inputting aebdocfmt.def}} + {\def\IndexOpt{\DescribeMacro}\def\IndexKey{\DescribeMacro}\let\setupFullwidth\relax + \PackageInfo{digicap-pro}{aebdocfmt.def cannot be found}} +\begin{document} + \GetFileInfo{digicap-pro.sty} + \title{The \texorpdfstring{\protect\pkg{digicap-pro}}{digicap-pro} Package} + \author{D. P. Story\\ + Email: \texttt{dpstory@acrotex.net}} + \date{processed \today} + \maketitle + \tableofcontents + \DocInput{digicap-pro.dtx} +\IfFileExists{\jobname.ind}{\newpage\setupFullwidth\par\PrintIndex}{\paragraph*{Index} The index goes here. + Execute\\[3pt]\null\qquad + \texttt{makeindex -s gind.ist -o digicap-pro.ind digicap-pro.idx}\\[3pt] + on the command line and recompile \texttt{digicap-pro.dtx}.} +\IfFileExists{\jobname.gls}{\PrintChanges}{\paragraph*{Change History} The list of changes goes here. + Execute\\[3pt]\null\qquad + \texttt{makeindex -s gglo.ist -o digicap-pro.gls digicap-pro.glo}\\[3pt] + on the command line and recompile \texttt{digicap-pro.dtx}.} +\end{document} +%</driver> +% \fi +% \MakeShortVerb{|} +% \InputIfFileExists{aebdonotindex.def}{\PackageInfo{digicap-pro}{Inputting aebdonotindex.def}} +% {\PackageInfo{digicap-pro}{cannot find aebdonotindex.def}} +% \begin{macrocode} +%<*package> +% \end{macrocode} +% \section{Introduction} +% This is a package that can create fancy, transparent captions to photos,\footnote +% {Transparent here means having an opacity between 0 and 1.} or any graphics file. +% The captions can be set to be continually visible, or only visible on roll-over. Captions can be +% placed horizontally and vertically with optional arguments. A visible, possibly transparent, border +% can be placed around the caption as well. +% +% \section{Package Options} +% +% The \IndexOpt{display1}\opt{display1} option is used to create a photo album, a single PDF that +% contains many photos with captions which are accessible by clicking thumbnails. +% \begin{macrocode} +\DeclareOption{display1}{\AtEndOfPackage{\dc@input@displayi}} +\def\dc@input@displayi{\InputIfFileExists{digi-p1.def}{}{}} +\ProcessOptions +% \end{macrocode} +% \section{Code} +% +% Let's get this show on the road! +% +% \subsection{Required Packages} +% The package builds on packages developed as part of \textsf{AeB} or \textsf{AeB~Pro}: +%\begin{itemize} +% \item\textsf{aeb\_pro}: supplies support for layers and JavaScript management of layers +% \item\textsf{graphicxbox}: places a graphic as the background of a box +% \item\textsf{opacity-pro}: creates the transparency effects +% \item\textsf{eforms}: use to create Acrobat form buttons with a roll-over action to make +% roll-over captions visible or hidden. +%\end{itemize} +%The graphicx package is also used to import digital photos, or other graphics. +% \begin{macrocode} +\RequirePackage{eforms} +\RequirePackage{graphicx} +\RequirePackage{graphicxbox} +\RequirePackage{opacity-pro} +% \end{macrocode} +% +% \subsection{\texorpdfstring{\protect\cs{opcolorbox}}{\CMD{opcolorbox}}} +% +% The following are the definitions of the key-value pairs used by \cs{opcolorbox}. A brief +% description of their purpose appears in the section devoted to \cs{opcolorbox}. +% +% \begin{macrocode} +\def\dc@nocolor{nocolor} +\define@key{opcolorbox}{borderwidth}[2pt]{\def\opcb@borderwidth{#1}} +\define@key{opcolorbox}{fboxsep}[6pt]{\def\opcb@fboxsep{#1}} +\define@key{opcolorbox}{width}[\linewidth]{\def\opcb@width{#1}} +\define@key{opcolorbox}{bordercolor}[black]{\def\opcb@bordercolor{#1}} +\define@key{opcolorbox}{bgcolor}[white]{\def\opcb@bgcolor{#1}} +\define@key{opcolorbox}{borderop}[.5]{\def\opcb@borderop{#1}} +\define@key{opcolorbox}{bordertextop}[1]{\def\opcb@bordertextop{#1}} +\define@key{opcolorbox}{bgop}[.5]{\def\opcb@bgop{#1}} +\define@key{opcolorbox}{textop}[1]{\def\opcb@textop{#1}} +\define@key{opcolorbox}{borderblend}[Normal]{% + \def\opcb@borderblendmode{#1}} +\define@key{opcolorbox}{bgblend}[Normal]{\def\opcb@bgblendmode{#1}} +\setkeys{opcolorbox}{borderwidth,fboxsep,width,bordercolor,bgcolor,% + bordertextop,borderop,bgop,textop,borderblend,bgblend} +% \end{macrocode} +% \begin{macro}{\opcolorbox} +% +% A general purpose color box that creates two color boxes, a larger one with a +% smaller one centered vertically and horizontally inside the larger one. Transparent +% options allow separate control over the opacity settings of the larger and smaller +% rectangle as well as the text that is written within the smaller rectangle. +% +%\paragraph*{Optional key-values for the first parameter} +%\begin{description} +% \item[\texttt{borderwidth}:] The border width. The default is \texttt{2pt} +% \item[\texttt{fboxsep}:] The space between the border and the text, the default is \texttt{6pt} +% \item[\texttt{width:}] The width of \cs{parbox}, the default is \cs{linewidth} +% \item[\texttt{bordercolor}:] A named color of border, the default is \texttt{black}. A special value +% of \texttt{nocolor} is recognized, in that case, no color is applied. +% \item[\texttt{bgcolor:}] A named color of background, the default is \texttt{white}. A special value +% of \texttt{nocolor} is recognized, in that case, no color is applied. +% \item[\texttt{borderop:}] A number type, the opacity for border $0 \le \mbox{number} \le 1$, the default is~$.5$ +% \item[\texttt{bgop:}] A number type, the opacity for background $0 \le \mbox{number} \le 1$, the default is~$.5$ +% \item[\texttt{textop:}] A number type, the opacity for text $0 \le \mbox{number} \le 1$, the default is~$1$ +% \item[\texttt{borderblend:}] The blend mode for the border, the default is \texttt{Normal} +% \item[\texttt{bgblend:}] The blend mode for the background, the default is \texttt{Normal} +%\end{description} +% +%\paragraph*{Second parameter, required.} The text that goes within the box. +% +% \begin{macrocode} +\def\dc@mark{[\space}%] +\newcommand{\opcolorbox}[2][]{\begingroup + \edef\dc@tmp@exp{\noexpand\setkeys{opcolorbox}{#1}}\dc@tmp@exp + \ifx\opcb@bgcolor\dc@nocolor\let\opcb@set@bgcolor\mbox + \else\def\opcb@set@bgcolor{\colorbox{\opcb@bgcolor}}\fi + \ifx\opcb@bordercolor\dc@nocolor\let\opcb@set@bordercolor\mbox + \else\def\opcb@set@bordercolor{\colorbox{\opcb@bordercolor}}\fi + \setlength{\fboxsep}{\opcb@borderwidth}\setlength{\fboxrule}{0pt}% + \begin{settransparency}[\opcb@borderblendmode]{\opcb@bordertextop}% + {\opcb@borderop}% + \opcb@set@bordercolor{\parbox[c]{\opcb@width}{% + \setlength{\fboxsep}{\opcb@fboxsep}\setlength{\fboxrule}{0pt}% + \begin{settransparency}[\opcb@bgblendmode]{\opcb@textop}% + {\opcb@bgop}% + \opcb@set@bgcolor{\parbox[c]{\linewidth-2\fboxsep}{% +% \end{macrocode} +% for dvips, CA is not recognized since dvips does not stroke backgrounds, +% so we insert another layer of transparency, with ca=CA=\cs{opcb@textop} +% \begin{macrocode} + \begin{settransparency}{\opcb@textop}{\opcb@textop}% + #2% + \end{settransparency}% + }}% + \end{settransparency}}}% + \end{settransparency}% + \endgroup +} +% \end{macrocode} +% \end{macro} +% +% \subsection{\texorpdfstring{\protect\cs{digiCap} and \protect\cs{digiCap*}} +% {\CMD{digiCap} and \CMD{digiCap*}}} +% +% The \cs{digiCap} command is defined in this section; there is an \texttt* +% option that changes the caption into a rollover. Before we get started, we define +% several commands that support some of the options for this command. +% +% The \cs{dc@vCaptionPlacement} command accomplishes two things: It records the document author's choice +% for vertical placement of the caption (saving it in \cs{aeb@captionPlacement}), +% and calculates the amount of vertical displacement needed to overlay +% the rollover form field correctly over the picture. Possible values for \texttt{\#1} +% and \texttt{b}, \texttt{c}, and \texttt{t}. The default is \texttt{b}. +% This command is called when the author sets \texttt{vcaption}, +% a key belonging to the \texttt{dc@commands} family. Defined below. +% \begin{macrocode} +\def\dc@vCaptionPlacement#1{\def\dc@captionPlacement{#1}% + \def\dc@@captionPlacement{0pt}% + \if\dc@captionPlacement c% + \def\dc@@captionPlacement{-\dc@graphicHalfHeight+3pt}\else + \if\dc@captionPlacement t% + \def\dc@@captionPlacement{-\dc@graphicHeight}% + \else + \def\dc@captionPlacement{b}% + \def\dc@@captionPlacement{0pt}% + \fi\fi +} +\dc@vCaptionPlacement{b} +% \end{macrocode} +% We set the horizontal placement of the caption, possible values are \texttt{l}, \texttt{c}, and \texttt{r}. +% The default is \texttt{c}. This command is called when the author sets \texttt{hcaption}, +% a key belonging to the \texttt{dc@commands} family. Defined below. +% \begin{macrocode} +\def\dc@hCaptionPlacement#1{\def\dc@argi{#1}% + \if\dc@argi l\def\dc@Hplacement{\relax}\else + \if\dc@argi c\def\dc@Hplacement{\hfil}\else + \if\dc@argi r\def\dc@Hplacement{\hfill}\else + \def\dc@Hplacement{\relax}\fi\fi\fi +} +\dc@hCaptionPlacement{c} +% \end{macrocode} +% \begin{macrocode} +\def\dc@calc@adj@width#1{{% + \edef\dc@tmp@exp{\noexpand\setkeys{opcolorbox}{#1}}\dc@tmp@exp + \setlength{\linewidth}{\dc@graphicWidth-2\fboxsep}% + \setlength{\dimen@}{\opcb@width}% + \setlength{\dimen@ii}{\opcb@borderwidth}% + \setlength{\dimen@}{\dimen@-2\dimen@ii}% + \xdef\dc@adj@width{\the\dimen@}% +}} +% \end{macrocode} +% This is the command that inserts the caption +%\begin{verbatim} +% #1=path to graphic +% #2=box content (#3-#5 are included in the box content) +% #3=KVPairs of \opcolorbox +% #4=content of \opcolorbox +% #5=either empty or \eBld, if layers used +%\end{verbatim} +% \begin{macrocode} +\long\def\dc@insert@graphicx@opcolor@boxes#1#2#3#4#5{% + \graphicxbox{#1}{#2\parbox[\dc@captionPlacement]% + [\dc@graphicHeight-2\fboxsep]{\dc@graphicWidth-2\fboxsep}% + {\vskip0pt\dc@Hplacement\opcolorbox[#3,width=\dc@adj@width]% + {#4}\par\kern0pt}#5}% +} +% \end{macrocode} +% \begin{macro}{\graphicHeight} +% \begin{macro}{\graphicWidth} +% These two commands may be used within the \texttt{<caption>} argument +% of the command \cs{digiCap}. \cs{graphicHeight} is used +% to set the height of a \texttt{minipage} of \cs{parbox} for a vertically oriented caption. +% An example appears in the demo file. +% \begin{macrocode} +\def\graphicHeight{\dc@graphicHeight-2\fboxsep-% + \dc@outerboxsep-\dc@outerboxsep-\opcb@borderwidth-\opcb@borderwidth} +\def\graphicWidth{\dc@graphicWidth-2\fboxsep-% + \dc@outerboxsep-\dc@outerboxsep-\opcb@borderwidth-\opcb@borderwidth} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \begin{macro}{\digiCap} +% A command that places a picture as background of a box, and places a, possibly, transparent +% caption, optionally, with a border. The syntax is\dots +%\begin{verbatim} +% \digiCap[<dc@commands_kvps>] +% {<file>}[<opcolorbox_fam_kvps>]{<caption>} +%\end{verbatim} +% or +%\begin{verbatim} +% \digiCap*[<dc@commands_kvps>] +% {<file>}[<opcolorbox_fam_kvps>]{<caption>} +%\end{verbatim} +% If the optional \texttt{*} appears, then \cs{dc@digiCapRollover} is called, otherwise, +% \cs{dc@digiCap}. +% +% The \texttt{dc@commands} \texttt{xkeyval} family is defined below. +%\paragraph*{Optional key-values for the first parameter.} This set of parameters +% control the placement of the caption on top of the background picture. There is +% also a parameter to set the \cs{includegraphics} options, and the underlying +% form field name, in the case of a rollover. +%\begin{description} +%\item[\texttt{outerboxsep}:] The space the surrounds the boundary of the caption, the default is \texttt{3pt} +%\item[\texttt{vcaption}:] The vertical placement of the caption on the background graphic, possible +% values are \texttt{b}, \texttt{c}, and \texttt{t}. The default is \texttt{b}. +%\item[\texttt{hcaption}:] The horizontal placement of the caption on the background graphic, possible +% values are \texttt{l}, \texttt{c}, and \texttt{r}. The default is \texttt{c}. +%\item[\texttt{inclgraphicx}:] The value of this key is a list of key-value pairs that are passed on to the +% underlying \cs{includegraphics} command. +%\item[\texttt{rollovername}:] The basename of the push button form field that is used for a rollover effect. +% This command is used only with \cs{digiCap*}, ignored otherwise. For the \cs{digiCap*} +% command, this key is optional, if not present, this package supplies a name. +%\end{description} +%\paragraph*{Second parameter, required.} The second parameter \texttt{<file>} is the path to the graphic to be +% use as a background to this box. +%\paragraph*{Optional key-values for the third parameter.} The options for the underlying \cs{opcolorbox}. See above +% for a listing and description. +%%\paragraph*{Fourth parameter, required.} The content of the caption. +% \begin{macrocode} +\define@key{dc@commands}{outerboxsep}[3pt]{\def\dc@outerboxsep{#1}} +\define@key{dc@commands}{vcaption}[b]{\dc@vCaptionPlacement{#1}} +\define@key{dc@commands}{hcaption}[c]{\dc@hCaptionPlacement{#1}} +\define@key{dc@commands}{inclgraphicx}[]{% + \def\dc@inclgraphicx{#1\dc@incgfx@addkeys}} +\let\dc@incgfx@addkeys\@empty +\define@key{dc@commands}{rollovername}[]{{% + \gdef\dc@rollovername{#1}% + \ifx\dc@rollovername\@empty + {\count0=\dc@rollover@cnt\advance\count0by1\relax + \xdef\dc@rollover@cnt{\the\count0}% + \xdef\dc@rollovername{Cnt\dc@rollover@cnt}}% + \fi +}} +\let\dc@rollovername\@empty +\def\dc@rollover@cnt{0}% +\setkeys{dc@commands}{outerboxsep,vcaption,hcaption,inclgraphicx} +% \end{macrocode} +% \begin{macrocode} +\newcommand{\digiCap}{\@ifstar{\dc@digiCapRollover} + {\dc@digiCap}} +% \end{macrocode} +% \paragraph*{\cs{dc@digiCap}} This creates a digital photo with caption, no rollover. +% \begin{macrocode} +\newcommand{\dc@digiCap}[2][]{\begingroup + \edef\dc@tmp@exp{\noexpand\setkeys{dc@commands}{#1}}\dc@tmp@exp + \def\dc@filename{#2}\setlength{\fboxsep}{\dc@outerboxsep}% + \dc@@digiCap +} +\newcommand{\dc@@digiCap}[2][]{% + \edef\dc@tmp@exp{\noexpand\setkeys{Gin}{\dc@inclgraphicx}}% + \dc@tmp@exp\edef\dc@tmp@exp{\setbox0= + \hbox{\noexpand\includegraphics[draft,\dc@inclgraphicx]% + {\dc@filename}}}\dc@tmp@exp\dimen@=\dp0 \advance\dimen@\ht0 + \edef\dc@graphicHeight{\the\dimen@}% + \edef\dc@graphicWidth{\the\wd0}% + \dc@calc@adj@width{#1}\parbox{\dc@graphicWidth}{% + \dc@insert@graphicx@opcolor@boxes{\dc@filename}{}{#1}{#2}{}}% +\endgroup} +% \end{macrocode} +% \end{macro} +% \paragraph*{\cs{dc@digiCap*}} Same as \cs{dc@digiCap}, but the caption is placed in a layer and a rollover +% effect is use to make the caption appear. The syntax is\dots +% \begin{macrocode} +\newcommand{\dc@digiCapRollover}[2][]{\begingroup + \edef\dc@tmp@exp{\noexpand\setkeys{dc@commands}{#1}}% + \dc@tmp@exp\def\dc@filename{#2}% + \setlength{\fboxsep}{\dc@outerboxsep}% + \ifx\dc@rollovername\@empty\setkeys{dc@commands}{rollovername}\fi + \dc@@digiCapRollover +} +\newcommand{\dc@@digiCapRollover}[2][]{% + \edef\dc@tmp@exp{\noexpand\setkeys{Gin}{\dc@inclgraphicx}}% + \dc@tmp@exp\edef\dc@tmp@exp{\setbox0=\hbox{% + \noexpand\includegraphics[draft,\dc@inclgraphicx]% + {\dc@filename}}}\dc@tmp@exp\dimen@=\dp0\advance\dimen@\ht0 + \edef\dc@graphicHeight{\the\dimen@}\dimen@=.5\dimen@ + \edef\dc@graphicHalfHeight{\the\dimen@}% + \edef\dc@graphicWidth{\the\wd0}% + \dc@calc@adj@width{#1}\parbox{\dc@graphicWidth}{% + \raisebox{\dc@@captionPlacement}[0pt][0pt]{\rlap + {\pushButton[\presets{\digiCapsPresets{\dc@rollovername}}% + \presets{\hiddenPresets}]{dcRollover.\dc@rollovername}% + {\dc@graphicWidth}{\dc@graphicHeight}}}% + \dc@insert@graphicx@opcolor@boxes{\dc@filename}% + {\xBld{\dc@rollovername}}{#1}{#2}{\eBld}% + }\global\let\dc@rollovername\@empty% +\endgroup} +% \end{macrocode} +% This is a listing of options to be used by the push button that +% supplies the rollover effect. +% \begin{macrocode} +\def\digiCapsPresets#1{\W0\BG{}\BC{}\H{N}\autoCenter{n}% rollover mod + \AA{\AAMouseEnter{\JS{toggleSetThisLayer("#1",true);}}% + \AAMouseExit{\JS{toggleSetThisLayer("#1",false);}}}} +\def\hiddenPresets{} +% \end{macrocode} +% \begin{macrocode} +%</package> +% \end{macrocode} +% \begin{macrocode} +%<*digidisplay1> +% \end{macrocode} +% +% \subsection{A Layout for Digital Display (Photo album)} +% +% This segment of code provides for a layout to display digital images. Thumbnails of the +% images are lined up in rows or columns. When the user rolls over a thumb, a large version +% of that photo appears in the display area. The photos can optionally contain a short caption, +% and a longer caption. This latter caption appears on a transparent background on top of the photo +% (|\digiCap| is used here). +% +% \subsubsection{Embedding Images/Creating Thumb Appearances} +% +% Embed each image using |\embedEPS|, then create other images of that digital +% in normal, rollover and down appearances. These are used +% for the form field thumbnails. +% +% \begin{macro}{\PicsThisDoc} +% This command is executed in the preamble of the document. The one argument is a +% comma delimited list of four parameters: +%\begin{verbatim} +% \PicsThisDoc +% {% +% {<embed_name>}{<graphic_path>}{<short_caption>}{<long_caption>}, +% {<embed_name>}{<graphic_path>}{<short_caption>}{<long_caption>}, +% ... +% {<embed_name>}{<graphic_path>}{<short_caption>}{<long_caption>} +% } +%\end{verbatim} +% We pass each set of four arguments on to \cs{dc@setPicsAndCaptions} for processing. +% \begin{macrocode} +\newcommand{\PicsThisDoc}[1]{% + \@for\@args:=#1\do{\expandafter\dc@setPicsAndCaptions\@args}% +} +% \end{macrocode} +% \end{macro} +% This command takes the four arguments passed to it from \cs{PicsThisDoc}, and passes the +% required args to the commands \cs{dc@embedEPSCreateAppearances} and to \cs{dc@defTheseCaptions}. +% \begin{macrocode} +\def\dc@setPicsAndCaptions#1#2#3#4{% + \dc@embedEPSCreateAppearances{#1}{#2}% + \dc@defTheseCaptions{#1}{#3}{#4}% +} +% \end{macrocode} +% This command embeds the graphic file \texttt{\#2}, names that file as \texttt{\#1}. The name +% \texttt{\#1} is later used to show the figure. The \textsf{grahicxsp} package is used here. +% This command also builds images used in the appearance states of the thumbnail images. The +% appearance states can be redefined, as desired. +% \begin{macro}{\setThumbAppearances} +% Set the appearances of the thumbnail images. There are three appearances: normal, rollover and +% push. The settings for these parameters are use in the command \cs{dc@embedEPSCreateAppearances}. +% +% There is one optional argument, the value of this optional argument is the name of one of the +% photos; in this case, the second argument is used only for that picture. This way, you can +% change the appearance of the thumbs. Normally, they would all look the same. +% \begin{macrocode} +\newcommand{\setThumbAppearances}[2][]{% + \def\dc@argi{#1}\ifx\dc@argi\@empty\def\dc@thumbApprs{#2}% + \setkeys{dc@ro@appr}{#2}\else + \expandafter\def\csname dc@thumbApprs@#1\endcsname{#2}\fi +} +\define@key{dc@ro@appr}{normalop}[.5]{\def\dc@ro@appr@normalopacity{#1}} +\define@key{dc@ro@appr}{rolloverop}[1]% + {\def\dc@ro@appr@rolloveropacity{#1}} +\define@key{dc@ro@appr}{downop}[.3]% + {\def\dc@ro@appr@downopacity{#1}} +\define@key{dc@ro@appr}{boundarywidth}[30]% + {\def\dc@ro@appr@boundarywidth{#1}} +\define@key{dc@ro@appr}{rgbcolor}[]{% + \def\dc@ro@appr@rgbcolor{#1}\ifx\dc@ro@appr@rgbcolor\@empty + \else + \expandafter\ef@isitnamed\dc@ro@appr@rgbcolor\ef@nil + \ifx\ef@latex@color\ef@y\expandafter + \HyColor@XZeroOneThreeFour + \expandafter{\dc@ro@appr@rgbcolor}{\dc@ro@appr@rgbcolor}{}{}% + \edef\dc@ro@appr@rgbcolor{\dc@ro@appr@rgbcolor}\fi +\fi} +\let\dc@ro@appr@rgbcolor\@empty +% {\def\dc@ro@appr@rgbcolor{#1}} +\define@key{dc@ro@appr}{cmykcolor}[0 0 1 0]{% + \def\dc@ro@appr@cmykcolor{#1}\ifx\dc@ro@appr@cmykcolor\@empty + \else + \expandafter\ef@isitnamed\dc@ro@appr@cmykcolor\ef@nil + \ifx\ef@latex@color\ef@y\expandafter + \HyColor@XZeroOneThreeFour + \expandafter{\dc@ro@appr@cmykcolor}{\dc@ro@appr@cmykcolor}{}{}% + \edef\dc@ro@appr@cmykcolor{\dc@ro@appr@cmykcolor}\fi +\fi} +\def\dc@ro@appr@cmykcolor{0 0 1 0} +% {\def\dc@ro@appr@cmykcolor{#1}} +% \end{macrocode} +% Set the default values for these key-value pairs. +% \begin{macrocode} +\setThumbAppearances{normalop,rolloverop,downop,boundarywidth,% + rgbcolor,cmykcolor} +% \end{macrocode} +% \end{macro} +% This command embeds the graphic file \texttt{\#2}, names that file as \texttt{\#1}. The name +% \texttt{\#1} is later used to show the figure. The \textsf{grahicxsp} package is used here. +% This command also builds images used in the appearance states of the thumbnail images. The +% appearance states can be redefined, as desired. +% \begin{macrocode} +\def\dc@embedEPSCreateAppearances#1#2{% + \embedEPS[transparencyGroup]{#1}{#2}% + \@ifundefined{dc@thumbApprs@#1}{\edef\dc@tmp@exp% + {\noexpand\setkeys{dc@ro@appr}{\dc@thumbApprs}}}% + {\edef\dc@tmp@exp{\noexpand\setkeys{dc@ro@appr}% + {\csname dc@thumbApprs@#1\endcsname}}}\dc@tmp@exp + \begin{createImage}{\bboxOf{#1}}{n#1} + gsave + \dc@mark/ca \dc@ro@appr@normalopacity + /SetTransparency pdfmark + \urxOf{#1} .1 mul \uryOf{#1} .1 mul moveto + currentpoint translate + .8 .8 scale + \dc@mark{#1} /SP pdfmark + grestore + \end{createImage} + \begin{createImage}{\bboxOf{#1}}{r#1} + \dc@mark/ca \dc@ro@appr@rolloveropacity + /CA \dc@ro@appr@rolloveropacity + /SetTransparency pdfmark + \dc@mark{#1} /SP pdfmark + \dc@ro@appr@boundarywidth\space setlinewidth + \ifx\dc@ro@appr@rgbcolor\@empty + \dc@ro@appr@cmykcolor\space setcmykcolor\else + \dc@ro@appr@rgbcolor\space setrgbcolor\fi\space + currentlinewidth 2 div dup + \urxOf{#1} currentlinewidth sub \uryOf{#1} currentlinewidth sub + rectstroke + \end{createImage} + \begin{createImage}{\bboxOf{#1}}{d#1} + \dc@mark/ca \dc@ro@appr@downopacity + /CA \dc@ro@appr@downopacity/SetTransparency pdfmark + \dc@mark{#1} /SP pdfmark + \dc@ro@appr@boundarywidth\space setlinewidth + \ifx\dc@ro@appr@rgbcolor\@empty + \dc@ro@appr@cmykcolor\space setcmykcolor\else + \dc@ro@appr@rgbcolor\space setrgbcolor\fi\space + currentlinewidth 2 div dup + \urxOf{#1} currentlinewidth sub \uryOf{#1} currentlinewidth sub + rectstroke + \end{createImage} +} +% \end{macrocode} +% This command takes that short and long captions and saves them in a text macro +% under the name \texttt{\#1Caption} and \texttt{\#1Text}, where \texttt{\#1} is +% the graphic name. +% \begin{macrocode} +\def\dc@defTheseCaptions#1#2#3{% + \expandafter\gdef\csname #1Caption\endcsname{#2}% + \expandafter\gdef\csname #1Text\endcsname{#3}% +} +% \end{macrocode} +% +% \subsubsection{Placing the elements on the page} +% +% This section of the code is devoted to defining the commands to insert the +% various elements on the page: the photos, the captions, and the thumbs. +% \begin{macro}{\presentationOrder} +% A command to create a text macro. The argument is a comma delimited list +% of photo names. +% \begin{macrocode} +\newcommand{\presentationOrder}[1]{\def\dc@presentationOrder{#1}} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\dcFirstOpt} +% \begin{macro}{\dcSecondOpt} +% These two commands are used to pass optional arguments to \cs{digiCap}. +% \cs{} +% with various required arguments). These controls for the appearance, transparancy, and positioning of the long caption box. +% These \cs{dcFirstOpt} and \cs{dcSecondOpt} are passed as the first optional parameter and third +% parameters of the \cs{digiCap} command. +% \begin{macrocode} +\newcommand{\dcFirstOpt}[2][]{% + \def\dc@argi{#1}\ifx\dc@argi\@empty\def\dc@icontrol{#2}\else + \expandafter\def\csname dc@icontrol@#1\endcsname{#2}\fi} +\newcommand{\dcSecondOpt}[2][]{% + \def\dc@argi{#1}\ifx\dc@argi\@empty\def\dc@iicontrol{#2}\else + \expandafter\def\csname dc@iicontrol@#1\endcsname{#2}\fi} +% \end{macrocode} +% The following are the default settings for these controls. The values for the +% macros \cs{digiDSWidth} and \cs{digiDSHeight} are defined in \cs{digiDisplaySpace}. +% \begin{macrocode} +\dcFirstOpt{vcaption=b,hcaption=c,outerboxsep=0pt} +\dcSecondOpt{borderwidth=0bp,fboxsep=10bp,bordercolor=nocolor,bgop=.7} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \begin{macro}{\useRollovers} +% \begin{macro}{\noRollovers} +% Execute these commands to create rollovers for the long captions. The default +% is to use no rollovers. +% \begin{macrocode} +\def\useRollovers{\def\dc@use@Rollover{*}% + \def\hiddenPresets{\F{\FHidden}}} +\def\noRollovers{\let\dc@use@Rollover\@empty + \def\hiddenPresets{}} +\let\dc@use@Rollover\@empty +% \end{macrocode} +% Don't ask what this is. +% \begin{macrocode} +\def\dc@fudge{\llap{.\hskip20in}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \begin{macro}{\longCapFmt} +% Use this command to apply a global format to the long captions. For example, +% |\longCapFmt{\bfseries\scriptsize}|. The default setting does nothing. +% \begin{macrocode} +\newcommand{\longCapFmt}[1]{% + \def\dc@longCapFmt{#1}} +\longCapFmt{} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\dc@showPic} +% This is the command that places the large digital image in the display area. +% \begin{macrocode} +\def\dc@showPic#1{\leavevmode\xBld{#1}\dc@fudge + \vbox to0pt{\vss\hbox to0pt{\hss +% \end{macrocode} +% The \texttt{inclgraphicx} of the \texttt{dc@commands} family has a secret +% macro named \cs{gc@incgfx@addkeys} inserted in its definition. By default, \cs{gc@incgfx@addkeys} +% is \cs{let} equal to \cs{@empty}. We change that definition +% here to include the \texttt{name} of the graphic, so the document author does not have +% to bother. We also scale the picture to fit in the display space. +% \begin{macrocode} + \def\dc@incgfx@addkeys{width=\digiDSWidth,% + height=\digiDSHeight,keepaspectratio,name=#1}% +% \end{macrocode} +% If there is a custom control for this image, we swap off the default one +% with the custom one. +% \begin{macrocode} + \@ifundefined{dc@icontrol@#1}{}{\expandafter\let\expandafter + \dc@icontrol\expandafter=\csname dc@icontrol@#1\endcsname}% +% \end{macrocode} +% If there is a custom control for this image for the second optional argument, we swap off the default one +% with the custom one. +% \begin{macrocode} + \@ifundefined{dc@iicontrol@#1}{}{\expandafter\let\expandafter + \dc@iicontrol\expandafter=\csname dc@iicontrol@#1\endcsname}{}% +% \end{macrocode} +% Finally, we are ready to execute the appropriate graphic caption command, with or without rollover. +% \begin{macrocode} + \expandafter\digiCap\dc@use@Rollover% +% \end{macrocode} +% After determining which control for the first optional argument +% we insert |rollovername=ro#1| to give the rollover a pre-determined +% name that we know and can use to give the rollover effect for the +% long caption, if requested. The rollover key is ignored, if +% \cs{digiCap*} is not used. +% \begin{macrocode} + [\dc@icontrol,rollovername=ro#1]{\null}[\dc@iicontrol]% + {\dc@longCapFmt\csname#1Text\endcsname}% +\hss}\vss}\eBld} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\digiDisplaySpace} +% A simple command to define a space to place the digital images into. The images +% are centered both horizontally and vertically in the display space. +% The first parameter is the height of the digital display, the second is the width. +% These dimensions are recorded in the macros \cs{digiDSHeight} and \cs{digiDSWidth} +% This command can be redefined, but the developer needs to define these two macros. +% \begin{macrocode} +\newcommand{\digiDisplaySpace}[2]{% + \def\digiDSHeight{#1}\def\digiDSWidth{#2}% + \parbox[c][#1]{#2}{\centering\insertPhotos}% +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\insertPhotos} +% This is a user-interface to inserting the photos into the display area. +% Used by \cs{digiDisplaySpace}. +% \begin{macrocode} +\newcommand{\insertPhotos}{\edef\dc@tmp@exp{\noexpand\@for + \noexpand\@args:=\dc@presentationOrder}\dc@tmp@exp\do{% + \edef\dc@tmp@exp{\noexpand\dc@showPic{\@args}}\dc@tmp@exp}% +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\shortCapFmt} +% User-interface to formatting the short captions. +% \begin{macrocode} +\newcommand{\shortCapFmt}[1]{% + \def\dc@showCaption##1##2{\makebox[0pt][c]{\xBld{##1}#1##2\eBld}}} +% \end{macrocode} +% The default caption formatting is given below. +% \begin{macrocode} +\shortCapFmt{\sffamily\bfseries\color{blue}} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\insertCaptions} +% The main command for inserting captions, these can be placed above or below the display area. +% \begin{macrocode} +\newcommand{\insertCaptions}{\dc@fudge\edef\dc@tmp@exp{\noexpand\@for + \noexpand\@args:=\dc@presentationOrder}\dc@tmp@exp\do{% + \edef\dc@tmp@exp{\noexpand\dc@showCaption{\@args}% + {\noexpand\csname\@args Caption\noexpand\endcsname}}% + \dc@tmp@exp}% +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\insertThumbs} +% \begin{macro}{\setWidthOfThumbs} +% \begin{macro}{\addvspacetorows} +% The command to insert the thumbs in a tabular environment. The +% first argument is the number of rows, and second argument is the +% number of columns. +% \begin{macrocode} +\newcommand{\setWidthOfThumbs}[1]{{% + \setlength{\dimen0}{#1}% + \xdef\dc@thumbwidth{\the\dimen0}% +}} +\setWidthOfThumbs{0pt} +\newcommand{\addvspacetorows}[1]{\def\dc@addvspacetorows{#1}} +\addvspacetorows{1ex}% +\def\eq@tabSep{&} +\def\insertThumbs#1#2{\begingroup + \count0=0\relax\count2=0\relax + \def\dc@maxRows{#1}\def\dc@maxCols{#2}% + \setlength{\dimen0}{\dc@thumbwidth}\ifdim\dimen0=0pt + \setWidthOfThumbs{\linewidth/(\dc@maxCols)-\tabcolsep*2}\fi + \edef\dc@thisArg{\dc@presentationOrder,}% + \def\dc@insThumb@cr{\\[\dc@addvspacetorows]}% + \kern0pt\begin{tabular}{*{#2}{m{\dc@thumbwidth}}}% + \@whilenum\count0<#1\do{% + \@whilenum\count2<#2\do{% + \ifx\dc@thisArg\@empty + \global\let\dc@insThumb@cr\relax + \global\count0=\dc@maxRows + \global\count2=\dc@maxCols\else + \expandafter\dc@getNextArg\dc@thisArg\@nil + \global\advance\count2by1\relax + \ifx\dc@testArg\@empty + \else\ifnum\count2=\dc@maxCols + \else\eq@tabSep\fi\fi\fi + }\dc@insThumb@cr + \global\count2=0\relax\global\advance\count0by1\relax + }% +\end{tabular}% +\endgroup} +\def\dc@getNextArg#1,#2\@nil{\dc@digi@thumbs{#1}\gdef\dc@thisArg{#2}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \subsubsection{Form fields and JavaScript} +% +% We define a push button with a normal, rollover and push appearance. The JavaScript actions +% makes the picture in the display space visible, and making the previous picture hidden. +% +% The command, \cs{dc@digi@thumbs}, creates a push button with normal, down and rollover appearances. +% The JavaScript actions is to show execute the function \texttt{showThisPicture()}, +% which is defined as document JavaScript, below. The function manages the hiding and +% showing of layers, and if the \cs{useRollovers} is in effect, manages the rollover field +% created by \cs{digiCap*} command. +% \begin{macrocode} +\def\normalAppr#1{n#1} +\def\downAppr#1{d#1} +\def\rolloverAppr#1{r#1} +\def\dc@digi@thumbs#1{\hfil% +{\dimen0=\widthOf{#1}bp\relax\dimen2=\heightOf{#1}bp\relax + \ifdim\dimen0<\dimen2\relax + \edef\dc@argi{\string!}\edef\dc@argii{\dc@thumbwidth}\else + \edef\dc@argi{\dc@thumbwidth}\edef\dc@argii{\string!}\fi + \xdef\dc@tmp@exp{\noexpand\resizebox{\dc@argi}{\dc@argii}}% +}\dc@tmp@exp{\pushButton[% + \autoCenter{n}\BC{}\BG{}\S{S}\W0 + \A{\JS{% + showThisPicture("#1");\r + lastPicture="#1";\r + this.dirty=false; + }}\I{\normalAppr{#1}}\RI{\downAppr{#1}}\IX{\rolloverAppr{#1}} + \TP{1}\FB{true}]{pb#1}{\widthOf{#1}bp}{\heightOf{#1}bp}}} +% \end{macrocode} +% The JavaScript function manages the hiding and showing of layers, +% and if the \cs{useRollovers} is in effect, manages the rollover +% field. The argument \texttt{name} is the name of the graph to be +% shown. The name one to be hidden is saved as the value of +% \texttt{lastPicture}. +% \begin{macrocode} +\begin{insDLJS}[showThisPicture]{digidjs1}{Show This Picture} +var lastPicture=""; +function showThisPicture(name) { + if (lastPicture != "") { + var f = this.getField("dcRollover.ro"+lastPicture); + if ( f != null ) f.display=display.hidden; + toggleSetThisLayer(lastPicture,false); + } + var f = this.getField("dcRollover.ro"+name); + if ( f != null ) f.display=display.visible; + toggleSetThisLayer(name); +} +try { app.runtimeHighlight=false; app.focusRect=false; } catch(e) {}; +\end{insDLJS} +%</digidisplay1> +% \end{macrocode} +% \Finale +\endinput +% \begin{macrocode} +%<*package> +%</package> +% \end{macrocode} diff --git a/texmf-dist/source/latex/digicap-pro/digicap-pro.ins b/texmf-dist/source/latex/digicap-pro/digicap-pro.ins new file mode 100644 index 00000000..1dad9de9 --- /dev/null +++ b/texmf-dist/source/latex/digicap-pro/digicap-pro.ins @@ -0,0 +1,60 @@ +%% +%% This file will generate fast loadable files and documentation +%% driver files from the doc files in this package when run through +%% LaTeX or TeX. +%% +%% Copyright 1999-2008 D. P. Story +%% +%% This file is part of the `AcroTeX eDucation Bundle'. +%% ------------------------------------------- +%% +%% It may be distributed 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. +%% +%% --------------- start of docstrip commands ------------------ +%% +\def\filedate{2008/04/16} +\def\batchfile{digicap-pro.ins} +% +\input docstrip +\ifx\generate\undefined + \Msg{**********************************************} + \Msg{*} + \Msg{* This installation requires docstrip} + \Msg{* version 2.4 or later.} + \Msg{*} + \Msg{* An older version of docstrip has been input} + \Msg{*} + \Msg{**********************************************} + \errhelp{Move or rename old docstrip.tex and get a newer one.} + \errmessage{Old docstrip in input path} + \batchmode + \csname @@end\endcsname\end +\fi + +\keepsilent +\askforoverwritefalse +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\preamble +\endpreamble +\generate +{% + \file{digicap-pro.sty}{\from{digicap-pro.dtx}{copyright,package}} + \file{digi-p1.def}{\from{digicap-pro.dtx}{copyright,digidisplay1}} +} + +\Msg{***************************************************************} +\Msg{*} +\Msg{* \space To finish the installation you have to copy the files } +\Msg{*} +\Msg{* \space *.sty, *.cfg and *.def into a directory searched by TeX} +\Msg{*} +\Msg{***************************************************************} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\endinput diff --git a/texmf-dist/source/latex/digicap-pro/doc/digicap_man.tex b/texmf-dist/source/latex/digicap-pro/doc/digicap_man.tex new file mode 100644 index 00000000..66abf27d --- /dev/null +++ b/texmf-dist/source/latex/digicap-pro/doc/digicap_man.tex @@ -0,0 +1,685 @@ +\documentclass{article} +\usepackage[fleqn]{amsmath} +\usepackage[% + web={centertitlepage,usetemplates,designv, + forcolorpaper,tight*,latextoc,extended}, + eforms,uselayers,graphicxsp={showembeds},aebxmp +]{aeb_pro} +\usepackage{digicap-pro} + +\usepackage{array} +%\usepackage[usecmtt]{myriadpro} + +\usepackage[altbullet]{lucidbry} + +%\usepackage{makeidx} +%\makeindex + +\previewOn + +\usepackage{acroman} + +\usepackage[active]{srcltx} + +\def\expath{../examples} + + +\urlstyle{rm} + +\embedEPS{clifflee}{\expath/digis/IiFUCdIQ}% + +\DeclareDocInfo +{ + university={\AcroTeX.Net}, + title={ \texorpdfstring{DigiCap Pro\\[1em]} + {DigiCap Pro: }Captioning Digital Images}, + author={D. P. Story}, + email={dpstory@acrotex.net}, + subject={Documentation for AeB Pro from AcroTeX}, + talksite={\url{www.acrotex.net}}, + version={1.0}, + keywords={AeB, Adobe Acrobat, JavaScript}, + copyrightStatus=True, + copyrightNotice={Copyright (C) \the\year, D. P. Story}, + copyrightInfoURL={http://www.acrotex.net} +} + +\def\dps{$\hbox{$\mathfrak D$\kern-.3em\hbox{$\mathfrak P$}% + \kern-.6em \hbox{$\mathcal S$}}$} + +\universityLayout{fontsize=Large} +\titleLayout{fontsize=LARGE} +\authorLayout{fontsize=Large} +\tocLayout{fontsize=Large,color=aeb} +\sectionLayout{indent=-62.5pt,fontsize=large,color=aeb} +\subsectionLayout{indent=-31.25pt,color=aeb} +\subsubsectionLayout{indent=0pt,color=aeb} +\subsubDefaultDing{\texorpdfstring{$\bullet$}{\textrm\textbullet}} + +%\pagestyle{empty} +%\parindent0pt\parskip\medskipamount + +\advance\marginparwidth10pt + + +\chngDocObjectTo{\newDO}{doc} +\begin{docassembly} +var titleOfManual="The DigiCap Pro Manual"; +var manualfilename="Manual_BG_Print_digicap.pdf"; +var manualtemplate="Manual_BG_Brown.pdf"; // Blue, Green, Brown +var _pathToBlank="C:/Users/Public/Documents/ManualBGs/"+manualtemplate; +var doc; +var buildIt=false; +if ( buildIt ) { + console.println("Creating new " + manualfilename + " file."); + doc = \appopenDoc({cPath: _pathToBlank, bHidden: true}); + var _path=this.path; + var pos=_path.lastIndexOf("/"); + _path=_path.substring(0,pos)+"/"+manualfilename; + \docSaveAs\newDO ({ cPath: _path }); + doc.closeDoc(); + doc = \appopenDoc({cPath: manualfilename, oDoc:this, bHidden: true}); + f=doc.getField("ManualTitle"); + f.value=titleOfManual; + doc.flattenPages(); + \docSaveAs\newDO({ cPath: manualfilename }); + doc.closeDoc(); +} else { + console.println("Using the current "+manualfilename+" file."); +} +var _path=this.path; +var pos=_path.lastIndexOf("/"); +_path=_path.substring(0,pos)+"/"+manualfilename; +\addWatermarkFromFile({ + bOnTop:false, + bOnPrint:false, + cDIPath:_path +}); +\executeSave(); +\end{docassembly} + +\begin{document} + +\maketitle + +\selectColors{linkColor=black} +\tableofcontents +\selectColors{linkColor=webgreen} + +\section{Introduction} + +The \textsf{digicap-pro} package came about several years ago (2008); +at that time, I was impressed by the tv guide layout of photos with +captions. The captions were laid on top of the photos using a +transparent box. I also saw this type of photo-caption layout on +\url{www.mlb.com}. This photo-caption layout inspired to reproduce +for {\LaTeX}/PDF. + +This package provides commands for simply displaying the digital photo +with caption; the caption can be displayed as a rollover, that is, the caption +is not visible until the user rolls over the photo using a mouse. + +Another component of the package is the display of collections of photos and captions. +The \url{www.mlb.com} has (or had) thumbnails of the photos, by clicking the thumb, the +photo with caption would appear. Nowadays, this is done through the magic of Adobe Flash, +which gives clever transitions of the thumbs and photos. This package does not do Adobe Flash, but +perhaps a future edition of this package will incorporate Flash/Flex using my \texttt{rmannot} package. + +\section{Requirements} + +This package belongs to the high-class family of \textsf{\textcolor{blue}{AeB~Pro}}, hence, +the major requirement of this package is that the PDF be created using \textbf{Acrobat Distiller}, +see Section~\ref*{ss:PDFCreator} for details. + +\subsection{{\LaTeX} Package Requirements} + + The package builds on packages developed as part of \textsf{AeB} or \textsf{AeB~Pro}: +\begin{itemize} + \item\textsf{aeb\_pro}: supplies support for layers and JavaScript management of layers + \item\textsf{graphicxbox}: places a graphic as the background of a box + \item\textsf{opacity-pro}: creates the transparency effects + \item\textsf{eforms}: use to create Acrobat form buttons with a roll-over action to make + roll-over captions visible or hidden. + \item \textsf{grahicxsp}: used with the commands input with the \texttt{design1} option. + See the section entitled \Nameref{s:photoalbum}. +\end{itemize} +The \textsf{graphicx} package is also used to import digital photos, or other graphics. + + +\reversemarginpar + +\subsection{PDF Creator Requirements}\label{ss:PDFCreator} + +The big restriction on this package is the requirement to use\marginpar{\raggedleft\app{dvips}\\\app{dvipsone}} +\textbf{Acrobat Distiller} (version 5.0, or version 6.0 for transparency). +The package was developed using Acrobat Distiller 8.1. The package supports the +creation of Postscript using \textsf{dvips} and \textsf{dvipsone}. These ``drivers'' +are defined through the required package \textsf{aeb\_pro}. + +\subsection{Transparency Requirements} + +To get the transparency effect, \textbf{Acrobat Distiller} version 6.0 or +later is required. The default setting of the distiller does not +support the \textbf{SetTransparency} pdfmark; it is necessary to +edit the \texttt{.joboptions} file. + +The procedure for editing \texttt{.joboptions} to support transparency is as follows: +\begin{enumerate} + \item Start \textbf{Acrobat Distiller} + \item From the Default Settings list, select the setting you want to edit, + usually, this will be the \texttt{Standard} job options. + \item Select \texttt{Settings} \texttt{>} \texttt{Edit Adobe PDF Settings} \texttt{(Ctrl+E)} from the + distiller menu. + \item Click the \texttt{SaveAs} button at the bottom of the \texttt{Adobe PDF Settings} + dialog box. Save your .jobsettings file under a new name, + say \texttt{Standard\_transparency} and make a note of where + the distiller saves this file. + \item With your favorite text editor, navigate to the folder where you saved your new + \texttt{.job\-options} file, and open it in your editor. + \item Look for the line that says + \texttt{/AllowTransparency false}, and change this to read \texttt{/AllowTransparency true}. + Save the changes and close the file. + \item Use this \texttt{.joboptions} file, \texttt{Standard\_transparency} for example, + whenever you distill with transparency pdfmarks. If your {\LaTeX} file uses transparency, + and you are using a \texttt{.joboptions} file with \texttt{/AllowTransparency false}, distillation + will fail and the distiller log should say +\begin{Verbatim}[fontsize=\small] +%%[Error: The Postscript contains Transparency pdfmark, job aborted.]%% +%%[ /AllowTransparency is false in job option settings.]%% +%%[ Error: undefined; OffendingCommand: pdfmark; + ErrorInfo: Transparency Group ]%% +\end{Verbatim} +This suggests that you should use your \texttt{.joboptions} file that supports transparency! + +\newtopic \textbf{Note:} The required package \pkg{opacity-pro} comes with an +\app{Acrobat Distiller} job options file named +\texttt{Standard\_transparency.joboptions}. Instead of following the above +instructions you can simply drop this file in a place where Distiller +expects to find \texttt{.joboptions} files.\footnote{Go to \texttt{Settings +> Edit Adobe PDF Settings ...} in the Distiller application window, then +click the \texttt{SaveAs} button. A \textbf{Save Adobe PDF Settings As} +dialog box opens, and you can then see where Distiller likes to save its +\texttt{.joboptions} file. Copy the provided \texttt{.joboptions} to the +folder and restart Distiller, the \texttt{Standard\_transparency} should +now be visible in the drop down \textsf{Default Settings} list.} + +\end{enumerate} + +\section{Options of this Package} + +Currently, there is only one option for this package, it is +\texttt{display1}.\marginpar{\raggedleft\opt{display1}} As noted in the +introduction, this package provides basic commands for showing digital +pictures with captions, and for displaying collections of photos using +thumbnail activation. When \opt{display1} is specified, additional code input +to support photo displays; refer to Section~\ref{s:photoalbum} for details of +using \opt{display1} to create a photo album. Future versions of this package +may have additional display formats, perhaps provided by enthusiastic users. + + +\section{The DigiCap Pro Commands} + +In this section we present the new commands defined in the \pkg{digicap-pro} package, and as a bonus, +we also present, Section~\ref{s:photoalbum}, a series of commands to create a photo presentation. + +\subsection{Digital Photos with Captions}\label{ss:digiCap} + +For the mere captioning of a photo, there is one major command for this +package, all other commands (presented in Section~\ref{s:photoalbum}) are built around this one: +\bVerb\takeMeasure{\string\digiCap*[\ameta{pos-kvs}]\darg{\ameta{path}}[\ameta{design-kvs}]\darg{\ameta{caption}}}% +\begin{dCmd*}[commandchars=!()]{\bxSize} +\digiCap*[!ameta(pos-kvs)]{!ameta(path)}[!ameta(design-kvs)]{!ameta(caption)} +\end{dCmd*} +\eVerb +\textbf{The star-option.} If \texttt{*} is present, the caption becomes a rollover caption. +\paragraph*{Optional key-values for the first parameter (\ameta{pos-kvs}).} This set of parameters + control the placement of the caption on top of the background picture. There is + also a parameter to set the options for the \cs{includegraphics} command, and one to set +the form field name, in the case of a rollover. +\begin{description} +\item[\texttt{outerboxsep}:] The space the surrounds the boundary of the caption, the default is \texttt{3pt} +\item[\texttt{vcaption}:] The vertical placement of the caption on the background graphic, possible + values are \texttt{b}, \texttt{c}, and \texttt{t}. The default is \texttt{b}. +\item[\texttt{hcaption}:] The horizontal placement of the caption on the background graphic, possible + values are \texttt{l}, \texttt{c}, and \texttt{r}. The default is \texttt{c}. +\item[\texttt{inclgraphicx}:] The value of this key is a list of key-value pairs that are passed on to the + underlying \cs{includegraphics} command. +\item[\texttt{rollovername}:] The basename of the push button form field that is used for a rollover effect. + This command is used only with \cs{digiCap*}, ignored otherwise. For the \cs{digiCap*} + command, this key is optional, if not present, this package supplies a name. +\end{description} + +\paragraph*{Second parameter, required (\ameta{path}).} The second parameter is + the path to the digital photo (or graphic) to be used as a background to + this box. + +\paragraph*{Optional key-values for the third parameter (\ameta{design-kvs}).} These are additional options for the design +of the box that contains the caption. +\begin{description} + \item[\texttt{borderwidth}:] The border width. The default is \texttt{2pt} + \item[\texttt{fboxsep}:] The space between the border and the text, the default is \texttt{6pt} + \item[\texttt{width:}] The width of \cs{parbox}, the default is \cs{linewidth} + \item[\texttt{bordercolor}:] A named color of border, the default is \texttt{black}. A special value + of \texttt{nocolor} is recognized, in that case, no color is applied. + \item[\texttt{bgcolor:}] A named color of background, the default is \texttt{white}. A special value + of \texttt{nocolor} is recognized, in that case, no color is applied. + \item[\texttt{borderop:}] A number type, the opacity for border $0 \le \mbox{number} \le 1$, the default is~$.5$ + \item[\texttt{bgop:}] A number type, the opacity for background $0 \le \mbox{number} \le 1$, the default is~$.5$ + \item[\texttt{textop:}] A number type, the opacity for text $0 \le \mbox{number} \le 1$, the default is~$1$ + \item[\texttt{borderblend:}] The blend mode for the border, the default is \texttt{Normal} + \item[\texttt{bgblend:}] The blend mode for the background, the default is \texttt{Normal} +\end{description} + +\paragraph*{Fourth parameter, required.} The text of the caption. + +\exSrc{digicap-tst}The following is a sample of examples, see the demo file +\texttt{digicap-tst.tex} for extensive examples of \cs{digiCap} with its options. +\begin{center} +\digiCap[inclgraphicx={name=clifflee,width=.75\linewidth},vcaption=b, + hcaption=c,outerboxsep=0pt]{\expath/digis/IiFUCdIQ}[borderwidth=0bp, + fboxsep=10bp,bordercolor=nocolor,bgop=.7]{\parskip6pt\bfseries + \makebox[\linewidth]{\textcolor{red}{Lee ices A's win + streak with an eight-inning gem}}\\\relax\footnotesize + Lee ices A's win streak with an eight-inning gem Cliff Lee retired + 14 straight in a 7-1 Indians win over the A's on Sunday. Grady + Sizemore had three RBIs as Cleveland halted its three-game skid.}\\[1ex] +% +\digiCap*[inclgraphicx={name=clifflee,width=.75\linewidth},vcaption=c,hcaption=l,outerboxsep=0pt] + {\expath/digis/IiFUCdIQ}[borderwidth=4bp,fboxsep=10bp, + bordercolor=blue,bgop=.7]{\parskip6pt\bfseries + \makebox[\linewidth]{\textcolor{webblue}{Lee ices A's win + streak with an eight-inning gem}}\\\relax\footnotesize + Lee ices A's win streak with an eight-inning gem Cliff Lee retired + 14 straight in a 7-1 Indians win over the A's on Sunday. Grady + Sizemore had three RBIs as Cleveland halted its three-game skid.}% +\end{center} +The topmost photo has a static caption at the bottom of the photo, the photo below it has a rollover +caption, the caption box has been designed with a border. The verbatim listing of these two images +are + +\begin{Verbatim}[xleftmargin=\parindent,numbers=left,fontsize=\footnotesize] +\digiCap[inclgraphicx={width=.75\linewidth}, + vcaption=b,hcaption=c,outerboxsep=0pt] + {\expath/digis/IiFUCdIQ}[borderwidth=0bp,fboxsep=10bp,bordercolor=nocolor, + bgop=.7]{\parskip6pt\bfseries + \makebox[\linewidth]{\textcolor{red}{Lee ices A's win + streak with an eight-inning gem}}\\\relax\footnotesize + Lee ices A's ... as Cleveland halted its three-game skid.} +\end{Verbatim} +In line~(1), the \texttt{inclgraphicx} key sets the width of the graphic at +\verb!.75\linewidth!. The first optional option continues on line~(2), we set +\texttt{vcaption} and \texttt{hcaption} to the defaults (hence need not have +appeared). The second required parameter is in line~(3). The third (optional) +parameter also begins in line~(3) and continues onto line~(4): among the +options is setting the \texttt{bordercolor} to \texttt{nocolor} and the +\texttt{bgop} (background opacity) to .7. The fourth required parameter is +begins in line~(4) and goes through line~(7). A title line is put in red, and +the caption text set in a smaller size font. + +The second photo has code, + +\begin{Verbatim}[xleftmargin=\parindent,numbers=left,fontsize=\footnotesize] +\digiCap*[inclgraphicx={width=.75\linewidth},vcaption=c,hcaption=l, + outerboxsep=0pt]{\expath/digis/IiFUCdIQ}[borderwidth=4bp,fboxsep=10bp, + bordercolor=blue,bgop=.7]{\parskip6pt\bfseries + \makebox[\linewidth]{\textcolor{webblue}{Lee ices A's win + streak with an eight-inning gem}}\\\relax\footnotesize + Lee ices A's ... Cleveland halted its three-game skid.} +\end{Verbatim} +We use \cs{digiCap*}, the \texttt* signals that this digital photo should have a +rollover caption. We set \texttt{vcaption} to \texttt{c}, which centers the caption +vertically. In the third (optional) parameter, we set the \texttt{borderwidth} to 4bp, +\texttt{fboxsep} to 10bp, \texttt{bordercolor} to blue and \texttt{bgop} to .7. + +Again, many examples appear in \texttt{digicap-tst.tex}. + + +\subsubsection{Using \textsf{graphicxsp} Package} + +For normal uses, \cs{digiCap} is used to display several +\emph{different} photos, photos are not repeatedly used. Each time a +photo is displayed, it is imported into the document using the +command \cs{includegrpahics}, if you show the same photo five times, +the same graphic file is imported five times. This most certainly +increases the file size. + +If the \textsf{graphicxsp} package is also used (required for the +commands of the next section), photos can be embedded in the +document and used multiple times without significantly increasing +the size of the file size. The \textsf{digicap-pro} package allows +for the use of the \textsf{graphicxsp} package, naturally. + +\def\nameKey{\textcolor{red}{name=clifflee}} + +The two instances of the Cliff Lee photo seen earlier is an example. +In the verbatim code, I deleted one key-value pair. The true verbatim code is +\begin{Verbatim}[xleftmargin=\parindent,numbers=left,fontsize=\footnotesize,commandchars=\|\<\>] +\digiCap[inclgraphicx={|nameKey,width=.75\linewidth},vcaption=b, + hcaption=c,outerboxsep=0pt]{\expath/digis/IiFUCdIQ}[borderwidth=0bp, + fboxsep=10bp,bordercolor=nocolor,bgop=.7]{\parskip6pt\bfseries + \makebox[\linewidth]{\textcolor{red}{Lee ices A's win + streak with an eight-inning gem}}\\\relax\footnotesize + Lee ices A's win ... as Cleveland halted its three-game skid.}\\[1ex] +\end{Verbatim} +The new key-value pair is shown in red in line~(1). Within the \texttt{inclgraphicx} key we specify +the symbolic name for the graphic, \texttt{name=clifflee}. In the preamble of this document, +the follow code appears: \verb!\embedEPS{clifflee}{\expath/digis/IiFUCdIQ}! (the \cs{expath} expands +to the path to the folder containing the \texttt{digis} folder). + +\exSrc{digicap-embed}The file \texttt{digicap-embed.tex} contains an example of this embedding. + +\subsection{Displaying Collections of Digital Photos}\label{s:photoalbum} + +Now, if you want to display a number of photos, you can either place one or two per page, +or you can present all photos on the same page, the latter is the approach we take here. + +\paragraph*{Creating a photo album.} For each photo\marginpar{\small\raggedleft\opt{display1} option}, we create a smaller version (thumbnail) and set it as a +button appearance. When you rollover the button, the larger version of the +photo makes its appearance in the photo viewing area. The code for setting up +the thumbnail layout is contained in additional code that is input with the +\opt{design1} option. + +\paragraph*{Demo files for photo album.} There are three demo files for this +section contained in the \texttt{photoalbum} folder: +\begin{itemize} +\item[]\exSrc[../photoalbum/digis/]{eastern_trip_por}\texttt{eastern\_trip\_por.tex} +\item[]\exSrc[../photoalbum/digis/]{eastern_trip_ls}\texttt{eastern\_trip\_ls.tex} +\item[]\exSrc[../photoalbum/digis/]{eastern_trip_ls_2pg}\texttt{eastern\_trip\_ls\_2pg.tex} +\end{itemize} +These three present the same collection of photos +with different layouts for the thumbnails. + +\subsubsection{The Main Controls}\label{photoAlbum} + +We describe the commands in the order in which they appear in the +document. + +\paragraph*{Declaring the picture collection}\leavevmode +\bVerb\def\1{n}\takeMeasure{\quad\darg{\ameta{name\SUB1}}\darg{\ameta{path\SUB1}}\darg{\ameta{title\SUB1}}\darg{\ameta{caption\SUB1}},}% +\begin{dCmd*}[commandchars=!()]{\bxSize} +\PicsThisDoc +{% +!quad{!ameta(name!SUB1)}{!ameta(path!SUB1)}{!ameta(title!SUB1)}{!ameta(caption!SUB1)}, +!quad{!ameta(name!SUB2)}{!ameta(path!SUB2)}{!ameta(title!SUB2)}{!ameta(caption!SUB2)}, +!quad... +!quad{!ameta(name!SUB!1)}{!ameta(path!SUB!1)}{!ameta(title!SUB!1)}{!ameta(caption!SUB!1)} +} +\end{dCmd*} +\eVerb +In the preamble of the document, the \cs{PicsThisDoc} commands declares +the pictures to be displayed in this document. The arguments for this command +are a comma-delimited list, each item in the list consists of four parameters, as described +below: +\begin{itemize} + \item \ameta{name}: a symbolic name that references this picture + \item \ameta{path}: the path to the photo (or any graphic), in the EPS format + \item \ameta{title}: a title for this photo + \item \ameta{caption}: a caption, or description, of this photo + + \item[] Within the \ameta{caption}, the commands + \cs{graphicHeight}\marginpar{\small\raggedleft + \cs{graphicHeight}\\\cs{graphicWidth}} and \cs{graphicWidth} are + defined. Their values are the height and the width of the (scaled) + photo. An example of usage for \cs{graphicHeight} can be found in the + demo file \texttt{digicap-tst.tex}. +\end{itemize} + +\paragraph*{Setting the presentation order.} The order the pictures are presented is set by the following command, also +placed in the body of the document before the insertion of the pictures. +\bVerb\def\1{n}\takeMeasure{\string\presentationOrder\darg{\ameta{name\SUB1},\ameta{name\SUB2},...,\ameta{name\SUB\1}}}% +\begin{dCmd*}[commandchars=!()]{\bxSize} +\presentationOrder{!ameta(name!SUB1),!ameta(name!SUB2),...,!ameta(name!SUB!1)} +\end{dCmd*} +\eVerb The names are defined by the \cs{PicsThisDoc} command. + +\paragraph*{Setting the display dimensions.} The photos are placed in a \cs{parbox} +with height of \ameta{height} and width of \ameta{width}. +\bVerb\def\1{n}\takeMeasure{\string\digiDisplaySpace\darg{\ameta{height}}\darg{\ameta{width}}}% +\begin{dCmd*}[commandchars=!()]{\bxSize} +\digiDisplaySpace{!ameta(height)}{!ameta(width)} +\end{dCmd*} +\eVerb Reads the information defined by \cs{presentationOrder} and inserts +the photos at the current location in a \cs{parbox} + +\paragraph*{Insert the captions}\leavevmode +\bVerb\def\1{n}\takeMeasure{\string\insertCaptions}% +\begin{dCmd*}[commandchars=!()]{\bxSize} +\insertCaptions +\end{dCmd*} +\eVerb Places the caption of the current photo at the current location. + +\paragraph*{Insert the thumbnails}\leavevmode +\bVerb\takeMeasure{\string\insertThumbs\darg{\ameta{rows}}\darg{\ameta{columns}}}% +\begin{dCmd*}[commandchars=!()]{\bxSize} +\insertThumbs{!ameta(rows)}{!ameta(columns)} +\end{dCmd*} +\eVerb +Lays out a \env{tabular} environment with \ameta{rows} and +\ameta{columns}; within this \env{tabular} environment, the thumbnails are +inserted. + +\paragraph*{Placement of the photo album elements.} +The several commands \cs{digiDisplaySpace}, \cs{insertCaptions}, and +\cs{insertCaptions} are placed on a page after the command \cs{presentationOrder}, +and can be arranged anyway desired; the three demo files give examples of +different arrangements. + +\subsubsection{Additional Controls} + +The \cs{digiDisplaySpace} command ultimately uses \cs{digiCap} to display the +photos, but \cs{digiCap} has two optional arguments, labeled \ameta{pos-kvs>} +and \ameta{design-kvs>} in the description of \cs{digiCap}, +page~\pageref*{ss:digiCap}, that cannot be accessed. The \textsf{digicap-pro} +package provides a way of setting these options for all photos, and for a +particular photo. +\bVerb\takeMeasure{\string\dcSecondOpt[\ameta{name}]\darg{\ameta{design-kvs}}}% +\begin{dCmd*}[commandchars=!()]{\bxSize} +\dcFirstOpt[!ameta(name)]{!ameta(pos-kvs)} +\dcSecondOpt[!ameta(name)]{!ameta(design-kvs)} +\end{dCmd*} +\endgroup +\CmdDescription \cs{dcFirstOpt} inserts its key-value pairs into the first optional argument +of \cs{digiCap}, the one labeled \ameta{pos-kvs}. See +\hyperref[ss:digiCap]{Section~\ref*{ss:digiCap}}, page~\pageref*{ss:digiCap}, for a list of these +options. When the key-values are passed without a first argument, the key-values are applied to +all photos; when the optional argument is specified (\ameta{name} is a symbolic name of one of +the photos in the collection defined by \cs{PicsThisDoc}), the key-value pairs are applied only +to that photo. For example, +\begin{Verbatim}[xleftmargin=\parindent] +\dcFirstOpt{vcaption=b,hcaption=c,outerboxsep=0pt} +\dcFirstOpt[p1]{vcaption=t,hcaption=c,outerboxsep=0pt} +\end{Verbatim} +The first line sets the global options for all the photos (this is actually the package +default, and need not be specified here), the second line is the specification for +the photo labeled \texttt{p1}. To repeat, the default definition for \cs{dcFirstOpt} +is +\bVerb\takeMeasure{\string\dcFirstOpt\darg{vcaption=b,hcaption=c,outerboxsep=0pt}}% +\begin{dCmd}[commandchars=!()]{\bxSize} +\dcFirstOpt{vcaption=b,hcaption=c,outerboxsep=0pt} +\end{dCmd} +\eVerb Similar comments are made for \cs{dcSecondOpt} that sets the second +optional argument of \cs{digiCap} (which is actually the third parameter of +that command), see, again, \hyperref[ss:digiCap]{Section~\ref*{ss:digiCap}}, +page~\pageref*{ss:digiCap}, for a listing in the paragraph titled +\textbf{Optional key-values for the third parameter}. The default setting for +\cs{dcSecondOpt} is +\bVerb\takeMeasure{\string\dcSecondOpt\{borderwidth=0bp,fboxsep=10bp,}% +\begin{dCmd}[commandchars=!()]{\bxSize} +\dcSecondOpt{borderwidth=0bp,fboxsep=10bp, + bordercolor=nocolor,bgop=.7} +\end{dCmd} +\eVerb +The default behavior is that the caption appears with the photo. The \cs{digiCap} +command does have an option for making the caption itself into a rollover; when the user +rolls over the photo, the caption appears. To activate this feature of \cs{digiCap} +use the command \cs{useRollovers} before the \cs{presentationOrder}. + +\bVerb\takeMeasure{\string\useRollovers\quad\string\noRollovers}% +\begin{dCmd*}[commandchars=!()]{\bxSize} +\useRollovers!quad\noRollovers +\end{dCmd*} +\eVerb +You can turn off the roll over feature with \cs{noRollovers}. It is +possible to have some of the photos displayed on one page, and the +others on another page. The rollovers can be activated for one set +of pictures, and deactivated for the other. (For photo displays over +two pages, see the demo file \texttt{eastern\_trip\_ls\_2pg.tex}. + + +\paragraph*{Formatting the Long Captions.} The long caption is the text that accompanies the +photo, and is overlaid on top of the photo using a ``see through'' box. +\cs{longCapFmt} is used for globally formatting the caption. This formatting +can changed locally from within the fourth parameter---the \ameta{caption} +parameter---, see the syntax for \cs{PicsThisDoc}, at the beginning of this +section on \hyperref[photoAlbum]{page~\pageref*{photoAlbum}}. The default +long caption formatting is \verb!\longCapFmt{}!, but a declaration of +\verb!\longCapFmt{\bfseries}! puts all the captions in bold. +\bVerb\takeMeasure{\string\longCapFmt\darg{\ameta{format-declns}}}% +\begin{dCmd*}[commandchars=!()]{\bxSize} +\longCapFmt{!ameta(format-declns)} +\end{dCmd*} +\endgroup +\paragraph*{Formatting the Short Captions.} The short captions, +perhaps a better term might have been the title of the photo, are +defined as the third parameter, the \ameta{title} parameter, (in +the set of four) of \cs{PicsThisDoc}. Use \cs{shortCapFmt} to apply +format declarations: +\bVerb\takeMeasure{\string\shortCapFmt\darg{\ameta{format-declns}}}% +\begin{dCmd*}[commandchars=!()]{\bxSize} +\shortCapFmt{!ameta(format-declns)} +\end{dCmd*} +\eVerb The default definition for \cs{shortCapFmt} is +\begin{dCmd}{.67\linewidth} +\shortCapFmt{\sffamily\bfseries\color{blue}} +\end{dCmd} + +\paragraph*{Setting Appearance and Width of the Thumbs.} The thumbnails are +automatically generated by \cs{insertThumbs}, but \cs{insertThumbs} does not +contain any controls over the appearance or width of the buttons created. +For this reason, \cs{setThumbAppearances} and \cs{setWidthOfThumbs} +are provided. + +\bVerb\takeMeasure{\string\setThumbAppearances[\ameta{name}]\darg{\ameta{ro-kvs}}}% +\begin{dCmd*}[commandchars=!()]{\bxSize} +\setThumbAppearances[!ameta(name)]{!ameta(ro-kvs)} +\end{dCmd*} +\eVerb When the optional parameter \ameta{name} is not present, the +\ameta{ro-kvs} are taken as global key-value pairs, applied to all the +thumbs. When \ameta{name} is passed, the key-value pairs are applied only to +the thumb associated with \ameta{name}. The key-value pairs themselves allow +the document author to set the rollover attributes of the thumb, and to set +the boundary color and width. +\begin{itemize} +\item\texttt{normalop}: The opacity of the normal appearance of the thumb, the default +is~.5. +\item\texttt{rolloverop}: The opacity of the rollover appearance of the thumb, the default +is~1. +\item\texttt{downop}: The opacity of the down appearance of the thumb, the default +is~.3. +\item\texttt{boundarywidth}: The boundary width of the unscaled digital photo. The +default is 30 (points). +\item\texttt{rgbcolor}: The RGB color of the boundary, a space delimited + list of three numbers between 0 and 1. If the \pkg{xcolor} + package\marginpar{\small\raggedleft\pkg{xcolor} and named colors} is used, + than you can use a named color for the value; for example, + \texttt{rgbcolor=red}. There is no default, since, the default color is + in CMYK color space. +\item\texttt{cmykcolor}: The CMYK color of the boundary, a space delimited list of four numbers +between 0 and 1. If the \pkg{xcolor} + package\marginpar{\small\raggedleft\pkg{xcolor} and named colors} is used, + than you can use a named color for the value; for example, + \texttt{cmykcolor=magenta}. +The default is \texttt{0 0 1 0} (yellow). +\end{itemize} +The following code, +\bVerb\takeMeasure{\string\setThumbAppearances[p1]\darg{rgbcolor=1 0 0}}% +\begin{dCmd}[commandchars=!()]{\bxSize} +\setThumbAppearances[p1]{rgbcolor=1 0 0}!quad%!normalfont( or possibly !texttt(rgbcolor=red)) +\end{dCmd} +\eVerb +sets the border color to red of the thumbnail associated with the name \texttt{p1}; +the other default values are still in effect. + +The width of the thumbnails are calculated automatically, based on the number +of columns and the linewidth of the tabular environment the thumbs are being +laid out in. The \texttt{digicap-pro} package sets the width of the thumbs using +\cs{setWidthOfThumbs}. The default setting is \verb!\setWidthOfThumbs{0pt}!. +If the width is set to 0pt (the default), the width of the thumbs are +set dynamically using the formulas: +\begin{Verbatim}[xleftmargin=\parindent] +\setWidthOfThumbs{\linewidth/(\dc@maxCols)-\tabcolsep*2} +\end{Verbatim} +Here, \cs{dc@maxCols} is the number of columns declared in the second +parameter of \cs{insert\-Thumbs}. The \textsf{calc} package is used in this +calculation. If the document author sets \cs{setWidthOfThumbs} to a length +other than \texttt{0pt}, this declared length is used as the width of the +thumbs. + +The width between rows of the tabular layout can be adjusted using +command \cs{addvspacetorows}. +\bVerb\takeMeasure{\string\addvspacetorows\darg{\ameta{length}}}% +\def\1{\rlap{\hskip\bxSize\enspace{\normalfont{(\texttt{1ex})}}}} +\begin{dCmd*}[commandchars=!()]{\bxSize} +!1\addvspacetorows{!ameta(length)} +\end{dCmd*} +\eVerb +The default of \ameta{length} is given in parentheses above. + +\subsection{The \texorpdfstring{\protect\cs{opcolorbox}}{\CMD{opcolorbox}} Command} + +The \cs{opcolorbox} commands creates two color boxes, a larger one with a smaller one +centered vertically and horizontally inside the larger one. +Transparent options allow separate control over the opacity settings +of the larger and smaller rectangle as well as the text that is +written within the smaller rectangle. + +The purpose of this \cs{opcolorbox} is to contain the caption of the +digital photo, and is laid on top of the photo. The key-value pairs passed through the +third (optional) parameter of \cs{digiCap}, are, in turn, passed on to \cs{opcolorbox} +to create the underlying color box for the caption. + +\bVerb\takeMeasure{\string\opcolorbox[\ameta{kvs}]\darg{\ameta{text}}}% +\begin{dCmd*}[commandchars=!()]{\bxSize} +\opcolorbox[!ameta(kvs)]{!ameta(text)} +\end{dCmd*} +\eVerb +The optional parameter consists of key-value pairs, the same ones as for the second +option parameter of \cs{digiCap}, see page~\pageref{ss:digiCap}. We reproduce these +key-values here for your convenience: + +\paragraph*{Optional key-values for the first parameter} +\begin{description} + \item[\texttt{borderwidth}:] The border width. The default is \texttt{2pt} + \item[\texttt{fboxsep}:] The space between the border and the text, the default is \texttt{6pt} + \item[\texttt{width:}] The width of \cs{parbox}, the default is \cs{linewidth} + \item[\texttt{bordercolor}:] A named color of border, the default is \texttt{black}. A special value + of \texttt{nocolor} is recognized, in that case, no color is applied. + \item[\texttt{bgcolor:}] A named color of background, the default is \texttt{white}. A special value + of \texttt{nocolor} is recognized, in that case, no color is applied. + \item[\texttt{borderop:}] A number type, the opacity for border $0 \le \mbox{number} \le 1$, the default is~$.5$ + \item[\texttt{bgop:}] A number type, the opacity for background $0 \le \mbox{number} \le 1$, the default is~$.5$ + \item[\texttt{textop:}] A number type, the opacity for text $0 \le \mbox{number} \le 1$, the default is~$1$ + \item[\texttt{borderblend:}] The blend mode for the border, the default is \texttt{Normal} + \item[\texttt{bgblend:}] The blend mode for the background, the default is \texttt{Normal} +\end{description} +The second parameter \ameta{text} is the text that is to appear within the +box.\medskip + +A document author does not normally have a need to use \cs{opcolorbox}, the +demo file \texttt{eastern\_trip\_ls\_2pg.tex} demonstrates one possible use +of this box. + +%\paragraph*{Limitations of \app{dvips}.} It appears that the \textbf{CA} entry +%is not obeyed when the PDF is distilled from a PS file created by \app{dvips} +%(Refer to the documentation for the \pkg{opacity-pro} package for a +%discussion of these entries). Therefore, only the \textbf{ca} entry is +%obeyed.\footnote{The key that directly sets the \textbf{ca} entry is +%\texttt{textop}; however, the \pkg{digicap-pro} does the following: } +%The setting of \ameta{ca} should be small enough to get +%discernable transparency, but not so much that the text is difficult to read. +%Recommendation: set \ameta{ca} to .7 or there abouts. + +\newtopic\noindent +That's all for now, I simply must get back to my retirement. \dps + +\end{document} |