From 26f4947f509c2440ce28e625133a15f6a2446920 Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Thu, 13 Sep 2018 10:28:30 +0900 Subject: update acrotex --- texmf-dist/tex/latex/acrotex/insdljs.sty | 1815 +++++++++++++++--------------- 1 file changed, 907 insertions(+), 908 deletions(-) (limited to 'texmf-dist/tex/latex/acrotex/insdljs.sty') diff --git a/texmf-dist/tex/latex/acrotex/insdljs.sty b/texmf-dist/tex/latex/acrotex/insdljs.sty index 69cc9647..22f2034d 100644 --- a/texmf-dist/tex/latex/acrotex/insdljs.sty +++ b/texmf-dist/tex/latex/acrotex/insdljs.sty @@ -1,908 +1,907 @@ -%% -%% This is file `insdljs.sty', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% insdljs.dtx (with options: `copyright,package') -%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% insdljs.sty package, %% -%% Copyright (C) 2001-2018 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. %% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{insdljs} - [2017/09/03 v2.3g Insert Document Level JavaScripts (dps)] -\usepackage{xkeyval} -\RequirePackage{ifpdf}[2006/02/20] -\RequirePackage{ifxetex}[2006/08/21] -\RequirePackage{ifluatex} -\DeclareOptionX{dvipsone}{\def\dljs@drivernum{0}% - \AtBeginDocument{\dvips@marker}} -\DeclareOptionX{dvips}{\def\dljs@drivernum{0}% - \AtBeginDocument{\dvips@marker}} -\DeclareOptionX{textures}{\def\dljs@drivernum{0}% - \AtBeginDocument{\dvips@marker}} -\DeclareOptionX{pdftex}{\def\dljs@drivernum{1}} -\DeclareOptionX{luatex}{\def\dljs@drivernum{1}} -\DeclareOptionX{dvipdfm}{\def\dljs@drivernum{2}} -\DeclareOptionX{dvipdfmx}{\def\dljs@drivernum{2}} -\DeclareOptionX{xetex}{\def\dljs@drivernum{2}} -\let\dl@YES=y \let\dl@NO=n -\let\dl@One=1 \let\dl@Zero=0 -\let\dljs@YES=y \let\dljs@NO=n -\def\dvips@marker{\ifx\dljspresent\dl@NO\@OAction\fi} -\let\isOpenAction\dl@NO -\DeclareOptionX{nodljs}{\let\importdljs\dl@NO} -\let\importdljs\dl@YES -\let\firstdljs\dl@YES -\let\dljspresent\dl@NO -\DeclareOptionX{debug}{\let\dljs@debug\dl@YES} -\let\dljs@debug\dl@NO -\DeclareOptionX{execJS}{\let\execjs\dl@YES} -\let\execjs\dl@NO -\DeclareOptionX{nopro}{\let\dl@gopro\dl@NO} -\let\dl@gopro\dl@YES -\@ifpackageloaded{web}{% - \ExecuteOptionsX{\eq@driver@name}% -}{% - \@ifpackageloaded{eforms}{% - \ExecuteOptionsX{\ef@driver}% - }{% - \ifpdf\ExecuteOptionsX{pdftex}\else - \ifxetex\ExecuteOptionsX{xetex}\else - \@ifundefined{l@tex@@@@driver}{\ExecuteOptionsX{dvips}} - {\ExecuteOptionsX{dvipsone}}\fi\fi - }% -} -\DeclareOptionX{reqjs}{\let\dl@reqJS\dl@YES} -\let\dljs@reqJS\dl@YES -\DeclareOptionX{!reqjs}{\let\dl@reqJS\dl@NO} -\DeclareOptionX{usealtadobe}{\def\inputAltAdbFncs{% - \InputIfFileExists{altadbfncs.def}% - {\PackageInfo{insdljs}{Inputting code for usealtadobe option}}% - {\PackageWarning{insdljs}{Cannot find altadbfncs.def.\MessageBreak - Reinstall or refresh your file name database.}}}} -\let\inputAltAdbFncs\relax -\ProcessOptionsX -\edef\dl@dquoteCat{\the\catcode`\"} -\catcode`\"=12\relax -\@ifundefined{dljs@drivernum}{% - \PackageError{insdljs}% - {You have not specified dvips, dvipsone, pdftex,\MessageBreak - dvipdfm, dvipdfmx, or xetex in the option list - \MessageBreak of the insdljs package} - {Place one of the drivers dvips, dvipsone, pdftex, dvipdfm, - dvipdfmx, or xetex - \MessageBreak in the option list of the insdljs package.} -}{} -\@ifundefined{ifpdfmarkup}{\newif\ifpdfmarkup}{}\pdfmarkupfalse -\ifpdf\else\ifxetex\else\pdfmarkuptrue\fi\fi -\RequirePackage{hyperref} -\ifpdf\ifx\pdfextension\@undefined\else - \protected\def\pdfnames{\pdfextension names } - \def\pdfpageref{\pdffeedback pageref}\fi\fi -\RequirePackage{verbatim} -\usepackage{conv-xkv}[2017/01/03] -\@ifundefined{dljs@drivernum}{% - \@ifundefined{eq@drivernum}{% - \PackageWarning{insdljs} - {No driver specified, will check for pdftex.} - \@ifundefined{pdfoutput}{% - \@ifundefined{@pdfm@mark}{\def\eq@drivernum{2}% - \def\dljs@drivernum{1}\let\isOpenAction\dl@NO - \PackageWarning{insdljs}{No pdftex, but detected dvipdfm}}% - {\PackageWarning{insdljs}{Neither pdftex nor dvipdfm, - assuming dvips/dvipsone.}% - \def\eq@drivernum{0}\def\dljs@drivernum{0}% - \let\isOpenAction\dl@YES} - }{% - \ifcase\pdfoutput - \def\eq@drivernum{1}\def\dljs@drivernum{1}% - \let\isOpenAction\dl@NO - \PackageInfo{insdljs}{Pdftex detected.}% - \else - \def\eq@drivernum{0}\def\dljs@drivernum{0}% - \let\isOpenAction\dl@YES - \PackageWarning{insdljs}{Pdftex engine detected, - but is outputting dvi. Assuming dvips as the driver.}% - \fi - }% - }{% - \begingroup - \count0=\eq@drivernum - \xdef\dljs@drivernum{\ifcase\count0 0\or1\or2\or0\else0\fi} - \ifnum\dljs@drivernum=0\global\let\isOpenAction\dl@YES - \else\global\let\isOpenAction\dl@NO\fi - \endgroup - }% -}{} -\ifnum\dljs@drivernum=1\relax - \RequirePackage{everyshi} -\fi -\def\AEB@psMrk{[\space} -\ifx\dl@reqJS\dl@YES - \def\dl@@reqJS{/Type/Requirement/S/EnableJavaScripts} - \ifpdf\pdfcatalog{\dl@@reqJS}\else - \ifxetex\immediate\@pdfm@mark{put @catalog <<\dl@@reqJS>>}\else - \literalps@out{\AEB@psMrk{Catalog} <<\dl@@reqJS>> /PUT pdfmark}\fi\fi -\fi -\providecommand\JS[1]{/S/JavaScript/JS(#1)} -\providecommand\Named[1]{/S/Named/N/#1} -\providecommand{\GoTo}{/S/GoTo/D} -\providecommand{\GoToD}{/S/GoTo/D} -\providecommand{\GoToR}{/S/GoToR} -\def\previewMiKTeX{\def\jsR{\string\r}\def\jsT{\string\t}} -{\obeylines % -\gdef\js@@R{\noexpand -}} -\let\dljstfor\@tfor -\def\jsR{\string\r\string\n} -\def\defineJSjsR{\string\r\eqbs^^J} -\def\jsN{\string\n} -{\catcode`\^^I\active % -\gdef^^I{\noexpand^^I}% -\gdef\js@@T{\noexpand^^I}% -}% end of \catcode`\^^I -\let\jsT=\js@@T -\newwrite\js@verbatim@out -\def\iwvo#1{\immediate\write\js@verbatim@out{#1}} -\def\dl@lparen{(}\def\dl@rparen{)} -\def\jscsDflt{\let\protect\noexpand\let\jslit\string - \let\~\dl@tilda\let\^\dl@sup - \def\\{\eqbs\eqbs}\def\cs##1{\\\\##1}% - \def\r{\\r}\def\t{\\t}\def\n{\\n}% - \let\{\dl@lBrace\let\}\dl@rBrace - \ifx\jsstr@useUni\dl@One\def\Uni{\\u}\else\def\u{\\u}\fi - \ifx\jsstr@parens\dl@One\let\l@paren\dl@lparen - \let\r@paren\dl@rparen\else - \let\l@paren\@empty\let\r@paren\@empty\fi -} -\def\jscsDLJS{\let\protect\noexpand\let\jslit\string - \let\~\dl@tilda\let\^\dl@sup - \ifxetex\def\\{\eqbs\eqbs}\else\def\\{\eqbs}\fi\def\cs##1{\\\\##1}% - \def\r{\\r}\def\t{\\t}\def\n{\\n}% - \let\{\dl@lBrace\let\}\dl@rBrace - \ifx\jsstr@useUni\dl@One\def\Uni{\\u}\else\def\u{\\u}\fi - \ifx\jsstr@parens\dl@One\let\l@paren\dl@lparen - \let\r@paren\dl@rparen\else - \let\l@paren\@empty\let\r@paren\@empty\fi -} -\ifpdf\let\jscsDLJS\jscsDflt\fi -\let\dl@JSCS\jscsDflt -\newcommand{\flJSStr}{\bgroup - \let\dl@JSCS\jscsDflt - \@ifstar{\def\isStar{*}\dl@defJSStr} - {\let\isStar\relax\dl@defJSStr}} -\let\fieldJSStr\flJSStr -\let\defineJSStr\flJSStr -\newcommand{\dlJSStr}{\bgroup - \@ifstar{\def\isStar{*}\let\dl@JSCS\jscsDLJS\dl@defJSStr} - {\let\isStar\relax\let\dl@JSCS\jscsDLJS\dl@defJSStr}} -\define@key{jsstr}{quotes}[]{\let\jsstr@quotes\dl@One} -\define@key{jsstr}{noquotes}[]{\let\jsstr@quotes\dl@Zero} -\define@key{jsstr}{parens}[]{\let\jsstr@parens\dl@One} -\define@key{jsstr}{noparens}[]{\let\jsstr@parens\dl@Zero} -\let\jsstr@quotes\dl@One\let\jsstr@parens\dl@One -\define@key{jsstr}{useUni}[]{\let\jsstr@useUni\dl@One} -\let\jsstr@useUni\dl@Zero -\newcommand{\dl@defJSStr}[3][quotes]{\def\dl@argi{#1}\ifx\dl@argi\@empty - \else\ifx\dl@JSCS\jscsDLJS\let\jsstr@parens\dl@Zero\fi - \setkeys{jsstr}{#1}\fi\dl@JSCS - \ifx\jsstr@quotes\dl@One - \xdef#2{\l@paren"#3"\r@paren}\else - \xdef#2{\l@paren#3\r@paren}\fi - \if\isStar*\gdef\dl@afterAction{{\Hy@unicodefalse\expandafter - \pdfstringdef\expandafter#2\expandafter{#2}}}\else - \global\let\dl@afterAction\relax\fi - \aftergroup\dl@afterAction\egroup} -\def\dlTC#1{try{#1}catch(e){}} -\def\js@R{\ifcase\dljs@drivernum^^J\else\jsR\fi} -\def\db#1\db{\ifx\dljs@debug\dl@YES\space\space\space#1\js@R\fi} -\newcounter{dljs@cnt} -\newcounter{dljssegs}\setcounter{dljssegs}{2} -\newenvironment{js@verbatimwrite}% writes to current \js@verbatim@out - {% - \@bsphack - \let\do\@makeother\dospecials\catcode`\^^M\active - \def\verbatim@processline{% - \immediate\write\js@verbatim@out{\the\verbatim@line}}% - \verbatim@start}{\@esphack} -\def\closejs@verbatim@out{\immediate\closeout\js@verbatim@out} -\begingroup -\catcode`\@=0 @catcode`@\=12 -@gdef@eqbs{\} -@gdef@ccpdfmark{@gdef@eqesc{\}@gdef@eqesci{}} -@endgroup -\begingroup - \catcode`<=1 \catcode`\>=2 \@makeother\{ \@makeother\} -\gdef\definebraces<\def\{<\eqesc{>\def\}<\eqesc}>> -\endgroup -\def\eqdospecials{\do\ \do\{\do\}\do\$\do\&% - \do\#\do\^\do\_\do\~} -\begingroup -\catcode`\~=\active \lccode`\~=`\^^M -\lowercase{\endgroup - \def\eqverbatim@#1~{\verbatim@@#1*end\@nil}% - \def\eqverbatim@@#1*end{% - \verbatim@addtoline{#1}% - \futurelet\dl@next\eqverbatim@@@}% - \def\eqverbatim@@@#1\@nil{% - \ifx\dl@next\@nil - \verbatim@processline - \verbatim@startline - \let\dl@next\eqverbatim@ - \else - \def\@tempa##1*end\@nil{##1}% - \@temptokena{*end}% - \def\dl@next{\expandafter\verbatim@test\@tempa#1\@nil~}% - \fi\dl@next}% -}% -\def\jsexpverbatimwrite -{% writes to current \js@verbatim@out - \@bsphack - \ccpdfmark - \catcode`\<=12 \catcode`\>=12 - \input{dljscc.def}% - \let\verbatim@=\eqverbatim@ - \let\verbatim@@=\eqverbatim@@ - \let\verbatim@@@=\eqverbatim@@@ - \let\do\@makeother\eqdospecials% - \catcode`\^^M=\active\catcode`\^^I=12% - \def\verbatim@processline{% - \edef\expVerb{\the\verbatim@line}% - \immediate\write\js@verbatim@out{\expVerb}}% - \verbatim@start% -} -\def\endjsexpverbatimwrite{\immediate\closeout\js@verbatim@out\@esphack} -\let\js@Path\@empty -\def\insPath#1{\def\js@Path{#1}} -\begingroup -\catcode`\{=12 \catcode`\}=12 \catcode`\<=1 \catcode`\>=2 -\gdef\dl@lBrace<\string\{> \gdef\dl@rBrace<\string\}> -\gdef\dl@tilda<\string~> \gdef\dl@sup<\string^> -\endgroup -\def\makeJSspecials{% - \def\\{\eqbs\eqbs}% % define \\ to be \\ - \let\jslit\string - \let\{\dl@lBrace\let\}\dl@rBrace - \let\u\@empty - \def\({\eqbs(}\def\){\eqbs)}% - \makespecialJS % make \r=\jsR and \t=\jsT -} -\def\dl@fitpage{/Fit} -\def\dl@actualsize{/XYZ null null 1.0} %{/XYZ -32768 -32768 1.0} -\def\dl@fitwidth{/FitH null} %{/FitH -32768} -\def\dl@fitheight{/FitV null} %{/FitV -32768} -\def\dl@fitvisible{/FitBH null} %{/FitBH -32768} -\def\dl@inheritzoom{/XYZ 0 0 0} -\def\dl@mag#1{/XYZ null null #1} -\edef\dl@Page#1{\ifcase\dljs@drivernum - {Page#1}\or\noexpand\pdfpageref#1\space\space 0 R\or - @page#1\fi} -\def\dl@preProcDefns{\let\Page\dl@Page\let\mag\dl@mag - \let\fitpage\dl@fitpage\let\actualsize\dl@actualsize - \let\fitwidth\dl@fitwidth\let\fitheight\dl@fitheight - \let\fitvisible\dl@fitvisible\let\inheritzoom\dl@inheritzoom -} -\let\aeb@additionalOpenAction\@empty -\let\aeb@addActionCode\@empty -\let\addActionObj\@empty -\let\aebpopentoks\@empty -\let\aebpFA\dl@NO -\def\aebp@rightDelimiters{} -\newcommand{\addToDocOpen}[1]{% - \ifx\aebpFA\dl@NO - \g@addto@macro\aebpopentoks{#1}% - \def\aeb@additionalOpenAction{/Next {pubAddToDocOpen}}% -\ifpdf - \def\aeb@addActionCode{\immediate\pdfobj{<< - \aebpopentoks\aebp@rightDelimiters >>}% - \edef\addActionObj{\the\pdflastobj\space 0 R}}% -\else\ifxetex - \def\aeb@addActionCode{\immediate - \@pdfm@mark{obj @objAddActionObj - << \aebpopentoks\aebp@rightDelimiters >> }}% - \def\addActionObj{@objAddActionObj}% -\else % postscript - \def\aeb@addActionCode{\literalps@out{% - \AEB@psMrk/_objdef {pubAddToDocOpen} - /type/dict /OBJ pdfmark^^J% - \AEB@psMrk{pubAddToDocOpen} << - \aebpopentoks\aebp@rightDelimiters >> /PUT pdfmark}}% - \def\addActionObj{{pubAddToDocOpen}}% -\fi\fi - \global\let\aebpFA\dl@YES - \let\@pdfstartview\@empty - \else - \edef\aebp@dljstmp{\aebp@rightDelimiters}% - \xdef\aebp@rightDelimiters{\aebp@dljstmp >> }% - \g@addto@macro\aebpopentoks{/Next << #1 }% - \fi -} -\def\dljs@OpenActions{/OpenAction \addActionObj} -\def\dljs@setOpenActions{\bgroup\makeJSspecials\dl@preProcDefns - \aeb@addActionCode - \ifpdf\pdfcatalog{\dljs@OpenActions}\else - \ifxetex\immediate - \@pdfm@mark{put @catalog <<\dljs@OpenActions>>}\else - \literalps@out{\AEB@psMrk - {Catalog} <<\dljs@OpenActions>> /PUT pdfmark}\fi\fi\egroup} -\@ifpackageloaded{aeb_pro}{} - {\AtBeginDocument{\ifx\aebpFA\dl@YES\expandafter - \dljs@setOpenActions\fi}} -\let\@CloseAction\@empty -\def\@OAction@pdfmark{\literalps@out{% - \AEB@psMrk{ThisPage} << /AA << /O << \theFirstAction\space - \opentoks\@rightDelimiters >> \@CloseAction >> >> /PUT pdfmark}} -\def\@POAction@pdfmark{\literalps@out{% - \AEB@psMrk{ThisPage} << /AA << \@thisOpenAction - \@thisCloseAction >> >> /PUT pdfmark}% -} -\def\@OAction@pdftex{% - \ifx\isOpenAction\dl@YES - \xdef\pdftexOAction{/AA << /O << \theFirstAction\space - \opentoks\@rightDelimiters >> \@CloseAction >>}% - \AtNextShipout{\pdfpageattr=\expandafter{\pdftexOAction}}% - \fi -} -\def\@POAction@pdftex{% - \xdef\thisPageActionpdftex{/AA << \@thisOpenAction - \@thisCloseAction >>}% - \AtNextShipout{\pdfpageattr=\expandafter{\thisPageActionpdftex}}% -} -\def\@OAction@dvipdfm{\ifx\isOpenAction\dl@YES - \@pdfm@mark{put @thispage << /AA << /O << \theFirstAction\space - \opentoks\@rightDelimiters >> \@CloseAction >> >>}\fi -} -\def\@POAction@dvipdfm{% - \@pdfm@mark{put @thispage << /AA << \@thisOpenAction - \@thisCloseAction >> >>}% -} -\ifcase\dljs@drivernum - \let\@OAction\@OAction@pdfmark - \let\@POAction\@POAction@pdfmark - \gdef\theFirstAction{/S/JavaScript/JS (\the\importfdftoks)} - \let\isOpenAction\dl@YES -\or - \let\@OAction\@OAction@pdftex - \let\@POAction\@POAction@pdftex - \AtBeginDocument{\@OAction@pdftex} -\or - \let\@OAction\@OAction@dvipdfm - \let\@POAction\@POAction@dvipdfm - \AtBeginDocument{\@OAction@dvipdfm} -\fi -\def\opentoks{} -\def\makespecialJS{% - \let\r\jsR\let\t\jsT\let\n\jsN} -\def\@rightDelimiters{} -\def\OpenAction{\@ifnextchar\Next - {\expandafter\@OpenAction\@gobble}{\@OpenAction}} -\def\@OpenAction#1{% - \ifx\isOpenAction\dl@NO - {\makespecialJS\xdef\theFirstAction{#1}}% - \global\let\isOpenAction\dl@YES - \else - \edef\dljstmp{\@rightDelimiters}% - \xdef\@rightDelimiters{\dljstmp >> }% - {\makespecialJS\xdef\dljstmp{\opentoks /Next << #1 }}% - \xdef\opentoks{\dljstmp}% - \fi - \@nextOpenAction -} -\def\@nextOpenAction{\@ifnextchar\Next{\expandafter - \@OpenAction\@gobble}{}} -\def\protectJSCtrls{\def\r{\string\r\string\n}% - \def\t{\string\t}\def\n{\string\n}} -\def\dljs@tstlp{\@ifnextchar\bgroup - {\let\dljs@multi\dl@YES\dljs@tstlpi}% - {\let\dljs@multi\dl@NO\dljs@tstlpi}} -\def\dljs@tstlpi#1\@nil{}% -\def\dljs@bldScript#1#2#3{{% - \dljs@tstlp#1\@nil - \ifx\dljs@multi\dl@NO{\protectJSCtrls\xdef#3{/#2<<#1>>}}\else - \toks0={}\let\dljs@rAngles\@empty\count0=0 - \@tfor\dljs@arg:=#1\do{% - \ifnum\count0=0 - \toks0=\expandafter{\dljs@arg}\else - \toks2=\expandafter{\dljs@arg}% - \edef\holdtokstmp{\the\toks0 - /Next<<\the\toks2 }% - \edef\dljs@rAngles{\dljs@rAngles\space>>}% - \toks0=\expandafter{\holdtokstmp}% - \fi - \advance\count0by1 - }% - {\protectJSCtrls\xdef#3{/#2<<\the\toks0 \dljs@rAngles>>}% - \xdef#3{#3}}% - \fi -}} -\newcommand{\thisPageAction}[2]{% - \let\@CloseAction\@empty - \let\@thisOpenAction\@empty - \let\@thisCloseAction\@empty - \def\dljs@argi{#1}\def\dljs@argii{#2}% - \ifnum\value{page}=1\relax - \ifx\dljs@argii\@empty\else - \dljs@bldScript{#2}{C}{\@CloseAction}\fi - \ifx\dljs@argi\@empty\else\dljs@tstlp#1\@nil - \ifx\dljs@multi\dl@NO\OpenAction{#1}\else - \@tfor\dljs@arg:=#1\do{\expandafter - \OpenAction\expandafter{\dljs@arg}% - }\fi - \fi - \else - \ifx\dljs@argi\@empty\else - \dljs@bldScript{#1}{O}{\@thisOpenAction}\fi - \ifx\dljs@argii\@empty\else - \dljs@bldScript{#2}{C}{\@thisCloseAction}\fi - \@POAction - \fi -} -\let\insdljsloadVar\@empty -\newenvironment{insDLJS}[3][] -{% - \gdef\detectdljs{#1}\gdef\dljsBase{#2}% - \ifxetex{\def\1{\string\1}\def\2{\string2}% - \def\3{\string\3}\xdef\dljsName{#3}}\else - \Hy@unicodefalse\pdfstringdef{\dljsName}{#3}\fi -\ifx\detectdljs\@empty - \stepcounter{dljs@cnt}% - \xdef\detectdljs{_bInsdljsload\arabic{dljs@cnt}}% - \edef\insdljsloadVar{var \detectdljs=true;}% - \addtocounter{dljs@cnt}{-1}% -\fi - \global\let\multisegments\dl@NO\setcounter{dljssegs}{2}% - \global\dljsobjtoks={}% - \expandafter\ifx\csname dljs\dljsBase\endcsname\relax - \else\@insjserrDuplicate\fi - \ifcase\dljs@drivernum - \let\insert@DLJS=\insert@DLJS@pdfmark - \let\endinsDLJS=\endinsert@DLJS@pdfmark - \let\newsegment=\newsegment@pdfmark - \let\endnewsegment=\endnewsegment@pdfmark - \or - \let\insert@DLJS=\insert@DLJS@pdftex - \let\endinsDLJS=\endinsert@DLJS@pdftex - \let\newsegment=\newsegment@pdftex - \let\endnewsegment=\endnewsegment@pdftex - \or - \let\insert@DLJS=\insert@DLJS@dvipdfm - \let\endinsDLJS=\endinsert@DLJS@dvipdfm - \let\newsegment=\newsegment@dvipdfm - \let\endnewsegment=\endnewsegment@dvipdfm - \fi - \insert@DLJS -}{} -\newenvironment{insDLJS*}[2][] -{% - \gdef\detectdljs{#1}\gdef\dljsBase{#2}% -\ifx\detectdljs\@empty - \stepcounter{dljs@cnt}% - \xdef\detectdljs{_bInsdljsload\arabic{dljs@cnt}}% - \edef\insdljsloadVar{var \detectdljs=true;}% - \addtocounter{dljs@cnt}{-1}% -\fi - \global\let\multisegments\dl@YES\setcounter{dljssegs}{2}% - \global\dljsobjtoks={}% - \expandafter\ifx\csname dljs\dljsBase\endcsname\relax - \else\@insjserrDuplicate\fi - \ifcase\dljs@drivernum - \let\insert@DLJS=\insert@DLJS@pdfmark - \expandafter - \let\csname endinsDLJS*\endcsname\endinsert@DLJS@pdfmark - \let\newsegment=\newsegment@pdfmark - \let\endnewsegment=\endnewsegment@pdfmark - \or - \let\insert@DLJS=\insert@DLJS@pdftex - \expandafter - \let\csname endinsDLJS*\endcsname\endinsert@DLJS@pdftex - \let\newsegment=\newsegment@pdftex - \let\endnewsegment=\endnewsegment@pdftex - \or - \let\insert@DLJS=\insert@DLJS@dvipdfm - \expandafter - \let\csname endinsDLJS*\endcsname\endinsert@DLJS@dvipdfm - \let\newsegment=\newsegment@dvipdfm - \let\endnewsegment=\endnewsegment@dvipdfm - \fi - \insert@DLJS -}{} -\def\@insjserrDuplicate{% - \typeout{^^J! insdljs Package error.} - \typeout{! insDLJS environment: On line number \the\inputlineno,} - \typeout{! the base name `\dljsBase' has already been chosen.} - \typeout{! A DLJS earlier defined has been overwritten!} - \typeout{! Choose another name for the first required argument} - \typeout{! of the insDLJS environment.^^J} -} -\newif\ifisdljs \isdljsfalse -\begingroup -\catcode`\~=12 \catcode`\#=12 -\gdef\efdlspecials{\catcode`\~=12 \catcode`\#=12} -\endgroup -\def\ckivspace#1{\if\noexpand#1\space\else\expandafter#1\fi} -\let\DLspecialDefs\@empty -\def\fdfAfterheader -{% - \iwvo{\string\begingroup\string\efdlspecials} - \iwvo{\string\DLspecialDefs} - \iwvo{\string\isdljstrue} - \iwvo{\string\makeatletter} - \iwvo{\string\immediate\string\openout\string -\js@verbatim@out=\string\js@Path\space\dljsBase.fdf}% - \iwvo{\string\begin{jsexpverbatimwrite}} - \iwvo{\string\firstFDFline} - \iwvo{1 0 obj} - \iwvo{<< /FDF << /JavaScript << /Doc 2 0 R /After 3 0 R >> >> >> } - \iwvo{endobj} - \iwvo{2 0 obj} -\ifpdfmarkup - \iwvo{[ (ExecJS \dljsBase) (var _\dljsBase\space = true;) ] }\else - \iwvo{[ (00 ExecJS \dljsBase) (var _\dljsBase\space = true;) ] }\fi - \iwvo{endobj} - \iwvo{3 0 obj} - \iwvo{<<>>} - \iwvo{stream} -} -\newenvironment{execJS}[1] -{% - \gdef\detectdljs{\string_#1}\gdef\dljsBase{#1}% - \global\dljsobjtoks={}% - \expandafter\gdef\csname dljs\dljsBase\endcsname{}% - \ifx\importdljs\dl@YES\ifx\execjs\dl@YES - \ifx\dl@gopro\dl@YES - \ifnum\dljs@drivernum=0\relax - \addImportAnFDF\importAnFDFTemplate - \else - \OpenAction{/S/JavaScript/JS (\importAnFDFTemplate)}% - \fi\fi - \fi\fi - \immediate\openout \js@verbatim@out \js@Path\dljsBase.djs - \fdfAfterheader - \js@verbatimwrite -}{% - \fdfendstreamobj - \endjs@verbatimwrite - \fdftrailer - \closejs@verbatim@out - \expandafter\xdef\csname\dljsBase OBJ\endcsname{\the\dljsobjtoks}% - \edef\@dljstmp{\noexpand\AtBeginDocument{% - \noexpand\input{\js@Path\dljsBase.djs}}}\@dljstmp -} -\newtoks\JStoks -\newenvironment{defineJS}[2][] -{% - \expandafter\@ifundefined\expandafter{% - \expandafter\@gobble\string#2}{}{% - \PackageWarning{insdljs}{The command - \string#2 already defined}}% - \gdef\defineJSArg{#2}\JStoks={}% - \def\verbatim@processline - {% - \xdef\JS@temp{\the\JStoks\the\verbatim@line\defineJSjsR}% - \global\JStoks=\expandafter{\JS@temp}% - }% - \let\do\@makeother\dospecials\catcode`\^^M\active - #1% - \verbatim@start -}{\gdef\eq@JStemp{\expandafter\edef\defineJSArg{\the\JStoks}}% - \aftergroup\eq@JStemp} -\newenvironment{@defineJS}[2][] -{% - \gdef\defineJSArg{#2}\JStoks={}% - \def\verbatim@processline - {% - \xdef\JS@temp{\the\JStoks\the\verbatim@line\defineJSjsR}% - \global\JStoks=\expandafter{\JS@temp}% - }% - \let\do\@makeother\dospecials\catcode`\^^M\active - #1% - \verbatim@start -}{\gdef\eq@JStemp{\expandafter\edef\defineJSArg{\the\JStoks}}% - \aftergroup\eq@JStemp} -\newenvironment{localJS}[1][]{}{\ifvmode\else\unskip\fi} -\newenvironment{willClose}[1][] -{\@defineJS[#1]{\will@Close}} -{\end@defineJS} -\let\will@Close\@empty -\newenvironment{willSave}[1][] -{\@defineJS[#1]{\will@Save}} -{\end@defineJS} -\let\will@Save\@empty -\newenvironment{didSave}[1][] -{\@defineJS[#1]{\did@Save}} -{\end@defineJS} -\let\did@Save\@empty -\newenvironment{willPrint}[1][] -{\@defineJS[#1]{\will@Print}} -{\end@defineJS} -\let\will@Print\@empty -\newenvironment{didPrint}[1][] -{\@defineJS[#1]{\did@Print}} -{\end@defineJS} -\let\did@Print\@empty -\def\dljs@willDidActions{/AA << - \ifx\test@will@Close\@empty\else/WC << - \JS{\will@Close} >>\fi - \ifx\test@will@Save\@empty\else/WS << - \JS{\will@Save} >>\fi - \ifx\test@did@Save\@empty\else/DS << - \JS{\did@Save} >>\fi - \ifx\test@will@Print\@empty\else/WP << - \JS{\will@Print} >>\fi - \ifx\test@did@Print\@empty\else/DP << - \JS{\did@Print} >>\fi - >> -} -\newcommand\dljs@setDocActions{% - \edef\test@will@Close{\will@Close}% - \edef\test@will@Save{\will@Save}% - \edef\test@did@Save{\did@Save}% - \edef\test@will@Print{\will@Print}% - \edef\test@did@Print{\did@Print}% - \ifpdf\pdfcatalog{\dljs@willDidActions}\else - \ifxetex\immediate - \@pdfm@mark{put @catalog <<\dljs@willDidActions>>}\else - \literalps@out{\AEB@psMrk - {Catalog} <<\dljs@willDidActions>> /PUT pdfmark}\fi\fi -} -\@ifpackageloaded{aeb_pro}{} - {\AtBeginDocument{\dljs@setDocActions}} -\begingroup -\catcode`\%=12 -\gdef\firstFDFline{%FDF-1.2} -\gdef\lastFDFline{%%EOF} -\endgroup -\def\fdfheader -{% - \iwvo{\string\begingroup\string\efdlspecials} - \iwvo{\string\isdljstrue} - \iwvo{\string\makeatletter} - \iwvo{\string\immediate\string\openout\string - \js@verbatim@out=\string\js@Path\space\dljsBase.fdf}% - \iwvo{\string\begin{jsexpverbatimwrite}} - \iwvo{\string\firstFDFline} - \iwvo{1 0 obj} - \iwvo{<< /FDF << /JavaScript << /Doc 2 0 R >> >> >>} - \iwvo{endobj} - \iwvo{2 0 obj} - \iwvo{[ \string\csname\string\@gobble\space\dljsBase% - OBJ\string\endcsname]} - \iwvo{endobj} -} -\def\fdfbeginstreamobj -{% - \iwvo{\thedljssegs\space 0 obj} - \iwvo{<<>>} - \iwvo{stream} - \ifx\insdljsloadVar\@empty\else - \iwvo{\insdljsloadVar} - \global\let\insdljsloadVar\@empty - \fi -} -\def\fdfendstreamobj{% - \iwvo{endstream} - \iwvo{endobj} -} - \def\fdftrailer{% - \iwvo{trailer} - \iwvo{<< /Root 1 0 R >>} - \iwvo{\string\lastFDFline} - \iwvo{*end{jsexpverbatimwrite}} - \iwvo{\string\endgroup} -} -\newtoks\importfdftoks \importfdftoks={} -\newtoks\dljsobjtoks \dljsobjtoks={} -\def\importAnFDFTemplate{% -if(typeof \detectdljs\space == "undefined")\jsR\jsT - ( app.viewerVersion > 8 ) ? % - aebTrustedFunctions( this, aebImportAnFDF, % - "\js@Path\dljsBase.fdf") : % - this.importAnFDF("\js@Path\dljsBase.fdf");\jsR -} -\def\addImportAnFDF#1{% - \ifx\importdljs\dl@YES - \edef\importAnFDFtmp{\the\importfdftoks#1}% - \global\importfdftoks=\expandafter{\importAnFDFtmp}% - \fi -} -\def\importAnFDF{\ifx\importdljs\dl@YES\@OAction\fi} -\newenvironment{newsegment@pdfmark}[1]{% - \addtocounter{dljssegs}{1}% - \addtocounter{dljs@cnt}{1}% - \Hy@unicodefalse\pdfstringdef{\dljsName}{#1}% - \edef\@dljstmp{\the\dljsobjtoks(\dljsName) - \thedljssegs\space 0 R\space} - \global\dljsobjtoks=\expandafter{\@dljstmp} - \fdfbeginstreamobj - \js@verbatimwrite -}{% - \fdfendstreamobj - \endjs@verbatimwrite -} -\def\insert@DLJS@pdfmark{% - \global\let\dljspresent\dl@YES - \expandafter\gdef\csname dljs\dljsBase\endcsname{}% - \ifx\importdljs\dl@YES\ifx\dl@gopro\dl@YES - \addImportAnFDF\importAnFDFTemplate - \fi\fi - \immediate\openout \js@verbatim@out \js@Path\dljsBase.djs - \fdfheader - \ifx\multisegments\dl@NO\expandafter - \newsegment\expandafter{\expandafter\dljsName\expandafter}\fi -} -\def\endinsert@DLJS@pdfmark{% - \ifx\importdljs\dl@YES - \ifx\multisegments\dl@NO\expandafter\endnewsegment\fi - \fdftrailer - \closejs@verbatim@out - \expandafter\xdef\csname\dljsBase% - OBJ\endcsname{\the\dljsobjtoks}% - \edef\@dljstmp{\noexpand\AtBeginDocument{% - \noexpand\input{\js@Path\dljsBase.djs}}}% - \@dljstmp - \ifx\firstdljs\dl@YES - \AtBeginDocument{\edef\@dljstmp{\importAnFDF}% - \@dljstmp}\global\let\firstdljs\dl@NO - \fi - \fi -} -\begingroup -\catcode`\@=0 @catcode`@\=12 -@gdef@ccpdftex{@gdef@eqesc{\\}@gdef@eqesci{\}} -@endgroup -\def\begindljs -{% - \iwvo{\string\begingroup\string\efdlspecials} - \iwvo{\string\isdljstrue} - \iwvo{\string\makeatletter} - {\uccode`c=`\%\uppercase{% - \iwvo{\string\obeyspaces\string\obeylines - \string\let\string^\string^M=\string\jsR c}}} - {\escapechar=-1 \lccode`C=`\%\lowercase{% - \iwvo{\string\\catcode`\string\\"=12C}}} -} -\def\beginseg -{% - {\lccode`P=`\{\lccode`C=`\%\lowercase{% - \iwvo{\string\gdef\string\dljs\dljsBase\roman{dljssegs}PC}}}% -} -\def\endseg -{% - {\uccode`c=`\%\uccode`p=`\}\uppercase{\iwvo{pc}}}% -} -\def\enddljs -{% - \iwvo{\string\endgroup}% -} -\def\@roman#1{\romannumeral#1} -\def\write@objs -{% -\iwvo{\begingroup} -\iwvo{\string\catcode`\string\<=12 } -\iwvo{\string\catcode`\string\>=12 } -{\lccode`C=`\%\lowercase{\iwvo{\string\ccpdftex C}}} -{\lccode`C=`\%\lowercase{\iwvo{% - \string\input{dljscc.def}C\the\dljsobjtoks}}} -\iwvo{\endgroup} -} -\newenvironment{newsegment@pdftex}[1]{% - \addtocounter{dljssegs}{1}% - \addtocounter{dljs@cnt}{1}% - \edef\tmp{^^J\string\immediate\string\pdfobj{ << /S/JavaScript/JS% - (\string\dljs\dljsBase\roman{dljssegs}) >> }}% - \edef\@dljstmp{\the\dljsobjtoks\tmp}% - \global\dljsobjtoks=\expandafter{\@dljstmp}% - \edef\tmp{^^J\string\xdef\string\obj\dljsBase\roman{dljssegs}% - {\string\the\string\pdflastobj\string\space 0 R}}% - \edef\@dljstmp{\the\dljsobjtoks\tmp}% - \global\dljsobjtoks=\expandafter{\@dljstmp}% - \edef\curr@Cnt{\ifnum\arabic{dljs@cnt}<10 0\fi\arabic{dljs@cnt}}% - \Hy@unicodefalse\pdfstringdef{\dljsName}{#1}% - \edef\dljspdftextmp - {\the\importfdftoks (\curr@Cnt\space\dljsName) - \noexpand\csname obj\dljsBase\roman{dljssegs}% - \noexpand\endcsname\space}% - \global\importfdftoks=\expandafter{\dljspdftextmp}% - \beginseg - \js@verbatimwrite -}{% - \endjs@verbatimwrite - \endseg -} -\newenvironment{insert@DLJS@pdftex}{% - \expandafter\gdef\csname dljs\dljsBase\endcsname{}% - \immediate\openout \js@verbatim@out \js@Path\dljsBase.djs - \begindljs - \ifx\multisegments\dl@NO\expandafter - \newsegment\expandafter{\expandafter\dljsName\expandafter}\fi -}{% - \ifx\multisegments\dl@NO\expandafter\endnewsegment\fi - \enddljs - \write@objs - \endjs@verbatimwrite - \closejs@verbatim@out - \edef\@dljstmp{\noexpand\AtBeginDocument{% - \noexpand\input{\js@Path\dljsBase.djs}}}% - \@dljstmp - \ifx\importdljs\dl@YES - \ifx\firstdljs\dl@YES - \AtEndDocument{\edef\@dljstmp{\setDLJSRef@pdftex}\@dljstmp} - \global\let\firstdljs\dl@NO - \fi - \fi -} -\def\setDLJSRef@pdftex -{% - \noexpand\immediate\noexpand\pdfobj {% - << /Names [\the\importfdftoks] >> }% - \edef\noexpand\objNames{\noexpand\the\noexpand\pdflastobj\space 0 R}% - \pdfnames {/JavaScript \noexpand\objNames}% -} -\newenvironment{newsegment@dvipdfm}[1] -{% - \addtocounter{dljssegs}{1}% - \addtocounter{dljs@cnt}{1}% - \edef\tmp{^^J\string\immediate\string - \csname\space @pdfm@mark\string\endcsname - {obj @obj\dljsBase\roman{dljssegs}\space << /S/JavaScript% - /JS(\string\dljs\dljsBase\roman{dljssegs}) >> }}% - \edef\@dljstmp{\the\dljsobjtoks\space\tmp}% - \global\dljsobjtoks=\expandafter{\@dljstmp}% - \edef\curr@Cnt{\ifnum\arabic{dljs@cnt}<10 0\fi\arabic{dljs@cnt}}% - {\def\1{\string\1}\def\2{\string2}% - \def\3{\string\3}\xdef\dljsName{#1}}% - \edef\dljspdftextmp - {\the\importfdftoks (\curr@Cnt\space \dljsName) % - @obj\dljsBase\roman{dljssegs}\space}% - \global\importfdftoks=\expandafter{\dljspdftextmp}% - \beginseg - \js@verbatimwrite -}{% - \endjs@verbatimwrite - \endseg -} -\def\setDLJSRef@dvipdfm -{% - \immediate\@pdfm@mark{obj @objnames % - << /Names [\the\importfdftoks] >> }% - \@pdfm@mark{put @names % - << /JavaScript @objnames >> }% -} -\newenvironment{insert@DLJS@dvipdfm} -{% - \expandafter\gdef\csname dljs\dljsBase\endcsname{}% - \immediate\openout \js@verbatim@out \js@Path\dljsBase.djs - \begindljs - \ifx\multisegments\dl@NO\expandafter\newsegment\expandafter{% - \expandafter\dljsName\expandafter}\fi -}{% - \ifx\multisegments\dl@NO\expandafter\endnewsegment\fi - \enddljs - \write@objs - \endjs@verbatimwrite - \closejs@verbatim@out - \edef\@dljstmp{\noexpand\AtBeginDocument{% - \noexpand\input{\js@Path\dljsBase.djs}}}% - \@dljstmp - \ifx\importdljs\dl@YES - \ifx\firstdljs\dl@YES - \AtBeginDocument{\setDLJSRef@dvipdfm}% - \global\let\firstdljs\dl@NO - \fi - \fi -} -\catcode`\"=\dl@dquoteCat -\inputAltAdbFncs -\endinput -%% -%% End of file `insdljs.sty'. +%% +%% This is file `insdljs.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% insdljs.dtx (with options: `copyright,package') +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% insdljs.sty package, %% +%% Copyright (C) 2001-2018 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. %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{insdljs} + [2018/07/21 v2.4 Insert Document Level JavaScripts (dps)] +\usepackage{xkeyval} +\RequirePackage{ifpdf}[2006/02/20] +\RequirePackage{ifxetex}[2006/08/21] +\RequirePackage{ifluatex} +\DeclareOptionX{dvipsone}{\def\dljs@drivernum{0}% + \AtBeginDocument{\dvips@marker}} +\DeclareOptionX{dvips}{\def\dljs@drivernum{0}% + \AtBeginDocument{\dvips@marker}} +\DeclareOptionX{textures}{\def\dljs@drivernum{0}% + \AtBeginDocument{\dvips@marker}} +\DeclareOptionX{pdftex}{\def\dljs@drivernum{1}} +\DeclareOptionX{luatex}{\def\dljs@drivernum{1}} +\DeclareOptionX{dvipdfm}{\def\dljs@drivernum{2}} +\DeclareOptionX{dvipdfmx}{\def\dljs@drivernum{2}} +\DeclareOptionX{xetex}{\def\dljs@drivernum{2}} +\let\dl@YES=y \let\dl@NO=n +\let\dl@One=1 \let\dl@Zero=0 +\let\dljs@YES=y \let\dljs@NO=n +\def\dvips@marker{\ifx\dljspresent\dl@NO\@OAction\fi} +\let\isOpenAction\dl@NO +\DeclareOptionX{nodljs}{\let\importdljs\dl@NO} +\let\importdljs\dl@YES +\let\firstdljs\dl@YES +\let\dljspresent\dl@NO +\DeclareOptionX{debug}{\let\dljs@debug\dl@YES} +\let\dljs@debug\dl@NO +\DeclareOptionX{execJS}{\let\execjs\dl@YES} +\let\execjs\dl@NO +\DeclareOptionX{nopro}{\let\dl@gopro\dl@NO} +\let\dl@gopro\dl@YES +\@ifpackageloaded{web}{% + \ExecuteOptionsX{\eq@driver@name}% +}{% + \@ifpackageloaded{eforms}{% + \ExecuteOptionsX{\ef@driver}% + }{% + \ifpdf\ExecuteOptionsX{pdftex}\else + \ifxetex\ExecuteOptionsX{xetex}\else + \@ifundefined{l@tex@@@@driver}{\ExecuteOptionsX{dvips}} + {\ExecuteOptionsX{dvipsone}}\fi\fi + }% +} +\DeclareOptionX{reqjs}{\let\dl@reqJS\dl@YES} +\let\dljs@reqJS\dl@YES +\DeclareOptionX{!reqjs}{\let\dl@reqJS\dl@NO} +\DeclareOptionX{usealtadobe}{\def\inputAltAdbFncs{% + \InputIfFileExists{altadbfncs.def}% + {\PackageInfo{insdljs}{Inputting code for usealtadobe option}}% + {\PackageWarning{insdljs}{Cannot find altadbfncs.def.\MessageBreak + Reinstall or refresh your file name database.}}}} +\let\inputAltAdbFncs\relax +\ProcessOptionsX +\edef\dl@dquoteCat{\the\catcode`\"} +\catcode`\"=12\relax +\@ifundefined{dljs@drivernum}{% + \PackageError{insdljs}% + {You have not specified dvips, dvipsone, pdftex,\MessageBreak + dvipdfm, dvipdfmx, or xetex in the option list + \MessageBreak of the insdljs package} + {Place one of the drivers dvips, dvipsone, pdftex, dvipdfm, + dvipdfmx, or xetex + \MessageBreak in the option list of the insdljs package.} +}{} +\@ifundefined{ifpdfmarkup}{\newif\ifpdfmarkup}{}\pdfmarkupfalse +\ifpdf\else\ifxetex\else\pdfmarkuptrue\fi\fi +\RequirePackage{hyperref} +\ifpdf\ifx\pdfextension\@undefined\else + \protected\def\pdfnames{\pdfextension names } + \def\pdfpageref{\pdffeedback pageref}\fi\fi +\RequirePackage{verbatim} +\usepackage{conv-xkv}[2017/01/03] +\@ifundefined{dljs@drivernum}{% + \@ifundefined{eq@drivernum}{% + \PackageWarning{insdljs} + {No driver specified, will check for pdftex.} + \@ifundefined{pdfoutput}{% + \@ifundefined{@pdfm@mark}{\def\eq@drivernum{2}% + \def\dljs@drivernum{1}\let\isOpenAction\dl@NO + \PackageWarning{insdljs}{No pdftex, but detected dvipdfm}}% + {\PackageWarning{insdljs}{Neither pdftex nor dvipdfm, + assuming dvips/dvipsone.}% + \def\eq@drivernum{0}\def\dljs@drivernum{0}% + \let\isOpenAction\dl@YES} + }{% + \ifcase\pdfoutput + \def\eq@drivernum{1}\def\dljs@drivernum{1}% + \let\isOpenAction\dl@NO + \PackageInfo{insdljs}{Pdftex detected.}% + \else + \def\eq@drivernum{0}\def\dljs@drivernum{0}% + \let\isOpenAction\dl@YES + \PackageWarning{insdljs}{Pdftex engine detected, + but is outputting dvi. Assuming dvips as the driver.}% + \fi + }% + }{% + \begingroup + \count0=\eq@drivernum + \xdef\dljs@drivernum{\ifcase\count0 0\or1\or2\or0\else0\fi} + \ifnum\dljs@drivernum=0\global\let\isOpenAction\dl@YES + \else\global\let\isOpenAction\dl@NO\fi + \endgroup + }% +}{} +\ifnum\dljs@drivernum=1\relax + \RequirePackage{everyshi} +\fi +\def\AEB@psMrk{[\space} +\ifx\dl@reqJS\dl@YES + \def\dl@@reqJS{/Type/Requirement/S/EnableJavaScripts} + \ifpdf\pdfcatalog{\dl@@reqJS}\else + \ifxetex\immediate\@pdfm@mark{put @catalog <<\dl@@reqJS>>}\else + \literalps@out{\AEB@psMrk{Catalog} <<\dl@@reqJS>> /PUT pdfmark}\fi\fi +\fi +\newif\ifthereisdjs \thereisdjsfalse +\def\applydljs#1{\ifthereisdjs\else#1 + \global\thereisdjstrue\fi} +\providecommand\JS[1]{/S/JavaScript/JS(#1)} +\providecommand\Named[1]{/S/Named/N/#1} +\providecommand{\GoTo}{/S/GoTo/D} +\providecommand{\GoToD}{/S/GoTo/D} +\providecommand{\GoToR}{/S/GoToR} +\def\previewMiKTeX{\def\jsR{\string\r}\def\jsT{\string\t}} +{\obeylines % +\gdef\js@@R{\noexpand +}} +\let\dljstfor\@tfor +\def\jsR{\string\r\string\n} +\def\defineJSjsR{\string\r\eqbs^^J} +\def\jsN{\string\n} +{\catcode`\^^I\active % +\gdef^^I{\noexpand^^I}% +\gdef\js@@T{\noexpand^^I}% +}% end of \catcode`\^^I +\let\jsT=\js@@T +\newwrite\js@verbatim@out +\def\iwvo#1{\immediate\write\js@verbatim@out{#1}} +\def\dl@lparen{(}\def\dl@rparen{)} +\def\jscsDflt{\let\protect\noexpand\let\jslit\string + \let\~\dl@tilda\let\^\dl@sup + \def\\{\eqbs\eqbs}\def\cs##1{\\\\##1}% + \def\r{\\r}\def\t{\\t}\def\n{\\n}% + \let\{\dl@lBrace\let\}\dl@rBrace + \ifx\jsstr@useUni\dl@One\def\Uni{\\u}\else\def\u{\\u}\fi + \ifx\jsstr@parens\dl@One\let\l@paren\dl@lparen + \let\r@paren\dl@rparen\else + \let\l@paren\@empty\let\r@paren\@empty\fi +} +\def\jscsDLJS{\let\protect\noexpand\let\jslit\string + \let\~\dl@tilda\let\^\dl@sup + \ifxetex\def\\{\eqbs\eqbs}\else\def\\{\eqbs}\fi\def\cs##1{\\\\##1}% + \def\r{\\r}\def\t{\\t}\def\n{\\n}% + \let\{\dl@lBrace\let\}\dl@rBrace + \ifx\jsstr@useUni\dl@One\def\Uni{\\u}\else\def\u{\\u}\fi + \ifx\jsstr@parens\dl@One\let\l@paren\dl@lparen + \let\r@paren\dl@rparen\else + \let\l@paren\@empty\let\r@paren\@empty\fi +} +\ifpdf\let\jscsDLJS\jscsDflt\fi +\let\dl@JSCS\jscsDflt +\newcommand{\flJSStr}{\bgroup + \let\dl@JSCS\jscsDflt + \@ifstar{\def\isStar{*}\dl@defJSStr} + {\let\isStar\relax\dl@defJSStr}} +\let\fieldJSStr\flJSStr +\let\defineJSStr\flJSStr +\newcommand{\dlJSStr}{\bgroup + \@ifstar{\def\isStar{*}\let\dl@JSCS\jscsDLJS\dl@defJSStr} + {\let\isStar\relax\let\dl@JSCS\jscsDLJS\dl@defJSStr}} +\define@key{jsstr}{quotes}[]{\let\jsstr@quotes\dl@One} +\define@key{jsstr}{noquotes}[]{\let\jsstr@quotes\dl@Zero} +\define@key{jsstr}{parens}[]{\let\jsstr@parens\dl@One} +\define@key{jsstr}{noparens}[]{\let\jsstr@parens\dl@Zero} +\let\jsstr@quotes\dl@One\let\jsstr@parens\dl@One +\define@key{jsstr}{useUni}[]{\let\jsstr@useUni\dl@One} +\let\jsstr@useUni\dl@Zero +\newcommand{\dl@defJSStr}[3][quotes]{\def\dl@argi{#1}\ifx\dl@argi\@empty + \else\ifx\dl@JSCS\jscsDLJS\let\jsstr@parens\dl@Zero\fi + \setkeys{jsstr}{#1}\fi\dl@JSCS + \ifx\jsstr@quotes\dl@One + \xdef#2{\l@paren"#3"\r@paren}\else + \xdef#2{\l@paren#3\r@paren}\fi + \if\isStar*\gdef\dl@afterAction{{\Hy@unicodefalse\expandafter + \pdfstringdef\expandafter#2\expandafter{#2}}}\else + \global\let\dl@afterAction\relax\fi + \aftergroup\dl@afterAction\egroup} +\def\dlTC#1{try{#1}catch(e){}} +\def\js@R{\ifcase\dljs@drivernum^^J\else\jsR\fi} +\def\db#1\db{\ifx\dljs@debug\dl@YES\space\space\space#1\js@R\fi} +\newcounter{dljs@cnt} +\newcounter{dljssegs}\setcounter{dljssegs}{2} +\newenvironment{js@verbatimwrite}% writes to current \js@verbatim@out + {% + \@bsphack + \let\do\@makeother\dospecials\catcode`\^^M\active + \def\verbatim@processline{% + \immediate\write\js@verbatim@out{\the\verbatim@line}}% + \verbatim@start}{\@esphack} +\def\closejs@verbatim@out{\immediate\closeout\js@verbatim@out} +\begingroup +\catcode`\@=0 @catcode`@\=12 +@gdef@eqbs{\} +@gdef@ccpdfmark{@gdef@eqesc{\}@gdef@eqesci{}} +@endgroup +\begingroup + \catcode`<=1 \catcode`\>=2 \@makeother\{ \@makeother\} +\gdef\definebraces<\def\{<\eqesc{>\def\}<\eqesc}>> +\endgroup +\def\eqdospecials{\do\ \do\{\do\}\do\$\do\&% + \do\#\do\^\do\_\do\~} +\begingroup +\catcode`\~=\active \lccode`\~=`\^^M +\lowercase{\endgroup + \def\eqverbatim@#1~{\verbatim@@#1*end\@nil}% + \def\eqverbatim@@#1*end{% + \verbatim@addtoline{#1}% + \futurelet\dl@next\eqverbatim@@@}% + \def\eqverbatim@@@#1\@nil{% + \ifx\dl@next\@nil + \verbatim@processline + \verbatim@startline + \let\dl@next\eqverbatim@ + \else + \def\@tempa##1*end\@nil{##1}% + \@temptokena{*end}% + \def\dl@next{\expandafter\verbatim@test\@tempa#1\@nil~}% + \fi\dl@next}% +}% +\def\jsexpverbatimwrite +{% writes to current \js@verbatim@out + \@bsphack + \ccpdfmark + \catcode`\<=12 \catcode`\>=12 + \input{dljscc.def}% + \let\verbatim@=\eqverbatim@ + \let\verbatim@@=\eqverbatim@@ + \let\verbatim@@@=\eqverbatim@@@ + \let\do\@makeother\eqdospecials% + \catcode`\^^M=\active\catcode`\^^I=12% + \def\verbatim@processline{% + \edef\expVerb{\the\verbatim@line}% + \immediate\write\js@verbatim@out{\expVerb}}% + \verbatim@start% +} +\def\endjsexpverbatimwrite{\immediate\closeout\js@verbatim@out\@esphack} +\let\js@Path\@empty +\def\insPath#1{\def\js@Path{#1}} +\begingroup +\catcode`\{=12 \catcode`\}=12 \catcode`\<=1 \catcode`\>=2 +\gdef\dl@lBrace<\string\{> \gdef\dl@rBrace<\string\}> +\gdef\dl@tilda<\string~> \gdef\dl@sup<\string^> +\endgroup +\def\makeJSspecials{% + \def\\{\eqbs\eqbs}% % define \\ to be \\ + \let\jslit\string + \let\{\dl@lBrace\let\}\dl@rBrace + \let\u\@empty + \def\({\eqbs(}\def\){\eqbs)}% + \makespecialJS % make \r=\jsR and \t=\jsT +} +\def\dl@fitpage{/Fit} +\def\dl@actualsize{/XYZ null null 1.0} %{/XYZ -32768 -32768 1.0} +\def\dl@fitwidth{/FitH null} %{/FitH -32768} +\def\dl@fitheight{/FitV null} %{/FitV -32768} +\def\dl@fitvisible{/FitBH null} %{/FitBH -32768} +\def\dl@inheritzoom{/XYZ 0 0 0} +\def\dl@mag#1{/XYZ null null #1} +\edef\dl@Page#1{\ifcase\dljs@drivernum + {Page#1}\or\noexpand\pdfpageref#1\space\space 0 R\or + @page#1\fi} +\def\dl@preProcDefns{\let\Page\dl@Page\let\mag\dl@mag + \let\fitpage\dl@fitpage\let\actualsize\dl@actualsize + \let\fitwidth\dl@fitwidth\let\fitheight\dl@fitheight + \let\fitvisible\dl@fitvisible\let\inheritzoom\dl@inheritzoom +} +\let\aeb@additionalOpenAction\@empty +\let\aeb@addActionCode\@empty +\let\addActionObj\@empty +\let\aebpopentoks\@empty +\let\aebpFA\dl@NO +\def\aebp@rightDelimiters{} +\newcommand{\addToDocOpen}[1]{% + \ifx\aebpFA\dl@NO + \g@addto@macro\aebpopentoks{#1}% + \def\aeb@additionalOpenAction{/Next {pubAddToDocOpen}}% +\ifpdf + \def\aeb@addActionCode{\immediate\pdfobj{<< + \aebpopentoks\aebp@rightDelimiters >>}% + \edef\addActionObj{\the\pdflastobj\space 0 R}}% +\else\ifxetex + \def\aeb@addActionCode{\immediate + \@pdfm@mark{obj @objAddActionObj + << \aebpopentoks\aebp@rightDelimiters >> }}% + \def\addActionObj{@objAddActionObj}% +\else % postscript + \def\aeb@addActionCode{\literalps@out{% + \AEB@psMrk/_objdef {pubAddToDocOpen} + /type/dict /OBJ pdfmark^^J% + \AEB@psMrk{pubAddToDocOpen} << + \aebpopentoks\aebp@rightDelimiters >> /PUT pdfmark}}% + \def\addActionObj{{pubAddToDocOpen}}% +\fi\fi + \global\let\aebpFA\dl@YES + \let\@pdfstartview\@empty + \else + \edef\aebp@dljstmp{\aebp@rightDelimiters}% + \xdef\aebp@rightDelimiters{\aebp@dljstmp >> }% + \g@addto@macro\aebpopentoks{/Next << #1 }% + \fi +} +\def\dljs@OpenActions{/OpenAction \addActionObj} +\def\dljs@setOpenActions{\bgroup\makeJSspecials\dl@preProcDefns + \aeb@addActionCode + \ifpdf\pdfcatalog{\dljs@OpenActions}\else + \ifxetex\immediate + \@pdfm@mark{put @catalog <<\dljs@OpenActions>>}\else + \literalps@out{\AEB@psMrk + {Catalog} <<\dljs@OpenActions>> /PUT pdfmark}\fi\fi\egroup} +\@ifpackageloaded{aeb_pro}{} + {\AtBeginDocument{\ifx\aebpFA\dl@YES\expandafter + \dljs@setOpenActions\fi}} +\let\@CloseAction\@empty +\def\@OAction@pdfmark{\literalps@out{% + \AEB@psMrk{ThisPage} << /AA << /O << \theFirstAction\space + \opentoks\@rightDelimiters >> \@CloseAction >> >> /PUT pdfmark}} +\def\@POAction@pdfmark{\literalps@out{% + \AEB@psMrk{ThisPage} << /AA << \@thisOpenAction + \@thisCloseAction >> >> /PUT pdfmark}% +} +\def\@OAction@pdftex{% + \ifx\isOpenAction\dl@YES + \xdef\pdftexOAction{/AA << /O << \theFirstAction\space + \opentoks\@rightDelimiters >> \@CloseAction >>}% + \AtNextShipout{\pdfpageattr=\expandafter{\pdftexOAction}}% + \fi +} +\def\@POAction@pdftex{% + \xdef\thisPageActionpdftex{/AA << \@thisOpenAction + \@thisCloseAction >>}% + \AtNextShipout{\pdfpageattr=\expandafter{\thisPageActionpdftex}}% +} +\def\@OAction@dvipdfm{\ifx\isOpenAction\dl@YES + \@pdfm@mark{put @thispage << /AA << /O << \theFirstAction\space + \opentoks\@rightDelimiters >> \@CloseAction >> >>}\fi +} +\def\@POAction@dvipdfm{% + \@pdfm@mark{put @thispage << /AA << \@thisOpenAction + \@thisCloseAction >> >>}% +} +\ifcase\dljs@drivernum + \let\@OAction\@OAction@pdfmark + \let\@POAction\@POAction@pdfmark + \gdef\theFirstAction{/S/JavaScript/JS (\the\importfdftoks)} + \let\isOpenAction\dl@YES +\or + \let\@OAction\@OAction@pdftex + \let\@POAction\@POAction@pdftex + \AtBeginDocument{\@OAction@pdftex} +\or + \let\@OAction\@OAction@dvipdfm + \let\@POAction\@POAction@dvipdfm + \AtBeginDocument{\@OAction@dvipdfm} +\fi +\def\opentoks{} +\def\makespecialJS{% + \let\r\jsR\let\t\jsT\let\n\jsN} +\def\@rightDelimiters{} +\def\OpenAction{\@ifnextchar\Next + {\expandafter\@OpenAction\@gobble}{\@OpenAction}} +\def\@OpenAction#1{% + \ifx\isOpenAction\dl@NO + {\makespecialJS\xdef\theFirstAction{#1}}% + \global\let\isOpenAction\dl@YES + \else + \edef\dljstmp{\@rightDelimiters}% + \xdef\@rightDelimiters{\dljstmp >> }% + {\makespecialJS\xdef\dljstmp{\opentoks /Next << #1 }}% + \xdef\opentoks{\dljstmp}% + \fi + \@nextOpenAction +} +\def\@nextOpenAction{\@ifnextchar\Next{\expandafter + \@OpenAction\@gobble}{}} +\def\protectJSCtrls{\def\r{\string\r\string\n}% + \def\t{\string\t}\def\n{\string\n}} +\def\dljs@tstlp{\@ifnextchar\bgroup + {\let\dljs@multi\dl@YES\dljs@tstlpi}% + {\let\dljs@multi\dl@NO\dljs@tstlpi}} +\def\dljs@tstlpi#1\@nil{}% +\def\dljs@bldScript#1#2#3{{% + \dljs@tstlp#1\@nil + \ifx\dljs@multi\dl@NO{\protectJSCtrls\xdef#3{/#2<<#1>>}}\else + \toks0={}\let\dljs@rAngles\@empty\count0=0 + \@tfor\dljs@arg:=#1\do{% + \ifnum\count0=0 + \toks0=\expandafter{\dljs@arg}\else + \toks2=\expandafter{\dljs@arg}% + \edef\holdtokstmp{\the\toks0 + /Next<<\the\toks2 }% + \edef\dljs@rAngles{\dljs@rAngles\space>>}% + \toks0=\expandafter{\holdtokstmp}% + \fi + \advance\count0by1 + }% + {\protectJSCtrls\xdef#3{/#2<<\the\toks0 \dljs@rAngles>>}% + \xdef#3{#3}}% + \fi +}} +\newcommand{\thisPageAction}[2]{% + \let\@CloseAction\@empty + \let\@thisOpenAction\@empty + \let\@thisCloseAction\@empty + \def\dljs@argi{#1}\def\dljs@argii{#2}% + \ifnum\value{page}=1\relax + \ifx\dljs@argii\@empty\else + \dljs@bldScript{#2}{C}{\@CloseAction}\fi + \ifx\dljs@argi\@empty\else\dljs@tstlp#1\@nil + \ifx\dljs@multi\dl@NO\OpenAction{#1}\else + \@tfor\dljs@arg:=#1\do{\expandafter + \OpenAction\expandafter{\dljs@arg}% + }\fi + \fi + \else + \ifx\dljs@argi\@empty\else + \dljs@bldScript{#1}{O}{\@thisOpenAction}\fi + \ifx\dljs@argii\@empty\else + \dljs@bldScript{#2}{C}{\@thisCloseAction}\fi + \@POAction + \fi +} +\let\insdljsloadVar\@empty +\newenvironment{insDLJS}[3][] +{% + \gdef\detectdljs{#1}\gdef\dljsBase{#2}% + \ifxetex{\def\1{\string\1}\def\2{\string2}% + \def\3{\string\3}\xdef\dljsName{#3}}\else + \Hy@unicodefalse\pdfstringdef{\dljsName}{#3}\fi +\ifx\detectdljs\@empty + \stepcounter{dljs@cnt}% + \xdef\detectdljs{_bInsdljsload\arabic{dljs@cnt}}% + \edef\insdljsloadVar{var \detectdljs=true;}% + \addtocounter{dljs@cnt}{-1}% +\fi + \global\let\multisegments\dl@NO\setcounter{dljssegs}{2}% + \global\dljsobjtoks={}% + \expandafter\ifx\csname dljs\dljsBase\endcsname\relax + \else\@insjserrDuplicate\fi + \ifcase\dljs@drivernum + \let\insert@DLJS=\insert@DLJS@pdfmark + \let\endinsDLJS=\endinsert@DLJS@pdfmark + \let\newsegment=\newsegment@pdfmark + \let\endnewsegment=\endnewsegment@pdfmark + \or + \let\insert@DLJS=\insert@DLJS@pdftex + \let\endinsDLJS=\endinsert@DLJS@pdftex + \let\newsegment=\newsegment@pdftex + \let\endnewsegment=\endnewsegment@pdftex + \or + \let\insert@DLJS=\insert@DLJS@dvipdfm + \let\endinsDLJS=\endinsert@DLJS@dvipdfm + \let\newsegment=\newsegment@dvipdfm + \let\endnewsegment=\endnewsegment@dvipdfm + \fi + \insert@DLJS +}{} +\newenvironment{insDLJS*}[2][] +{% + \gdef\detectdljs{#1}\gdef\dljsBase{#2}% +\ifx\detectdljs\@empty + \stepcounter{dljs@cnt}% + \xdef\detectdljs{_bInsdljsload\arabic{dljs@cnt}}% + \edef\insdljsloadVar{var \detectdljs=true;}% + \addtocounter{dljs@cnt}{-1}% +\fi + \global\let\multisegments\dl@YES\setcounter{dljssegs}{2}% + \global\dljsobjtoks={}% + \expandafter\ifx\csname dljs\dljsBase\endcsname\relax + \else\@insjserrDuplicate\fi + \ifcase\dljs@drivernum + \let\insert@DLJS=\insert@DLJS@pdfmark + \expandafter + \let\csname endinsDLJS*\endcsname\endinsert@DLJS@pdfmark + \let\newsegment=\newsegment@pdfmark + \let\endnewsegment=\endnewsegment@pdfmark + \or + \let\insert@DLJS=\insert@DLJS@pdftex + \expandafter + \let\csname endinsDLJS*\endcsname\endinsert@DLJS@pdftex + \let\newsegment=\newsegment@pdftex + \let\endnewsegment=\endnewsegment@pdftex + \or + \let\insert@DLJS=\insert@DLJS@dvipdfm + \expandafter + \let\csname endinsDLJS*\endcsname\endinsert@DLJS@dvipdfm + \let\newsegment=\newsegment@dvipdfm + \let\endnewsegment=\endnewsegment@dvipdfm + \fi + \insert@DLJS +}{} +\def\@insjserrDuplicate{% + \typeout{^^J! insdljs Package error.} + \typeout{! insDLJS environment: On line number \the\inputlineno,} + \typeout{! the base name `\dljsBase' has already been chosen.} + \typeout{! A DLJS earlier defined has been overwritten!} + \typeout{! Choose another name for the first required argument} + \typeout{! of the insDLJS environment.^^J} +} +\newif\ifisdljs \isdljsfalse +\begingroup +\catcode`\~=12 \catcode`\#=12 +\gdef\efdlspecials{\catcode`\~=12 \catcode`\#=12} +\endgroup +\def\ckivspace#1{\if\noexpand#1\space\else\expandafter#1\fi} +\let\DLspecialDefs\@empty +\def\fdfAfterheader +{% + \iwvo{\string\begingroup\string\efdlspecials} + \iwvo{\string\DLspecialDefs} + \iwvo{\string\isdljstrue} + \iwvo{\string\makeatletter} + \iwvo{\string\immediate\string\openout\string +\js@verbatim@out=\string\js@Path\space\dljsBase.fdf}% + \iwvo{\string\begin{jsexpverbatimwrite}} + \iwvo{\string\firstFDFline} + \iwvo{1 0 obj} + \iwvo{<< /FDF << /JavaScript << /Doc 2 0 R /After 3 0 R >> >> >> } + \iwvo{endobj} + \iwvo{2 0 obj} + \let\x\@empty + \applydljs{\def\x{^^Jvar _thereisdjs=true;}}% + \ifpdfmarkup + \iwvo{[ (ExecJS \dljsBase) (var _\dljsBase\space = true;\x) ] }\else + \iwvo{[ (00 ExecJS \dljsBase) (var _\dljsBase\space = true;\x)] }\fi + \iwvo{endobj} + \iwvo{3 0 obj} + \iwvo{<<>>} + \iwvo{stream} +} +\newenvironment{execJS}[1] +{% + \gdef\detectdljs{\string_#1}\gdef\dljsBase{#1}% + \global\dljsobjtoks={}% + \expandafter\gdef\csname dljs\dljsBase\endcsname{}% + \ifx\importdljs\dl@YES\ifx\execjs\dl@YES + \ifx\dl@gopro\dl@YES + \ifnum\dljs@drivernum=0\relax + \addImportAnFDF\importAnFDFTemplate + \else + \OpenAction{/S/JavaScript/JS (\importAnFDFTemplate)}% + \fi\fi + \fi\fi + \immediate\openout \js@verbatim@out \js@Path\dljsBase.djs + \fdfAfterheader + \js@verbatimwrite +}{% + \fdfendstreamobj + \endjs@verbatimwrite + \fdftrailer + \closejs@verbatim@out + \expandafter\xdef\csname\dljsBase OBJ\endcsname{\the\dljsobjtoks}% + \edef\@dljstmp{\noexpand\AtBeginDocument{% + \noexpand\input{\js@Path\dljsBase.djs}}}\@dljstmp +} +\newtoks\JStoks +\newenvironment{defineJS}[2][] +{% + \expandafter\@ifundefined\expandafter{% + \expandafter\@gobble\string#2}{}{% + \PackageWarning{insdljs}{The command + \string#2 already defined}}% + \gdef\defineJSArg{#2}\JStoks={}% + \def\verbatim@processline + {% + \xdef\JS@temp{\the\JStoks\the\verbatim@line\defineJSjsR}% + \global\JStoks=\expandafter{\JS@temp}% + }% + \let\do\@makeother\dospecials\catcode`\^^M\active + #1% + \verbatim@start +}{\gdef\eq@JStemp{\expandafter\edef\defineJSArg{\the\JStoks}}% + \aftergroup\eq@JStemp} +\newenvironment{@defineJS}[2][] +{% + \gdef\defineJSArg{#2}\JStoks={}% + \def\verbatim@processline + {% + \xdef\JS@temp{\the\JStoks\the\verbatim@line\defineJSjsR}% + \global\JStoks=\expandafter{\JS@temp}% + }% + \let\do\@makeother\dospecials\catcode`\^^M\active + #1% + \verbatim@start +}{\gdef\eq@JStemp{\expandafter\edef\defineJSArg{\the\JStoks}}% + \aftergroup\eq@JStemp} +\newenvironment{localJS}[1][]{}{\ifvmode\else\unskip\fi} +\newenvironment{willClose}[1][] +{\@defineJS[#1]{\will@Close}} +{\end@defineJS} +\let\will@Close\@empty +\newenvironment{willSave}[1][] +{\@defineJS[#1]{\will@Save}} +{\end@defineJS} +\let\will@Save\@empty +\newenvironment{didSave}[1][] +{\@defineJS[#1]{\did@Save}} +{\end@defineJS} +\let\did@Save\@empty +\newenvironment{willPrint}[1][] +{\@defineJS[#1]{\will@Print}} +{\end@defineJS} +\let\will@Print\@empty +\newenvironment{didPrint}[1][] +{\@defineJS[#1]{\did@Print}} +{\end@defineJS} +\let\did@Print\@empty +\def\dljs@willDidActions{/AA << + \ifx\test@will@Close\@empty\else/WC << + \JS{\will@Close} >>\fi + \ifx\test@will@Save\@empty\else/WS << + \JS{\will@Save} >>\fi + \ifx\test@did@Save\@empty\else/DS << + \JS{\did@Save} >>\fi + \ifx\test@will@Print\@empty\else/WP << + \JS{\will@Print} >>\fi + \ifx\test@did@Print\@empty\else/DP << + \JS{\did@Print} >>\fi + >> +} +\newcommand\dljs@setDocActions{% + \edef\test@will@Close{\will@Close}% + \edef\test@will@Save{\will@Save}% + \edef\test@did@Save{\did@Save}% + \edef\test@will@Print{\will@Print}% + \edef\test@did@Print{\did@Print}% + \ifpdf\pdfcatalog{\dljs@willDidActions}\else + \ifxetex\immediate + \@pdfm@mark{put @catalog <<\dljs@willDidActions>>}\else + \literalps@out{\AEB@psMrk + {Catalog} <<\dljs@willDidActions>> /PUT pdfmark}\fi\fi +} +\@ifpackageloaded{aeb_pro}{} + {\AtBeginDocument{\dljs@setDocActions}} +\begingroup +\catcode`\%=12 +\gdef\firstFDFline{%FDF-1.2} +\gdef\lastFDFline{%%EOF} +\endgroup +\def\fdfheader +{% + \iwvo{\string\begingroup\string\efdlspecials} + \iwvo{\string\isdljstrue} + \iwvo{\string\makeatletter} + \iwvo{\string\immediate\string\openout\string + \js@verbatim@out=\string\js@Path\space\dljsBase.fdf}% + \iwvo{\string\begin{jsexpverbatimwrite}} + \iwvo{\string\firstFDFline} + \iwvo{1 0 obj} + \iwvo{<< /FDF << /JavaScript << /Doc 2 0 R >> >> >>} + \iwvo{endobj} + \iwvo{2 0 obj} + \iwvo{[ \string\csname\string\@gobble\space\dljsBase% + OBJ\string\endcsname]} + \iwvo{endobj} +} +\def\fdfbeginstreamobj +{% + \iwvo{\thedljssegs\space 0 obj} + \iwvo{<<>>} + \iwvo{stream} + \applydljs{\iwvo{var _thereisdjs=true;}} + \ifx\insdljsloadVar\@empty\else + \iwvo{\insdljsloadVar} + \global\let\insdljsloadVar\@empty + \fi +} +\def\fdfendstreamobj{% + \iwvo{endstream} + \iwvo{endobj} +} +\def\fdftrailer{% + \iwvo{trailer} + \iwvo{<< /Root 1 0 R >>} + \iwvo{\string\lastFDFline} + \iwvo{*end{jsexpverbatimwrite}} + \iwvo{\string\endgroup} +} +\newtoks\importfdftoks \importfdftoks={} +\newtoks\dljsobjtoks \dljsobjtoks={} +\def\importAnFDFTemplate{% +if(typeof \detectdljs\space == "undefined")\jsR\jsT + ( app.viewerVersion > 8 ) ? % + aebTrustedFunctions( this, aebImportAnFDF, % + "\js@Path\dljsBase.fdf") : % + this.importAnFDF("\js@Path\dljsBase.fdf");\jsR +} +\def\addImportAnFDF#1{% + \ifx\importdljs\dl@YES + \edef\importAnFDFtmp{\the\importfdftoks#1}% + \global\importfdftoks=\expandafter{\importAnFDFtmp}% + \fi +} +\def\importAnFDF{\ifx\importdljs\dl@YES\@OAction\fi} +\newenvironment{newsegment@pdfmark}[1]{% + \addtocounter{dljssegs}{1}% + \addtocounter{dljs@cnt}{1}% + \Hy@unicodefalse\pdfstringdef{\dljsName}{#1}% + \edef\@dljstmp{\the\dljsobjtoks(\dljsName) + \thedljssegs\space 0 R\space} + \global\dljsobjtoks=\expandafter{\@dljstmp} + \fdfbeginstreamobj + \js@verbatimwrite +}{% + \fdfendstreamobj + \endjs@verbatimwrite +} +\def\insert@DLJS@pdfmark{% + \global\let\dljspresent\dl@YES + \expandafter\gdef\csname dljs\dljsBase\endcsname{}% + \ifx\importdljs\dl@YES\ifx\dl@gopro\dl@YES + \addImportAnFDF\importAnFDFTemplate + \fi\fi + \immediate\openout \js@verbatim@out \js@Path\dljsBase.djs + \fdfheader + \ifx\multisegments\dl@NO\expandafter + \newsegment\expandafter{\expandafter\dljsName\expandafter}\fi +} +\def\endinsert@DLJS@pdfmark{% + \ifx\importdljs\dl@YES + \ifx\multisegments\dl@NO\expandafter\endnewsegment\fi + \fdftrailer + \closejs@verbatim@out + \expandafter\xdef\csname\dljsBase% + OBJ\endcsname{\the\dljsobjtoks}% + \edef\@dljstmp{\noexpand\AtBeginDocument{% + \noexpand\input{\js@Path\dljsBase.djs}}}% + \@dljstmp + \ifx\firstdljs\dl@YES + \AtBeginDocument{\edef\@dljstmp{\importAnFDF}% + \@dljstmp}\global\let\firstdljs\dl@NO + \fi + \fi +} +\begingroup +\catcode`\@=0 @catcode`@\=12 +@gdef@ccpdftex{@gdef@eqesc{\\}@gdef@eqesci{\}} +@endgroup +\def\begindljs +{% + \iwvo{\string\begingroup\string\efdlspecials} + \iwvo{\string\isdljstrue} + \iwvo{\string\makeatletter} + {\uccode`c=`\%\uppercase{% + \iwvo{\string\obeyspaces\string\obeylines + \string\let\string^\string^M=\string\jsR c}}} + {\escapechar=-1 \lccode`C=`\%\lowercase{% + \iwvo{\string\\catcode`\string\\"=12C}}} +} +\def\beginseg{% + {\lccode`P=`\{\lccode`C=`\%\lowercase{% + \iwvo{\string\gdef\string\dljs\dljsBase\roman{dljssegs}PC}}}% + \applydljs{\iwvo{var _thereisdjs=true;}}% +} +\def\endseg{{\uccode`c=`\%\uccode`p=`\}\uppercase{\iwvo{pc}}}} +\def\enddljs{\iwvo{\string\endgroup}} +\def\@roman#1{\romannumeral#1} +\def\write@objs{% + \iwvo{\begingroup} + \iwvo{\string\catcode`\string\<=12 } + \iwvo{\string\catcode`\string\>=12 } + {\lccode`C=`\%\lowercase{\iwvo{\string\ccpdftex C}}} + {\lccode`C=`\%\lowercase{\iwvo{% + \string\input{dljscc.def}C\the\dljsobjtoks}}} + \iwvo{\endgroup} +} +\newenvironment{newsegment@pdftex}[1]{% + \addtocounter{dljssegs}{1}% + \addtocounter{dljs@cnt}{1}% + \edef\tmp{^^J\string\immediate\string\pdfobj{ << /S/JavaScript/JS% + (\string\dljs\dljsBase\roman{dljssegs}) >> }}% + \edef\@dljstmp{\the\dljsobjtoks\tmp}% + \global\dljsobjtoks=\expandafter{\@dljstmp}% + \edef\tmp{^^J\string\xdef\string\obj\dljsBase\roman{dljssegs}% + {\string\the\string\pdflastobj\string\space 0 R}}% + \edef\@dljstmp{\the\dljsobjtoks\tmp}% + \global\dljsobjtoks=\expandafter{\@dljstmp}% + \edef\curr@Cnt{\ifnum\arabic{dljs@cnt}<10 0\fi\arabic{dljs@cnt}}% + \Hy@unicodefalse\pdfstringdef{\dljsName}{#1}% + \edef\dljspdftextmp + {\the\importfdftoks (\curr@Cnt\space\dljsName) + \noexpand\csname obj\dljsBase\roman{dljssegs}% + \noexpand\endcsname\space}% + \global\importfdftoks=\expandafter{\dljspdftextmp}% + \beginseg + \js@verbatimwrite +}{% + \endjs@verbatimwrite + \endseg +} +\newenvironment{insert@DLJS@pdftex}{% + \expandafter\gdef\csname dljs\dljsBase\endcsname{}% + \immediate\openout \js@verbatim@out \js@Path\dljsBase.djs + \begindljs + \ifx\multisegments\dl@NO\expandafter + \newsegment\expandafter{\expandafter\dljsName\expandafter}\fi +}{% + \ifx\multisegments\dl@NO\expandafter\endnewsegment\fi + \enddljs + \write@objs + \endjs@verbatimwrite + \closejs@verbatim@out + \edef\@dljstmp{\noexpand\AtBeginDocument{% + \noexpand\input{\js@Path\dljsBase.djs}}}% + \@dljstmp + \ifx\importdljs\dl@YES + \ifx\firstdljs\dl@YES + \AtEndDocument{\edef\@dljstmp{\setDLJSRef@pdftex}\@dljstmp} + \global\let\firstdljs\dl@NO + \fi + \fi +} +\def\setDLJSRef@pdftex +{% + \noexpand\immediate\noexpand\pdfobj {% + << /Names [\the\importfdftoks] >> }% + \edef\noexpand\objNames{\noexpand\the\noexpand\pdflastobj\space 0 R}% + \pdfnames {/JavaScript \noexpand\objNames}% +} +\newenvironment{newsegment@dvipdfm}[1] +{% + \addtocounter{dljssegs}{1}% + \addtocounter{dljs@cnt}{1}% + \edef\tmp{^^J\string\immediate\string + \csname\space @pdfm@mark\string\endcsname + {obj @obj\dljsBase\roman{dljssegs}\space << /S/JavaScript% + /JS(\string\dljs\dljsBase\roman{dljssegs}) >> }}% + \edef\@dljstmp{\the\dljsobjtoks\space\tmp}% + \global\dljsobjtoks=\expandafter{\@dljstmp}% + \edef\curr@Cnt{\ifnum\arabic{dljs@cnt}<10 0\fi\arabic{dljs@cnt}}% + {\def\1{\string\1}\def\2{\string2}% + \def\3{\string\3}\xdef\dljsName{#1}}% + \edef\dljspdftextmp + {\the\importfdftoks (\curr@Cnt\space \dljsName) % + @obj\dljsBase\roman{dljssegs}\space}% + \global\importfdftoks=\expandafter{\dljspdftextmp}% + \beginseg + \js@verbatimwrite +}{% + \endjs@verbatimwrite + \endseg +} +\def\setDLJSRef@dvipdfm +{% + \immediate\@pdfm@mark{obj @objnames % + << /Names [\the\importfdftoks] >> }% + \@pdfm@mark{put @names % + << /JavaScript @objnames >> }% +} +\newenvironment{insert@DLJS@dvipdfm} +{% + \expandafter\gdef\csname dljs\dljsBase\endcsname{}% + \immediate\openout \js@verbatim@out \js@Path\dljsBase.djs + \begindljs + \ifx\multisegments\dl@NO\expandafter\newsegment\expandafter{% + \expandafter\dljsName\expandafter}\fi +}{% + \ifx\multisegments\dl@NO\expandafter\endnewsegment\fi + \enddljs + \write@objs + \endjs@verbatimwrite + \closejs@verbatim@out + \edef\@dljstmp{\noexpand\AtBeginDocument{% + \noexpand\input{\js@Path\dljsBase.djs}}}% + \@dljstmp + \ifx\importdljs\dl@YES + \ifx\firstdljs\dl@YES + \AtBeginDocument{\setDLJSRef@dvipdfm}% + \global\let\firstdljs\dl@NO + \fi + \fi +} +\catcode`\"=\dl@dquoteCat +\inputAltAdbFncs +\endinput +%% +%% End of file `insdljs.sty'. -- cgit v1.2.3