diff options
Diffstat (limited to 'tex/context/base/spec-pdf.tex')
-rw-r--r-- | tex/context/base/spec-pdf.tex | 991 |
1 files changed, 535 insertions, 456 deletions
diff --git a/tex/context/base/spec-pdf.tex b/tex/context/base/spec-pdf.tex index bf3fec519..5d6375e65 100644 --- a/tex/context/base/spec-pdf.tex +++ b/tex/context/base/spec-pdf.tex @@ -1,456 +1,535 @@ -%D \module
-%D [ file=spec-pdf,
-%D version=1997.09.20,
-%D title=\CONTEXT\ Special Macros,
-%D subtitle=Adobe \PDF\ version 1.2,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. Non||commercial use is
-%C granted.
-
-\unprotect
-
-%D \macros
-%D {dosetupinteraction,
-%D dosetupscreen,
-%D dosetupidentity,
-%D dostartthisislocation,
-%D dostartgotolocation,
-%D dostartgotorealpage,
-%D dostartcommand,
-%D dostartgotoprofile,
-%D dobeginofprofile,
-%D doendofprofile,
-%D dostartrunprogram,
-%D dostartobject,
-%D dostopobject,
-%D doinsertobject,
-%D doinsertbookmark,
-%D usepagedestinations}
-%D {}
-%D
-%D These specials are not as beautiful as they should be. The
-%D main reason for this is that we started with \DVIWINDO,
-%D which lacks support of \EPS||insertions, but offered a
-%D powerfull linking mechanism. The first version
-%D of \PDF\ did not support labels but only pagenumbers.
-%D This dreadfull omission was corrected in version 2.0, but
-%D we continue to support both alternatives. One never knows.
-%D
-%D Although the concepts behind the \type{pdfmark}'s are
-%D still far from perfect, version 2.1 brought another
-%D change. This time the format was changed. So much for
-%D upward compatibility.
-
-\startspecials[pdf]
-
-%D Instead of a prolog, we can put the code in the file
-%D ourselve.
-%D
-%D \starttypen
-%D \definespecial\dosetupinteraction%
-%D {\special
-%D {\@@insertpostscriptretain
-%D /pdfmark where
-%D {pop}
-%D {userdict /pdfmark /cleartomark load put}
-%D ifelse}}
-%D \stoptypen
-%D
-%D We decided to use a prolog file. The following code has to be
-%D put somewhere. To overcome problems, we always embed the
-%D fonts, but copyrights force us always to make subsets.
-%D
-%D \starttypen
-%D /currentdistillerparams where
-%D { pop } { userdict /currentdistillerparams { 1 dict } put } ifelse
-%D
-%D /setdistillerparams where
-%D { pop } { userdict /setdistillerparams { pop } put } ifelse
-%D
-%D << /AntiAliasColorImages true
-%D /AntiAliasGrayImages true
-%D /AntiAliasMonoImages true
-%D /ConvertCMYKImagesToRGB true
-%D /MaxSubsetPct 99
-%D /EmbedAllFonts true
-%D /SubSetFonts true >> setdistillerparams
-%D \stoptypen
-%D
-%D Beware, this is the PostScript Level 2 way of doing things.
-
-\definespecial\dosetupinteraction%
- {\showmessage{\m!interactions}{21}{acrobat}}
-
-\definespecial\dostartthisislocation#1%
- {\ifusepagedestinations \else
- \setPDFdestination{#1}%
- \doifsomething{\PDFdestination}
- {\special
- {\@@insertpostscriptretain
- [/Dest /\PDFdestination\space
-% [/Dest (\PDFdestination)
- /View [/Fit]
- /DEST
- pdfmark}}%
- \fi}
-
-\definespecial\dostartgotolocation#1#2#3#4#5#6%
- {\bgroup
- \ScaledPointsToBigPoints{#1}\width
- \ScaledPointsToBigPoints{#2}\height
- \doifelsenothing{#3}
- {\doifelsenothing{#4}
- {\!!doneafalse}
- {\doifparentfileelse{#4}
- {\!!doneafalse}
- {\!!doneatrue}}%
- \ifusepagedestinations
- \doifnot{0#6}{0}
- {\special
- {\@@insertpostscriptretain
- [\if!!donea
- /Action /GoToR
- /File (#4.pdf)
- \else
- /Action /GoTo
- \fi
- /Rect [0 0 \width\space \height]
- /Border [0 0 0]
- /Page #6
- /View [/Fit]
- /Subtype /Link
- /ANN
- pdfmark}}%
- \else
- \setPDFdestination{#5}%
- \doifsomething{\PDFdestination}
- {\special
- {\@@insertpostscriptretain
- [\if!!donea
- /Action /GoToR
- /File (#4.pdf)
- \else
- /Action /GoTo
- \fi
- /Rect [0 0 \width\space \height]
- /Border [0 0 0]
- /Dest /\PDFdestination\space
-% /Dest (\PDFdestination)
- /Subtype /Link
- /ANN
- pdfmark}}%
- \fi}
- {\doifelsenothing{#4}
- {\let\PDFfile=\empty
- \let\PDFdestination=\empty}
- {\edef\PDFfile{/#4}%
- \setPDFdestination{#5}%
- \doifsomething{\PDFdestination}
- {\edef\PDFdestination{\URLhash\PDFdestination}}}%
- \special
- {\@@insertpostscriptretain
- [/Action <</Subtype /URI /URI (#3\PDFfile\PDFdestination)>>
- /Rect [0 0 \width\space \height]
- /Border [0 0 0]
- /Subtype /Link
- /ANN
- pdfmark}}%
- \egroup}
-
-\definespecial\dostartgotorealpage#1#2#3#4#5%
- {\bgroup
- \ScaledPointsToBigPoints{#1}\width
- \ScaledPointsToBigPoints{#2}\height
- \doifelsenothing{#3}
- {\doifelsenothing{#4}
- {\!!doneafalse}
- {\doifparentfileelse{#4}
- {\!!doneafalse}
- {\!!doneatrue}}%
- \doifnot{0#5}{0}
- {\special
- {\@@insertpostscriptretain
- [\if!!donea
- /Action /GoToR
- /File (#4.pdf)
- \else
- /Action /GoTo
- \fi
- /Rect [0 0 \width\space \height]
- /Border [0 0 0]
- /View [/Fit]
- /Page #5
- /Subtype /Link
- /ANN
- pdfmark}}}
- {\doifelsenothing{#4}
- {\let\PDFfile=\empty}
- {\edef\PDFfile{/#4}}%
- \special
- {\@@insertpostscriptretain
- [/Action <</Subtype /URI /URI (#3\PDFfile)>>
- /Rect [0 0 \width\space \height]
- /Border [0 0 0]
- /Subtype /Link
- /ANN
- pdfmark}}%
- \egroup}
-
-\definespecial\dostartexecutecommand#1#2#3#4%
- {\bgroup
- \ScaledPointsToBigPoints{#1}\width
- \ScaledPointsToBigPoints{#2}\height
- \processaction
- [#3]
- [ first=>\def\command{First},
- previous=>\def\command{Prev},
- next=>\def\command{Next},
- last=>\def\command{Last},
- backward=>\def\command{GoBack},
- forward=>\def\command{GoForward},
- print=>\def\command{Print},
- exit=>\def\command{Quit},
- close=>\def\command{Close},
- help=>\def\command{HelpUserGuide},
- swap=>\def\command{FullScreen},
- search=>\def\command{Find},
- searchagain=>\def\command{FindAgain},
- \s!unknown=>\let\command=\s!unknown]%
- \special
- {\@@insertpostscriptretain
- [/Action <</Subtype /Named /N /\command>>
- /Rect [0 0 \width\space \height]
- /Border [0 0 0]
- /Subtype /Link
- /ANN
- pdfmark}%
- \egroup}
-
-\definespecial\dostopexecutecommand%
- {}
-
-% \def\translatepdfcommand#1%
-% {\processaction
-% [#1]
-% [ first=>\def\command{First},
-% previous=>\def\command{Prev},
-% next=>\def\command{Next},
-% last=>\def\command{Last},
-% backward=>\def\command{GoBack},
-% forward=>\def\command{GoForward},
-% print=>\def\command{Print},
-% exit=>\def\command{Quit},
-% help=>\def\command{HelpUserGuide},
-% enter=>\def\command{FitPage},
-% view=>\def\command{FullScreen},
-% \s!unknown=>\let\command=\s!unknown]}
-%
-% \definespecial\dostartexecutecommand#1#2#3#4%
-% {\bgroup
-% \ScaledPointsToBigPoints{#1}\width
-% \ScaledPointsToBigPoints{#2}\height
-% \def\nextcommands{}%
-% \getcommalistsize[#1]%
-% \dostepwiserecurse{2}{\commalistsize}{1}
-% {\getfromcommalist[#1][\recurselevel]%
-% \translatepdfcommand\commalistelement
-% \edef\nextcommands%
-% {\nextcommands /Next << /Type /Action /S /Named /N /\command\space}}%
-% \dostepwiserecurse{2}{\commalistsize}{1}
-% {\edef\nextcommands{\nextcommands >>}}%
-% \getfromcommalist[#1][1]%
-% \translatepdfcommand\commalistelement
-% \special
-% {\@@insertpostscriptretain
-% [/Action << /Subtype /Named /N /\command\space \nextcommands >>
-% /Rect [0 0 100 100 ]
-% /Subtype /Link
-% /ANN
-% pdfmark}%
-% \egroup}
-
-\edef\@@psbgroup{\string{}
-\edef\@@psegroup{\string}}
-
-\definespecial\dostarthide%
- {\special
- {\@@insertpostscriptretain
- [/DataSource (false \@@psbgroup)
- /PS
- pdfmark}}
-
-\definespecial\dostophide%
- {\special
- {\@@insertpostscriptretain
- [/DataSource (\@@psegroup if)
- /PS
- pdfmark}}
-
-\definespecial\dosetupscreen#1#2#3#4#5%
- {\bgroup
- \!!widtha=#3sp
- \advance\!!widtha by #1sp
- \!!heighta=-#4sp
- \!!heightb=\printpapierhoogte
- \advance\!!heightb by -#2sp
- \advance\!!heighta by \!!heightb
- %\ScaledPointsToBigPoints{#1}\left
- %\ScaledPointsToBigPoints{\number\!!heighta}\bottom
- %\ScaledPointsToBigPoints{\number\!!widtha}\width
- %\ScaledPointsToBigPoints{\number\!!heightb}\height
- \ScaledPointsToWholeBigPoints{#1}\left
- \ScaledPointsToWholeBigPoints{\number\!!heighta}\bottom
- \ScaledPointsToWholeBigPoints{\number\!!widtha}\width
- \ScaledPointsToWholeBigPoints{\number\!!heightb}\height
- \edef\pdf@@screenmode{\ifcase#5/UseNone\else/FullScreen\fi}%
- \special
- {\@@insertpostscriptretain
- [/CropBox [\left\space\bottom\space\width\space\height]
- /PAGES
- pdfmark}%
- \special
- {\@@insertpostscriptretain
- [/PageMode \pdf@@screenmode\space
- /Page 1
- /View [/Fit]
- /ViewerPreferences
- << /PageLayout /SinglePage
- /NonFullScreenPageMode /UseNone >>
- /DOCVIEW
- pdfmark}%
- \egroup}
-
-\definespecial\dosetupidentity#1#2#3#4#5%
- {\special
- {\@@insertpostscriptretain
- [/Title (#1)
- /Subject (#2)
- /Author (#3)
- /Creator (#4)
- /ModificationDate (#5)
- /DOCINFO
- pdfmark}}
-
-\definespecial\dostartrunprogram#1#2#3%
- {\bgroup
- \ScaledPointsToBigPoints{#1}\width
- \ScaledPointsToBigPoints{#2}\height
- \special
- {\@@insertpostscriptretain
- [/Action /Launch
- /File (#3)
- /Rect [0 0 \width\space \height]
- /Border [0 0 0]
- /Subtype /Link
- /ANN
- pdfmark}%
- \egroup}
-
-\definespecial\dostartgotoprofile#1#2#3%
- {\bgroup
- \ScaledPointsToBigPoints{#1}\width
- \ScaledPointsToBigPoints{#2}\height
- \doifsomething{#3}
- {\special
- {\@@insertpostscriptretain
- [/Action /Article
- /Dest (#3)
- /Rect [0 0 \width\space \height]
- /Border [0 0 0]
- /View [/Fit]
- /Subtype /Link
- /ANN
- pdfmark}}%
- \egroup}
-
-\definespecial\dobeginofprofile#1#2#3% label width page
- {\bgroup
- \doifelsenothing{#1}
- {\!!doneatrue}
- {\!!doneafalse}%
- \doifnot{0#3}{0}
- {\special
- {\@@insertpostscriptretain
- [/Title (#1)
- /Rect [0 0 0 0]
- \if!!donea /Page #3 \fi
- /ARTICLE
- pdfmark}}%
- \egroup}
-
-\definespecial\doendofprofile#1#2#3%
- {}
-
-\def\docommoninsertmov#1#2#3#4#5#6#7#8%
- {\bgroup
- \ScaledPointsToBigPoints{#6}\width
- \ScaledPointsToBigPoints{#7}\height
- \edef\pdf@@posterize{\ifcase#8 \or/Poster true\fi}%
- \special
- {\@@insertpostscriptretain
- [/Type /Annot
- /Subtype /Movie
- /Rect [0 0 \width\space \height]
- /Movie <</F (#1) /Aspect [\width\space \height] \pdf@@posterize>>
- /A <</ShowControls false>>
- /ANN
- pdfmark}%
- \egroup}
-
-\let\doyandyinsertmov = \docommoninsertmov
-\let\dotrinsertmov = \docommoninsertmov
-
-\newbox\pdfobjects
-
-\definespecial\dostartobject#1#2#3#4%
- {\setbox\nextbox=\hbox\bgroup
- \bgroup
- \ScaledPointsToBigPoints{#2}\width
- \ScaledPointsToBigPoints{#3}\height
- \ScaledPointsToBigPoints{#4}\depth
- \escapechar=-1
- \special
- {\@@insertpostscriptretain
- [/BBox [0 -\depth\space \width\space \height]
- /_objdef {object:#1}
- /BP pdfmark}%
- \egroup}
-
-\definespecial\dostopobject%
- {\special
- {\@@insertpostscriptretain
- [/EP pdfmark}%
- \egroup
- \smashbox\nextbox
- \global\setbox\pdfobjects=\hbox{\box\pdfobjects\box\nextbox}}
-
-\definespecial\doinsertobject#1%
- {\hbox\bgroup
- \box\pdfobjects
- \escapechar=-1
- \special
- {\@@insertpostscriptretain
- [{object:#1} /SP pdfmark}%
- \egroup}
-
-\definespecial\doinsertbookmark#1#2#3#4#5% level sublevels text page open (1)
- {\sanitizePDFstring#3\to\bookmarktext
- \special
- {\@@insertpostscriptretain
- [/Page #4\space
- \ifnum#2>0 /Count \ifcase#5-\fi#2\space\fi
- /View [/Fit]
- /Title (\bookmarktext)
- /OUT
- pdfmark}}
-
-\stopspecials
-
-\protect
-
-\endinput
-
\ No newline at end of file +%D \module +%D [ file=spec-pdf, +%D version=1997.09.20, +%D title=\CONTEXT\ Special Macros, +%D subtitle=Adobe \PDF\ version 1.2, +%D author=Hans Hagen, +%D date=\currentdate, +%D copyright={PRAGMA / Hans Hagen \& Ton Otten}] +%C +%C This module is part of the \CONTEXT\ macro||package and is +%C therefore copyrighted by \PRAGMA. Non||commercial use is +%C granted. + +\unprotect + +%D \macros +%D {dosetupinteraction, +%D dosetupscreen, +%D dosetupidentity, +%D dostartthisislocation, +%D dostartgotolocation, +%D dostartgotorealpage, +%D doflushJSpreamble, +%D dostartgotoJS, +%D dostartcommand, +%D dostartgotoprofile, +%D dobeginofprofile, +%D doendofprofile, +%D dostartrunprogram, +%D dostartobject, +%D dostopobject, +%D doinsertobject, +%D doinsertbookmark, +%D dosetpagetransition, +%D usepagedestinations} +%D {} +%D +%D These specials are not as beautiful as they should be. The +%D main reason for this is that we started with \DVIWINDO, +%D which lacks support of \EPS||insertions, but offered a +%D powerfull linking mechanism. The first version +%D of \PDF\ did not support labels but only pagenumbers. +%D This dreadfull omission was corrected in version 2.0, but +%D we continue to support both alternatives. One never knows. +%D +%D Although the concepts behind the \type{pdfmark}'s are +%D still far from perfect, version 2.1 brought another +%D change. This time the format was changed. So much for +%D upward compatibility. + +\startspecials[pdf] + +%D Instead of a prolog, we can put the code in the file +%D ourselve. +%D +%D \starttypen +%D \definespecial\dosetupinteraction% +%D {\special +%D {\@@insertpostscriptretain +%D /pdfmark where +%D {pop} +%D {userdict /pdfmark /cleartomark load put} +%D ifelse}} +%D \stoptypen +%D +%D We decided to use a prolog file. The following code has to be +%D put somewhere. To overcome problems, we always embed the +%D fonts, but copyrights force us always to make subsets. +%D +%D \starttypen +%D /currentdistillerparams where +%D { pop } { userdict /currentdistillerparams { 1 dict } put } ifelse +%D +%D /setdistillerparams where +%D { pop } { userdict /setdistillerparams { pop } put } ifelse +%D +%D << /AntiAliasColorImages true +%D /AntiAliasGrayImages true +%D /AntiAliasMonoImages true +%D /ConvertCMYKImagesToRGB true +%D /MaxSubsetPct 99 +%D /EmbedAllFonts true +%D /SubSetFonts true >> setdistillerparams +%D \stoptypen +%D +%D Beware, this is the PostScript Level 2 way of doing things. + +\definespecial\dosetupinteraction% + {\showmessage{\m!interactions}{21}{acrobat}} + +\definespecial\dostartthisislocation#1% + {\ifusepagedestinations \else + \setPDFdestination{#1}% + \doifsomething{\PDFdestination} + {\special + {\@@insertpostscriptretain + [/Dest /\PDFdestination\space % (\PDFdestination) + /View [/Fit] + /DEST + pdfmark}}% + \fi} + +\definespecial\dostartgotolocation#1#2#3#4#5#6% + {\bgroup + \ScaledPointsToBigPoints{#1}\width + \ScaledPointsToBigPoints{#2}\height + \doifelsenothing{#3} + {\doifelsenothing{#4} + {\!!doneafalse} + {\doifparentfileelse{#4} + {\!!doneafalse} + {\!!doneatrue}}% + \ifusepagedestinations + \doifnot{0#6}{0} + {\special + {\@@insertpostscriptretain + [\if!!donea + /Action /GoToR + /File (#4.pdf) + \else + /Action /GoTo + \fi + /Rect [0 0 \width\space \height] + /Border [0 0 0] + /Page #6 + /View [/Fit] + /Subtype /Link + /ANN + pdfmark}}% + \else + \setPDFdestination{#5}% + \doifsomething{\PDFdestination} + {\special + {\@@insertpostscriptretain + [\if!!donea + /Action /GoToR + /File (#4.pdf) + \else + /Action /GoTo + \fi + /Rect [0 0 \width\space \height] + /Border [0 0 0] + /Dest /\PDFdestination\space % (\PDFdestination) + /Subtype /Link + /ANN + pdfmark}}% + \fi} + {\doifelsenothing{#4} + {\let\PDFfile=\empty + \let\PDFdestination=\empty} + {\edef\PDFfile{/#4}% + \setPDFdestination{#5}% + \doifsomething{\PDFdestination} + {\edef\PDFdestination{\URLhash\PDFdestination}}}% + \special + {\@@insertpostscriptretain + [/Action <</Subtype /URI /URI (#3\PDFfile\PDFdestination)>> + /Rect [0 0 \width\space \height] + /Border [0 0 0] + /Subtype /Link + /ANN + pdfmark}}% + \egroup} + +\definespecial\dostartgotorealpage#1#2#3#4#5% + {\bgroup + \ScaledPointsToBigPoints{#1}\width + \ScaledPointsToBigPoints{#2}\height + \doifelsenothing{#3} + {\doifelsenothing{#4} + {\!!doneafalse} + {\doifparentfileelse{#4} + {\!!doneafalse} + {\!!doneatrue}}% + \doifnot{0#5}{0} + {\special + {\@@insertpostscriptretain + [\if!!donea + /Action /GoToR + /File (#4.pdf) + \else + /Action /GoTo + \fi + /Rect [0 0 \width\space \height] + /Border [0 0 0] + /View [/Fit] + /Page #5 + /Subtype /Link + /ANN + pdfmark}}} + {\doifelsenothing{#4} + {\let\PDFfile=\empty} + {\edef\PDFfile{/#4}}% + \special + {\@@insertpostscriptretain + [/Action <</Subtype /URI /URI (#3\PDFfile)>> + /Rect [0 0 \width\space \height] + /Border [0 0 0] + /Subtype /Link + /ANN + pdfmark}}% + \egroup} + +\def\PDFexecutestart {/Movie /T (movie \currentmovie) /Operation /Play} +\def\PDFexecutestop {/Movie /T (movie \currentmovie) /Operation /Stop} +\def\PDFexecutepause {/Movie /T (movie \currentmovie) /Operation /Pause} +\def\PDFexecuteresume {/Movie /T (movie \currentmovie) /Operation /Resume} + +\def\PDFexecutefirst {/Named /N /First} +\def\PDFexecuteprevious {/Named /N /Prev} +\def\PDFexecutenext {/Named /N /Next} +\def\PDFexecutelast {/Named /N /Last} +\def\PDFexecutebackward {/Named /N /GoBack} +\def\PDFexecuteforward {/Named /N /GoForward} +\def\PDFexecuteprint {/Named /N /Print} +\def\PDFexecuteexit {/Named /N /Quit} +\def\PDFexecuteclose {/Named /N /Close} +\def\PDFexecutesave {/Named /N /Save} +\def\PDFexecutehelp {/Named /N /HelpUserGuide} +\def\PDFexecuteswap {/Named /N /FullScreen} +\def\PDFexecutesearch {/Named /N /Find} +\def\PDFexecutesearchagain {/Named /N /FindAgain} + +\definespecial\dostartexecutecommand#1#2#3#4% + {\doifdefined{PDFexecute#3} + {\bgroup + \ScaledPointsToBigPoints{#1}\width + \ScaledPointsToBigPoints{#2}\height + \special + {\@@insertpostscriptretain + [/Subtype /Link + /Action <</Subtype \getvalue{PDFexecute#3}>> + /Rect [0 0 \width\space \height] + /Border [0 0 0] + /ANN + pdfmark}% + \egroup}} + +\definespecial\dostopexecutecommand% + {} + +% \def\translatepdfcommand#1% +% {\processaction +% [#1] +% [ first=>\def\command{First}, +% previous=>\def\command{Prev}, +% next=>\def\command{Next}, +% last=>\def\command{Last}, +% backward=>\def\command{GoBack}, +% forward=>\def\command{GoForward}, +% print=>\def\command{Print}, +% exit=>\def\command{Quit}, +% help=>\def\command{HelpUserGuide}, +% enter=>\def\command{FitPage}, +% view=>\def\command{FullScreen}, +% \s!unknown=>\let\command=\s!unknown]} +% +% \definespecial\dostartexecutecommand#1#2#3#4% +% {\bgroup +% \ScaledPointsToBigPoints{#1}\width +% \ScaledPointsToBigPoints{#2}\height +% \def\nextcommands{}% +% \getcommalistsize[#1]% +% \dostepwiserecurse{2}{\commalistsize}{1} +% {\getfromcommalist[#1][\recurselevel]% +% \translatepdfcommand\commalistelement +% \edef\nextcommands% +% {\nextcommands /Next << /Type /Action /S /Named /N /\command\space}}% +% \dostepwiserecurse{2}{\commalistsize}{1} +% {\edef\nextcommands{\nextcommands >>}}% +% \getfromcommalist[#1][1]% +% \translatepdfcommand\commalistelement +% \special +% {\@@insertpostscriptretain +% [/Action << /Subtype /Named /N /\command\space \nextcommands >> +% /Rect [0 0 100 100 ] +% /Subtype /Link +% /ANN +% pdfmark}% +% \egroup} + +\edef\@@psbgroup{\string{} +\edef\@@psegroup{\string}} + +\definespecial\dostarthide% + {\special + {\@@insertpostscriptretain + [/DataSource (false \@@psbgroup) + /PS + pdfmark}} + +\definespecial\dostophide% + {\special + {\@@insertpostscriptretain + [/DataSource (\@@psegroup if) + /PS + pdfmark}} + +\definespecial\dosetupscreen#1#2#3#4#5% + {\bgroup + \!!widtha=#3sp + \advance\!!widtha by #1sp + \!!heighta=-#4sp + \!!heightb=\printpapierhoogte + \advance\!!heightb by -#2sp + \advance\!!heighta by \!!heightb + %\ScaledPointsToBigPoints{#1}\left + %\ScaledPointsToBigPoints{\number\!!heighta}\bottom + %\ScaledPointsToBigPoints{\number\!!widtha}\width + %\ScaledPointsToBigPoints{\number\!!heightb}\height + \ScaledPointsToWholeBigPoints{#1}\left + \ScaledPointsToWholeBigPoints{\number\!!heighta}\bottom + \ScaledPointsToWholeBigPoints{\number\!!widtha}\width + \ScaledPointsToWholeBigPoints{\number\!!heightb}\height + \edef\pdf@@screenmode{\ifcase#5/UseNone\else/FullScreen\fi}% + \special + {\@@insertpostscriptretain + [/CropBox [\left\space\bottom\space\width\space\height] + /PAGES + pdfmark}% + \special + {\@@insertpostscriptretain + [/PageMode \pdf@@screenmode\space + /Page 1 + /View [/Fit] + /ViewerPreferences + << /PageLayout /SinglePage + /NonFullScreenPageMode /UseNone >> + /DOCVIEW + pdfmark}% + \egroup} + +\definespecial\dosetupidentity#1#2#3#4#5% + {\special + {\@@insertpostscriptretain + [/Title (#1) + /Subject (#2) + /Author (#3) + /Creator (#4) + /ModificationDate (#5) + /DOCINFO + pdfmark}} + +\definespecial\dostartrunprogram#1#2#3% + {\bgroup + \ScaledPointsToBigPoints{#1}\width + \ScaledPointsToBigPoints{#2}\height + \edef\string{#3}% + \@EA\beforesplitstring\string\at{ }\to\program + \@EA\aftersplitstring \string\at{ }\to\parameters + \special + {\@@insertpostscriptretain + [/Action /Launch + /File (\program) + /Params (\parameters) + /Rect [0 0 \width\space \height] + /Border [0 0 0] + /Subtype /Link + /ANN + pdfmark}% + \egroup} + +\definespecial\dostartgotoprofile#1#2#3% + {\bgroup + \ScaledPointsToBigPoints{#1}\width + \ScaledPointsToBigPoints{#2}\height + \doifsomething{#3} + {\special + {\@@insertpostscriptretain + [/Action /Article + /Dest (#3) + /Rect [0 0 \width\space \height] + /Border [0 0 0] + /View [/Fit] + /Subtype /Link + /ANN + pdfmark}}% + \egroup} + +\def\dobeginofprofile#1#2#3#4% label width height page + {\bgroup + \ScaledPointsToBigPoints{#2}\width + \ScaledPointsToBigPoints{#3}\height + \doifelsenothing{#1} + {\!!doneatrue} + {\!!doneafalse}% + \doifnot{0#4}{0} + {\special + {\@@insertpostscriptretain + [/Title (#1) + /Rect [0 0 \width\space\height] + \if!!donea /Page #4 \fi + /ARTICLE + pdfmark}}% + \egroup} + +\def\doendofprofile% + {} + +\newcounter\currentmovie + +\def\docommoninsertmov#1#2#3#4#5#6#7#8% + {\bgroup + \ScaledPointsToBigPoints{#6}\width + \ScaledPointsToBigPoints{#7}\height + \edef\pdf@@posterize{\ifcase#8 \or/Poster true\fi}% + \doglobal\increment\currentmovie + \special + {\@@insertpostscriptretain + [/Type /Annot + /Subtype /Movie + /Rect [0 0 \width\space \height] + /Movie <</T (movie \currentmovie) /F (#1) /Aspect [\width\space \height] \pdf@@posterize>> + /A <</ShowControls false>> + /ANN + pdfmark}% + \egroup} + +\let\doyyinsertmov=\docommoninsertmov +\let\dotrinsertmov=\docommoninsertmov + +%\definespecial\dostartobject#1#2#3#4% +% {\bgroup +% \setbox\nextbox=\hbox\bgroup +% \bgroup +% \ScaledPointsToBigPoints{#2}\width +% \ScaledPointsToBigPoints{#3}\height +% \ScaledPointsToBigPoints{#4}\depth +% \escapechar=-1 +% \setPDFdestination{#1}% +% \special +% {\@@insertpostscriptretain +% [/BBox [0 -\depth\space \width\space \height] +% /_objdef {\PDFdestination} +% /BP pdfmark}% +% \egroup} + +\definespecial\dostartobject#1#2#3#4% + {\bgroup + \setbox\nextbox=\hbox\bgroup + \bgroup + \ScaledPointsToBigPoints{#2}\width + \ScaledPointsToBigPoints{#3}\height + \ScaledPointsToBigPoints{#4}\depth + \escapechar=-1 + \setPDFdestination{#1}% + \dosetobjectreference{#1}{\PDFdestination}% + \special + {\@@insertpostscriptretain + [/BBox [0 -\depth\space \width\space \height] + /_objdef {\PDFdestination} + /BP pdfmark}% + \egroup} + +\definespecial\dostopobject% + {\special + {\@@insertpostscriptretain + [/EP pdfmark}% + \egroup + \smashbox\nextbox + \flushatshipout{\box\nextbox}% + \egroup} + +%\definespecial\doinsertobject#1% +% {\hbox\bgroup +% \escapechar=-1 +% \setPDFdestination{#1}% +% \special +% {\@@insertpostscriptretain +% [{\PDFdestination} /SP pdfmark}% +% \egroup} + +\definespecial\doinsertobject#1% + {\hbox\bgroup + \dogetobjectreference{#1}\objectreference + \ifx\objectreference\empty \else + \special + {\@@insertpostscriptretain + [{\objectreference} /SP pdfmark}% + \fi + \egroup} + +%\definespecial\dogetobjectreference#1#2% +% {\edef#2{#1}} + +\definespecial\doinsertbookmark#1#2#3#4#5% level sublevels text page open (1) + {\sanitizePDFstring#3\to\bookmarktext + \special + {\@@insertpostscriptretain + [/Page #4\space + \ifnum#2>0 /Count \ifcase#5-\fi#2\space\fi + /View [/Fit] + /Title (\bookmarktext) + /OUT + pdfmark}} + +\def\PDFpagesplit {/S /Split } +\def\PDFpageblinds {/S /Blinds } +\def\PDFpagebox {/S /Box } +\def\PDFpagewipe {/S /Wipe } +\def\PDFpagedissolve {/S /Dissolve } +\def\PDFpageglitter {/S /Glitter } +\def\PDFpagereplace {/S /R } + +\def\PDFpagehorizontal {/Dm /H } +\def\PDFpagevertical {/Dm /V } +\def\PDFpagein {/M /I } +\def\PDFpageout {/M /O } +\def\PDFpageeast {/Di 0 } +\def\PDFpagenorth {/Di 90 } +\def\PDFpagewest {/Di 180 } +\def\PDFpagesouth {/Di 270 } + +\def\dosetPDFpagetransition#1% + {\doifdefined{PDFpage#1} + {\edef\PDFpagetransitions{\PDFpagetransitions\getvalue{PDFpage#1}}}} + +\def\dosetpagetransition#1% + {\let\PDFpagetransitions=\empty + \processcommalist[#1]\dosetPDFpagetransition + \expanded{\global\noexpand\pdfpageattr{/Trans <<\PDFpagetransitions>>}}} + +\def\pagetransitions % replace not in this list + {{split,in,vertical},{split,in,horizontal},{split,out,vertical},{split,out,horizontal}, + {blinds,horizontal},{blinds,vertical}, + {box,in},{box,out}, + {wipe,east},{wipe,west},{wipe,north},{wipe,south}, + dissolve, + {glitter,east},{glitter,south}} + +\stopspecials + +\protect + +\endinput |