%% %% This is file `hypdestopt.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% hypdestopt.dtx (with options: `package') %% %% This is a generated file. %% %% Project: hypdestopt %% Version: 2024-08-07 v2.8 %% %% Copyright (C) %% 2006-2008, 2011 Heiko Oberdiek %% 2016-2024 Oberdiek Package Support Group %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either %% version 1.3c of this license or (at your option) any later %% version. This version of this license is in %% https://www.latex-project.org/lppl/lppl-1-3c.txt %% and the latest version of this license is in %% https://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 Maintainers of this work are %% Heiko Oberdiek and the Oberdiek Package Support Group %% https://github.com/ho-tex/hypdestopt/issues %% %% This work consists of the main source file hypdestopt.dtx %% and the derived files %% hypdestopt.sty, hypdestopt.pdf, hypdestopt.ins, hypdestopt.drv. %% \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{hypdestopt}% [2024-08-07 v2.8 Hyperref destination optimizer (HO)]% \IfDocumentMetadataTF { \PackageWarning{hypdestopt} { \string\DocumentMetadata detected. \MessageBreak The package will do nothing. }{} }{} \IfDocumentMetadataTF { \endinput }{} \newif\ifHypDest@Verbose \DeclareOption{verbose}{\HypDest@Verbosetrue} \def\HypDest@VerboseInfo#1{% \ifHypDest@Verbose \PackageInfo{hypdestopt}{#1}% \fi } \newif\ifHypDest@name \DeclareOption{num}{\HypDest@namefalse} \DeclareOption{name}{\HypDest@nametrue} \ProcessOptions*\relax \RequirePackage{iftex}[2019/11/07] \RequirePackage{pdftexcmds}[2007/11/11] \ifpdf \else \PackageError{hypdestopt}{% This package requires pdfTeX or luaTeX in PDF mode% }\@ehc \expandafter\endinput \fi \begingroup\expandafter\expandafter\expandafter\endgroup \expandafter\ifx\csname pdf@escapehex\endcsname\relax \PackageError{hypdestopt}{% This pdfTeX is too old, at least 1.30.0 is required% }\@ehc \expandafter\endinput \fi \begingroup\expandafter\expandafter\expandafter\endgroup \expandafter\ifx\csname numexpr\endcsname\relax \PackageError{hypdestopt}{% e-TeX features are missing% }\@ehc \expandafter\endinput \fi \ifHypDest@name \RequirePackage{alphalph}[2006/05/30]% \fi \RequirePackage{auxhook}[2009/12/14] \RequirePackage{pdfescape}[2007/04/21] \providecommand\IfFormatAtLeastTF{\@ifl@t@r\fmtversion} \IfFormatAtLeastTF{2020/10/01} { \long\def\HypDest@PrependDocument#1{% \AddToHook{begindocument}{#1}}% \DeclareHookRule{begindocument}{.}{before}{hyperref} } { \long\def\HypDest@PrependDocument#1{% \begingroup \toks\z@{#1}% \toks\tw@\expandafter{\@begindocumenthook}% \xdef\@begindocumenthook{\the\toks\z@\the\toks\tw@}% \endgroup } } \AddLineBeginAux{% \string\providecommand{\string\HypDest@Use}[1]{}% } \newcounter{HypDest} \ifHypDest@name \def\HypDest@HexChar#1{% \ifcase#1\or 01\or 02\or 03\or 04\or 05\or 06\or 07\or 08\or 09\or 0A\or 0B\or 0C\or 0E\or 0F\or 10\or 11\or 12\or 13\or 14\or 15\or 16\or 17\or 18\or 19\or 1A\or 1B\or 1C\or 1D\or 1E\or 1F\or 20\or 21\or 22\or 23\or 24\or 25\or 26\or 27\or 2A\or 2B\or 2C\or 2D\or 2E\or 2F\or 30\or 31\or 32\or 33\or 34\or 35\or 36\or 37\or 38\or 39\or 3A\or 3B\or 3C\or 3D\or 3E\or 3F\or 40\or 41\or 42\or 43\or 44\or 45\or 46\or 47\or 48\or 49\or 4A\or 4B\or 4C\or 4D\or 4E\or 4F\or 50\or 51\or 52\or 53\or 54\or 55\or 56\or 57\or 58\or 59\or 5A\or 5B\or 5D\or 5E\or 5F\or 60\or 61\or 62\or 63\or 64\or 65\or 66\or 67\or 68\or 69\or 6A\or 6B\or 6C\or 6D\or 6E\or 6F\or 70\or 71\or 72\or 73\or 74\or 75\or 76\or 77\or 78\or 79\or 7A\or 7B\or 7C\or 7D\or 7E\or 7F\or 80\or 81\or 82\or 83\or 84\or 85\or 86\or 87\or 88\or 89\or 8A\or 8B\or 8C\or 8D\or 8E\or 8F\or 90\or 91\or 92\or 93\or 94\or 95\or 96\or 97\or 98\or 99\or 9A\or 9B\or 9C\or 9D\or 9E\or 9F\or A0\or A1\or A2\or A3\or A4\or A5\or A6\or A7\or A8\or A9\or AA\or AB\or AC\or AD\or AE\or AF\or B0\or B1\or B2\or B3\or B4\or B5\or B6\or B7\or B8\or B9\or BA\or BB\or BC\or BD\or BE\or BF\or C0\or C1\or C2\or C3\or C4\or C5\or C6\or C7\or C8\or C9\or CA\or CB\or CC\or CD\or CE\or CF\or D0\or D1\or D2\or D3\or D4\or D5\or D6\or D7\or D8\or D9\or DA\or DB\or DC\or DD\or DE\or DF\or E0\or E1\or E2\or E3\or E4\or E5\or E6\or E7\or E8\or E9\or EA\or EB\or EC\or ED\or EE\or EF\or F0\or F1\or F2\or F3\or F4\or F5\or F6\or F7\or F8\or F9\or FA\or FB\or FC\or FD\or FE% \fi }% \newalphalph\HypDest@HexString\HypDest@HexChar{250}% \renewcommand*{\theHypDest}{% \pdf@unescapehex{\HypDest@HexString{\value{HypDest}}}% }% \else \renewcommand*{\theHypDest}{% \number\value{HypDest}% }% \fi \edef\HypDest@Prefix{HypDest\string:} \def\HypDest@Use#1{% \begingroup \edef\x{% \expandafter\noexpand \csname\HypDest@Prefix\pdf@unescapehex{#1}\endcsname }% \expandafter\ifx\x\relax \stepcounter{HypDest}% \expandafter\xdef\x{\theHypDest}% \let\on@line\@empty \ifHypDest@name \HypDest@VerboseInfo{% Use: (\pdf@unescapehex{#1}) -\string> % 0x\pdf@escapehex{\x} (\number\value{HypDest})% }% \else \HypDest@VerboseInfo{% Use: (\pdf@unescapehex{#1}) -\string> num \x }% \fi \fi \endgroup } \AtBeginDocument{% \let\HypDest@Use\@gobble } \def\HypDest@MarkUsed#1{% \HypDest@VerboseInfo{% MarkUsed: (#1)% }% \if@filesw \immediate\write\@auxout{% \string\HypDest@Use{\pdf@escapehex{#1}}% }% \fi }% \HypDest@PrependDocument{% \ifx\pdfextension\@undefined\else \protected\def\pdfdest{\pdfextension dest } \fi \ifHypDest@name \let\HypDest@Org@DestName\Hy@DestName \renewcommand*{\Hy@DestName}[2]{% \EdefUnescapeString\HypDest@temp{#1}% \@ifundefined{\HypDest@Prefix\HypDest@temp}{% \HypDest@VerboseInfo{% DestName: (\HypDest@temp) unused% }% }{% \HypDest@Org@DestName{% \csname\HypDest@Prefix\HypDest@temp\endcsname }{#2}% \HypDest@VerboseInfo{% DestName: (\HypDest@temp) % 0x\pdf@escapehex{% \csname\HypDest@Prefix\HypDest@temp\endcsname }% }% }% }% \else \renewcommand*{\Hy@DestName}[2]{% \EdefUnescapeString\HypDest@temp{#1}% \@ifundefined{\HypDest@Prefix\HypDest@temp}{% \HypDest@VerboseInfo{% DestName: (\HypDest@temp) unused% }% }{% \pdfdest num% \csname\HypDest@Prefix\HypDest@temp\endcsname#2\relax \HypDest@VerboseInfo{% DestName: (\HypDest@temp) % num \csname\HypDest@Prefix\HypDest@temp\endcsname }% }% }% \fi \let\HypDest@Org@StartlinkName\Hy@StartlinkName \ifHypDest@name \renewcommand*{\Hy@StartlinkName}[2]{% \HypDest@MarkUsed{#2}% \HypDest@Org@StartlinkName{#1}{% \@ifundefined{\HypDest@Prefix#2}{% #2% }{% \csname\HypDest@Prefix#2\endcsname }% }% }% \else \renewcommand*{\Hy@StartlinkName}[2]{% \HypDest@MarkUsed{#2}% \@ifundefined{\HypDest@Prefix#2}{% \HypDest@Org@StartlinkName{#1}{#2}% }{% \pdfstartlink attr{#1}% goto num\csname\HypDest@Prefix#2\endcsname \relax }% }% \fi \let\HypDest@Org@OutlineName\Hy@OutlineName \ifHypDest@name \renewcommand*{\Hy@OutlineName}[4]{% \HypDest@Org@OutlineName{#1}{% \@ifundefined{\HypDest@Prefix#2}{% #2% }{% \csname\HypDest@Prefix#2\endcsname }% }{#3}{#4}% }% \else \renewcommand*{\Hy@OutlineName}[4]{% \@ifundefined{\HypDest@Prefix#2}{% \HypDest@Org@OutlineName{#1}{#2}{#3}{#4}% }{% \pdfoutline goto num\csname\HypDest@Prefix#2\endcsname count#3{#4}% }% }% \fi \let\HypDest@Org@@writetorep\@@writetorep \renewcommand*{\@@writetorep}[5]{% \begingroup \edef\Hy@tempa{#5}% \ifx\Hy@tempa\Hy@bookmarkstype \HypDest@MarkUsed{#3}% \fi \endgroup \HypDest@Org@@writetorep{#1}{#2}{#3}{#4}{#5}% }% \@ifpackageloaded{bookmark}{% \renewcommand*{\BKM@DefGotoNameAction}[2]{% \@ifundefined{\HypDest@Prefix#2}{% \edef#1{goto name{hypdestopt\string :unknown}}% }{% \ifHypDest@name \edef#1{goto name{\csname\HypDest@Prefix#2\endcsname}}% \else \edef#1{goto num\csname\HypDest@Prefix#2\endcsname}% \fi }% }% \def\BKM@HypDestOptHook{% \ifx\BKM@dest\@empty \else \ifx\BKM@gotor\@empty \HypDest@MarkUsed\BKM@dest \fi \fi }% }{}% } \endinput %% %% End of file `hypdestopt.sty'.