📄 aeb_pro.dtx
字号:
\let\aeb@fsBGColor=\@empty\else
\def\aeb@fsBGColor{app.fs.backgroundColor = #1;^^J}\fi}
\let\aeb@fsBGColor=\@empty
\define@key{aebDefFS}{timeDelay}[]{%
\def\aeb@arg{#1}\ifx\aeb@arg\@empty
\let\aeb@fstimeDelay=\@empty\else
\def\aeb@fstimeDelay{app.fs.timeDelay = #1;^^J}\fi}
\let\aeb@fstimeDelay=\@empty
\define@boolkey{aebDefFS}{loop}[true]{%
\def\aeb@fsLoop{app.fs.loop = #1;^^J}}
\let\aeb@fsLoop=\@empty
\define@choicekey+{aebDefFS}{cursor}{hidden,delay,visible}{%
\def\aeb@arg{#1}\ifx\aeb@arg\@empty
\let\aeb@fscursor=\@empty\else
\def\aeb@fscursor{app.fs.cursor = cursor.#1;^^J}\fi
}{\PackageWarning{aeb}{Bad choice for cursor, permissible values
are hidden, delay and visible. Try again}}
\let\aeb@fscursor=\@empty
\define@boolkey{aebDefFS}{escape}[true]{%
\def\aeb@fsEscape{app.fs.escapeExits = #1;^^J}}
\let\aeb@fsEscape=\@empty
\define@boolkey{aebDefFS}{clickAdv}[true]{%
\def\aeb@fsclickAdv{app.fs.clickAdvances = #1;^^J}}
\let\aeb@fsclickAdv=\@empty
\define@boolkey{aebDefFS}{fullscreen}[true]{%
% \hypersetup{pdfpagemode=FullScreen}
\def\aeb@windowoptsFullScreen{true}%
% \def\aeb@fsFS{app.fs.isFullScreen = #1;^^J}
}
\let\aeb@fsFS=\@empty
\define@boolkey{aebDefFS}{useTimer}[true]{%
\def\aeb@fsuseTimer{app.fs.useTimer = #1;^^J}}
\let\aeb@fsuseTimer=\@empty
\define@boolkey{aebDefFS}{usePageTiming}[true]{%
\def\aeb@fsusePageTiming{app.fs.usePageTiming = #1;^^J}}
\let\aeb@fsusePageTiming=\@empty
% \end{macrocode}
% \subsection{\texorpdfstring{\cs{setPageTransition}}{\textbackslash setPageTransition}}
% \begin{macro}{\setPageTransition}
% By setting the \texttt{aebTrans} family of keys, you can change the transition
% effect of the next slide.
% \begin{macrocode}
\newcommand{\setPageTransition}[1]{%
\begingroup
\setkeys{aebTrans}{TransDur,Speed}%
\setkeys{aebTrans}{#1}%
\ifx\aeb@TranChoice\@empty\else
\literalps@out{ [ {ThisPage} << \aeb@Page@Dur
/Trans <<\aeb@Trans@Dur\aeb@TranChoice>> >> /PUT pdfmark}%
\fi
\endgroup
}
\newcommand{\setPageTransitionAt}[2]{%
\begingroup
\setkeys{aebTrans}{#2}%
\ifx\aeb@TranChoice\@empty\else
\expandafter\aebp@rse\expandafter{#1}%
\edef\shakeandbake{%
\noexpand\@for\noexpand\@mytoks:=\the\aeb@parsetoks}%
\shakeandbake \do {%
\literalps@out{ [ {Page\@mytoks} << \aeb@Page@Dur
/Trans <<\aeb@Trans@Dur\aeb@TranChoice>> >> /PUT pdfmark}%
}%
\fi
\endgroup
}
% \end{macrocode}
% \end{macro}
% There are the 50 transitions effects as listed by
% \texttt{app.fs.transitions} plus one more called
% ``\texttt{NoTransition}''. The \texttt{pdfmark} code accurately
% represents each of this options.
% \begin{macrocode}
\define@choicekey+{aebTrans}{Trans}
{NoTransition,UncoverLeft,UncoverRight,UncoverDown,UncoverUp,%
UncoverLeftDown,UncoverLeftUp,UncoverRightDown,UncoverRightUp,%
CoverLeft,CoverRight,CoverDown,CoverUp,CoverLeftDown,CoverLeftUp,%
CoverRightDown,CoverRightUp,PushLeft,PushRight,PushDown,PushUp,%
PushLeftDown,PushLeftUp,PushRightDown,PushRightUp,FlyInRight,%
FlyInLeft,FlyInDown,FlyInUp,FlyOutRight,FlyOutLeft,FlyOutDown,%
FlyOutUp,FlyIn,FlyOut,Blend,Fade,Random,Dissolve,%
GlitterRight,GlitterDown,GlitterRightDown,BoxIn,BoxOut,%
BlindsHorizontal,BlindsVertical,SplitHorizontalIn,%
SplitHorizontalOut,SplitVerticalIn,SplitVerticalOut,WipeLeft,%
WipeRight,WipeDown,WipeUp,WipeLeftDown,WipeLeftUp,%
WipeRightDown,WipeRightUp,Replace,ZoomInDown,ZoomInLeft,%
ZoomInLeftDown,ZoomInLeftUp,ZoomInRight,ZoomInRightDown,%
ZoomInRightUp,ZoomInUp,ZoomOutDown,ZoomOutLeft,ZoomOutLeftDown,%
ZoomOutLeftUp,ZoomOutRight,ZoomOutRightDown,ZoomOutRightUp,%
ZoomOutUp,CombHorizontal,CombVertical}[Replace]%
{\edef\aeb@TranChoice{\csname aeb@Trans@#1\endcsname}%
}{\PackageWarning{aeb}{Bad choice, try again}}
\let\aeb@TranChoice=\@empty
\define@key{aebTrans}{TransDur}[]{\def\aeb@arg{#1}\ifx\aeb@arg\@empty
\let\aeb@Trans@Dur=\@empty\else\def\aeb@Trans@Dur{/D #1}\fi}
\let\aeb@Trans@Dur=\@empty
% \end{macrocode}
% Length of duration of transition effect: Slow, Medium, Fast
% \begin{macrocode}
\define@choicekey+{aebTrans}{Speed}[\val\nr]%
{Slow,Medium,Fast}[Slow]{%dps/change 02/27/07
\ifcase\nr\relax
\let\aeb@Trans@Speed\@empty\or
\def\aeb@Trans@Speed{/D 0.666656}\or
\def\aeb@Trans@Speed{/D 0.333328}
\fi
}{\PackageWarning{aeb}{Bad choice for Speed, permissible values
are Slow, Medium and Fast. Try again}}
\let\apb@apbTrans@Speed\@empty
% \end{macrocode}
% \begin{macrocode}
\define@key{aebTrans}{PageDur}[]{\def\aeb@arg{#1}\ifx\aeb@arg\@empty
\let\aeb@Page@Dur=\@empty\else\def\aeb@Page@Dur{/Dur #1}\fi}
% \end{macrocode}
% \begin{macrocode}
\let\aeb@Page@Dur=\@empty
\def\aeb@Trans@NoTransition{}
\def\aeb@Trans@SplitHorizontalIn{/Dm/H/M/I/S/Split}
\def\aeb@Trans@SplitHorizontalOut{/Dm/H/M/O/S/Split}
\def\aeb@Trans@SplitVerticalIn{/Dm/V/M/I/S/Split}
\def\aeb@Trans@SplitVerticalOut{/Dm/V/M/O/S/Split}
\def\aeb@Trans@BlindsHorizontal{/Dm/H/S/Blinds}
\def\aeb@Trans@BlindsVertical{/Dm/V/S/Blinds}
\def\aeb@Trans@BoxIn{/M/I/S/Box}
\def\aeb@Trans@BoxOut{/M/O/S/Box}
\def\aeb@Trans@WipeLeft{/Di 180/S/Wipe}
\def\aeb@Trans@WipeRight{/Di 0/S/Wipe}
\def\aeb@Trans@WipeDown{/Di 270/S/Wipe}
\def\aeb@Trans@WipeUp{/Di 90/S/Wipe}
\def\aeb@Trans@Dissolve{/S/Dissolve}
\def\aeb@Trans@GlitterRight{/Di 0/S/Glitter}
\def\aeb@Trans@GlitterDown{/Di 270/S/Glitter}
\def\aeb@Trans@GlitterRightDown{/Di 315/S/Glitter}
\def\aeb@Trans@Replace{/S/R}
\def\aeb@Trans@FlyInRight{/Di 0/M/I/S/Fly}
\def\aeb@Trans@FlyInLeft{/Di 180/M/I/S/Fly}
\def\aeb@Trans@FlyInDown{/Di 270/M/I/S/Fly}
\def\aeb@Trans@FlyInUp{/Di 90/M/I/S/Fly}
\def\aeb@Trans@FlyOutRight{/Di 0/M/O/S/Fly}
\def\aeb@Trans@FlyOutLeft{/Di 180/M/O/S/Fly}
\def\aeb@Trans@FlyOutDown{/Di 270/M/O/S/Fly}
\def\aeb@Trans@FlyOutUp{/Di 90/M/O/S/Fly}
\def\aeb@Trans@FlyIn{/M/I/S/Fly}
\def\aeb@Trans@FlyOut{/M/O/S/Fly}
\def\aeb@Trans@PushLeft{/Di 180/S/Push}
\def\aeb@Trans@PushRight{/Di 0/S/Push}
\def\aeb@Trans@PushDown{/Di 270/S/Push}
\def\aeb@Trans@PushUp{/Di 90/S/Push}
\def\aeb@Trans@CoverLeft{/Di 180/S/Cover}
\def\aeb@Trans@CoverRight{/Di 0/S/Cover}
\def\aeb@Trans@CoverDown{/Di 270/S/Cover}
\def\aeb@Trans@CoverUp{/Di 90/S/Cover}
\def\aeb@Trans@CoverLeftDown{/Di 225.0/S/Cover}
\def\aeb@Trans@CoverLeftUp{/Di 135.0/S/Cover}
\def\aeb@Trans@CoverRightDown{/Di 315.0/S/Cover}
\def\aeb@Trans@CoverRightUp{/Di 45.0/S/Cover}
\def\aeb@Trans@UncoverLeft{/Di 180/S/Uncover}
\def\aeb@Trans@UncoverRight{/Di 0/S/Uncover}
\def\aeb@Trans@UncoverDown{/Di 270/S/Uncover}
\def\aeb@Trans@UncoverUp{/Di 90/S/Uncover}
\def\aeb@Trans@UncoverLeftDown{/Di 225.0/S/Uncover}
\def\aeb@Trans@UncoverLeftUp{/Di 135.0/S/Uncover}
\def\aeb@Trans@UncoverRightDown{/Di 315.0/S/Uncover}
\def\aeb@Trans@UncoverRightUp{/Di 45.0/S/Uncover}
\def\aeb@Trans@Fade{/S/Fade}
\def\aeb@Trans@Random{/S/Random}
\def\aeb@Trans@Blend{/S/Blend}
% \end{macrocode}
% New Transitions for Acrobat 8.0
% \begin{macrocode}
\def\aeb@Trans@PushLeftDown{%
/S/Push/Directional/BiDir/Di 225.0/Curve/Easy}
\def\aeb@Trans@PushLeftUp{%
/S/Push/Directional/BiDir/Di 135.0/Curve/Easy}
\def\aeb@Trans@PushRightDown{%
/S/Push/Directional/BiDir/Di 315.0/Curve/Easy}
\def\aeb@Trans@PushRightUp{%
/S/Push/Directional/BiDir/Di 45.0/Curve/Easy}
\def\aeb@Trans@WipeLeftDown{%
/S/Wipe/Directional/BiDir/Di 225/Curve/Easy}
\def\aeb@Trans@WipeLeftUp{%
/S/Wipe/Directional/BiDir/Di 135/Curve/Easy}
\def\aeb@Trans@WipeRightDown%
{/S/Wipe/Directional/BiDir/Di 315/Curve/Easy}
\def\aeb@Trans@WipeRightUp{%
/S/Wipe/Directional/BiDir/Di 45/Curve/Easy}
\def\aeb@Trans@ZoomInDown{%
/S/ZoomIn/Directional/BiDir/Di 270.0/Curve/Easy}
\def\aeb@Trans@ZoomInLeft{%
/S/ZoomIn/Directional/BiDir/Di 180.0/Curve/Easy}
\def\aeb@Trans@ZoomInLeftDown{%
/S/ZoomIn/Directional/BiDir/Di 225.0/Curve/Easy}
\def\aeb@Trans@ZoomInLeftUp{%
/S/ZoomIn/Directional/BiDir/Di 135.0/Curve/Easy}
\def\aeb@Trans@ZoomInRight{%
/S/ZoomIn/Directional/BiDir/Di 0.0/Curve/Easy}
\def\aeb@Trans@ZoomInRightDown{%
/S/ZoomIn/Directional/BiDir/Di 315.0/Curve/Easy}
\def\aeb@Trans@ZoomInRightUp{%
/S/ZoomIn/Directional/BiDir/Di 45.0/Curve/Easy}
\def\aeb@Trans@ZoomInUp{%
/S/ZoomIn/Directional/BiDir/Di 90.0/Curve/Easy}
\def\aeb@Trans@ZoomOutDown{%
/S/ZoomOut/Directional/BiDir/Di 270.0/Curve/Easy}
\def\aeb@Trans@ZoomOutLeft{%
/S/ZoomOut/Directional/BiDir/Di 180.0/Curve/Easy}
\def\aeb@Trans@ZoomOutLeftDown{%
/S/ZoomOut/Directional/BiDir/Di 225.0/Curve/Easy}
\def\aeb@Trans@ZoomOutLeftUp{%
/S/ZoomOut/Directional/BiDir/Di 135.0/Curve/Easy}
\def\aeb@Trans@ZoomOutRight{%
/S/ZoomOut/Directional/BiDir/Di 0.0/Curve/Easy}
\def\aeb@Trans@ZoomOutRightDown{%
/S/ZoomOut/Directional/BiDir/Di 315.0/Curve/Easy}
\def\aeb@Trans@ZoomOutRightUp{%
/S/ZoomOut/Directional/BiDir/Di 45.0/Curve/Easy}
\def\aeb@Trans@ZoomOutUp{%
/S/ZoomOut/Directional/BiDir/Di 90.0/Curve/Easy}
\def\aeb@Trans@CombHorizontal{%
/S/Comb/Directional/BiDir/Dm/H/Curve/Easy}
\def\aeb@Trans@CombVertical{%
/S/Comb/Directional/BiDir/Dm/V/Curve/Easy}
% \end{macrocode}
% \begin{macrocode}
%</aebpro>
%<*fsdefjs>
% \end{macrocode}
% \subsection{JS for Fullscreen Support}
% The ``Presentation Defaults'' are used in conjunction with the
% \cs{setDefaultFS} for setting the defaults of the application. These
% settings can be viewed under the \texttt{Edit > Preferences >
% General > Full Screen}. This script save the viewers preferences,
% sets them according the needs of the document author, and upon
% closing the document, resets the original preferences. The last task
% is performed by the \texttt{willClose} environment.
% \begin{macrocode}
\begin{insDLJS}[_fsDefaults]{fsdef}{AeB Pro: Presentation Defaults}
var _fsDefaults = true;
%if ( typeof global.fsexec == "undefined" )
if ( typeof fsexec == "undefined" )
{
try {
var fsexec = true;
% global.fsexec = true;
var aebdefaultTransition = app.fs.defaultTransition;
var aebbackgroundColor = app.fs.backgroundColor;
var aebloop = app.fs.loop;
var aebtimeDelay = app.fs.timeDelay;
var aebuseTimer = app.fs.useTimer
var aebusePageTiming = app.fs.usePageTiming;
var aebclickAdvances = app.fs.clickAdvances;
var aebcursor = app.fs.cursor;
var aebescapeExits = app.fs.escapeExits;
\aeb@fsTran%
\aeb@fsBGColor%
\aeb@fsLoop%
\aeb@fsclickAdv%
\aeb@fscursor%
\aeb@fstimeDelay%
\aeb@fsuseTimer%
\aeb@fsusePageTiming%
\aeb@fsEscape%
\aeb@fsFS%
} catch(e) {}
}
\end{insDLJS}
% \end{macrocode}
% This is a series of script lines that will be inserted into the \texttt{willClose}
% section of the document. These will attempt to restore the user's full screen
% defaults.
% \begin{macrocode}
\begin{fs@willClose}
try {
delete global.fsexec;
app.fs.defaultTransition = aebdefaultTransition;
app.fs.backgroundColor = aebbackgroundColor;
app.fs.loop = aebloop;
app.fs.timeDelay = aebtimeDelay;
app.fs.useTimer = aebuseTimer;
app.fs.usePageTiming = aebusePageTiming;
app.fs.clickAdvances = aebclickAdvances;
app.fs.cursor = aebcursor;
app.fs.escapeExits = aebescapeExits;
} catch(e) { console.println("Could not reset on of the defaults"); }
\end{fs@willClose}
% \end{macrocode}
% \begin{macrocode}
%</fsdefjs>
%<*aebpro>
% \end{macrocode}
% \section{Set Page Actions}
% \begin{environment}{addJSToPageOpen}
% \begin{environment}{addJSToPageOpenAt}
% \begin{environment}{addJSToPageClose}
% \begin{environment}{addJSToPageCloseAt}
% The document author can add to the default page open action through
% this environment. Use this environment between slides, effective
% the next slide. The first slide (possibly generated by
% \cs{maketitle}) is a special case: When setting the open and close
% page actions for the first page, these environments \emph{must go}
% in the preamble.
% \begin{macrocode}
\def\canceleveryPageOpen{\global\@everyPageOpenfalse
\global\let\every@PageOpen\@empty}
\def\canceleveryPageClose{\global\@everyPageClosefalse
\global\let\every@PageClose\@empty}
\newenvironment{everyPageOpen}[1][]
{\global\@everyPageOpentrue\@defineJS[#1]{\every@PageOpen}}
{\end@defineJS}
\newenvironment{everyPageClose}[1][]
{\global\@everyPageClosetrue\@defineJS[#1]{\every@PageClose}}
{\end@defineJS}
\let\every@PageOpen\@empty
\let\every@PageClose\@empty
\newenvironment{addJSToPageOpen}[1][]
{\@defineJS[#1]{\addJST@PageOpen}}
{\end@defineJS
\ifnum\value{page}=1\relax
\gdef\myAddtoOpenJS{\OpenAction{\JS{\addJST@PageOpen}}}%
\expandafter\aftergroup\expandafter\myAddtoOpenJS\fi
}
\newenvironment{addJSToPageOpenAt}[2][]
{\@@defineJS[#1]{addJST@PageOpenAt}{#2}}
{\end@@defineJS}
\newenvironment{addJSToPageClose}[1][]
{\@defineJS[#1]{\addJST@PageClose}}
{\end@defineJS
\ifnum\value{page}=1\relax
\gdef\myAddtoCloseJS{%
\gdef\@CloseAction{/C << \JS{\addJST@PageClose} >>}}%
\expandafter\aftergroup\expandafter\myAddtoCloseJS\fi
}
\newenvironment{addJSToPageCloseAt}[2][]
{\@@defineJS[#1]{addJST@PageCloseAt}{#2}}
{\end@@defineJS}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -