From 6d01229a1f06834661f6e820e861a4be03a7f860 Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Mon, 3 Aug 2020 12:18:45 +0900 Subject: fitr update --- texmf-dist/tex/latex/fitr/fitr.sty | 793 ++++++++++++++++++++----------------- 1 file changed, 431 insertions(+), 362 deletions(-) (limited to 'texmf-dist/tex') diff --git a/texmf-dist/tex/latex/fitr/fitr.sty b/texmf-dist/tex/latex/fitr/fitr.sty index 00f1f160..17831240 100644 --- a/texmf-dist/tex/latex/fitr/fitr.sty +++ b/texmf-dist/tex/latex/fitr/fitr.sty @@ -1,362 +1,431 @@ -%% -%% This is file `fitr.sty', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% fitr.dtx (with options: `copyright,package') -%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% fitr.sty package, 2016-04-04 %% -%% Copyright (C) 2012--2016 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}[1997/12/01] -\ProvidesPackage{fitr} - [2016/04/09 v1.2e Support for FitR destinations (dps)] -\RequirePackage{xkeyval} -\RequirePackage{ifpdf}[2006/02/20] -\RequirePackage{ifxetex}[2006/08/21] -\@ifundefined{ifpreview}{\newif\ifpreview \previewfalse}{} -\@ifundefined{ifviewMagWin}{\newif\ifviewMagWin \viewMagWinfalse}{} -\let\fitr@driver\@empty -\DeclareOptionX{pdftex}{\gdef\fitr@driver{pdftex}% - \PassOptionsToPackage{\fitr@driver}{hyperref}% - \PassOptionsToPackage{\fitr@driver}{eforms}% -} -\def\fitr@pdftex@driver{pdftex} -\DeclareOptionX{dvips}{\gdef\fitr@driver{dvips}% - \PassOptionsToPackage{\fitr@driver}{hyperref}% - \PassOptionsToPackage{\fitr@driver}{eforms}% -} -\def\fitr@dvips@driver{dvips} -\DeclareOptionX{dvipsone}{\gdef\fitr@driver{dvipsone}% - \PassOptionsToPackage{\fitr@driver}{hyperref}% - \PassOptionsToPackage{\fitr@driver}{eforms}% -} -\def\fitr@dvipsone@driver{dvipsone} -\newif \if@fitr@dvipdfm \@fitr@dvipdfmfalse -\DeclareOptionX{dvipdfm}{\gdef\fitr@driver{dvipdfm}% - \@fitr@dvipdfmtrue - \PassOptionsToPackage{\fitr@driver}{hyperref}% - \PassOptionsToPackage{\fitr@driver}{eforms}% -} -\def\fitr@dvipdfm@driver{dvipdfm} -\DeclareOptionX{dvipdfmx}{\gdef\fitr@driver{dvipdfmx}% - \@fitr@dvipdfmtrue - \PassOptionsToPackage{\fitr@driver}{hyperref}% - \PassOptionsToPackage{\fitr@driver}{eforms}% -} -\def\fitr@dvipdfmx@driver{dvipdfmx} -\DeclareOptionX{xetex}{\gdef\fitr@driver{xetex}% - \@fitr@dvipdfmtrue - \PassOptionsToPackage{\fitr@driver}{hyperref}% - \PassOptionsToPackage{\fitr@driver}{eforms}% -} -\def\fitr@xetex@driver{xetex} -\DeclareOptionX{preview}{\previewtrue} -\DeclareOptionX{!preview}{\previewfalse} -\DeclareOptionX{viewMagWin}{\viewMagWintrue} -\DeclareOptionX{!viewMagWin}{\viewMagWinfalse} -\@ifpackageloaded{web}{% - \ExecuteOptionsX{\eq@driver@name}% -}{% - \ifpdf\ExecuteOptionsX{pdftex}\else - \ifxetex\ExecuteOptionsX{xetex}\fi\fi -} -\ProcessOptionsX -\RequirePackage{xcolor} -\ifx\fitr@driver\@empty - \def\fitr@driver{dvips} - \def\fitr@loadPkgs{% - \RequirePackage[dvips]{hyperref} - \RequirePackage[dvips]{eforms}}% -\else - \def\fitr@loadPkgs{% - \RequirePackage{hyperref} - \RequirePackage{eforms}[2016/04/05]} -\fi -\fitr@loadPkgs -\RequirePackage{calc} -\RequirePackage{collectbox} -\newcounter{magCnt} -\newbox\fitr@bbox -\newcount\fitr@height \newcount\fitr@width \newcount\fitr@depth -\newlength\fitr@length -\def\get@fitr@dimen#1{% - \setbox\fitr@bbox=\hbox{#1}% - \fitr@height=\ht\fitr@bbox - \xdef\fitr@height@l{\the\ht\fitr@bbox}% - \fitr@width=\wd\fitr@bbox - \xdef\fitr@width@l{\the\wd\fitr@bbox}% - \fitr@depth=\dp\fitr@bbox - \xdef\fitr@depth@l{\the\dp\fitr@bbox}% - \setlength\fitr@length{\ht\fitr@bbox+\dp\fitr@bbox}% - \edef\fitr@@height{\the\fitr@length}% -} -\def\fitr@urxury@fixup#1#2#3{} -\ifx\fitr@driver\fitr@dvips@driver -\headerps@out{/TeXtoPDF {65536 div DVImag mul} def % sp to pts -/SPtoDvips{TeXtoPDF PDFToDvips} def} % dp to dots -\def\FitRbboxB#1#2{% Uses \fitr@bbox - currentpoint 2 copy DvipsToPDF \the\fitr@depth\space TeXtoPDF add - neg vsize add 72 sub #2\space sub exch % y1 - DvipsToPDF 72 add #1\space sub exch % x1 - 4 2 roll exch DvipsToPDF \the\fitr@width\space - TeXtoPDF add 72 add #1\space add exch % x2 - DvipsToPDF \the\fitr@height \space TeXtoPDF sub - neg vsize add 72 sub #2\space add} % y2 -\else\ifx\fitr@driver\fitr@dvipsone@driver -\special{!/TeXtoPDF {65536 div mag 1000 div mul} def -/PDFtoTeX {65536 mul mag 1000 div div} def} -\def\FitRbboxB#1#2{% - currentpoint 2 copy \the\fitr@depth\space add DvipsToPDF - neg PageHeight add 72 sub #2\space sub % y1 - exch DvipsToPDF 72 add #1\space sub exch % x1 - 4 2 roll exch \the\fitr@width\space add - DvipsToPDF 72 add #1\space add exch % x2 - \the\fitr@height\space sub DvipsToPDF neg - PageHeight add 72 sub #2\space add} % y2 -\else\ifx\fitr@driver\fitr@pdftex@driver -\def\FitRbboxB#1#2{% - \fitr@length=#1bp - \fitr@length=2\fitr@length - \advance\fitr@length\wd\fitr@bbox - \edef\fitr@pdftex@view@width{\the\fitr@length}% - \fitr@length=#2bp - \advance\fitr@length\ht\fitr@bbox - \edef\fitr@pdftex@view@height{\the\fitr@length}% - \fitr@length=#2bp - \advance\fitr@length\dp\fitr@bbox - \edef\fitr@pdftex@view@depth{\the\fitr@length}% -} -\else\if@fitr@dvipdfm -\def\FitRbboxB#1#2#3{% - \smash{\raisebox{-\fitr@depth@l-#2bp}% - {\makebox[0pt][l]{\hspace*{-#1bp}% - \@pdfm@mark{dest (#3) % - [ @thispage /FitR @xpos @ypos @urx#3\space @ury#3\space ]}}}}% -} -\def\fitr@urxury@fixup#1#2#3{% - \smash{\raisebox{\fitr@height@l+#2bp}% - {\makebox[0pt][l]{\hspace*{#1bp}% - \@pdfm@mark{obj @urx#3\space @xpos}% - \@pdfm@mark{obj @ury#3\space @ypos}}}}% -} -\fi\fi\fi\fi -\def\fitr@defaultbp#1#2{% - \afterassignment\fitr@def@bp\dimen@#2bp\relax{#1}{#2}} -\def\fitr@def@bp#1\relax#2#3{% - \if!#1!% - \def#2{#3}% - \else - \dimen@.99626\dimen@ - \edef#2{\strip@pt\dimen@}% - \fi} -\define@key{fitr}{lift}[0pt]{{\setlength\@tempdima{#1}% - \xdef\fitr@temp@length{\the\@tempdima}}% - \edef\fitr@@lift{\fitr@temp@length}} -\def\fitr@@lift{0pt} -\define@key{fitr}{shift}[0pt]{{\setlength\@tempdima{#1}% - \xdef\fitr@temp@length{\the\@tempdima}}% - \edef\fitr@@shift{\fitr@temp@length}} -\def\fitr@@shift{0pt} -\define@key{fitr}{width}[0pt]{{\setlength\@tempdima{#1}% - \xdef\fitr@temp@length{\the\@tempdima}}% - \edef\fitr@@width{\fitr@temp@length}} -\def\fitr@@width{0pt} -\define@key{fitr}{height}[0pt]{{\setlength\@tempdima{#1}% - \xdef\fitr@temp@length{\the\@tempdima}}% - \edef\fitr@@height{\fitr@temp@length}} -\def\fitr@@height{0pt} -\define@choicekey+{fitr}{ref}[\val\nr]{t,c,b}[t]% - {\edef\fitr@@refPt{\val}}{} -\def\fitr@@refPt{t} -\define@key{fitr}{adddestw}[0]{% - \fitr@defaultbp{\fitr@@adddestw}{#1}} -\def\fitr@@adddestw{0} -\define@key{fitr}{adddesth}[0]{% - \fitr@defaultbp{\fitr@@adddesth}{#1}} -\def\fitr@@adddesth{0} -\define@boolkey{fitr}{button}[true]{} -\KV@fitr@buttontrue -\define@choicekey+{fitr}{link}[\val\nr]{jmp,restore}[] - {\edef\fitr@@link{\nr}}{} -\let\fitr@@link\@empty -\define@boolkey{fitr}{nodest}[true]{} -\KV@fitr@nodestfalse -\define@key{fitr}{dest}[]{\def\fitr@@dest{#1}} -\let\fitr@@dest\@empty -\define@choicekey+{fitr}{allowFX}[\val\nr]{true,false}[true]% - {\edef\fitr@allowFX{\val}}{} -\def\allowFXDefault{true} -\let\fitr@allowFX\@empty -\newcommand{\jdRect}{\begingroup - \@ifstar{\let\fitr@istar=1\set@rectjd}% - {\let\fitr@istar=0\set@rectjd}} -\@eqlinktxtcolor{\@linkcolor} -\newcommand{\fitr@bcode}{\ef@colorthislink}% -\newcommand{\set@rectjd}[1][]{\def\fitr@jdrect@argi{#1}% - \edef\temp@exp{\noexpand\setkeys{fitr}{#1}}\temp@exp - \ifx\fitr@@link\@empty\let\fitr@bcode\relax\fi - \if\fitr@istar1% - \def\fitr@next{\collectbox[\fitr@bcode]{\set@@rectjd}}\else - \def\fitr@next{\set@@rectjd}\fi\fitr@next -} -\def\set@@rectjd{% - \stepcounter{magCnt}\def\fitr@setBL{0pt}% - \ifx\fitr@@dest\@empty - \def\fitr@namedDest{fitrDestn\the\value{magCnt}}\else - \edef\fitr@namedDest{\fitr@@dest}\fi - \if\fitr@istar1\def\fitr@@refPt{b}\fi - \ifx\fitr@@link\@empty\else\KV@fitr@buttonfalse\fi - \if\fitr@istar1% - \edef\fitr@@width{\the\wd\collectedbox}% - \edef\fitr@setBL{\the\dp\collectedbox}% - \setlength{\fitr@length}{\ht\collectedbox+\dp\collectedbox}% - \edef\fitr@@height{\the\fitr@length}% - \fi - \ifx\fitr@@link\@empty - \ifKV@fitr@button\let\fitr@FLB@ction\fitr@OverlayJmpBtn\else - \@ifundefined{ef@Bbox}{\let\fitr@FLB@ction\Bbox}% - {\let\fitr@FLB@ction\ef@Bbox}\fi - \else\def\fitr@FLB@ction{\hfill\vfill\@gobbletwo}\fi - \get@fitr@dimen{% - \parbox[\fitr@@refPt][\fitr@@height]{\fitr@@width}% - {\kern0pt\fitr@FLB@ction{\fitr@@width}{\fitr@@height}\kern0pt}% - }% - \makebox[0pt][l]{\hspace*{\fitr@@shift}\smash{% - \raisebox{\fitr@@lift-\fitr@setBL}{% - \ifKV@fitr@nodest\else\setFitRDest{\fitr@@adddestw}% - {\fitr@@adddesth}{\fitr@namedDest}\fi - \unhbox\fitr@bbox\ifKV@fitr@nodest\else\fitr@urxury@fixup - {\fitr@@adddestw}{\fitr@@adddesth}{\fitr@namedDest}\fi - }}}% - \setlength{\fboxsep}{0pt}% - \ifKV@fitr@nodest\else\ifviewMagWin - \fitr@length=\fitr@@adddestw bp - \fitr@length=2\fitr@length - \addtolength{\fitr@length}{\fitr@@width}% - \edef\fitr@@width{\the\fitr@length}% - \fitr@length=\fitr@@adddesth bp - \fitr@length=2\fitr@length - \addtolength{\fitr@length}{\fitr@@height}% - \edef\fitr@@height{\the\fitr@length}% - \setlength\fitr@length{-\fitr@@adddestw bp}% - \addtolength\fitr@length{\fitr@@shift}% - \makebox[0pt][l]{\hspace*{\fitr@length}\smash{% - \setlength\fitr@length{\fitr@@lift-\fitr@setBL}% - \if\fitr@@refPt b% - \addtolength\fitr@length{-\fitr@@adddesth bp}\else - \if\fitr@@refPt t% - \addtolength\fitr@length{\fitr@@adddesth bp}% - \fi\fi - \raisebox{\fitr@length}% - {\fbox{\parbox[\fitr@@refPt][\fitr@@height]% - {\fitr@@width}{\kern0pt\hfill\vfill\kern0pt}}}}% - }% - \fi\fi - \if\fitr@@link0\let\fitr@FLB@ction\fitr@OverlayJmpLnk\else - \if\fitr@@link1\let\fitr@FLB@ction\fitr@OverlayRestoreLnk\else - \let\fitr@FLB@ction\relax\let\fitr@bcode\relax\fi\fi - \if\fitr@istar1\gdef\fitr@next{\fitr@FLB@ction{\BOXCONTENT}}\else - \let\fitr@next\relax\fi\fitr@next - \endgroup} -\def\setFitRDest#1#2#3{% - \if@fitr@dvipdfm - \FitRbboxB{#1}{#2}{#3}% - \else - \ifx\fitr@driver\fitr@pdftex@driver - \FitRbboxB{#1}{#2}% - \makebox[0pt][l]{\hspace*{-#1bp}% - \pdfdest name {#3} fitr - width \fitr@pdftex@view@width\space - height \fitr@pdftex@view@height\space - depth \fitr@pdftex@view@depth\space - }% - \else\literalps@out{% - [ /Dest/#3/View [ /FitR \FitRbboxB{#1}{#2} ]/DEST pdfmark}% - \fi\fi -} -\newcommand{\overlayPresets}{\H{I}\BG{}\BC{}\S{S}} -\def\fitr@OverlayJmpBtn#1#2{% - \ifx\fitr@allowFX\@empty - \def\allowFXcode{bAllowFX=\allowFXDefault}\else - \def\allowFXcode{bAllowFX=\fitr@allowFX}\fi - \pushButton[\presets{\overlayPresets}\F{-\FPrint}\autoCenter{n} - \A{\JS{\allowFXcode;\r overlayJmpBtnAction(% -event,"\fitr@namedDest","\fitr@namedDest");}}]{\fitr@namedDest}{#1}{#2}} - -\ifHy@colorlinks\def\overlayJmpLnkPresets{}\else - \def\overlayJmpLnkPresets{\Color{\@linkcolor}\W{1}} -\fi -\def\fitr@OverlayJmpLnk#1{\setLink[% - \presets{\overlayJmpLnkPresets} - \A{\JS{overlayJmpLnkAction("\fitr@namedDest");}}]{#1}} -\def\fitr@OverlayRestoreLnk#1{\setLink[% - \presets{\overlayJmpLnkPresets} - \A{\JS{overlayRestoreLnkAction("\fitr@namedDest");}}]{#1}} -\begin{insDLJS}[_fitrLoaded]{fitr}{JS for the fitr Package} -var _fitrLoaded=true; -var restoreViewState; -var savedRestore=false; -var aSavedRestore=new Array(); -var bAllowFX=true; -function overlayJmpBtnAction(event,fname,dname) { - if (event.shift) shiftRestoreView(fname,dname); - else jumpToDest(fname,dname); -} -function shiftRestoreView(fname,dname) { - var bRestore=restoreView(fname,dname); - if (bAllowFX) - try { overlayRestoreHook(event,bRestore); } catch(e) {} -} -function jumpToDest(fname,dname) { - if ( typeof aSavedRestore[fname]=="undefined") - aSavedRestore[fname]=[false,{}]; - else { - if (aSavedRestore[fname][0]) { - shiftRestoreView(fname,dname) - return; - } - } - if (!aSavedRestore[fname][0]){ - aSavedRestore[fname][1]=this.viewState; - aSavedRestore[fname][0]=true; - } - this.gotoNamedDest(dname); - if (bAllowFX) try { overlayJmpHook(event); } catch(e) {} -} -function restoreView(fname,dname) { - if ( typeof aSavedRestore[fname]=="undefined") - aSavedRestore[fname]=[false,{}]; - if ( aSavedRestore[fname][0]){ - this.viewState=aSavedRestore[fname][1]; - aSavedRestore[fname][0]=false; - return true; - } - else return false; -} -function overlayJmpLnkAction(dname) { - if (!savedRestore){ - restoreViewState=this.viewState; - savedRestore=true; - } - this.gotoNamedDest(dname); -} -function overlayRestoreLnkAction(dname) { - if (savedRestore){ - this.viewState=restoreViewState; - savedRestore=false; - } -} -\end{insDLJS} -\endinput -%% -%% End of file `fitr.sty'. +%% +%% This is file `fitr.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% fitr.dtx (with options: `copyright,package') +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% fitr.sty package, %% +%% Copyright (C) 2012--2020 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}[1997/12/01] +\ProvidesPackage{fitr} + [2020/07/09 v1.3.2 Support for FitR destinations (dps)] +\RequirePackage{xkeyval} +\RequirePackage{ifpdf}[2006/02/20] +\RequirePackage{ifxetex}[2006/08/21] +\RequirePackage{ifluatex} +\@ifundefined{ifpreview}{\newif\ifpreview \previewfalse}{} +\@ifundefined{ifviewMagWin}{\newif\ifviewMagWin \viewMagWinfalse}{} +\let\fitr@driver\@empty +\DeclareOptionX{pdftex}{\gdef\fitr@driver{pdftex}% + \PassOptionsToPackage{\fitr@driver}{hyperref}% + \PassOptionsToPackage{\fitr@driver}{eforms}} +\def\fitr@pdftex@driver{pdftex} +\DeclareOptionX{luatex}{\gdef\fitr@driver{luatex}% + \PassOptionsToPackage{\fitr@driver}{hyperref}% + \PassOptionsToPackage{\fitr@driver}{eforms}} +\def\fitr@pdftex@driver{luatex} +\DeclareOptionX{dvips}{\gdef\fitr@driver{dvips}% + \PassOptionsToPackage{\fitr@driver}{hyperref}% + \PassOptionsToPackage{\fitr@driver}{eforms}} +\def\fitr@dvips@driver{dvips} +\DeclareOptionX{dvipsone}{\gdef\fitr@driver{dvipsone}% + \PassOptionsToPackage{\fitr@driver}{hyperref}% + \PassOptionsToPackage{\fitr@driver}{eforms}} +\def\fitr@dvipsone@driver{dvipsone} +\newif \if@fitr@dvipdfm \@fitr@dvipdfmfalse +\DeclareOptionX{dvipdfm}{\gdef\fitr@driver{dvipdfm}% + \@fitr@dvipdfmtrue + \PassOptionsToPackage{\fitr@driver}{hyperref}% + \PassOptionsToPackage{\fitr@driver}{eforms}} +\def\fitr@dvipdfm@driver{dvipdfm} +\DeclareOptionX{dvipdfmx}{\gdef\fitr@driver{dvipdfmx}% + \@fitr@dvipdfmtrue + \PassOptionsToPackage{\fitr@driver}{hyperref}% + \PassOptionsToPackage{\fitr@driver}{eforms}} +\def\fitr@dvipdfmx@driver{dvipdfmx} +\DeclareOptionX{xetex}{\gdef\fitr@driver{xetex}% + \@fitr@dvipdfmtrue + \PassOptionsToPackage{\fitr@driver}{hyperref}% + \PassOptionsToPackage{\fitr@driver}{eforms}} +\def\fitr@xetex@driver{xetex} +\DeclareOptionX{preview}{\previewtrue} +\DeclareOptionX{!preview}{\previewfalse} +\DeclareOptionX{viewMagWin}{\viewMagWintrue} +\DeclareOptionX{!viewMagWin}{\viewMagWinfalse} +\providecommand{\previewOn}{\previewtrue} +\providecommand{\previewOff}{\previewfalse} +\providecommand{\viewMagWinOn}{\viewMagWintrue} +\providecommand{\viewMagWinOff}{\viewMagWinfalse} +\newif\ifFRusedljs \FRusedljstrue +\DeclareOptionX{gonative}{\FRusedljsfalse} +\newif\ifFRblinkonjmp \FRblinkonjmpfalse +\DeclareOptionX{blinkonjmp}{\FRblinkonjmptrue} +\DeclareOptionX{!blinkonjmp}{\FRblinkonjmpfalse} +\newif\ifFRblinkonrestore \FRblinkonrestorefalse +\DeclareOptionX{blinkonrestore}{\FRblinkonrestoretrue} +\DeclareOptionX{!blinkonrestore}{\FRblinkonrestorefalse} +\DeclareOptionX{blink}{\FRblinkonjmptrue\FRblinkonrestoretrue} +\DeclareOptionX{!blink}{\FRblinkonjmpfalse\FRblinkonrestorefalse} +\@ifpackageloaded{web}{\ExecuteOptionsX{\eq@driver@name}}{% + \ifluatex\ExecuteOptionsX{pdftex}\else + \ifpdf\ExecuteOptionsX{pdftex}\else + \ifxetex\ExecuteOptionsX{xetex}\else + \@ifundefined{l@tex@@@@driver}{\ExecuteOptionsX{dvips}} + {\ExecuteOptionsX{dvipsone}}\fi\fi\fi +} +\ProcessOptionsX +\RequirePackage{xcolor} +\RequirePackage{eforms}[2020/07/05] +\RequirePackage{calc} +\RequirePackage{collectbox} +\newcounter{magCnt} +\newbox\fitr@bbox +\newcount\fitr@height +\newcount\fitr@width +\newcount\fitr@depth +\newlength\fitr@length +\ifxetex\makeXasPDOff\fi +\ifluatex\protected\def\pdfdest{\pdfextension dest }\fi +\def\get@fitr@dimen#1{% + \setbox\fitr@bbox=\hbox{#1}% + \fitr@height=\ht\fitr@bbox + \xdef\fitr@height@l{\the\ht\fitr@bbox}% + \fitr@width=\wd\fitr@bbox + \xdef\fitr@width@l{\the\wd\fitr@bbox}% + \fitr@depth=\dp\fitr@bbox + \xdef\fitr@depth@l{\the\dp\fitr@bbox}% + \setlength\fitr@length{\ht\fitr@bbox+\dp\fitr@bbox}% + \edef\fitr@@height{\the\fitr@length}% +} +\def\fitr@urxury@fixup#1#2#3{} +\ifx\fitr@driver\fitr@dvips@driver +\headerps@out{/TeXtoPDF {65536 div DVImag mul} def % sp to pts +/SPtoDvips{TeXtoPDF PDFToDvips} def} % sp to dots +\def\FitRbboxB#1#2{% Uses \fitr@bbox + currentpoint 2 copy DvipsToPDF \the\fitr@depth\space TeXtoPDF add + neg vsize add 72 sub #2\space sub exch % y1 + DvipsToPDF 72 add #1\space sub exch % x1 + 4 2 roll exch DvipsToPDF \the\fitr@width\space + TeXtoPDF add 72 add #1\space add exch % x2 + DvipsToPDF \the\fitr@height \space TeXtoPDF sub + neg vsize add 72 sub #2\space add} % y2 +\else +\ifx\fitr@driver\fitr@dvipsone@driver +\special{!/TeXtoPDF {65536 div mag 1000 div mul} def +/PDFtoTeX {65536 mul mag 1000 div div} def} +\def\FitRbboxB#1#2{% + currentpoint 2 copy \the\fitr@depth\space add DvipsToPDF + neg PageHeight add 72 sub #2\space sub % y1 + exch DvipsToPDF 72 add #1\space sub exch % x1 + 4 2 roll exch \the\fitr@width\space add + DvipsToPDF 72 add #1\space add exch % x2 + \the\fitr@height\space sub DvipsToPDF neg + PageHeight add 72 sub #2\space add} % y2 +\else\ifpdf +\def\FitRbboxB#1#2{% + \fitr@length=#1bp + \fitr@length=2\fitr@length + \advance\fitr@length\wd\fitr@bbox + \edef\fitr@pdftex@view@width{\the\fitr@length}% + \fitr@length=#2bp + \advance\fitr@length\ht\fitr@bbox + \edef\fitr@pdftex@view@height{\the\fitr@length}% + \fitr@length=#2bp + \advance\fitr@length\dp\fitr@bbox + \edef\fitr@pdftex@view@depth{\the\fitr@length}% +} +\else\if@fitr@dvipdfm +\def\FitRbboxB#1#2#3{% + \smash{\raisebox{-\fitr@depth@l-#2bp}% + {\makebox[0pt][l]{\hspace*{-#1bp}% + \@pdfm@mark{dest (#3) % + [ @thispage /FitR @xpos @ypos @urx#3\space @ury#3\space ]}}}}} +\def\fitr@urxury@fixup#1#2#3{% + \smash{\raisebox{\fitr@height@l+#2bp}% + {\makebox[0pt][l]{\hspace*{#1bp}% + \@pdfm@mark{obj @urx#3\space @xpos}% + \@pdfm@mark{obj @ury#3\space @ypos}}}}% +} +\fi\fi\fi\fi +\def\fitr@defaultbp#1#2{% + \afterassignment\fitr@def@bp\dimen@#2bp\relax{#1}{#2}} +\def\fitr@def@bp#1\relax#2#3{% + \if!#1!% + \def#2{#3}% + \else + \dimen@.99626\dimen@ + \edef#2{\strip@pt\dimen@}% + \fi} +\define@key{fitr}{lift}[0pt]{{\setlength\@tempdima{#1}% + \xdef\fitr@temp@length{\the\@tempdima}}% + \edef\fitr@@lift{\fitr@temp@length}} +\def\fitr@@lift{0pt} +\define@key{fitr}{shift}[0pt]{{\setlength\@tempdima{#1}% + \xdef\fitr@temp@length{\the\@tempdima}}% + \edef\fitr@@shift{\fitr@temp@length}} +\def\fitr@@shift{0pt} +\define@key{fitr}{width}[0pt]{{\setlength\@tempdima{#1}% + \xdef\fitr@temp@length{\the\@tempdima}}% + \edef\fitr@@width{\fitr@temp@length}} +\def\fitr@@width{0pt} +\define@key{fitr}{height}[0pt]{{\setlength\@tempdima{#1}% + \xdef\fitr@temp@length{\the\@tempdima}}% + \edef\fitr@@height{\fitr@temp@length}} +\def\fitr@@height{0pt} +\define@choicekey+{fitr}{ref}[\val\nr]{t,c,b}[t]% + {\edef\fitr@@refPt{\val}}{} +\def\fitr@@refPt{t} +\define@key{fitr}{adddestw}[0]{% + \fitr@defaultbp{\fitr@@adddestw}{#1}} +\def\fitr@@adddestw{0} +\define@key{fitr}{adddesth}[0]{% + \fitr@defaultbp{\fitr@@adddesth}{#1}} +\def\fitr@@adddesth{0} +\define@boolkey{fitr}{button}[true]{} +\KV@fitr@buttontrue +\define@choicekey+{fitr}{link}[\val\nr]{jmp,restore}[] + {\edef\fitr@@link{\nr}}{} +\let\fitr@@link\@empty +\define@boolkey{fitr}{nodest}[true]{} +\KV@fitr@nodestfalse +\define@key{fitr}{dest}[]{\def\fitr@@dest{#1}} +\let\fitr@@dest\@empty +\define@choicekey+{fitr}{allowFX}[\val\nr]{true,false}[true]% + {\edef\fitr@allowFX{\val}}{} +\newcommand{\allowFXDefault}{true} +\let\fitr@allowFX\@empty +\newcommand{\jdRect}{\begingroup + \@ifstar{\let\fitr@istar\ef@One\set@rectjd}% + {\let\fitr@istar\ef@Zero\set@rectjd}} +\@eqlinktxtcolor{\@linkcolor} +\newcommand{\fitr@bcode}{\ef@colorthislink}% +\newcommand{\set@rectjd}[1][]{\def\fitr@jdrect@argi{#1}% + \edef\temp@exp{\noexpand\setkeys{fitr}{#1}}\temp@exp + \ifx\fitr@@link\@empty\let\fitr@bcode\relax\fi + \ifx\fitr@istar\ef@One + \def\fitr@next{\collectbox[\fitr@bcode]{\set@@rectjd}}\else + \def\fitr@next{\set@@rectjd}\fi\fitr@next} +\def\set@@rectjd{% + \stepcounter{magCnt}\def\fitr@setBL{0pt}% + \ifx\fitr@@dest\@empty + \def\fitr@namedDest{fitrDestn\the\value{magCnt}}\else + \edef\fitr@namedDest{\fitr@@dest}\fi + \ifx\fitr@istar\ef@One\def\fitr@@refPt{b}\fi + \ifx\fitr@@link\@empty\else\KV@fitr@buttonfalse\fi + \ifx\fitr@istar\ef@One + \edef\fitr@@width{\the\wd\collectedbox}% + \edef\fitr@setBL{\the\dp\collectedbox}% + \setlength{\fitr@length}{\ht\collectedbox+\dp\collectedbox}% + \edef\fitr@@height{\the\fitr@length}% + \fi + \ifx\fitr@@link\@empty + \ifKV@fitr@button\let\fitr@FLB@ction\fitr@OverlayJmpBtn\else + \@ifundefined{ef@Bbox}{\let\fitr@FLB@ction\Bbox}% + {\let\fitr@FLB@ction\ef@Bbox}\fi + \else\def\fitr@FLB@ction{\hfill\vfill\@gobbletwo}\fi + \get@fitr@dimen{% + \parbox[\fitr@@refPt][\fitr@@height]{\fitr@@width}% + {\kern0pt\fitr@FLB@ction{\fitr@@width}{\fitr@@height}\kern0pt}}% + \makebox[0pt][l]{\hspace*{\fitr@@shift}\smash{% + \raisebox{\fitr@@lift-\fitr@setBL}{% + \ifKV@fitr@nodest\else\setFitRDest{\fitr@@adddestw}% + {\fitr@@adddesth}{\fitr@namedDest}\fi + \unhbox\fitr@bbox\ifKV@fitr@nodest\else\fitr@urxury@fixup + {\fitr@@adddestw}{\fitr@@adddesth}{\fitr@namedDest}\fi + }}}% + \setlength{\fboxsep}{0pt}% + \ifKV@fitr@nodest\else\ifviewMagWin + \fitr@length=\fitr@@adddestw bp + \fitr@length=2\fitr@length + \addtolength{\fitr@length}{\fitr@@width}% + \edef\fitr@@width{\the\fitr@length}% + \fitr@length=\fitr@@adddesth bp + \fitr@length=2\fitr@length + \addtolength{\fitr@length}{\fitr@@height}% + \edef\fitr@@height{\the\fitr@length}% + \setlength\fitr@length{-\fitr@@adddestw bp}% + \addtolength\fitr@length{\fitr@@shift}% + \makebox[0pt][l]{\hspace*{\fitr@length}\smash{% + \setlength\fitr@length{\fitr@@lift-\fitr@setBL}% + \if\fitr@@refPt b% + \addtolength\fitr@length{-\fitr@@adddesth bp}\else + \if\fitr@@refPt t% + \addtolength\fitr@length{\fitr@@adddesth bp}% + \fi\fi + \raisebox{\fitr@length}% + {\fbox{\parbox[\fitr@@refPt][\fitr@@height]% + {\fitr@@width}{\kern0pt\hfill\vfill\kern0pt}}}}% + }% + \fi\fi + \if\fitr@@link\ef@Zero + \let\fitr@FLB@ction\fitr@OverlayJmpLnk\else + \if\fitr@@link\ef@One + \let\fitr@FLB@ction\fitr@OverlayRestoreLnk\else + \let\fitr@FLB@ction\relax\let\fitr@bcode\relax\fi\fi + \ifx\fitr@istar\ef@One + \gdef\fitr@next{\fitr@FLB@ction{\BOXCONTENT}}\else + \let\fitr@next\relax\fi\fitr@next + \endgroup} +\def\setFitRDest#1#2#3{% + \if@fitr@dvipdfm + \FitRbboxB{#1}{#2}{#3}% + \else + \ifpdf + \FitRbboxB{#1}{#2}% + \makebox[0pt][l]{\hspace*{-#1bp}% + \pdfdest name {#3} fitr + width \fitr@pdftex@view@width\space + height \fitr@pdftex@view@height\space + depth \fitr@pdftex@view@depth\space + }% + \else\literalps@out{% + [ /Dest/#3/View [ /FitR \FitRbboxB{#1}{#2} ]/DEST pdfmark}% + \fi\fi +} +\newcommand{\overlayPresets}{\H{I}\BG{}\BC{}\S{S}} +\newcommand{\restoreOverlayPresets}{% + \def\overlayPresets{\H{I}\BG{}\BC{}\S{S}}} +\def\fitr@OverlayJmpBtn#1#2{% + \ifx\fitr@allowFX\@empty + \def\allowFXcode{bAllowFX=\allowFXDefault}\else + \def\allowFXcode{bAllowFX=\fitr@allowFX}\fi + \pushButton[\presets{\overlayPresets}\F{-\FPrint}\autoCenter{n} + \A{\ifFRusedljs\JS{\allowFXcode;\r + pbJmpBtnAction(event,"\fitr@namedDest","\fitr@namedDest");}\else + \GoToD(\fitr@namedDest)\fi}]{\fitr@namedDest}{#1}{#2}} +\ifHy@colorlinks\def\pbJmpLnkPresets{}\else + \def\pbJmpLnkPresets{\Color{\@linkcolor}\W{1}} +\fi +\def\fitr@OverlayJmpLnk#1{\setLink[% + \presets{\pbJmpLnkPresets} + \A{\ifFRusedljs\JS{% dps + pbJmpLnkAction("\fitr@namedDest");}\else + \GoToD(\fitr@namedDest)\fi}]{#1}} +\def\fitr@OverlayRestoreLnk#1{\setLink[% + \presets{\pbJmpLnkPresets} + \A{\ifFRusedljs\JS{% dps + pbRestoreLnkAction("\fitr@namedDest");}\else + \Named{GoBack}\fi}]{#1}} +\ifFRusedljs +\begin{insDLJS*}[_fitrLoaded]{fitr} +\begin{newsegment}{JS for the fitr Package} +var _fitrLoaded=true; +var restoreViewState; +var savedRestore=false; +var oSavedRestore=new Object(); +var bAllowFX=true; +function pbJmpBtnAction(event,fname,dname) { + if (event.shift) shiftRestoreView(fname,dname); + else jumpToDest(fname,dname); +} +function shiftRestoreView(fname,dname) { + var bRestore=restoreView(fname,dname); + if (bAllowFX) try {pbRestoreHook(event,bRestore);}catch(e){} + if (bAllowFX) try {pbRestoreHookCustom(event,bRestore);}catch(e){} +} +function jumpToDest(fname,dname) { + if ( typeof oSavedRestore[fname]=="undefined") + oSavedRestore[fname]=[false,{}]; + else { + if (oSavedRestore[fname][0]) { + shiftRestoreView(fname,dname) + return; + } + } + if (!oSavedRestore[fname][0]){ + oSavedRestore[fname][1]=this.viewState; + oSavedRestore[fname][0]=true; + } + this.gotoNamedDest(dname); + if (bAllowFX) try { pbJmpHook(event); }catch(e){} + if (bAllowFX) try { pbJmpHookCustom(event); }catch(e){} +} +function restoreView(fname,dname) { + if ( typeof oSavedRestore[fname]=="undefined") + oSavedRestore[fname]=[false,{}]; + if ( oSavedRestore[fname][0] ) { + this.viewState=oSavedRestore[fname][1]; + oSavedRestore[fname][0]=false; + return true; + } + else return false; +} +function pbJmpLnkAction(dname) { + if (!savedRestore){ + restoreViewState=this.viewState; + savedRestore=true; + } + this.gotoNamedDest(dname); +} +function pbRestoreLnkAction(dname) { + if (savedRestore){ + this.viewState=restoreViewState; + savedRestore=false; + } +} +\end{newsegment} +\ifFRblinkonjmp +\begin{newsegment}{Blink border after jump} +function pbJmpHook(event) { + toggleBC.field=event.target; + toggleBC.startColor=event.target.strokeColor; + toggleBC.altColor=% +(color.equal(toggleBC.startColor,color.transparent))?% +color.red:color.transparent; + oSIJ=app.setInterval("toggleBC();",250); + oTOJ=app.setTimeOut("app.clearInterval(oSIJ); resetBC();",1250); +} +if (typeof toggleBC != "function" ) { + function toggleBC() { + var oField=toggleBC.field; + oField.strokeColor=% +(color.equal(oField.strokeColor,toggleBC.startColor))?% +toggleBC.altColor:toggleBC.startColor; + } + function resetBC() { + toggleBC.field.strokeColor=toggleBC.startColor; + } +} +\end{newsegment} +\fi % \ifFRblinkonjmp +\ifFRblinkonrestore +\begin{newsegment}{Blink border on restore} +function pbRestoreHook(event,bRestore) { + if (!bRestore) return; + toggleBC.field=event.target; + toggleBC.startColor=event.target.strokeColor; + toggleBC.altColor=% +(color.equal(toggleBC.startColor,color.transparent))?% +color.red:color.transparent; + oSIR=app.setInterval("toggleBC();",250); + oTOR=app.setTimeOut("app.clearInterval(oSIR); resetBC();",1250); +} +if (typeof toggleBC != "function" ) { + function toggleBC() { + var oField=toggleBC.field; + oField.strokeColor=% +(color.equal(oField.strokeColor,toggleBC.startColor))?% +toggleBC.altColor:toggleBC.startColor; + } + function resetBC() { + toggleBC.field.strokeColor=toggleBC.startColor; + } +} +\end{newsegment} +\fi % \ifFRblinkonrestore +\end{insDLJS*} +\fi % \ifFRusedljs +\endinput +%% +%% End of file `fitr.sty'. -- cgit v1.2.3