summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/hypdestopt
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2020-09-03 21:09:16 +0000
committerKarl Berry <karl@freefriends.org>2020-09-03 21:09:16 +0000
commit53fffd84fece50ca2d7e59af55e22224c532ee06 (patch)
treed330b07d020a1253c044456c7bf26f739dafe5f8 /Master/texmf-dist/tex/latex/hypdestopt
parent2460993119d8ffa82074d9f0c61b828dda39799b (diff)
hypdestopt (3sep20)
git-svn-id: svn://tug.org/texlive/trunk@56253 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/hypdestopt')
-rw-r--r--Master/texmf-dist/tex/latex/hypdestopt/hypdestopt.sty303
1 files changed, 303 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/hypdestopt/hypdestopt.sty b/Master/texmf-dist/tex/latex/hypdestopt/hypdestopt.sty
new file mode 100644
index 00000000000..8218f1c7711
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/hypdestopt/hypdestopt.sty
@@ -0,0 +1,303 @@
+%%
+%% 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: 2020-09-02 v2.7
+%%
+%% Copyright (C)
+%% 2006-2008, 2011 Heiko Oberdiek
+%% 2016-2020 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}%
+ [2020-09-02 v2.7 Hyperref destination optimizer (HO)]%
+\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'.