%% %% 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}% <> >>% }% }% \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}% <>% }% }% \fi \fi } \def\hyper@pagehidden{% \ifHy@useHidKey \pdfmark{% pdfmark=/PUT,% Raw={% \string{ThisPage\string}% <>% }% }% \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<>% \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=/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<
>% \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 <> >>% }% } % 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<>}% }% \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<>% \fi \ifx\Fld@format@code\@empty \else /F<>% \fi \ifx\Fld@validate@code\@empty \else /V<>% \fi \ifx\Fld@calculate@code\@empty \else /C<>% \fi \ifx\Fld@onfocus@code\@empty \else /Fo<>% \fi \ifx\Fld@onblur@code\@empty \else /Bl<>% \fi \ifx\Fld@onmousedown@code\@empty \else /D<>% \fi \ifx\Fld@onmouseup@code\@empty \else /U<>% \fi \ifx\Fld@onenter@code\@empty \else /E<>% \fi \ifx\Fld@onexit@code\@empty \else /X<>% \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<>% /AP<< /N <>>> >> %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<>% \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<>% \Fld@additionalactions }% \fi \def\PDFForm@List{% /Subtype/Widget% \Fld@annotflags \Fld@pageobjref \Fld@annotnames /FT/Ch% \Fld@flags /Q \Fld@align /BS<>% \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<>% /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<>% \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<>% \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<>% /A<>% \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{