You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2045 lines
48 KiB
2045 lines
48 KiB
%%
|
|
%% This is file `pdfmark.def',
|
|
%% generated with the docstrip utility.
|
|
%%
|
|
%% The original source files were:
|
|
%%
|
|
%% hyperref.dtx (with options: `pdfmark,pdfmarkbase,pdfform,outlines')
|
|
%%
|
|
%% File: hyperref.dtx
|
|
%% Copyright
|
|
%% 1995-2001 Sebastian Rahtz, with portions written by David Carlisle and Heiko Oberdiek,
|
|
%% 2001-2015 Heiko Oberdiek.
|
|
%% 2016-2019 Oberdiek Package Support Group
|
|
%% 2019-2020 LaTeX3 Project
|
|
%% https://github.com/latex3/hyperref/issues
|
|
%%
|
|
%% This file is part of the `Hyperref Bundle'.
|
|
%% -------------------------------------------
|
|
%%
|
|
%% This work may be distributed and/or modified under the
|
|
%% conditions of the LaTeX Project Public License, either version 1.3
|
|
%% of this license or (at your option) any later version.
|
|
%% The latest version of this license is in
|
|
%% http://www.latex-project.org/lppl.txt
|
|
%% and version 1.3 or later is part of all distributions of LaTeX
|
|
%% version 2005/12/01 or later.
|
|
%%
|
|
%% This work has the LPPL maintenance status `maintained'.
|
|
%%
|
|
%% The Current Maintainer of this work is the LaTeX3 Project.
|
|
%%
|
|
%% The list of all files belonging to the `Hyperref Bundle' is
|
|
%% given in the file `manifest.txt'.
|
|
%%
|
|
\ProvidesFile{pdfmark.def}
|
|
[2020-05-15 v7.00e %
|
|
Hyperref definitions for pdfmark specials]
|
|
\Hy@VersionCheck{pdfmark.def}
|
|
\begingroup
|
|
\@ifundefined{headerps@out}{}{%
|
|
\toks@\expandafter{\Hy@FirstPageHook}%
|
|
\xdef\Hy@FirstPageHook{%
|
|
\noexpand\headerps@out{%
|
|
systemdict /pdfmark known%
|
|
{%
|
|
userdict /?pdfmark systemdict /exec get put%
|
|
}{%
|
|
userdict /?pdfmark systemdict /pop get put %
|
|
userdict /pdfmark systemdict /cleartomark get put%
|
|
}%
|
|
ifelse%
|
|
}%
|
|
\the\toks@
|
|
}%
|
|
}%
|
|
\endgroup
|
|
\def\Hy@PutCatalog#1{%
|
|
\pdfmark{pdfmark=/PUT,Raw={\string{Catalog\string} <<#1>>}}%
|
|
}
|
|
\ifHy@pdfpagelabels
|
|
\def\HyPL@StorePageLabel#1{%
|
|
\if@filesw
|
|
\begingroup
|
|
\edef\Hy@tempa{\the\Hy@abspage<<#1>>}%
|
|
\immediate\write\@mainaux{%
|
|
\string\HyPL@Entry{\Hy@tempa}%
|
|
}%
|
|
\endgroup
|
|
\fi
|
|
}%
|
|
\Hy@AtBeginDocument{%
|
|
\if@filesw
|
|
\immediate\write\@mainaux{%
|
|
\string\providecommand\string*\string\HyPL@Entry[1]{}%
|
|
}%
|
|
\fi
|
|
\ifx\HyPL@Labels\@empty
|
|
\Hy@WarningNoLine{Rerun to get /PageLabels entry}%
|
|
\else
|
|
\HyPL@SetPageLabels
|
|
\fi
|
|
\let\HyPL@Entry\@gobble
|
|
}%
|
|
\def\HyPL@Entry#1{%
|
|
\expandafter\gdef\expandafter\HyPL@Labels\expandafter{%
|
|
\HyPL@Labels
|
|
#1%
|
|
}%
|
|
}%
|
|
\fi
|
|
\begingroup\expandafter\expandafter\expandafter\endgroup
|
|
\expandafter\ifx\csname pdf@escapestring\endcsname\relax
|
|
\begingroup
|
|
\catcode`\|=0 %
|
|
\@makeother\\%
|
|
|@firstofone{|endgroup
|
|
|def|Hy@pstringdef#1#2{%
|
|
|begingroup
|
|
|edef~{|string~}%
|
|
|xdef|Hy@gtemp{#2}%
|
|
|endgroup
|
|
|let#1|Hy@gtemp
|
|
|@onelevel@sanitize#1%
|
|
|edef#1{|expandafter|Hy@ExchangeBackslash#1\|@nil}%
|
|
|edef#1{|expandafter|Hy@ExchangeLeftParenthesis#1(|@nil}%
|
|
|edef#1{|expandafter|Hy@ExchangeRightParenthesis#1)|@nil}%
|
|
}%
|
|
|def|Hy@ExchangeBackslash#1\#2|@nil{%
|
|
#1%
|
|
|ifx|\#2|\%%
|
|
|else
|
|
\\%
|
|
|ltx@ReturnAfterFi{%
|
|
|Hy@ExchangeBackslash#2|@nil
|
|
}%
|
|
|fi
|
|
}%
|
|
}%
|
|
\def\Hy@ExchangeLeftParenthesis#1(#2\@nil{%
|
|
#1%
|
|
\ifx\\#2\\%
|
|
\else
|
|
\@backslashchar(%
|
|
\ltx@ReturnAfterFi{%
|
|
\Hy@ExchangeLeftParenthesis#2\@nil
|
|
}%
|
|
\fi
|
|
}%
|
|
\def\Hy@ExchangeRightParenthesis#1)#2\@nil{%
|
|
#1%
|
|
\ifx\\#2\\%
|
|
\else
|
|
\@backslashchar)%
|
|
\ltx@ReturnAfterFi{%
|
|
\Hy@ExchangeRightParenthesis#2\@nil
|
|
}%
|
|
\fi
|
|
}%
|
|
\else
|
|
\def\Hy@pstringdef#1#2{%
|
|
\begingroup
|
|
\edef~{\string~}%
|
|
\xdef\Hy@gtemp{\pdf@escapestring{#2}}%
|
|
\endgroup
|
|
\let#1\Hy@gtemp
|
|
}%
|
|
\fi
|
|
\def\Hy@DistillerDestFix{%
|
|
\begingroup
|
|
\let\x\literalps@out
|
|
\ifnum \@ifundefined{OpMode}{0}{%
|
|
\@ifundefined{gexmode}{0}{%
|
|
\ifnum\gexmode>0 \OpMode\else 0\fi
|
|
}}>1 %
|
|
\def\x##1{%
|
|
\immediate\special{!=##1}%
|
|
}%
|
|
\fi
|
|
\x{%
|
|
/product where{%
|
|
pop %
|
|
product(Distiller)search{%
|
|
pop pop pop %
|
|
version(.)search{%
|
|
exch pop exch pop%
|
|
(3011)eq{%
|
|
gsave %
|
|
newpath 0 0 moveto closepath clip%
|
|
/Courier findfont 10 scalefont setfont %
|
|
72 72 moveto(.)show %
|
|
grestore%
|
|
}if%
|
|
}{pop}ifelse%
|
|
}{pop}ifelse%
|
|
}if%
|
|
}%
|
|
\endgroup
|
|
}
|
|
\Hy@breaklinks@unsupported
|
|
\def\HyPat@ObjRef{%
|
|
\{[^{}]+\}%
|
|
}
|
|
\Hy@WrapperDef\hyper@anchor#1{%
|
|
\Hy@SaveLastskip
|
|
\Hy@VerboseAnchor{#1}%
|
|
\begingroup
|
|
\pdfmark[\anchor@spot]{%
|
|
pdfmark=/DEST,%
|
|
linktype=anchor,%
|
|
View=/\@pdfview \@pdfviewparams,%
|
|
DestAnchor={#1}%
|
|
}%
|
|
\endgroup
|
|
\Hy@RestoreLastskip
|
|
}
|
|
\ltx@IfUndefined{hyper@anchorstart}{}{\endinput}
|
|
\Hy@WrapperDef\hyper@anchorstart#1{%
|
|
\Hy@SaveLastskip
|
|
\Hy@VerboseAnchor{#1}%
|
|
\literalps@out{H.S}%
|
|
\Hy@AllowHyphens
|
|
\xdef\hyper@currentanchor{#1}%
|
|
\Hy@activeanchortrue
|
|
}
|
|
\def\hyper@anchorend{%
|
|
\literalps@out{\strip@pt@and@otherjunk\baselineskip\space H.A}%
|
|
\pdfmark{%
|
|
pdfmark=/DEST,%
|
|
linktype=anchor,%
|
|
View=/\@pdfview \@pdfviewparams,%
|
|
DestAnchor=\hyper@currentanchor,%
|
|
}%
|
|
\Hy@activeanchorfalse
|
|
\Hy@RestoreLastskip
|
|
}
|
|
\def\hyper@linkstart#1#2{%
|
|
\Hy@VerboseLinkStart{#1}{#2}%
|
|
\ifHy@breaklinks
|
|
\else
|
|
\leavevmode
|
|
\ifmmode
|
|
\def\Hy@LinkMath{$}%
|
|
\else
|
|
\let\Hy@LinkMath\ltx@empty
|
|
\fi
|
|
\Hy@SaveSpaceFactor
|
|
\hbox\bgroup
|
|
\Hy@RestoreSpaceFactor
|
|
\Hy@LinkMath
|
|
\fi
|
|
\expandafter\Hy@colorlink\csname @#1color\endcsname
|
|
\literalps@out{H.S}%
|
|
\Hy@AllowHyphens
|
|
\xdef\hyper@currentanchor{#2}%
|
|
\gdef\hyper@currentlinktype{#1}%
|
|
}
|
|
\def\hyper@linkend{%
|
|
\literalps@out{\strip@pt@and@otherjunk\baselineskip\space H.L}%
|
|
\ltx@IfUndefined{@\hyper@currentlinktype bordercolor}{%
|
|
\let\Hy@tempcolor\relax
|
|
}{%
|
|
\edef\Hy@tempcolor{%
|
|
\csname @\hyper@currentlinktype bordercolor\endcsname
|
|
}%
|
|
}%
|
|
\pdfmark{%
|
|
pdfmark=/ANN,%
|
|
linktype=link,%
|
|
Subtype=/Link,%
|
|
PDFAFlags=4,%
|
|
Dest=\hyper@currentanchor,%
|
|
AcroHighlight=\@pdfhighlight,%
|
|
Border=\@pdfborder,%
|
|
BorderStyle=\@pdfborderstyle,%
|
|
Color=\Hy@tempcolor,%
|
|
Raw=H.B%
|
|
}%
|
|
\Hy@endcolorlink
|
|
\ifHy@breaklinks
|
|
\else
|
|
\Hy@LinkMath
|
|
\Hy@SaveSpaceFactor
|
|
\egroup
|
|
\Hy@RestoreSpaceFactor
|
|
\fi
|
|
}
|
|
\begingroup
|
|
\catcode`P=12 %
|
|
\catcode`T=12 %
|
|
\lowercase{\endgroup
|
|
\gdef\rem@ptetc#1.#2PT#3!{#1\ifnum#2>\z@.#2\fi}%
|
|
}
|
|
\def\strip@pt@and@otherjunk#1{\expandafter\rem@ptetc\the#1!}
|
|
\def\hyper@pagetransition{%
|
|
\ifx\@pdfpagetransition\relax
|
|
\else
|
|
\ifx\@pdfpagetransition\@empty
|
|
% 1. Does an old entry have to be deleted?
|
|
% 2. If 1=yes, how to delete?
|
|
\else
|
|
\pdfmark{%
|
|
pdfmark=/PUT,%
|
|
Raw={%
|
|
\string{ThisPage\string}%
|
|
<</Trans << /S /\@pdfpagetransition\space >> >>%
|
|
}%
|
|
}%
|
|
\fi
|
|
\fi
|
|
}
|
|
\def\hyper@pageduration{%
|
|
\ifx\@pdfpageduration\relax
|
|
\else
|
|
\ifx\@pdfpageduration\@empty
|
|
% 1. Does an old entry have to be deleted?
|
|
% 2. If 1=yes, how to delete?
|
|
\else
|
|
\pdfmark{%
|
|
pdfmark=/PUT,%
|
|
Raw={%
|
|
\string{ThisPage\string}%
|
|
<</Dur \@pdfpageduration>>%
|
|
}%
|
|
}%
|
|
\fi
|
|
\fi
|
|
}
|
|
\def\hyper@pagehidden{%
|
|
\ifHy@useHidKey
|
|
\pdfmark{%
|
|
pdfmark=/PUT,%
|
|
Raw={%
|
|
\string{ThisPage\string}%
|
|
<</Hid \ifHy@pdfpagehidden true\else false\fi>>%
|
|
}%
|
|
}%
|
|
\fi
|
|
}
|
|
\g@addto@macro\Hy@EveryPageBoxHook{%
|
|
\hyper@pagetransition
|
|
\hyper@pageduration
|
|
\hyper@pagehidden
|
|
}
|
|
\def\hyper@image#1#2{%
|
|
\hyper@linkurl{#2}{#1}%
|
|
}
|
|
\def\Hy@undefinedname{UNDEFINED}
|
|
\def\hyper@link#1#2#3{%
|
|
\Hy@VerboseLinkStart{#1}{#2}%
|
|
\ltx@IfUndefined{@#1bordercolor}{%
|
|
\let\Hy@tempcolor\relax
|
|
}{%
|
|
\edef\Hy@tempcolor{\csname @#1bordercolor\endcsname}%
|
|
}%
|
|
\begingroup
|
|
\protected@edef\Hy@testname{#2}%
|
|
\ifx\Hy@testname\@empty
|
|
\Hy@Warning{%
|
|
Empty destination name,\MessageBreak
|
|
using `\Hy@undefinedname'%
|
|
}%
|
|
\let\Hy@testname\Hy@undefinedname
|
|
\fi
|
|
\pdfmark[{#3}]{%
|
|
Color=\Hy@tempcolor,%
|
|
linktype={#1},%
|
|
AcroHighlight=\@pdfhighlight,%
|
|
Border=\@pdfborder,%
|
|
BorderStyle=\@pdfborderstyle,%
|
|
pdfmark=/ANN,%
|
|
Subtype=/Link,%
|
|
PDFAFlags=4,%
|
|
Dest=\Hy@testname
|
|
}%
|
|
\endgroup
|
|
}
|
|
\newtoks\pdf@docset
|
|
\def\PDF@FinishDoc{%
|
|
\Hy@UseMaketitleInfos
|
|
\HyInfo@GenerateAddons
|
|
\let\Hy@temp\@empty
|
|
\ifx\@pdfcreationdate\@empty
|
|
\else
|
|
\def\Hy@temp{CreationDate=\@pdfcreationdate,}%
|
|
\fi
|
|
\ifx\@pdfmoddate\@empty
|
|
\else
|
|
\expandafter\def\expandafter\Hy@temp\expandafter{%
|
|
\Hy@temp
|
|
ModDate=\@pdfmoddate,%
|
|
}%
|
|
\fi
|
|
\ifx\@pdfproducer\relax
|
|
\else
|
|
\expandafter\def\expandafter\Hy@temp\expandafter{%
|
|
\Hy@temp
|
|
Producer=\@pdfproducer,%
|
|
}%
|
|
\fi
|
|
\expandafter
|
|
\pdfmark\expandafter{%
|
|
\Hy@temp
|
|
pdfmark=/DOCINFO,%
|
|
Title=\@pdftitle,%
|
|
Subject=\@pdfsubject,%
|
|
Creator=\@pdfcreator,%
|
|
Author=\@pdfauthor,%
|
|
Keywords=\@pdfkeywords,%
|
|
Trapped=\@pdftrapped
|
|
}%
|
|
\ifx\HyInfo@Addons\@empty
|
|
\else
|
|
\pdfmark{%
|
|
pdfmark=/DOCINFO,%
|
|
Raw={\HyInfo@Addons}%
|
|
}%
|
|
\fi
|
|
\Hy@DisableOption{pdfauthor}%
|
|
\Hy@DisableOption{pdftitle}%
|
|
\Hy@DisableOption{pdfsubject}%
|
|
\Hy@DisableOption{pdfcreator}%
|
|
\Hy@DisableOption{addtopdfcreator}%
|
|
\Hy@DisableOption{pdfcreationdate}%
|
|
\Hy@DisableOption{pdfcreationdate}%
|
|
\Hy@DisableOption{pdfmoddate}%
|
|
\Hy@DisableOption{pdfproducer}%
|
|
\Hy@DisableOption{pdfkeywords}%
|
|
\Hy@DisableOption{pdftrapped}%
|
|
\Hy@DisableOption{pdfinfo}%
|
|
}
|
|
\def\PDF@SetupDoc{%
|
|
\def\Hy@temp{}%
|
|
\ifx\@pdfstartpage\@empty
|
|
\else
|
|
\ifx\@pdfstartview\@empty
|
|
\else
|
|
\edef\Hy@temp{%
|
|
,Page=\@pdfstartpage
|
|
,View=\@pdfstartview
|
|
}%
|
|
\fi
|
|
\fi
|
|
\edef\Hy@temp{%
|
|
\noexpand\pdfmark{%
|
|
pdfmark=/DOCVIEW,%
|
|
PageMode=/\@pdfpagemode
|
|
\Hy@temp
|
|
}%
|
|
}%
|
|
\Hy@temp
|
|
\ifx\@pdfpagescrop\@empty
|
|
\else
|
|
\pdfmark{pdfmark=/PAGES,CropBox=\@pdfpagescrop}%
|
|
\fi
|
|
\edef\Hy@temp{%
|
|
\ifHy@pdftoolbar\else /HideToolbar true\fi
|
|
\ifHy@pdfmenubar\else /HideMenubar true\fi
|
|
\ifHy@pdfwindowui\else /HideWindowUI true\fi
|
|
\ifHy@pdffitwindow /FitWindow true\fi
|
|
\ifHy@pdfcenterwindow /CenterWindow true\fi
|
|
\ifHy@pdfdisplaydoctitle /DisplayDocTitle true\fi
|
|
\Hy@UseNameKey{NonFullScreenPageMode}\@pdfnonfullscreenpagemode
|
|
\Hy@UseNameKey{Direction}\@pdfdirection
|
|
\Hy@UseNameKey{ViewArea}\@pdfviewarea
|
|
\Hy@UseNameKey{ViewClip}\@pdfviewclip
|
|
\Hy@UseNameKey{PrintArea}\@pdfprintarea
|
|
\Hy@UseNameKey{PrintClip}\@pdfprintclip
|
|
\Hy@UseNameKey{PrintScaling}\@pdfprintscaling
|
|
\Hy@UseNameKey{Duplex}\@pdfduplex
|
|
\ifx\@pdfpicktraybypdfsize\@empty
|
|
\else
|
|
/PickTrayByPDFSize \@pdfpicktraybypdfsize
|
|
\fi
|
|
\ifx\@pdfprintpagerange\@empty
|
|
\else
|
|
/PrintPageRange[\@pdfprintpagerange]%
|
|
\fi
|
|
\ifx\@pdfnumcopies\@empty
|
|
\else
|
|
/NumCopies \@pdfnumcopies
|
|
\fi
|
|
}%
|
|
\Hy@pstringdef\Hy@pstringB{\@baseurl}%
|
|
\pdfmark{%
|
|
pdfmark=/PUT,%
|
|
Raw={%
|
|
\string{Catalog\string}<<%
|
|
\ifx\Hy@temp\@empty
|
|
\else
|
|
/ViewerPreferences<<\Hy@temp>>%
|
|
\fi
|
|
\Hy@UseNameKey{PageLayout}\@pdfpagelayout
|
|
\ifx\@pdflang\relax
|
|
\else
|
|
/Lang(\@pdflang)%
|
|
\fi
|
|
\ifx\@baseurl\@empty
|
|
\else
|
|
/URI<</Base(\Hy@pstringB)>>%
|
|
\fi
|
|
>>%
|
|
}%
|
|
}%
|
|
}
|
|
\newif\ifHy@pdfmarkerror
|
|
\def\pdfmark{\@ifnextchar[{\pdfmark@}{\pdfmark@[]}}
|
|
\def\pdfmark@[#1]#2{%
|
|
\Hy@pdfmarkerrorfalse
|
|
\edef\@processme{\noexpand\pdf@toks={\the\pdf@defaulttoks}}%
|
|
\@processme
|
|
\let\pdf@type\relax
|
|
\let\pdf@objdef\ltx@empty
|
|
\kvsetkeys{PDF}{#2}%
|
|
\ifHy@pdfmarkerror
|
|
\else
|
|
\ifx\pdf@type\relax
|
|
\Hy@WarningNoLine{no pdfmark type specified in #2!!}%
|
|
\ifx\\#1\\%
|
|
\else
|
|
\pdf@rect{#1}%
|
|
\fi
|
|
\else
|
|
\ifx\\#1\\%
|
|
\literalps@out{%
|
|
[%
|
|
\ifx\pdf@objdef\ltx@empty
|
|
\else
|
|
/_objdef\string{\pdf@objdef\string}%
|
|
\fi
|
|
\the\pdf@toks\space\pdf@type\space pdfmark%
|
|
}%
|
|
\else
|
|
\ltx@IfUndefined{@\pdf@linktype color}{%
|
|
\Hy@colorlink\@linkcolor
|
|
}{%
|
|
\expandafter\Hy@colorlink
|
|
\csname @\pdf@linktype color\endcsname
|
|
}%
|
|
\pdf@rect{#1}%
|
|
\literalps@out{%
|
|
[%
|
|
\ifx\pdf@objdef\ltx@empty
|
|
\else
|
|
/_objdef\string{\pdf@objdef\string}%
|
|
\fi
|
|
\the\pdf@toks\space\pdf@type\space pdfmark%
|
|
}%
|
|
\Hy@endcolorlink
|
|
\fi
|
|
\fi
|
|
\fi
|
|
}
|
|
\newsavebox{\pdf@box}
|
|
\providecommand*{\Hy@setouterhbox}{\sbox}
|
|
\providecommand*{\Hy@breaklinksunhbox}{\unhbox}
|
|
\def\Hy@DEST{/DEST}
|
|
\def\pdf@rect#1{%
|
|
\begingroup
|
|
\chardef\x=1 %
|
|
\def\Hy@temp{#1}%
|
|
\ifx\Hy@temp\ltx@empty
|
|
\chardef\x=0 %
|
|
\else
|
|
\def\y{\anchor@spot}%
|
|
\ifx\Hy@temp\y
|
|
\def\y{\relax}%
|
|
\ifx\anchor@spot\y
|
|
\chardef\x=0 %
|
|
\fi
|
|
\fi
|
|
\fi
|
|
\expandafter\endgroup
|
|
\ifcase\x
|
|
\literalps@out{H.S}%
|
|
\literalps@out{H.R}%
|
|
\else
|
|
\leavevmode
|
|
\Hy@SaveSpaceFactor
|
|
\ifmmode
|
|
\def\Hy@LinkMath{$}%
|
|
\else
|
|
\let\Hy@LinkMath\ltx@empty
|
|
\fi
|
|
\ifHy@breaklinks
|
|
\Hy@setouterhbox\pdf@box{%
|
|
\Hy@RestoreSpaceFactor
|
|
\Hy@LinkMath
|
|
\Hy@AllowHyphens#1\Hy@xspace@end
|
|
\Hy@LinkMath
|
|
\Hy@SaveSpaceFactor
|
|
}%
|
|
\else
|
|
\sbox\pdf@box{%
|
|
\Hy@RestoreSpaceFactor
|
|
\Hy@LinkMath
|
|
#1\Hy@xspace@end
|
|
\Hy@LinkMath
|
|
\Hy@SaveSpaceFactor
|
|
}%
|
|
\fi
|
|
\dimen@\ht\pdf@box
|
|
\ifdim\dp\pdf@box=\z@
|
|
\literalps@out{H.S}%
|
|
\else
|
|
\lower\dp\pdf@box\hbox{\literalps@out{H.S}}%
|
|
\fi
|
|
\ifHy@breaklinks
|
|
\ifhmode
|
|
\Hy@breaklinksunhbox\pdf@box
|
|
\else
|
|
\box\pdf@box
|
|
\fi
|
|
\else
|
|
\expandafter\box\pdf@box
|
|
\fi
|
|
\ifdim\dimen@=\z@
|
|
\literalps@out{H.R}%
|
|
\else
|
|
\raise\dimen@\hbox{\literalps@out{H.R}}%
|
|
\fi
|
|
\Hy@RestoreSpaceFactor
|
|
\fi
|
|
\ifx\pdf@type\Hy@DEST
|
|
\else
|
|
\pdf@addtoksx{H.B}%
|
|
\fi
|
|
}
|
|
\newtoks\pdf@toks
|
|
\newtoks\pdf@defaulttoks
|
|
\pdf@defaulttoks={}%
|
|
\def\pdf@addtoks#1#2{%
|
|
\edef\@processme{\pdf@toks{\the\pdf@toks/#2 #1}}%
|
|
\@processme
|
|
}
|
|
\def\pdf@addtoksx#1{%
|
|
\edef\@processme{\pdf@toks{\the\pdf@toks\space #1}}%
|
|
\@processme
|
|
}
|
|
\def\PDFdefaults#1{%
|
|
\pdf@defaulttoks={#1}%
|
|
}
|
|
\define@key{PDF}{pdfmark}{\def\pdf@type{#1}}
|
|
\define@key{PDF}{linktype}{\def\pdf@linktype{#1}}
|
|
\def\pdf@linktype{link}
|
|
\define@key{PDF}{objdef}{\edef\pdf@objdef{#1}}
|
|
\let\pdf@objdef\ltx@empty
|
|
\define@key{PDF}{Raw}{\pdf@addtoksx{#1}}
|
|
\define@key{PDF}{Action}{\pdf@addtoks{#1}{Action}}
|
|
\define@key{PDF}{Border}{%
|
|
\edef\Hy@temp{#1}%
|
|
\ifx\Hy@temp\@empty
|
|
\else
|
|
\pdf@addtoks{[#1]\Hy@BorderArrayPatch}{Border}% hash-ok
|
|
\fi
|
|
}
|
|
\let\Hy@BorderArrayPatch\@empty
|
|
\define@key{PDF}{BorderStyle}{%
|
|
\edef\Hy@temp{#1}%
|
|
\ifx\Hy@temp\@empty
|
|
\else
|
|
\pdf@addtoks{<<#1>>}{BS}%
|
|
\fi
|
|
}
|
|
\define@key{PDF}{Color}{%
|
|
\ifx\relax#1\relax
|
|
\else
|
|
\pdf@addtoks{[#1]}{Color}% hash-ok
|
|
\fi
|
|
}
|
|
\define@key{PDF}{Contents}{\pdf@addtoks{(#1)}{Contents}}
|
|
\define@key{PDF}{Count}{\pdf@addtoks{#1}{Count}}
|
|
\define@key{PDF}{CropBox}{\pdf@addtoks{[#1]}{CropBox}}% hash-ok
|
|
\define@key{PDF}{DOSFile}{\pdf@addtoks{(#1)}{DOSFile}}
|
|
\define@key{PDF}{DataSource}{\pdf@addtoks{(#1)}{DataSource}}
|
|
\define@key{PDF}{Dest}{%
|
|
\Hy@pstringdef\Hy@pstringDest{\HyperDestNameFilter{#1}}%
|
|
\ifx\Hy@pstringDest\@empty
|
|
\Hy@pdfmarkerrortrue
|
|
\Hy@Warning{Destination with empty name ignored}%
|
|
\else
|
|
\pdf@addtoks{(\Hy@pstringDest) cvn}{Dest}%
|
|
\fi
|
|
}
|
|
\define@key{PDF}{DestAnchor}{%
|
|
\Hy@pstringdef\Hy@pstringDest{\HyperDestNameFilter{#1}}%
|
|
\ifx\Hy@pstringDest\@empty
|
|
\Hy@pdfmarkerrortrue
|
|
\Hy@Warning{Destination with empty name ignored}%
|
|
\else
|
|
\pdf@addtoks{(\Hy@pstringDest) cvn}{Dest}%
|
|
\fi
|
|
}
|
|
\define@key{PDF}{Dir}{\pdf@addtoks{(#1)}{Dir}}
|
|
\define@key{PDF}{File}{\pdf@addtoks{(#1)}{File}}
|
|
\define@key{PDF}{Flags}{\pdf@addtoks{#1}{Flags}}
|
|
\define@key{PDF}{PDFAFlags}{%
|
|
\ifHy@pdfa
|
|
\pdf@addtoks{#1}{F}%
|
|
\fi
|
|
}
|
|
\define@key{PDF}{AcroHighlight}{%
|
|
\begingroup
|
|
\edef\x{#1}%
|
|
\expandafter\endgroup\ifx\x\@empty
|
|
\else
|
|
\pdf@addtoks{#1}{H}%
|
|
\fi
|
|
}
|
|
\define@key{PDF}{ID}{\pdf@addtoks{[#1]}{ID}}% hash-ok
|
|
\define@key{PDF}{MacFile}{\pdf@addtoks{(#1)}{MacFile}}
|
|
\define@key{PDF}{ModDate}{\pdf@addtoks{(#1)}{ModDate}}
|
|
\define@key{PDF}{Op}{\pdf@addtoks{(#1)}{Op}}
|
|
\define@key{PDF}{Open}{\pdf@addtoks{#1}{Open}}
|
|
\define@key{PDF}{Page}{\pdf@addtoks{#1}{Page}}
|
|
\define@key{PDF}{PageMode}{\pdf@addtoks{#1}{PageMode}}
|
|
\define@key{PDF}{Params}{\pdf@addtoks{(#1)}{Params}}
|
|
\define@key{PDF}{Rect}{\pdf@addtoks{[#1]}{Rect}}% hash-ok
|
|
\define@key{PDF}{SrcPg}{\pdf@addtoks{#1}{SrcPg}}
|
|
\define@key{PDF}{Subtype}{\pdf@addtoks{#1}{Subtype}}
|
|
\define@key{PDF}{Title}{\pdf@addtoks{(#1)}{Title}}
|
|
\define@key{PDF}{Unix}{\pdf@addtoks{(#1)}{Unix}}
|
|
\define@key{PDF}{UnixFile}{\pdf@addtoks{(#1)}{UnixFile}}
|
|
\define@key{PDF}{View}{\pdf@addtoks{[#1]}{View}}% hash-ok
|
|
\define@key{PDF}{WinFile}{\pdf@addtoks{(#1)}{WinFile}}
|
|
\define@key{PDF}{Author}{\pdf@addtoks{(#1)}{Author}}
|
|
\define@key{PDF}{Creator}{\pdf@addtoks{(#1)}{Creator}}
|
|
\define@key{PDF}{CreationDate}{\pdf@addtoks{(#1)}{CreationDate}}
|
|
\define@key{PDF}{ModDate}{\pdf@addtoks{(#1)}{ModDate}}
|
|
\define@key{PDF}{Producer}{\pdf@addtoks{(#1)}{Producer}}
|
|
\define@key{PDF}{Subject}{\pdf@addtoks{(#1)}{Subject}}
|
|
\define@key{PDF}{Keywords}{\pdf@addtoks{(#1)}{Keywords}}
|
|
\define@key{PDF}{ModDate}{\pdf@addtoks{(#1)}{ModDate}}
|
|
\define@key{PDF}{Base}{\pdf@addtoks{(#1)}{Base}}
|
|
\define@key{PDF}{URI}{\pdf@addtoks{#1}{URI}}
|
|
\define@key{PDF}{Trapped}{%
|
|
\edef\Hy@temp{#1}%
|
|
\ifx\Hy@temp\@empty
|
|
\else
|
|
\pdf@addtoks{/#1}{Trapped}%
|
|
\fi
|
|
}
|
|
|
|
\def\Acrobatmenu#1#2{%
|
|
\EdefEscapeName\Hy@temp@menu{#1}%
|
|
\Hy@Acrobatmenu{#1}{#2}{%
|
|
\pdfmark[{#2}]{%
|
|
linktype=menu,%
|
|
pdfmark=/ANN,%
|
|
AcroHighlight=\@pdfhighlight,%
|
|
Border=\@pdfborder,%
|
|
BorderStyle=\@pdfborderstyle,%
|
|
Color=\@menubordercolor,%
|
|
Action={<</Subtype/Named/N/\Hy@temp@menu>>},%
|
|
Subtype=/Link,%
|
|
PDFAFlags=4%
|
|
}%
|
|
}%
|
|
}
|
|
\def\PDFNextPage{\@ifnextchar[{\PDFNextPage@}{\PDFNextPage@[]}}
|
|
\def\PDFNextPage@[#1]#2{%
|
|
\pdfmark[{#2}]{%
|
|
#1,%
|
|
Border=\@pdfborder,%
|
|
BorderStyle=\@pdfborderstyle,%
|
|
Color=.2 .1 .5,%
|
|
pdfmark=/ANN,%
|
|
Subtype=/Link,%
|
|
PDFAFlags=4,%
|
|
Page=/Next%
|
|
}%
|
|
}
|
|
\def\PDFPreviousPage{%
|
|
\@ifnextchar[{\PDFPreviousPage@}{\PDFPreviousPage@[]}%
|
|
}
|
|
\def\PDFPreviousPage@[#1]#2{%
|
|
\pdfmark[{#2}]{%
|
|
#1,%
|
|
Border=\@pdfborder,%
|
|
BorderStyle=\@pdfborderstyle,%
|
|
Color=.4 .4 .1,%
|
|
pdfmark=/ANN,%
|
|
Subtype=/Link,%
|
|
PDFAFlags=4,%
|
|
Page=/Prev%
|
|
}%
|
|
}
|
|
\def\PDFOpen#1{%
|
|
\pdfmark{#1,pdfmark=/DOCVIEW}%
|
|
}
|
|
\def\hyper@linkurl#1#2{%
|
|
\begingroup
|
|
\Hy@pstringdef\Hy@pstringURI{#2}%
|
|
\hyper@chars
|
|
\leavevmode
|
|
\pdfmark[{#1}]{%
|
|
pdfmark=/ANN,%
|
|
linktype=url,%
|
|
AcroHighlight=\@pdfhighlight,%
|
|
Border=\@pdfborder,%
|
|
BorderStyle=\@pdfborderstyle,%
|
|
Color=\@urlbordercolor,%
|
|
Action={<<%
|
|
/Subtype/URI%
|
|
/URI(\Hy@pstringURI)%
|
|
\ifHy@href@ismap
|
|
/IsMap true%
|
|
\fi
|
|
>>},%
|
|
Subtype=/Link,%
|
|
PDFAFlags=4%
|
|
}%
|
|
\endgroup
|
|
}
|
|
\def\hyper@linkfile#1#2#3{%
|
|
\begingroup
|
|
\def\Hy@pstringF{#2}%
|
|
\Hy@CleanupFile\Hy@pstringF
|
|
\Hy@pstringdef\Hy@pstringF\Hy@pstringF
|
|
\Hy@pstringdef\Hy@pstringD{#3}%
|
|
\Hy@MakeRemoteAction
|
|
\leavevmode
|
|
\pdfmark[{#1}]{%
|
|
pdfmark=/ANN,%
|
|
Subtype=/Link,%
|
|
PDFAFlags=4,%
|
|
AcroHighlight=\@pdfhighlight,%
|
|
Border=\@pdfborder,%
|
|
BorderStyle=\@pdfborderstyle,%
|
|
linktype=file,%
|
|
Color=\@filebordercolor,%
|
|
Action={%
|
|
<<%
|
|
/S/GoToR%
|
|
\Hy@SetNewWindow
|
|
/F(\Hy@pstringF)%
|
|
/D%
|
|
\ifx\\#3\\%
|
|
[\Hy@href@page\@pdfremotestartview]%
|
|
\else
|
|
(\Hy@pstringD)cvn%
|
|
\fi
|
|
\Hy@href@nextactionraw
|
|
>>%
|
|
}%
|
|
}%
|
|
\endgroup
|
|
}
|
|
\def\@hyper@launch run:#1\\#2#3{%
|
|
\begingroup
|
|
\Hy@pstringdef\Hy@pstringF{#1}%
|
|
\Hy@pstringdef\Hy@pstringP{#3}%
|
|
\leavevmode
|
|
\pdfmark[{#2}]{%
|
|
pdfmark=/ANN,%
|
|
Subtype=/Link,%
|
|
PDFAFlags=4,%
|
|
AcroHighlight=\@pdfhighlight,%
|
|
Border=\@pdfborder,%
|
|
BorderStyle=\@pdfborderstyle,%
|
|
linktype=run,%
|
|
Color=\@runbordercolor,%
|
|
Action={%
|
|
<<%
|
|
/S/Launch%
|
|
\Hy@SetNewWindow
|
|
/F(\Hy@pstringF)%
|
|
\ifx\\#3\\%
|
|
\else
|
|
/Win<</P(\Hy@pstringP)/F(\Hy@pstringF)>>%
|
|
\fi
|
|
\Hy@href@nextactionraw
|
|
>>%
|
|
}%
|
|
}%
|
|
\endgroup
|
|
}
|
|
\long\def\@Form[#1]{%
|
|
\g@addto@macro\Hy@FirstPageHook{%
|
|
\headerps@out{%
|
|
[%
|
|
/_objdef{pdfDocEncoding}%
|
|
/type/dict%
|
|
/OBJ pdfmark%
|
|
[%
|
|
{pdfDocEncoding}%
|
|
<<%
|
|
/Type/Encoding%
|
|
/Differences[%
|
|
24/breve/caron/circumflex/dotaccent/hungarumlaut/ogonek/ring%
|
|
/tilde %
|
|
39/quotesingle %
|
|
96/grave %
|
|
128/bullet/dagger/daggerdbl/ellipsis/emdash/endash/florin%
|
|
/fraction/guilsinglleft/guilsinglright/minus/perthousand%
|
|
/quotedblbase/quotedblleft/quotedblright/quoteleft%
|
|
/quoteright/quotesinglbase/trademark/fi/fl/Lslash/OE/Scaron%
|
|
/Ydieresis/Zcaron/dotlessi/lslash/oe/scaron/zcaron %
|
|
164/currency %
|
|
166/brokenbar %
|
|
168/dieresis/copyright/ordfeminine %
|
|
172/logicalnot/.notdef/registered/macron/degree/plusminus%
|
|
/twosuperior/threesuperior/acute/mu %
|
|
183/periodcentered/cedilla/onesuperior/ordmasculine %
|
|
188/onequarter/onehalf/threequarters %
|
|
192/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE%
|
|
/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave%
|
|
/Iacute/Icircumflex/Idieresis/Eth/Ntilde/Ograve/Oacute%
|
|
/Ocircumflex/Otilde/Odieresis/multiply/Oslash/Ugrave%
|
|
/Uacute/Ucircumflex/Udieresis/Yacute/Thorn/germandbls%
|
|
/agrave/aacute/acircumflex/atilde/adieresis/aring/ae%
|
|
/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave%
|
|
/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute%
|
|
/ocircumflex/otilde/odieresis/divide/oslash/ugrave/uacute%
|
|
/ucircumflex/udieresis/yacute/thorn/ydieresis%
|
|
]%
|
|
>>%
|
|
/PUT pdfmark%
|
|
[%
|
|
/_objdef{ZaDb}%
|
|
/type/dict%
|
|
/OBJ pdfmark%
|
|
[%
|
|
{ZaDb}%
|
|
<<%
|
|
/Type/Font%
|
|
/Subtype/Type1%
|
|
/Name/ZaDb%
|
|
/BaseFont/ZapfDingbats%
|
|
>>%
|
|
/PUT pdfmark%
|
|
[%
|
|
/_objdef{Helv}%
|
|
/type/dict%
|
|
/OBJ pdfmark%
|
|
[%
|
|
{Helv}%
|
|
<<%
|
|
/Type/Font%
|
|
/Subtype/Type1%
|
|
/Name/Helv%
|
|
/BaseFont/Helvetica%
|
|
/Encoding{pdfDocEncoding}%
|
|
>>%
|
|
/PUT pdfmark%
|
|
[%
|
|
/_objdef{aform}%
|
|
/type/dict%
|
|
/OBJ pdfmark%
|
|
[%
|
|
/_objdef{afields}%
|
|
/type/array%
|
|
/OBJ pdfmark%
|
|
[%
|
|
/_objdef{corder}%
|
|
/type/array%
|
|
/OBJ pdfmark%
|
|
{%
|
|
[%
|
|
/BBox[0 0 100 100]%
|
|
/_objdef{Check}%
|
|
/BP pdfmark %
|
|
1 0 0 setrgbcolor%
|
|
/ZapfDingbats 80 selectfont %
|
|
20 20 moveto%
|
|
(4)show%
|
|
[/EP pdfmark%
|
|
[%
|
|
/BBox[0 0 100 100]%
|
|
/_objdef{Cross}%
|
|
/BP pdfmark %
|
|
1 0 0 setrgbcolor%
|
|
/ZapfDingbats 80 selectfont %
|
|
20 20 moveto%
|
|
(8)show%
|
|
[/EP pdfmark%
|
|
[%
|
|
/BBox[0 0 250 100]%
|
|
/_objdef{Submit}%
|
|
/BP pdfmark %
|
|
0.6 setgray %
|
|
0 0 250 100 rectfill %
|
|
1 setgray %
|
|
2 2 moveto %
|
|
2 98 lineto %
|
|
248 98 lineto %
|
|
246 96 lineto %
|
|
4 96 lineto %
|
|
4 4 lineto %
|
|
fill %
|
|
0.34 setgray %
|
|
248 98 moveto %
|
|
248 2 lineto %
|
|
2 2 lineto %
|
|
4 4 lineto %
|
|
246 4 lineto %
|
|
246 96 lineto %
|
|
fill%
|
|
/Helvetica 76 selectfont %
|
|
0 setgray %
|
|
8 22.5 moveto%
|
|
(Submit)show%
|
|
[/EP pdfmark%
|
|
[%
|
|
/BBox[0 0 250 100]%
|
|
/_objdef{SubmitP}%
|
|
/BP pdfmark %
|
|
0.6 setgray %
|
|
0 0 250 100 rectfill %
|
|
0.34 setgray %
|
|
2 2 moveto %
|
|
2 98 lineto %
|
|
248 98 lineto %
|
|
246 96 lineto %
|
|
4 96 lineto %
|
|
4 4 lineto %
|
|
fill %
|
|
1 setgray %
|
|
248 98 moveto %
|
|
248 2 lineto %
|
|
2 2 lineto %
|
|
4 4 lineto %
|
|
246 4 lineto %
|
|
246 96 lineto %
|
|
fill%
|
|
/Helvetica 76 selectfont %
|
|
0 setgray %
|
|
10 20.5 moveto%
|
|
(Submit)show%
|
|
[/EP pdfmark%
|
|
} ?pdfmark%
|
|
[%
|
|
{aform}%
|
|
<<%
|
|
/Fields{afields}%
|
|
/DR<<%
|
|
/Font<<%
|
|
/ZaDb{ZaDb}%
|
|
/Helv{Helv}%
|
|
>>%
|
|
>>%
|
|
/DA(/Helv 10 Tf 0 g)%
|
|
/CO{corder}%
|
|
\ifHy@pdfa
|
|
\else
|
|
\ifHyField@NeedAppearances
|
|
/NeedAppearances true%
|
|
\fi
|
|
\fi
|
|
>>%
|
|
/PUT pdfmark%
|
|
[%
|
|
{Catalog}%
|
|
<<%
|
|
/AcroForm{aform}%
|
|
>>%
|
|
/PUT pdfmark%
|
|
}}%
|
|
\kvsetkeys{Form}{#1}%
|
|
}
|
|
\let\@endForm\ltx@empty
|
|
\def\@Gauge[#1]#2#3#4{% parameters, label, minimum, maximum
|
|
\Hy@Message{Sorry, pdfmark drivers do not support FORM gauges}%
|
|
}
|
|
\newcount\HyField@AnnotCount
|
|
\HyField@AnnotCount=\z@
|
|
\def\HyField@AdvanceAnnotCount{%
|
|
\global\advance\HyField@AnnotCount\@ne
|
|
}
|
|
\def\HyField@TheAnnotCount{%
|
|
\the\HyField@AnnotCount
|
|
}
|
|
\edef\Fld@pageobjref{/P\string{ThisPage\string}}
|
|
\def\HyField@AddToFields#1{%
|
|
\pdfmark{%
|
|
pdfmark=/APPEND,%
|
|
Raw={%
|
|
\string{afields\string}%
|
|
\string{#1\HyField@TheAnnotCount\string}%
|
|
}%
|
|
}%
|
|
\ifx\Fld@calculate@code\ltx@empty
|
|
\else
|
|
\pdfmark{%
|
|
pdfmark=/APPEND,%
|
|
Raw={%
|
|
\string{corder\string}%
|
|
\string{#1\HyField@TheAnnotCount\string}%
|
|
}%
|
|
}%
|
|
\fi
|
|
}
|
|
\def\@TextField[#1]#2{% parameters, label
|
|
\def\Fld@name{#2}%
|
|
\let\Fld@default\ltx@empty
|
|
\let\Fld@value\@empty
|
|
\def\Fld@width{\DefaultWidthofText}%
|
|
\def\Fld@height{%
|
|
\ifFld@multiline
|
|
\DefaultHeightofTextMultiline
|
|
\else
|
|
\DefaultHeightofText
|
|
\fi
|
|
}%
|
|
\begingroup
|
|
\expandafter\HyField@SetKeys\expandafter{%
|
|
\DefaultOptionsofText,#1%
|
|
}%
|
|
\HyField@FlagsText
|
|
\ifFld@hidden\def\Fld@width{1sp}\fi
|
|
\ifx\Fld@value\@empty\def\Fld@value{\Fld@default}\fi
|
|
\HyField@AdvanceAnnotCount
|
|
\LayoutTextField{#2}{%
|
|
\leavevmode
|
|
\Hy@escapeform\PDFForm@Text
|
|
\pdfmark[\MakeTextField{\Fld@width}{\Fld@height}]{%
|
|
pdfmark=/ANN,%
|
|
objdef=text\HyField@TheAnnotCount,%
|
|
Raw={\PDFForm@Text}%
|
|
}%
|
|
}%
|
|
\HyField@AddToFields{text}%
|
|
\endgroup
|
|
}
|
|
\def\@ChoiceMenu[#1]#2#3{% parameters, label, choices
|
|
\def\Fld@name{#2}%
|
|
\let\Fld@default\relax
|
|
\let\Fld@value\relax
|
|
\def\Fld@width{\DefaultWidthofChoiceMenu}%
|
|
\def\Fld@height{\DefaultHeightofChoiceMenu}%
|
|
\begingroup
|
|
\Fld@menulength=0 %
|
|
\@tempdima\z@
|
|
\@for\@curropt:=#3\do{%
|
|
\expandafter\Fld@checkequals\@curropt==\\%
|
|
\Hy@StepCount\Fld@menulength
|
|
\settowidth{\@tempdimb}{\@currDisplay}%
|
|
\ifdim\@tempdimb>\@tempdima\@tempdima\@tempdimb\fi
|
|
}%
|
|
\advance\@tempdima by 15\p@
|
|
\begingroup
|
|
\HyField@SetKeys{#1}%
|
|
\edef\x{\endgroup
|
|
\noexpand\expandafter
|
|
\noexpand\HyField@SetKeys
|
|
\noexpand\expandafter{%
|
|
\expandafter\noexpand\csname DefaultOptionsof%
|
|
\ifFld@radio
|
|
Radio%
|
|
\else
|
|
\ifFld@combo
|
|
\ifFld@popdown
|
|
PopdownBox%
|
|
\else
|
|
ComboBox%
|
|
\fi
|
|
\else
|
|
ListBox%
|
|
\fi
|
|
\fi
|
|
\endcsname
|
|
}%
|
|
}\x
|
|
\HyField@SetKeys{#1}%
|
|
\ifFld@hidden\def\Fld@width{1sp}\fi
|
|
\ifx\Fld@value\relax
|
|
\let\Fld@value\Fld@default
|
|
\fi
|
|
\LayoutChoiceField{#2}{%
|
|
\ifFld@radio
|
|
\HyField@FlagsRadioButton
|
|
\@@Radio{#3}%
|
|
\else
|
|
\begingroup
|
|
\HyField@FlagsChoice
|
|
\ifdim\Fld@width<\@tempdima
|
|
\ifdim\@tempdima<1cm\@tempdima1cm\fi
|
|
\edef\Fld@width{\the\@tempdima}%
|
|
\fi
|
|
\ifFld@combo
|
|
\else
|
|
\@tempdima=\the\Fld@menulength\Fld@charsize
|
|
\advance\@tempdima by \Fld@borderwidth bp %
|
|
\advance\@tempdima by \Fld@borderwidth bp %
|
|
\edef\Fld@height{\the\@tempdima}%
|
|
\fi
|
|
\@@Listbox{#3}%
|
|
\endgroup
|
|
\fi
|
|
}%
|
|
\endgroup
|
|
}
|
|
\def\@@Radio#1{%
|
|
\Fld@listcount=0 %
|
|
\EdefEscapeName\Fld@default{\Fld@default}%
|
|
\@for\@curropt:=#1\do{%
|
|
\expandafter\Fld@checkequals\@curropt==\\%
|
|
\EdefEscapeName\@currValue{\@currValue}%
|
|
\Hy@StepCount\Fld@listcount
|
|
\@currDisplay\space
|
|
\Hy@escapeform\PDFForm@Radio
|
|
\ifnum\Fld@listcount=1 %
|
|
\HyField@AdvanceAnnotCount
|
|
\fi
|
|
\pdfmark[\MakeRadioField{\Fld@width}{\Fld@height}]{%
|
|
pdfmark=/ANN,%
|
|
objdef=\ifnum\Fld@listcount=1 radio\HyField@TheAnnotCount\fi,%
|
|
Raw={%
|
|
\PDFForm@Radio /AP <</N <</\@currValue\space {Check}>> >>%
|
|
}%
|
|
} % deliberate space between radio buttons
|
|
\ifnum\Fld@listcount=1 %
|
|
\HyField@AddToFields{radio}%
|
|
\fi
|
|
}%
|
|
}
|
|
\newcount\Fld@listcount
|
|
\def\@@Listbox#1{%
|
|
\HyField@PDFChoices{#1}%
|
|
\Hy@escapeform\PDFForm@List
|
|
\HyField@AdvanceAnnotCount
|
|
\pdfmark[\MakeChoiceField{\Fld@width}{\Fld@height}]{%
|
|
pdfmark=/ANN,%
|
|
objdef=list\HyField@TheAnnotCount,%
|
|
Raw={\PDFForm@List}%
|
|
}%
|
|
\HyField@AddToFields{list}%
|
|
}
|
|
\def\@PushButton[#1]#2{% parameters, label
|
|
\def\Fld@name{#2}%
|
|
\begingroup
|
|
\expandafter\HyField@SetKeys\expandafter{%
|
|
\DefaultOptionsofPushButton,#1%
|
|
}%
|
|
\ifHy@pdfa
|
|
\Hy@Error{%
|
|
PDF/A: Push button with JavaScript is prohibited%
|
|
}\@ehc
|
|
\LayoutPushButtonField{%
|
|
\leavevmode
|
|
\MakeButtonField{#2}%
|
|
}%
|
|
\else
|
|
\HyField@FlagsPushButton
|
|
\ifFld@hidden\def\Fld@width{1sp}\fi
|
|
\HyField@AdvanceAnnotCount
|
|
\LayoutPushButtonField{%
|
|
\leavevmode
|
|
\Hy@escapeform\PDFForm@Push
|
|
\pdfmark[\MakeButtonField{#2}]{%
|
|
pdfmark=/ANN,%
|
|
objdef=push\HyField@TheAnnotCount,%
|
|
Raw={\PDFForm@Push}%
|
|
}%
|
|
}%
|
|
\HyField@AddToFields{push}%
|
|
\fi
|
|
\endgroup
|
|
}
|
|
\def\@Submit[#1]#2{%
|
|
\def\Fld@width{\DefaultWidthofSubmit}%
|
|
\def\Fld@height{\DefaultHeightofSubmit}%
|
|
\begingroup
|
|
\expandafter\HyField@SetKeys\expandafter{%
|
|
\DefaultOptionsofSubmit,#1%
|
|
}%
|
|
\HyField@FlagsPushButton
|
|
\HyField@FlagsSubmit
|
|
\ifFld@hidden\def\Fld@width{1sp}\fi
|
|
\Hy@escapeform\PDFForm@Submit
|
|
\HyField@AdvanceAnnotCount
|
|
\pdfmark[\MakeButtonField{#2}]{%
|
|
pdfmark=/ANN,%
|
|
objdef=submit\HyField@TheAnnotCount,%
|
|
Raw={\PDFForm@Submit /AP<</N{Submit}/D{SubmitP}>>}%
|
|
}%
|
|
\HyField@AddToFields{submit}%
|
|
\endgroup
|
|
}
|
|
\def\@Reset[#1]#2{%
|
|
\def\Fld@width{\DefaultWidthofReset}%
|
|
\def\Fld@height{\DefaultHeightofReset}%
|
|
\begingroup
|
|
\expandafter\HyField@SetKeys\expandafter{%
|
|
\DefaultOptionsofReset,#1%
|
|
}%
|
|
\leavevmode
|
|
\ifHy@pdfa
|
|
\Hy@Error{%
|
|
PDF/A: Reset action is prohibited%
|
|
}\@ehc
|
|
\MakeButtonField{#2}%
|
|
\else
|
|
\HyField@FlagsPushButton
|
|
\ifFld@hidden\def\Fld@width{1sp}\fi
|
|
\Hy@escapeform\PDFForm@Reset
|
|
\HyField@AdvanceAnnotCount
|
|
\pdfmark[\MakeButtonField{#2}]{%
|
|
pdfmark=/ANN,%
|
|
objdef=reset\HyField@TheAnnotCount,%
|
|
Raw={\PDFForm@Reset}%
|
|
}%
|
|
\HyField@AddToFields{reset}%
|
|
\fi
|
|
\endgroup
|
|
}%
|
|
\def\@CheckBox[#1]#2{% parameters, label
|
|
\def\Fld@name{#2}%
|
|
\def\Fld@default{0}%
|
|
\begingroup
|
|
\def\Fld@width{\DefaultWidthofCheckBox}%
|
|
\def\Fld@height{\DefaultHeightofCheckBox}%
|
|
\expandafter\HyField@SetKeys\expandafter{%
|
|
\DefaultOptionsofCheckBox,#1%
|
|
}%
|
|
\HyField@FlagsCheckBox
|
|
\ifFld@hidden\def\Fld@width{1sp}\fi
|
|
\HyField@AdvanceAnnotCount
|
|
\LayoutCheckField{#2}{%
|
|
\leavevmode
|
|
\Hy@escapeform\PDFForm@Check
|
|
\pdfmark[\MakeCheckField{\Fld@width}{\Fld@height}]{%
|
|
pdfmark=/ANN,%
|
|
objdef=check\HyField@TheAnnotCount,%
|
|
Raw={\PDFForm@Check}%
|
|
}%
|
|
}%
|
|
\HyField@AddToFields{check}%
|
|
\endgroup
|
|
}
|
|
\providecommand*{\Fld@pageobjref}{}
|
|
\begingroup\expandafter\expandafter\expandafter\endgroup
|
|
\expandafter\ifx\csname pdf@escapestring\endcsname\relax
|
|
\let\Hy@escapestring\@firstofone
|
|
\def\Hy@escapeform#1{%
|
|
\ifHy@pdfescapeform
|
|
\def\Hy@escapestring##1{%
|
|
\noexpand\Hy@escapestring{\noexpand##1}%
|
|
}%
|
|
\edef\Hy@temp{#1}%
|
|
\expandafter\Hy@@escapeform\Hy@temp\Hy@escapestring{}\@nil
|
|
\def\Hy@escapestring##1{%
|
|
\@ifundefined{Hy@esc@\string##1}{%
|
|
##1%
|
|
\ThisShouldNotHappen
|
|
}{%
|
|
\csname Hy@esc@\string##1\endcsname
|
|
}%
|
|
}%
|
|
\else
|
|
\let\Hy@escapestring\@firstofone
|
|
\fi
|
|
}%
|
|
\def\Hy@@escapeform#1\Hy@escapestring#2#3\@nil{%
|
|
\ifx\\#3\\%
|
|
\else
|
|
\expandafter
|
|
\Hy@pstringdef\csname Hy@esc@\string#2\endcsname{#2}%
|
|
\ltx@ReturnAfterFi{%
|
|
\Hy@@escapeform#3\@nil
|
|
}%
|
|
\fi
|
|
}%
|
|
\else
|
|
\def\Hy@escapeform#1{%
|
|
\ifHy@pdfescapeform
|
|
\let\Hy@escapestring\pdfescapestring
|
|
\else
|
|
\let\Hy@escapestring\@firstofone
|
|
\fi
|
|
}%
|
|
\Hy@escapeform{}%
|
|
\fi
|
|
\def\PDFForm@Name{%
|
|
\PDFForm@@Name\Fld@name
|
|
\ifx\Fld@altname\relax
|
|
\else
|
|
\PDFForm@@Name\Fld@altname
|
|
\fi
|
|
\ifx\Fld@mappingname\relax
|
|
\else
|
|
\PDFForm@@Name\Fld@mappingname
|
|
\fi
|
|
}
|
|
\def\PDFForm@@Name#1{%
|
|
\begingroup
|
|
\ifnum\Hy@pdf@majorminor@version<105 % implementation note 117, PDF spec 1.7
|
|
\ifHy@unicode
|
|
\Hy@unicodefalse
|
|
\fi
|
|
\fi
|
|
\pdfstringdef\Hy@gtemp#1%
|
|
\endgroup
|
|
\let#1\Hy@gtemp
|
|
}
|
|
\def\Fld@@additionalactions{%
|
|
\ifx\Fld@keystroke@code\@empty
|
|
\else
|
|
/K<</S/JavaScript/JS(\Hy@escapestring{\Fld@keystroke@code})>>%
|
|
\fi
|
|
\ifx\Fld@format@code\@empty
|
|
\else
|
|
/F<</S/JavaScript/JS(\Hy@escapestring{\Fld@format@code})>>%
|
|
\fi
|
|
\ifx\Fld@validate@code\@empty
|
|
\else
|
|
/V<</S/JavaScript/JS(\Hy@escapestring{\Fld@validate@code})>>%
|
|
\fi
|
|
\ifx\Fld@calculate@code\@empty
|
|
\else
|
|
/C<</S/JavaScript/JS(\Hy@escapestring{\Fld@calculate@code})>>%
|
|
\fi
|
|
\ifx\Fld@onfocus@code\@empty
|
|
\else
|
|
/Fo<</S/JavaScript/JS(\Hy@escapestring{\Fld@onfocus@code})>>%
|
|
\fi
|
|
\ifx\Fld@onblur@code\@empty
|
|
\else
|
|
/Bl<</S/JavaScript/JS(\Hy@escapestring{\Fld@onblur@code})>>%
|
|
\fi
|
|
\ifx\Fld@onmousedown@code\@empty
|
|
\else
|
|
/D<</S/JavaScript/JS(\Hy@escapestring{\Fld@onmousedown@code})>>%
|
|
\fi
|
|
\ifx\Fld@onmouseup@code\@empty
|
|
\else
|
|
/U<</S/JavaScript/JS(\Hy@escapestring{\Fld@onmouseup@code})>>%
|
|
\fi
|
|
\ifx\Fld@onenter@code\@empty
|
|
\else
|
|
/E<</S/JavaScript/JS(\Hy@escapestring{\Fld@onenter@code})>>%
|
|
\fi
|
|
\ifx\Fld@onexit@code\@empty
|
|
\else
|
|
/X<</S/JavaScript/JS(\Hy@escapestring{\Fld@onexit@code})>>%
|
|
\fi
|
|
}
|
|
\def\Fld@additionalactions{%
|
|
\if-\Fld@@additionalactions-%
|
|
\else
|
|
\ifHy@pdfa
|
|
\else
|
|
/AA<<\Fld@@additionalactions>>%
|
|
\fi
|
|
\fi
|
|
}
|
|
\def\Fld@annotnames{%
|
|
/T(\Fld@name)%
|
|
\ifx\Fld@altname\relax
|
|
\else
|
|
/TU(\Fld@altname)%
|
|
\fi
|
|
\ifx\Fld@mappingname\relax
|
|
\else
|
|
/TM(\Fld@mappingname)%
|
|
\fi
|
|
}
|
|
\def\PDFForm@Check{%
|
|
/Subtype/Widget%
|
|
\Fld@annotflags
|
|
\Fld@pageobjref
|
|
\Fld@annotnames
|
|
/FT/Btn%
|
|
\Fld@flags
|
|
/Q \Fld@align
|
|
/BS<</W \Fld@borderwidth /S/\Fld@borderstyle>>%
|
|
/AP<< /N <</Yes<<>>>> >> %new string /Yes is from below
|
|
/MK<<%
|
|
\ifnum\Fld@rotation=\z@
|
|
\else
|
|
/R \Fld@rotation
|
|
\fi
|
|
\ifx\Fld@bordercolor\relax
|
|
\else
|
|
/BC[\Fld@bordercolor]%
|
|
\fi
|
|
\ifx\Fld@bcolor\relax
|
|
\else
|
|
/BG[\Fld@bcolor]%
|
|
\fi
|
|
/CA(\Hy@escapestring{\Fld@cbsymbol})%
|
|
>>%
|
|
/DA(/ZaDb \strip@pt\Fld@charsize\space Tf%
|
|
\ifx\Fld@color\@empty\else\space\Fld@color\fi)%
|
|
/H/P%
|
|
\ifFld@checked /V/Yes/AS/Yes\else /V/Off/AS/Off\fi
|
|
\Fld@additionalactions
|
|
}
|
|
\ifHy@pdfa
|
|
\else
|
|
\def\PDFForm@Push{%
|
|
/Subtype/Widget%
|
|
\Fld@annotflags
|
|
\Fld@pageobjref
|
|
\Fld@annotnames
|
|
/FT/Btn%
|
|
\Fld@flags
|
|
/H/P%
|
|
/BS<</W \Fld@borderwidth/S/\Fld@borderstyle>>%
|
|
\ifcase0\ifnum\Fld@rotation=\z@ \else 1\fi
|
|
\ifx\Fld@bordercolor\relax\else 1\fi
|
|
\space
|
|
\else
|
|
/MK<<%
|
|
\ifnum\Fld@rotation=\z@
|
|
\else
|
|
/R \Fld@rotation
|
|
\fi
|
|
\ifx\Fld@bordercolor\relax
|
|
\else
|
|
/BC[\Fld@bordercolor]%
|
|
\fi
|
|
>>%
|
|
\fi
|
|
/A<</S/JavaScript/JS(\Hy@escapestring{\Fld@onclick@code})>>%
|
|
\Fld@additionalactions
|
|
}%
|
|
\fi
|
|
\def\PDFForm@List{%
|
|
/Subtype/Widget%
|
|
\Fld@annotflags
|
|
\Fld@pageobjref
|
|
\Fld@annotnames
|
|
/FT/Ch%
|
|
\Fld@flags
|
|
/Q \Fld@align
|
|
/BS<</W \Fld@borderwidth/S/\Fld@borderstyle>>%
|
|
\ifcase0\ifnum\Fld@rotation=\z@ \else 1\fi
|
|
\ifx\Fld@bordercolor\relax\else 1\fi
|
|
\ifx\fld@bcolor\relax \else 1\fi
|
|
\space
|
|
\else
|
|
/MK<<%
|
|
\ifnum\Fld@rotation=\z@
|
|
\else
|
|
/R \Fld@rotation
|
|
\fi
|
|
\ifx\Fld@bordercolor\relax
|
|
\else
|
|
/BC[\Fld@bordercolor]%
|
|
\fi
|
|
\ifx\Fld@bcolor\relax
|
|
\else
|
|
/BG[\Fld@bcolor]%
|
|
\fi
|
|
>>%
|
|
\fi
|
|
/DA(/Helv \strip@pt\Fld@charsize\space Tf%
|
|
\ifx\Fld@color\@empty\else\space\Fld@color\fi)%
|
|
\Fld@choices
|
|
\Fld@additionalactions
|
|
}
|
|
\def\PDFForm@Radio{%
|
|
/Subtype/Widget%
|
|
\Fld@annotflags
|
|
\Fld@pageobjref
|
|
\Fld@annotnames
|
|
/FT/Btn%
|
|
\Fld@flags
|
|
/H/P%
|
|
/BS<</W \Fld@borderwidth/S/\Fld@borderstyle>>%
|
|
/MK<<%
|
|
\ifnum\Fld@rotation=\z@
|
|
\else
|
|
/R \Fld@rotation
|
|
\fi
|
|
\ifx\Fld@bordercolor\relax
|
|
\else
|
|
/BC[\Fld@bordercolor]%
|
|
\fi
|
|
\ifx\Fld@bcolor\relax
|
|
\else
|
|
/BG[\Fld@bcolor]%
|
|
\fi
|
|
/CA(\Hy@escapestring{\Fld@radiosymbol})%
|
|
>>%
|
|
/DA(/ZaDb \strip@pt\Fld@charsize\space Tf%
|
|
\ifx\Fld@color\@empty\else\space\Fld@color\fi)%
|
|
\ifx\Fld@default\@empty
|
|
/V/Off%
|
|
/DV/Off%
|
|
\else
|
|
/V/\Fld@default
|
|
/DV/\Fld@default
|
|
\fi
|
|
\Fld@additionalactions
|
|
}
|
|
\def\PDFForm@Text{%
|
|
/Subtype/Widget%
|
|
\Fld@annotflags
|
|
\Fld@pageobjref
|
|
\Fld@annotnames
|
|
/FT/Tx%
|
|
\Fld@flags
|
|
/Q \Fld@align
|
|
/BS<</W \Fld@borderwidth\space /S /\Fld@borderstyle>>%
|
|
\ifcase0\ifnum\Fld@rotation=\z@ \else 1\fi
|
|
\ifx\Fld@bordercolor\relax\else 1\fi
|
|
\ifx\Fld@bcolor\relax \else 1\fi
|
|
\space
|
|
\else
|
|
/MK<<%
|
|
\ifnum\Fld@rotation=\z@
|
|
\else
|
|
/R \Fld@rotation
|
|
\fi
|
|
\ifx\Fld@bordercolor\relax
|
|
\else
|
|
/BC[\Fld@bordercolor]%
|
|
\fi
|
|
\ifx\Fld@bcolor\relax
|
|
\else
|
|
/BG[\Fld@bcolor]%
|
|
\fi
|
|
>>%
|
|
\fi
|
|
/DA(/Helv \strip@pt\Fld@charsize\space Tf%
|
|
\ifx\Fld@color\@empty\else\space\Fld@color\fi)%
|
|
/DV(\Hy@escapestring{\Fld@default})%
|
|
/V(\Hy@escapestring{\Fld@value})%
|
|
\Fld@additionalactions
|
|
\ifnum\Fld@maxlen>\z@/MaxLen \Fld@maxlen \fi
|
|
}
|
|
\def\PDFForm@Submit{%
|
|
/Subtype/Widget%
|
|
\Fld@annotflags
|
|
\Fld@pageobjref
|
|
\Fld@annotnames
|
|
/FT/Btn%
|
|
\Fld@flags
|
|
/H/P%
|
|
/BS<</W \Fld@borderwidth/S/\Fld@borderstyle>>%
|
|
\ifcase0\ifnum\Fld@rotation=\z@ \else 1\fi
|
|
\ifx\Fld@bordercolor\relax\else 1\fi
|
|
\space
|
|
\else
|
|
/MK<<%
|
|
\ifnum\Fld@rotation=\z@
|
|
\else
|
|
/R \Fld@rotation
|
|
\fi
|
|
\ifx\Fld@bordercolor\relax
|
|
\else
|
|
/BC[\Fld@bordercolor]%
|
|
\fi
|
|
>>%
|
|
\fi
|
|
/A<<%
|
|
/S/SubmitForm%
|
|
/F<<%
|
|
/FS/URL%
|
|
/F(\Hy@escapestring{\Form@action})%
|
|
>>%
|
|
\Fld@submitflags
|
|
>>%
|
|
\Fld@additionalactions
|
|
}
|
|
\ifHy@pdfa
|
|
\else
|
|
\def\PDFForm@Reset{%
|
|
/Subtype/Widget%
|
|
\Fld@annotflags
|
|
\Fld@pageobjref
|
|
\Fld@annotnames
|
|
/FT/Btn%
|
|
\Fld@flags
|
|
/H/P%
|
|
/DA(/Helv \strip@pt\Fld@charsize\space Tf 0 0 1 rg)%
|
|
\ifcase0\ifnum\Fld@rotation=\z@ \else 1\fi
|
|
\ifx\Fld@bordercolor\relax\else 1\fi
|
|
\space
|
|
\else
|
|
/MK<<%
|
|
\ifnum\Fld@rotation=\z@
|
|
\else
|
|
/R \Fld@rotation
|
|
\fi
|
|
\ifx\Fld@bordercolor\relax
|
|
\else
|
|
/BC[\Fld@bordercolor]%
|
|
\fi
|
|
>>%
|
|
\fi
|
|
/BS<</W \Fld@borderwidth/S/\Fld@borderstyle>>%
|
|
/A<</S/ResetForm>>%
|
|
\Fld@additionalactions
|
|
}%
|
|
\fi
|
|
\def\Hy@writebookmark#1#2#3#4#5{%
|
|
% section number, text, label, level, file
|
|
\ifx\WriteBookmarks\relax%
|
|
\else
|
|
\ifnum#4>\Hy@bookmarksdepth\relax
|
|
\else
|
|
\@@writetorep{#1}{#2}{#3}{#4}{#5}%
|
|
\fi
|
|
\fi
|
|
}
|
|
\def\Hy@currentbookmarklevel{0}
|
|
\def\Hy@numberline#1{#1 }
|
|
\def\@@writetorep#1#2#3#4#5{%
|
|
\begingroup
|
|
\edef\Hy@tempa{#5}%
|
|
\ifx\Hy@tempa\Hy@bookmarkstype
|
|
\edef\Hy@level{#4}%
|
|
\ifx\Hy@levelcheck Y%
|
|
\@tempcnta\Hy@level\relax
|
|
\advance\@tempcnta by -1 %
|
|
\ifnum\Hy@currentbookmarklevel<\@tempcnta
|
|
\advance\@tempcnta by -\Hy@currentbookmarklevel\relax
|
|
\advance\@tempcnta by 1 %
|
|
\Hy@Warning{%
|
|
Difference (\the\@tempcnta) between bookmark levels is %
|
|
greater \MessageBreak than one, level fixed%
|
|
}%
|
|
\@tempcnta\Hy@currentbookmarklevel
|
|
\advance\@tempcnta by 1 %
|
|
\edef\Hy@level{\the\@tempcnta}%
|
|
\fi
|
|
\else
|
|
\global\let\Hy@levelcheck Y%
|
|
\fi
|
|
\global\let\Hy@currentbookmarklevel\Hy@level
|
|
\@tempcnta\Hy@level\relax
|
|
\expandafter\xdef\csname Parent\Hy@level\endcsname{#3}%
|
|
\advance\@tempcnta by -1 %
|
|
\edef\Hy@tempa{#3}%
|
|
\edef\Hy@tempb{\csname Parent\the\@tempcnta\endcsname}%
|
|
\ifx\Hy@tempa\Hy@tempb
|
|
\Hy@Warning{%
|
|
The anchor of a bookmark and its parent's must not%
|
|
\MessageBreak be the same. Added a new anchor%
|
|
}%
|
|
\phantomsection
|
|
\fi
|
|
\ifHy@bookmarksnumbered
|
|
\let\numberline\Hy@numberline
|
|
\let\booknumberline\Hy@numberline
|
|
\let\partnumberline\Hy@numberline
|
|
\let\chapternumberline\Hy@numberline
|
|
\else
|
|
\let\numberline\@gobble
|
|
\let\booknumberline\@gobble
|
|
\let\partnumberline\@gobble
|
|
\let\chapternumberline\@gobble
|
|
\fi
|
|
\pdfstringdef\Hy@tempa{#2}%
|
|
\HyPsd@SanitizeForOutFile\Hy@tempa
|
|
\if@filesw
|
|
\stepcounter{bookmark@seq@number}%
|
|
\@ifundefined{@outlinefile}{%
|
|
}{%
|
|
\protected@write\@outlinefile{}{%
|
|
\protect\BOOKMARK
|
|
[\Hy@level][\@bookmarkopenstatus{\Hy@level}]{#3}%
|
|
{\Hy@tempa}{\Hy@tempb}%
|
|
\@percentchar\space\thebookmark@seq@number
|
|
}%
|
|
}%
|
|
\fi
|
|
\fi
|
|
\endgroup
|
|
}
|
|
\newcounter{bookmark@seq@number}
|
|
\begingroup
|
|
\lccode`(=`{%
|
|
\lccode`)=`}%
|
|
\lccode`1=\z@
|
|
\lccode`2=\z@
|
|
\lccode`3=\z@
|
|
\lccode`5=\z@
|
|
\lccode`7=\z@
|
|
\lccode`\#=\z@
|
|
\lccode`\`=\z@
|
|
\lccode`\{=\z@
|
|
\lccode`\}=\z@
|
|
\lowercase{%
|
|
\endgroup
|
|
\def\HyPsd@SanitizeForOutFile#1{%
|
|
\@onelevel@sanitize\Hy@tempa
|
|
\escapechar`\\%
|
|
\edef\Hy@tempa{%
|
|
\expandafter\HyPsd@SanitizeOut@BraceLeft\Hy@tempa(\@nil
|
|
}%
|
|
\edef\Hy@tempa{%
|
|
\expandafter\HyPsd@SanitizeOut@BraceRight\Hy@tempa)\@nil
|
|
}%
|
|
}%
|
|
\def\HyPsd@SanitizeOut@BraceLeft#1(#2\@nil{%
|
|
#1%
|
|
\ifx\\#2\\%
|
|
\expandafter\ltx@gobble
|
|
\else
|
|
\expandafter\ltx@firstofone
|
|
\fi
|
|
{%
|
|
\string\173%
|
|
\HyPsd@SanitizeOut@BraceLeft#2\@nil
|
|
}%
|
|
}%
|
|
\def\HyPsd@SanitizeOut@BraceRight#1)#2\@nil{%
|
|
#1%
|
|
\ifx\\#2\\%
|
|
\expandafter\ltx@gobble
|
|
\else
|
|
\expandafter\ltx@firstofone
|
|
\fi
|
|
{%
|
|
\string\175%
|
|
\HyPsd@SanitizeOut@BraceRight#2\@nil
|
|
}%
|
|
}%
|
|
}
|
|
\newcommand{\currentpdfbookmark}{%
|
|
\pdfbookmark[\Hy@currentbookmarklevel]%
|
|
}
|
|
\newcommand{\subpdfbookmark}{%
|
|
\@tempcnta\Hy@currentbookmarklevel
|
|
\Hy@StepCount\@tempcnta
|
|
\expandafter\pdfbookmark\expandafter[\the\@tempcnta]%
|
|
}
|
|
\newcommand{\belowpdfbookmark}[2]{%
|
|
\@tempcnta\Hy@currentbookmarklevel
|
|
\Hy@StepCount\@tempcnta
|
|
\expandafter\pdfbookmark\expandafter[\the\@tempcnta]{#1}{#2}%
|
|
\advance\@tempcnta by -1 %
|
|
\xdef\Hy@currentbookmarklevel{\the\@tempcnta}%
|
|
}
|
|
\renewcommand\pdfbookmark[3][0]{%
|
|
\Hy@writebookmark{}{#2}{#3.#1}{#1}{toc}%
|
|
\hyper@anchorstart{#3.#1}\hyper@anchorend
|
|
}
|
|
\def\BOOKMARK{%
|
|
\@ifnextchar[{\@BOOKMARK}{\@@BOOKMARK[1][-]}%
|
|
}
|
|
\def\@BOOKMARK[#1]{%
|
|
\@ifnextchar[{\@@BOOKMARK[{#1}]}{\@@BOOKMARK[{#1}][-]}%
|
|
}
|
|
\RequirePackage{rerunfilecheck}[2009/12/10]
|
|
\def\Hy@OutlineRerunCheck{%
|
|
\RerunFileCheck{\jobname.out}{%
|
|
\immediate\closeout\@outlinefile
|
|
}{%
|
|
Rerun to get outlines right\MessageBreak
|
|
or use package `bookmark'%
|
|
}%
|
|
}
|
|
\def\ReadBookmarks{%
|
|
\pdf@ifdraftmode{}{%
|
|
\begingroup
|
|
\def\do##1{%
|
|
\ifnum\catcode`##1=\active
|
|
\@makeother##1%
|
|
\else
|
|
\ifnum\catcode`##1=6 %
|
|
\@makeother##1%
|
|
\fi
|
|
\fi
|
|
}%
|
|
\dospecials
|
|
\Hy@safe@activestrue
|
|
\escapechar=`\\%
|
|
\def\@@BOOKMARK[##1][##2]##3##4##5{%
|
|
\calc@bm@number{##5}%
|
|
}%
|
|
\InputIfFileExists{\jobname.out}{}{}%
|
|
\ifx\WriteBookmarks\relax
|
|
\global\let\WriteBookmarks\relax
|
|
\fi
|
|
\def\@@BOOKMARK[##1][##2]##3##4##5{%
|
|
\def\Hy@temp{##4}%
|
|
\pdfmark{%
|
|
pdfmark=/OUT,%
|
|
Count={##2\check@bm@number{##3}},%
|
|
Dest={##3},%
|
|
Title=\expandafter\strip@prefix\meaning\Hy@temp
|
|
}%
|
|
}%
|
|
\begingroup
|
|
\def\WriteBookmarks{0}%
|
|
\InputIfFileExists{\jobname.out}{}{}%
|
|
\endgroup
|
|
%{\escapechar\m@ne\InputIfFileExists{\jobname.out}{}{}}%
|
|
\endgroup
|
|
}%
|
|
\ifx\WriteBookmarks\relax
|
|
\else
|
|
\if@filesw
|
|
\newwrite\@outlinefile
|
|
\Hy@OutlineRerunCheck
|
|
\immediate\openout\@outlinefile=\jobname.out\relax
|
|
\ifHy@typexml
|
|
\immediate\write\@outlinefile{<relaxxml>\relax}%
|
|
\fi
|
|
\fi
|
|
\fi
|
|
}
|
|
\def\check@bm@number#1{%
|
|
\expandafter\ifx\csname B_#1\endcsname\relax
|
|
0%
|
|
\else
|
|
\csname B_#1\endcsname
|
|
\fi
|
|
}
|
|
\def\calc@bm@number#1{%
|
|
\@tempcnta=\check@bm@number{#1}\relax
|
|
\advance\@tempcnta by 1 %
|
|
\expandafter\xdef\csname B_#1\endcsname{\the\@tempcnta}%
|
|
}
|
|
\ifHy@implicit
|
|
\else
|
|
\expandafter\endinput
|
|
\fi
|
|
\newlength\Hy@SectionHShift
|
|
\def\Hy@SectionAnchorHref#1{%
|
|
\ifx\protect\@typeset@protect
|
|
\Hy@@SectionAnchor{#1}%
|
|
\fi
|
|
}
|
|
\DeclareRobustCommand*{\Hy@@SectionAnchor}[1]{%
|
|
\leavevmode
|
|
\hbox to 0pt{%
|
|
\kern-\Hy@SectionHShift
|
|
\Hy@raisedlink{%
|
|
\hyper@anchorstart{#1}\hyper@anchorend
|
|
}%
|
|
\hss
|
|
}%
|
|
}
|
|
\let\H@old@ssect\@ssect
|
|
\def\@ssect#1#2#3#4#5{%
|
|
\Hy@MakeCurrentHrefAuto{section*}%
|
|
\setlength{\Hy@SectionHShift}{#1}%
|
|
\begingroup
|
|
\toks@{\H@old@ssect{#1}{#2}{#3}{#4}}%
|
|
\toks\tw@\expandafter{%
|
|
\expandafter\Hy@SectionAnchorHref\expandafter{\@currentHref}%
|
|
#5%
|
|
}%
|
|
\edef\x{\endgroup
|
|
\the\toks@{\the\toks\tw@}%
|
|
}\x
|
|
}
|
|
\let\H@old@schapter\@schapter
|
|
\def\@schapter#1{%
|
|
\begingroup
|
|
\let\@mkboth\@gobbletwo
|
|
\Hy@MakeCurrentHrefAuto{\Hy@chapapp*}%
|
|
\Hy@raisedlink{%
|
|
\hyper@anchorstart{\@currentHref}\hyper@anchorend
|
|
}%
|
|
\endgroup
|
|
\H@old@schapter{#1}%
|
|
}
|
|
\ltx@IfUndefined{@chapter}{}{%
|
|
\let\Hy@org@chapter\@chapter
|
|
\def\@chapter{%
|
|
\def\Hy@next{%
|
|
\Hy@MakeCurrentHrefAuto{\Hy@chapapp*}%
|
|
\Hy@raisedlink{%
|
|
\hyper@anchorstart{\@currentHref}\hyper@anchorend
|
|
}%
|
|
}%
|
|
\ifnum\c@secnumdepth>\m@ne
|
|
\ltx@IfUndefined{if@mainmatter}%
|
|
\iftrue{\csname if@mainmatter\endcsname}%
|
|
\let\Hy@next\relax
|
|
\fi
|
|
\fi
|
|
\Hy@next
|
|
\Hy@org@chapter
|
|
}%
|
|
}
|
|
\let\H@old@part\@part
|
|
\begingroup\expandafter\expandafter\expandafter\endgroup
|
|
\expandafter\ifx\csname chapter\endcsname\relax
|
|
\let\Hy@secnum@part\z@
|
|
\else
|
|
\let\Hy@secnum@part\m@ne
|
|
\fi
|
|
\def\@part{%
|
|
\ifnum\Hy@secnum@part>\c@secnumdepth
|
|
\phantomsection
|
|
\fi
|
|
\H@old@part
|
|
}
|
|
\let\H@old@spart\@spart
|
|
\def\@spart#1{%
|
|
\Hy@MakeCurrentHrefAuto{part*}%
|
|
\Hy@raisedlink{%
|
|
\hyper@anchorstart{\@currentHref}\hyper@anchorend
|
|
}%
|
|
\H@old@spart{#1}%
|
|
}
|
|
\let\H@old@sect\@sect
|
|
\def\@sect#1#2#3#4#5#6[#7]#8{%
|
|
\ifnum #2>\c@secnumdepth
|
|
\expandafter\@firstoftwo
|
|
\else
|
|
\expandafter\@secondoftwo
|
|
\fi
|
|
{%
|
|
\Hy@MakeCurrentHrefAuto{section*}%
|
|
\setlength{\Hy@SectionHShift}{#3}%
|
|
\begingroup
|
|
\toks@{\H@old@sect{#1}{#2}{#3}{#4}{#5}{#6}[{#7}]}%
|
|
\toks\tw@\expandafter{%
|
|
\expandafter\Hy@SectionAnchorHref\expandafter{\@currentHref}%
|
|
#8%
|
|
}%
|
|
\edef\x{\endgroup
|
|
\the\toks@{\the\toks\tw@}%
|
|
}\x
|
|
}{%
|
|
\H@old@sect{#1}{#2}{#3}{#4}{#5}{#6}[{#7}]{#8}%
|
|
}%
|
|
}
|
|
\expandafter\def\csname Parent-4\endcsname{}
|
|
\expandafter\def\csname Parent-3\endcsname{}
|
|
\expandafter\def\csname Parent-2\endcsname{}
|
|
\expandafter\def\csname Parent-1\endcsname{}
|
|
\expandafter\def\csname Parent0\endcsname{}
|
|
\expandafter\def\csname Parent1\endcsname{}
|
|
\expandafter\def\csname Parent2\endcsname{}
|
|
\expandafter\def\csname Parent3\endcsname{}
|
|
\expandafter\def\csname Parent4\endcsname{}
|
|
\def\Hy@tempa{%
|
|
\def\@addchap[##1]##2{%
|
|
\typeout{##2}%
|
|
\if@twoside
|
|
\@mkboth{##1}{}%
|
|
\else
|
|
\@mkboth{}{##1}%
|
|
\fi
|
|
\addtocontents{lof}{\protect\addvspace{10\p@}}%
|
|
\addtocontents{lot}{\protect\addvspace{10\p@}}%
|
|
\Hy@MakeCurrentHrefAuto{\Hy@chapapp*}%
|
|
\Hy@raisedlink{%
|
|
\hyper@anchorstart{\@currentHref}\hyper@anchorend
|
|
}%
|
|
\if@twocolumn
|
|
\@topnewpage[\@makeschapterhead{##2}]%
|
|
\else
|
|
\@makeschapterhead{##2}%
|
|
\@afterheading
|
|
\fi
|
|
\addcontentsline{toc}{chapter}{##1}%
|
|
}%
|
|
}
|
|
\@ifclassloaded{scrbook}{%
|
|
\@ifclasslater{scrbook}{2001/01/01}{%
|
|
\let\Hy@tempa\@empty
|
|
}{}%
|
|
}{%
|
|
\@ifclassloaded{scrreprt}{%
|
|
\@ifclasslater{scrreprt}{2001/01/01}{%
|
|
\let\Hy@tempa\@empty
|
|
}{}%
|
|
}{%
|
|
\let\Hy@tempa\@empty
|
|
}%
|
|
}%
|
|
\Hy@tempa
|
|
\endinput
|
|
%%
|
|
%% End of file `pdfmark.def'.
|
|
|