diff options
Diffstat (limited to 'Master/texmf-dist/tex')
-rw-r--r-- | Master/texmf-dist/tex/latex/bookmark/bkm-dvipdfm.def | 191 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/bookmark/bkm-dvips.def | 358 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/bookmark/bkm-dvipsone.def | 358 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/bookmark/bkm-pdftex.def | 313 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/bookmark/bkm-textures.def | 358 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/bookmark/bkm-vtex.def | 300 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/bookmark/bookmark.sty | 760 |
7 files changed, 2638 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/bookmark/bkm-dvipdfm.def b/Master/texmf-dist/tex/latex/bookmark/bkm-dvipdfm.def new file mode 100644 index 00000000000..9f0be1f7f8e --- /dev/null +++ b/Master/texmf-dist/tex/latex/bookmark/bkm-dvipdfm.def @@ -0,0 +1,191 @@ +%% +%% This is file `bkm-dvipdfm.def', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% bookmark.dtx (with options: `dvipdfm') +%% +%% This is a generated file. +%% +%% Project: bookmark +%% Version: 2019/12/03 v1.28 +%% +%% Copyright (C) +%% 2007-2011 Heiko Oberdiek +%% 2016-2019 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/bookmark/issues +%% +%% +%% This work consists of the main source file bookmark.dtx +%% and the derived files +%% bookmark.sty, bookmark.pdf, bookmark.ins, bookmark.drv, +%% bkm-dvipdfm.def, bkm-dvips.def, bkm-dvipsone.def, +%% bkm-textures.def, bkm-pdftex.def, bkm-vtex.def, +%% bookmark-example.tex. +%% +\NeedsTeXFormat{LaTeX2e} +\ProvidesFile{bkm-dvipdfm.def}% + [2019/12/03 v1.28 bookmark driver for dvipdfm (HO)]% +\newcount\BKM@id +\BKM@id=\z@ +\@namedef{BKM@0}{000} +\newif\ifBKM@sw +\newcommand*{\bookmark}[2][]{% + \if@filesw + \begingroup + \def\bookmark@text{#2}% + \BKM@setup{#1}% + \edef\BKM@prev{\the\BKM@id}% + \global\advance\BKM@id\@ne + \BKM@swtrue + \@whilesw\ifBKM@sw\fi{% + \def\BKM@abslevel{1}% + \ifnum\ifBKM@startatroot\z@\else\BKM@prev\fi=\z@ + \BKM@startatrootfalse + \expandafter\xdef\csname BKM@\the\BKM@id\endcsname{% + 0{\BKM@level}\BKM@abslevel + }% + \BKM@swfalse + \else + \expandafter\expandafter\expandafter\BKM@getx + \csname BKM@\BKM@prev\endcsname + \ifnum\BKM@level>\BKM@x@level\relax + \BKM@CalcExpr\BKM@abslevel\BKM@x@abslevel+1% + \expandafter\xdef\csname BKM@\the\BKM@id\endcsname{% + {\BKM@prev}{\BKM@level}\BKM@abslevel + }% + \BKM@swfalse + \else + \let\BKM@prev\BKM@x@parent + \fi + \fi + }% + \csname HyPsd@XeTeXBigCharstrue\endcsname + \pdfstringdef\BKM@title{\bookmark@text}% + \edef\BKM@FLAGS{\BKM@PrintStyle}% + \let\BKM@action\@empty + \ifx\BKM@gotor\@empty + \ifx\BKM@dest\@empty + \ifx\BKM@named\@empty + \ifx\BKM@rawaction\@empty + \ifx\BKM@uri\@empty + \ifx\BKM@page\@empty + \PackageError{bookmark}{Missing action}\@ehc + \edef\BKM@action{/Dest[@page1/Fit]}% + \else + \ifx\BKM@view\@empty + \def\BKM@view{Fit}% + \fi + \edef\BKM@action{/Dest[@page\BKM@page/\BKM@view]}% + \fi + \else + \BKM@EscapeString\BKM@uri + \edef\BKM@action{% + /A<<% + /S/URI% + /URI(\BKM@uri)% + >>% + }% + \fi + \else + \edef\BKM@action{/A<<\BKM@rawaction>>}% + \fi + \else + \BKM@EscapeName\BKM@named + \edef\BKM@action{% + /A<</S/Named/N/\BKM@named>>% + }% + \fi + \else + \BKM@EscapeString\BKM@dest + \edef\BKM@action{% + /A<<% + /S/GoTo% + /D(\BKM@dest)% + >>% + }% + \fi + \else + \ifx\BKM@dest\@empty + \ifx\BKM@page\@empty + \def\BKM@page{0}% + \else + \BKM@CalcExpr\BKM@page\BKM@page-1% + \fi + \ifx\BKM@view\@empty + \def\BKM@view{Fit}% + \fi + \edef\BKM@action{/D[\BKM@page/\BKM@view]}% + \else + \BKM@EscapeString\BKM@dest + \edef\BKM@action{/D(\BKM@dest)}% + \fi + \BKM@EscapeString\BKM@gotor + \edef\BKM@action{% + /A<<% + /S/GoToR% + /F(\BKM@gotor)% + \BKM@action + >>% + }% + \fi + \special{pdf:% + out \ifBKM@DvipdfmxOutlineOpen + [% + \ifBKM@open + \ifnum\BKM@level<% + \expandafter\ltx@firstofone\expandafter + {\number\BKM@openlevel} % + \else + -% + \fi + \else + -% + \fi + ] % + \fi + \BKM@abslevel + <<% + /Title(\BKM@title)% + \ifx\BKM@color\@empty + \else + /C[\BKM@color]% + \fi + \ifnum\BKM@FLAGS>\z@ + /F \BKM@FLAGS + \fi + \BKM@action + >>% + }% + \endgroup + \fi +} +\def\BKM@getx#1#2#3{% + \def\BKM@x@parent{#1}% + \def\BKM@x@level{#2}% + \def\BKM@x@abslevel{#3}% +} +\ifBKM@atend + \RequirePackage{atenddvi}% + \AtEndDvi{\BKM@EndHook}% +\fi + +\endinput +%% +%% End of file `bkm-dvipdfm.def'. diff --git a/Master/texmf-dist/tex/latex/bookmark/bkm-dvips.def b/Master/texmf-dist/tex/latex/bookmark/bkm-dvips.def new file mode 100644 index 00000000000..2d1d697b0b2 --- /dev/null +++ b/Master/texmf-dist/tex/latex/bookmark/bkm-dvips.def @@ -0,0 +1,358 @@ +%% +%% This is file `bkm-dvips.def', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% bookmark.dtx (with options: `dvips,pdfmark') +%% +%% This is a generated file. +%% +%% Project: bookmark +%% Version: 2019/12/03 v1.28 +%% +%% Copyright (C) +%% 2007-2011 Heiko Oberdiek +%% 2016-2019 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/bookmark/issues +%% +%% +%% This work consists of the main source file bookmark.dtx +%% and the derived files +%% bookmark.sty, bookmark.pdf, bookmark.ins, bookmark.drv, +%% bkm-dvipdfm.def, bkm-dvips.def, bkm-dvipsone.def, +%% bkm-textures.def, bkm-pdftex.def, bkm-vtex.def, +%% bookmark-example.tex. +%% +\def\BKM@SourceLocation{% + \ifx\BKM@DO@srcfile\@empty + \ifx\BKM@DO@srcline\@empty + \else + .\MessageBreak + Source: line \BKM@DO@srcline + \fi + \else + \ifx\BKM@DO@srcline\@empty + .\MessageBreak + Source: file `\BKM@DO@srcfile'% + \else + .\MessageBreak + Source: file `\BKM@DO@srcfile', line \BKM@DO@srcline + \fi + \fi +} +\NeedsTeXFormat{LaTeX2e} +\ProvidesFile{bkm-dvips.def}% + [2019/12/03 v1.28 bookmark driver for dvips (HO)]% +\def\BKM@PSHeaderFile#1{% + \special{header=#1}% +} +\def\BKM@filename{\jobname.out.ps} +\BKM@PSHeaderFile\BKM@filename +\RequirePackage{atveryend}[2009/12/07] +\AfterLastShipout{\BKM@pdfmark@out} +\def\BKM@pdfmark@out{% + \if@filesw + \newwrite\BKM@file + \immediate\openout\BKM@file=\BKM@filename\relax + \BKM@write{\@percentchar!}% + \BKM@write{/pdfmark where{pop}}% + \BKM@write{% + {% + /globaldict where{pop globaldict}{userdict}ifelse% + /pdfmark/cleartomark load put% + }% + }% + \BKM@write{ifelse}% + \else + \let\BKM@write\@gobble + \let\BKM@DO@entry\@gobbletwo + \fi +} +\def\BKM@write#{% + \immediate\write\BKM@file +} +\def\BKM@DO@entry#1#2{% + \begingroup + \kvsetkeys{BKM@DO}{#1}% + \ifx\BKM@DO@srcfile\@empty + \else + \BKM@UnescapeHex\BKM@DO@srcfile + \fi + \def\BKM@DO@title{#2}% + \BKM@UnescapeHex\BKM@DO@title + \expandafter\expandafter\expandafter\BKM@getx + \csname BKM@\BKM@DO@id\endcsname\@empty\@empty + \let\BKM@attr\@empty + \ifx\BKM@DO@flags\@empty + \else + \edef\BKM@attr{\BKM@attr/F \BKM@DO@flags}% + \fi + \ifx\BKM@DO@color\@empty + \else + \edef\BKM@attr{\BKM@attr/C[\BKM@DO@color]}% + \fi + \let\BKM@action\@empty + \ifx\BKM@DO@gotor\@empty + \ifx\BKM@DO@dest\@empty + \ifx\BKM@DO@named\@empty + \ifx\BKM@DO@rawaction\@empty + \ifx\BKM@DO@uri\@empty + \ifx\BKM@DO@page\@empty + \PackageError{bookmark}{% + Missing action\BKM@SourceLocation + }\@ehc + \edef\BKM@action{% + /Action/GoTo% + /Page 1% + /View[/Fit]% + }% + \else + \ifx\BKM@DO@view\@empty + \def\BKM@DO@view{Fit}% + \fi + \edef\BKM@action{% + /Action/GoTo% + /Page \BKM@DO@page + /View[/\BKM@DO@view]% + }% + \fi + \else + \BKM@UnescapeHex\BKM@DO@uri + \BKM@EscapeString\BKM@DO@uri + \edef\BKM@action{% + /Action<<% + /Subtype/URI% + /URI(\BKM@DO@uri)% + >>% + }% + \fi + \else + \BKM@UnescapeHex\BKM@DO@rawaction + \edef\BKM@action{% + /Action<<% + \BKM@DO@rawaction + >>% + }% + \fi + \else + \BKM@EscapeName\BKM@DO@named + \edef\BKM@action{% + /Action<<% + /Subtype/Named% + /N/\BKM@DO@named + >>% + }% + \fi + \else + \BKM@UnescapeHex\BKM@DO@dest + \BKM@EscapeString\BKM@DO@dest + \edef\BKM@action{% + /Action/GoTo% + /Dest(\BKM@DO@dest)cvn% + }% + \fi + \else + \ifx\BKM@DO@dest\@empty + \ifx\BKM@DO@page\@empty + \def\BKM@DO@page{1}% + \fi + \ifx\BKM@DO@view\@empty + \def\BKM@DO@view{Fit}% + \fi + \edef\BKM@action{% + /Page \BKM@DO@page + /View[/\BKM@DO@view]% + }% + \else + \BKM@UnescapeHex\BKM@DO@dest + \BKM@EscapeString\BKM@DO@dest + \edef\BKM@action{% + /Dest(\BKM@DO@dest)cvn% + }% + \fi + \BKM@UnescapeHex\BKM@DO@gotor + \BKM@EscapeString\BKM@DO@gotor + \edef\BKM@action{% + /Action/GoToR% + /File(\BKM@DO@gotor)% + \BKM@action + }% + \fi + \BKM@write{[}% + \BKM@write{/Title(\BKM@DO@title)}% + \ifnum\BKM@x@childs>\z@ + \BKM@write{/Count \ifBKM@DO@open\else-\fi\BKM@x@childs}% + \fi + \ifx\BKM@attr\@empty + \else + \BKM@write{\BKM@attr}% + \fi + \BKM@write{\BKM@action}% + \BKM@write{/OUT pdfmark}% + \endgroup +} +\RequirePackage{auxhook} +\AddLineBeginMainAux{% + \string\providecommand\string\BKM@entry[2]{}% +} +\newcount\BKM@id +\BKM@id=\z@ +\@namedef{BKM@0}{000} +\newif\ifBKM@sw +\newcommand*{\bookmark}[2][]{% + \if@filesw + \begingroup + \BKM@InitSourceLocation + \def\bookmark@text{#2}% + \BKM@setup{#1}% + \ifx\BKM@srcfile\@empty + \else + \BKM@EscapeHex\BKM@srcfile + \fi + \edef\BKM@prev{\the\BKM@id}% + \global\advance\BKM@id\@ne + \BKM@swtrue + \@whilesw\ifBKM@sw\fi{% + \ifnum\ifBKM@startatroot\z@\else\BKM@prev\fi=\z@ + \BKM@startatrootfalse + \expandafter\xdef\csname BKM@\the\BKM@id\endcsname{% + 0{\BKM@level}0% + }% + \BKM@swfalse + \else + \expandafter\expandafter\expandafter\BKM@getx + \csname BKM@\BKM@prev\endcsname + \ifnum\BKM@level>\BKM@x@level\relax + \expandafter\xdef\csname BKM@\the\BKM@id\endcsname{% + {\BKM@prev}{\BKM@level}0% + }% + \ifnum\BKM@prev>\z@ + \BKM@CalcExpr\BKM@CalcResult\BKM@x@childs+1% + \expandafter\xdef\csname BKM@\BKM@prev\endcsname{% + {\BKM@x@parent}{\BKM@x@level}{\BKM@CalcResult}% + }% + \fi + \BKM@swfalse + \else + \let\BKM@prev\BKM@x@parent + \fi + \fi + }% + \pdfstringdef\BKM@title{\bookmark@text}% + \edef\BKM@FLAGS{\BKM@PrintStyle}% + \csname BKM@HypDestOptHook\endcsname + \BKM@EscapeHex\BKM@dest + \BKM@EscapeHex\BKM@uri + \BKM@EscapeHex\BKM@gotor + \BKM@EscapeHex\BKM@rawaction + \BKM@EscapeHex\BKM@title + \immediate\write\@mainaux{% + \string\BKM@entry{% + id=\number\BKM@id + \ifBKM@open + \ifnum\BKM@level<\BKM@openlevel + ,open% + \fi + \fi + \BKM@auxentry{dest}% + \BKM@auxentry{named}% + \BKM@auxentry{uri}% + \BKM@auxentry{gotor}% + \BKM@auxentry{page}% + \BKM@auxentry{view}% + \BKM@auxentry{rawaction}% + \BKM@auxentry{color}% + \ifnum\BKM@FLAGS>\z@ + ,flags=\BKM@FLAGS + \fi + \BKM@auxentry{srcline}% + \BKM@auxentry{srcfile}% + }{\BKM@title}% + }% + \endgroup + \fi +} +\def\BKM@getx#1#2#3{% + \def\BKM@x@parent{#1}% + \def\BKM@x@level{#2}% + \def\BKM@x@childs{#3}% +} +\def\BKM@auxentry#1{% + \expandafter\ifx\csname BKM@#1\endcsname\@empty + \else + ,#1={\csname BKM@#1\endcsname}% + \fi +} +\def\BKM@InitSourceLocation{% + \edef\BKM@srcline{\the\inputlineno}% + \BKM@LuaTeX@InitFile + \ifx\BKM@srcfile\@empty + \ltx@IfUndefined{currfilepath}{}{% + \edef\BKM@srcfile{\currfilepath}% + }% + \fi +} +\ifluatex + \ifnum\luatexversion>36 % + \def\BKM@LuaTeX@InitFile{% + \begingroup + \ltx@LocToksA={}% + \edef\x{\endgroup + \def\noexpand\BKM@srcfile{% + \the\expandafter\ltx@LocToksA + \directlua{% + if status and status.filename then % + tex.settoks('ltx@LocToksA', status.filename)% + end% + }% + }% + }\x + }% + \else + \let\BKM@LuaTeX@InitFile\relax + \fi +\else + \let\BKM@LuaTeX@InitFile\relax +\fi +\SetupKeyvalOptions{family=BKM@DO,prefix=BKM@DO@} +\DeclareStringOption[0]{id} +\DeclareBoolOption{open} +\DeclareStringOption{flags} +\DeclareStringOption{color} +\DeclareStringOption{dest} +\DeclareStringOption{named} +\DeclareStringOption{uri} +\DeclareStringOption{gotor} +\DeclareStringOption{page} +\DeclareStringOption{view} +\DeclareStringOption{rawaction} +\DeclareStringOption{srcline} +\DeclareStringOption{srcfile} +\AtBeginDocument{% + \let\BKM@entry\BKM@DO@entry +} +\ifBKM@atend + \AfterLastShipout{% + \BKM@EndHook + }% +\fi + +\endinput +%% +%% End of file `bkm-dvips.def'. diff --git a/Master/texmf-dist/tex/latex/bookmark/bkm-dvipsone.def b/Master/texmf-dist/tex/latex/bookmark/bkm-dvipsone.def new file mode 100644 index 00000000000..2e075100348 --- /dev/null +++ b/Master/texmf-dist/tex/latex/bookmark/bkm-dvipsone.def @@ -0,0 +1,358 @@ +%% +%% This is file `bkm-dvipsone.def', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% bookmark.dtx (with options: `dvipsone,pdfmark') +%% +%% This is a generated file. +%% +%% Project: bookmark +%% Version: 2019/12/03 v1.28 +%% +%% Copyright (C) +%% 2007-2011 Heiko Oberdiek +%% 2016-2019 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/bookmark/issues +%% +%% +%% This work consists of the main source file bookmark.dtx +%% and the derived files +%% bookmark.sty, bookmark.pdf, bookmark.ins, bookmark.drv, +%% bkm-dvipdfm.def, bkm-dvips.def, bkm-dvipsone.def, +%% bkm-textures.def, bkm-pdftex.def, bkm-vtex.def, +%% bookmark-example.tex. +%% +\def\BKM@SourceLocation{% + \ifx\BKM@DO@srcfile\@empty + \ifx\BKM@DO@srcline\@empty + \else + .\MessageBreak + Source: line \BKM@DO@srcline + \fi + \else + \ifx\BKM@DO@srcline\@empty + .\MessageBreak + Source: file `\BKM@DO@srcfile'% + \else + .\MessageBreak + Source: file `\BKM@DO@srcfile', line \BKM@DO@srcline + \fi + \fi +} +\NeedsTeXFormat{LaTeX2e} +\ProvidesFile{bkm-dvipsone.def}% + [2019/12/03 v1.28 bookmark driver for dvipsone (HO)]% +\def\BKM@PSHeaderFile#1{% + \special{header=#1}% +} +\def\BKM@filename{\jobname.out.ps} +\BKM@PSHeaderFile\BKM@filename +\RequirePackage{atveryend}[2009/12/07] +\AfterLastShipout{\BKM@pdfmark@out} +\def\BKM@pdfmark@out{% + \if@filesw + \newwrite\BKM@file + \immediate\openout\BKM@file=\BKM@filename\relax + \BKM@write{\@percentchar!}% + \BKM@write{/pdfmark where{pop}}% + \BKM@write{% + {% + /globaldict where{pop globaldict}{userdict}ifelse% + /pdfmark/cleartomark load put% + }% + }% + \BKM@write{ifelse}% + \else + \let\BKM@write\@gobble + \let\BKM@DO@entry\@gobbletwo + \fi +} +\def\BKM@write#{% + \immediate\write\BKM@file +} +\def\BKM@DO@entry#1#2{% + \begingroup + \kvsetkeys{BKM@DO}{#1}% + \ifx\BKM@DO@srcfile\@empty + \else + \BKM@UnescapeHex\BKM@DO@srcfile + \fi + \def\BKM@DO@title{#2}% + \BKM@UnescapeHex\BKM@DO@title + \expandafter\expandafter\expandafter\BKM@getx + \csname BKM@\BKM@DO@id\endcsname\@empty\@empty + \let\BKM@attr\@empty + \ifx\BKM@DO@flags\@empty + \else + \edef\BKM@attr{\BKM@attr/F \BKM@DO@flags}% + \fi + \ifx\BKM@DO@color\@empty + \else + \edef\BKM@attr{\BKM@attr/C[\BKM@DO@color]}% + \fi + \let\BKM@action\@empty + \ifx\BKM@DO@gotor\@empty + \ifx\BKM@DO@dest\@empty + \ifx\BKM@DO@named\@empty + \ifx\BKM@DO@rawaction\@empty + \ifx\BKM@DO@uri\@empty + \ifx\BKM@DO@page\@empty + \PackageError{bookmark}{% + Missing action\BKM@SourceLocation + }\@ehc + \edef\BKM@action{% + /Action/GoTo% + /Page 1% + /View[/Fit]% + }% + \else + \ifx\BKM@DO@view\@empty + \def\BKM@DO@view{Fit}% + \fi + \edef\BKM@action{% + /Action/GoTo% + /Page \BKM@DO@page + /View[/\BKM@DO@view]% + }% + \fi + \else + \BKM@UnescapeHex\BKM@DO@uri + \BKM@EscapeString\BKM@DO@uri + \edef\BKM@action{% + /Action<<% + /Subtype/URI% + /URI(\BKM@DO@uri)% + >>% + }% + \fi + \else + \BKM@UnescapeHex\BKM@DO@rawaction + \edef\BKM@action{% + /Action<<% + \BKM@DO@rawaction + >>% + }% + \fi + \else + \BKM@EscapeName\BKM@DO@named + \edef\BKM@action{% + /Action<<% + /Subtype/Named% + /N/\BKM@DO@named + >>% + }% + \fi + \else + \BKM@UnescapeHex\BKM@DO@dest + \BKM@EscapeString\BKM@DO@dest + \edef\BKM@action{% + /Action/GoTo% + /Dest(\BKM@DO@dest)cvn% + }% + \fi + \else + \ifx\BKM@DO@dest\@empty + \ifx\BKM@DO@page\@empty + \def\BKM@DO@page{1}% + \fi + \ifx\BKM@DO@view\@empty + \def\BKM@DO@view{Fit}% + \fi + \edef\BKM@action{% + /Page \BKM@DO@page + /View[/\BKM@DO@view]% + }% + \else + \BKM@UnescapeHex\BKM@DO@dest + \BKM@EscapeString\BKM@DO@dest + \edef\BKM@action{% + /Dest(\BKM@DO@dest)cvn% + }% + \fi + \BKM@UnescapeHex\BKM@DO@gotor + \BKM@EscapeString\BKM@DO@gotor + \edef\BKM@action{% + /Action/GoToR% + /File(\BKM@DO@gotor)% + \BKM@action + }% + \fi + \BKM@write{[}% + \BKM@write{/Title(\BKM@DO@title)}% + \ifnum\BKM@x@childs>\z@ + \BKM@write{/Count \ifBKM@DO@open\else-\fi\BKM@x@childs}% + \fi + \ifx\BKM@attr\@empty + \else + \BKM@write{\BKM@attr}% + \fi + \BKM@write{\BKM@action}% + \BKM@write{/OUT pdfmark}% + \endgroup +} +\RequirePackage{auxhook} +\AddLineBeginMainAux{% + \string\providecommand\string\BKM@entry[2]{}% +} +\newcount\BKM@id +\BKM@id=\z@ +\@namedef{BKM@0}{000} +\newif\ifBKM@sw +\newcommand*{\bookmark}[2][]{% + \if@filesw + \begingroup + \BKM@InitSourceLocation + \def\bookmark@text{#2}% + \BKM@setup{#1}% + \ifx\BKM@srcfile\@empty + \else + \BKM@EscapeHex\BKM@srcfile + \fi + \edef\BKM@prev{\the\BKM@id}% + \global\advance\BKM@id\@ne + \BKM@swtrue + \@whilesw\ifBKM@sw\fi{% + \ifnum\ifBKM@startatroot\z@\else\BKM@prev\fi=\z@ + \BKM@startatrootfalse + \expandafter\xdef\csname BKM@\the\BKM@id\endcsname{% + 0{\BKM@level}0% + }% + \BKM@swfalse + \else + \expandafter\expandafter\expandafter\BKM@getx + \csname BKM@\BKM@prev\endcsname + \ifnum\BKM@level>\BKM@x@level\relax + \expandafter\xdef\csname BKM@\the\BKM@id\endcsname{% + {\BKM@prev}{\BKM@level}0% + }% + \ifnum\BKM@prev>\z@ + \BKM@CalcExpr\BKM@CalcResult\BKM@x@childs+1% + \expandafter\xdef\csname BKM@\BKM@prev\endcsname{% + {\BKM@x@parent}{\BKM@x@level}{\BKM@CalcResult}% + }% + \fi + \BKM@swfalse + \else + \let\BKM@prev\BKM@x@parent + \fi + \fi + }% + \pdfstringdef\BKM@title{\bookmark@text}% + \edef\BKM@FLAGS{\BKM@PrintStyle}% + \csname BKM@HypDestOptHook\endcsname + \BKM@EscapeHex\BKM@dest + \BKM@EscapeHex\BKM@uri + \BKM@EscapeHex\BKM@gotor + \BKM@EscapeHex\BKM@rawaction + \BKM@EscapeHex\BKM@title + \immediate\write\@mainaux{% + \string\BKM@entry{% + id=\number\BKM@id + \ifBKM@open + \ifnum\BKM@level<\BKM@openlevel + ,open% + \fi + \fi + \BKM@auxentry{dest}% + \BKM@auxentry{named}% + \BKM@auxentry{uri}% + \BKM@auxentry{gotor}% + \BKM@auxentry{page}% + \BKM@auxentry{view}% + \BKM@auxentry{rawaction}% + \BKM@auxentry{color}% + \ifnum\BKM@FLAGS>\z@ + ,flags=\BKM@FLAGS + \fi + \BKM@auxentry{srcline}% + \BKM@auxentry{srcfile}% + }{\BKM@title}% + }% + \endgroup + \fi +} +\def\BKM@getx#1#2#3{% + \def\BKM@x@parent{#1}% + \def\BKM@x@level{#2}% + \def\BKM@x@childs{#3}% +} +\def\BKM@auxentry#1{% + \expandafter\ifx\csname BKM@#1\endcsname\@empty + \else + ,#1={\csname BKM@#1\endcsname}% + \fi +} +\def\BKM@InitSourceLocation{% + \edef\BKM@srcline{\the\inputlineno}% + \BKM@LuaTeX@InitFile + \ifx\BKM@srcfile\@empty + \ltx@IfUndefined{currfilepath}{}{% + \edef\BKM@srcfile{\currfilepath}% + }% + \fi +} +\ifluatex + \ifnum\luatexversion>36 % + \def\BKM@LuaTeX@InitFile{% + \begingroup + \ltx@LocToksA={}% + \edef\x{\endgroup + \def\noexpand\BKM@srcfile{% + \the\expandafter\ltx@LocToksA + \directlua{% + if status and status.filename then % + tex.settoks('ltx@LocToksA', status.filename)% + end% + }% + }% + }\x + }% + \else + \let\BKM@LuaTeX@InitFile\relax + \fi +\else + \let\BKM@LuaTeX@InitFile\relax +\fi +\SetupKeyvalOptions{family=BKM@DO,prefix=BKM@DO@} +\DeclareStringOption[0]{id} +\DeclareBoolOption{open} +\DeclareStringOption{flags} +\DeclareStringOption{color} +\DeclareStringOption{dest} +\DeclareStringOption{named} +\DeclareStringOption{uri} +\DeclareStringOption{gotor} +\DeclareStringOption{page} +\DeclareStringOption{view} +\DeclareStringOption{rawaction} +\DeclareStringOption{srcline} +\DeclareStringOption{srcfile} +\AtBeginDocument{% + \let\BKM@entry\BKM@DO@entry +} +\ifBKM@atend + \AfterLastShipout{% + \BKM@EndHook + }% +\fi + +\endinput +%% +%% End of file `bkm-dvipsone.def'. diff --git a/Master/texmf-dist/tex/latex/bookmark/bkm-pdftex.def b/Master/texmf-dist/tex/latex/bookmark/bkm-pdftex.def new file mode 100644 index 00000000000..d06474fb553 --- /dev/null +++ b/Master/texmf-dist/tex/latex/bookmark/bkm-pdftex.def @@ -0,0 +1,313 @@ +%% +%% This is file `bkm-pdftex.def', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% bookmark.dtx (with options: `pdftex') +%% +%% This is a generated file. +%% +%% Project: bookmark +%% Version: 2019/12/03 v1.28 +%% +%% Copyright (C) +%% 2007-2011 Heiko Oberdiek +%% 2016-2019 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/bookmark/issues +%% +%% +%% This work consists of the main source file bookmark.dtx +%% and the derived files +%% bookmark.sty, bookmark.pdf, bookmark.ins, bookmark.drv, +%% bkm-dvipdfm.def, bkm-dvips.def, bkm-dvipsone.def, +%% bkm-textures.def, bkm-pdftex.def, bkm-vtex.def, +%% bookmark-example.tex. +%% +\NeedsTeXFormat{LaTeX2e} +\ProvidesFile{bkm-pdftex.def}% + [2019/12/03 v1.28 bookmark driver for pdfTeX (HO)]% +\def\BKM@DO@entry#1#2{% + \begingroup + \kvsetkeys{BKM@DO}{#1}% + \def\BKM@DO@title{#2}% + \ifx\BKM@DO@srcfile\@empty + \else + \BKM@UnescapeHex\BKM@DO@srcfile + \fi + \BKM@UnescapeHex\BKM@DO@title + \expandafter\expandafter\expandafter\BKM@getx + \csname BKM@\BKM@DO@id\endcsname\@empty\@empty + \let\BKM@attr\@empty + \ifx\BKM@DO@flags\@empty + \else + \edef\BKM@attr{\BKM@attr/F \BKM@DO@flags}% + \fi + \ifx\BKM@DO@color\@empty + \else + \edef\BKM@attr{\BKM@attr/C[\BKM@DO@color]}% + \fi + \ifx\BKM@attr\@empty + \else + \edef\BKM@attr{attr{\BKM@attr}}% + \fi + \let\BKM@action\@empty + \ifx\BKM@DO@gotor\@empty + \ifx\BKM@DO@dest\@empty + \ifx\BKM@DO@named\@empty + \ifx\BKM@DO@rawaction\@empty + \ifx\BKM@DO@uri\@empty + \ifx\BKM@DO@page\@empty + \PackageError{bookmark}{% + Missing action\BKM@SourceLocation + }\@ehc + \edef\BKM@action{goto page1{/Fit}}% + \else + \ifx\BKM@DO@view\@empty + \def\BKM@DO@view{Fit}% + \fi + \edef\BKM@action{goto page\BKM@DO@page{/\BKM@DO@view}}% + \fi + \else + \BKM@UnescapeHex\BKM@DO@uri + \BKM@EscapeString\BKM@DO@uri + \edef\BKM@action{user{<</S/URI/URI(\BKM@DO@uri)>>}}% + \fi + \else + \BKM@UnescapeHex\BKM@DO@rawaction + \edef\BKM@action{% + user{% + <<% + \BKM@DO@rawaction + >>% + }% + }% + \fi + \else + \BKM@EscapeName\BKM@DO@named + \edef\BKM@action{% + user{<</S/Named/N/\BKM@DO@named>>}% + }% + \fi + \else + \BKM@UnescapeHex\BKM@DO@dest + \BKM@DefGotoNameAction\BKM@action\BKM@DO@dest + \fi + \else + \ifx\BKM@DO@dest\@empty + \ifx\BKM@DO@page\@empty + \def\BKM@DO@page{0}% + \else + \BKM@CalcExpr\BKM@DO@page\BKM@DO@page-1% + \fi + \ifx\BKM@DO@view\@empty + \def\BKM@DO@view{Fit}% + \fi + \edef\BKM@action{/D[\BKM@DO@page/\BKM@DO@view]}% + \else + \BKM@UnescapeHex\BKM@DO@dest + \BKM@EscapeString\BKM@DO@dest + \edef\BKM@action{/D(\BKM@DO@dest)}% + \fi + \BKM@UnescapeHex\BKM@DO@gotor + \BKM@EscapeString\BKM@DO@gotor + \edef\BKM@action{% + user{% + <<% + /S/GoToR% + /F(\BKM@DO@gotor)% + \BKM@action + >>% + }% + }% + \fi + \pdfoutline\BKM@attr\BKM@action + count\ifBKM@DO@open\else-\fi\BKM@x@childs + {\BKM@DO@title}% + \endgroup +} +\def\BKM@DefGotoNameAction#1#2{% + \BKM@EscapeString\BKM@DO@dest + \edef#1{goto name{#2}}% +} +\def\BKM@SourceLocation{% + \ifx\BKM@DO@srcfile\@empty + \ifx\BKM@DO@srcline\@empty + \else + .\MessageBreak + Source: line \BKM@DO@srcline + \fi + \else + \ifx\BKM@DO@srcline\@empty + .\MessageBreak + Source: file `\BKM@DO@srcfile'% + \else + .\MessageBreak + Source: file `\BKM@DO@srcfile', line \BKM@DO@srcline + \fi + \fi +} +\RequirePackage{auxhook} +\AddLineBeginMainAux{% + \string\providecommand\string\BKM@entry[2]{}% +} +\newcount\BKM@id +\BKM@id=\z@ +\@namedef{BKM@0}{000} +\newif\ifBKM@sw +\newcommand*{\bookmark}[2][]{% + \if@filesw + \begingroup + \BKM@InitSourceLocation + \def\bookmark@text{#2}% + \BKM@setup{#1}% + \ifx\BKM@srcfile\@empty + \else + \BKM@EscapeHex\BKM@srcfile + \fi + \edef\BKM@prev{\the\BKM@id}% + \global\advance\BKM@id\@ne + \BKM@swtrue + \@whilesw\ifBKM@sw\fi{% + \ifnum\ifBKM@startatroot\z@\else\BKM@prev\fi=\z@ + \BKM@startatrootfalse + \expandafter\xdef\csname BKM@\the\BKM@id\endcsname{% + 0{\BKM@level}0% + }% + \BKM@swfalse + \else + \expandafter\expandafter\expandafter\BKM@getx + \csname BKM@\BKM@prev\endcsname + \ifnum\BKM@level>\BKM@x@level\relax + \expandafter\xdef\csname BKM@\the\BKM@id\endcsname{% + {\BKM@prev}{\BKM@level}0% + }% + \ifnum\BKM@prev>\z@ + \BKM@CalcExpr\BKM@CalcResult\BKM@x@childs+1% + \expandafter\xdef\csname BKM@\BKM@prev\endcsname{% + {\BKM@x@parent}{\BKM@x@level}{\BKM@CalcResult}% + }% + \fi + \BKM@swfalse + \else + \let\BKM@prev\BKM@x@parent + \fi + \fi + }% + \pdfstringdef\BKM@title{\bookmark@text}% + \edef\BKM@FLAGS{\BKM@PrintStyle}% + \csname BKM@HypDestOptHook\endcsname + \BKM@EscapeHex\BKM@dest + \BKM@EscapeHex\BKM@uri + \BKM@EscapeHex\BKM@gotor + \BKM@EscapeHex\BKM@rawaction + \BKM@EscapeHex\BKM@title + \immediate\write\@mainaux{% + \string\BKM@entry{% + id=\number\BKM@id + \ifBKM@open + \ifnum\BKM@level<\BKM@openlevel + ,open% + \fi + \fi + \BKM@auxentry{dest}% + \BKM@auxentry{named}% + \BKM@auxentry{uri}% + \BKM@auxentry{gotor}% + \BKM@auxentry{page}% + \BKM@auxentry{view}% + \BKM@auxentry{rawaction}% + \BKM@auxentry{color}% + \ifnum\BKM@FLAGS>\z@ + ,flags=\BKM@FLAGS + \fi + \BKM@auxentry{srcline}% + \BKM@auxentry{srcfile}% + }{\BKM@title}% + }% + \endgroup + \fi +} +\def\BKM@getx#1#2#3{% + \def\BKM@x@parent{#1}% + \def\BKM@x@level{#2}% + \def\BKM@x@childs{#3}% +} +\def\BKM@auxentry#1{% + \expandafter\ifx\csname BKM@#1\endcsname\@empty + \else + ,#1={\csname BKM@#1\endcsname}% + \fi +} +\def\BKM@InitSourceLocation{% + \edef\BKM@srcline{\the\inputlineno}% + \BKM@LuaTeX@InitFile + \ifx\BKM@srcfile\@empty + \ltx@IfUndefined{currfilepath}{}{% + \edef\BKM@srcfile{\currfilepath}% + }% + \fi +} +\ifluatex + \ifnum\luatexversion>36 % + \def\BKM@LuaTeX@InitFile{% + \begingroup + \ltx@LocToksA={}% + \edef\x{\endgroup + \def\noexpand\BKM@srcfile{% + \the\expandafter\ltx@LocToksA + \directlua{% + if status and status.filename then % + tex.settoks('ltx@LocToksA', status.filename)% + end% + }% + }% + }\x + }% + \else + \let\BKM@LuaTeX@InitFile\relax + \fi +\else + \let\BKM@LuaTeX@InitFile\relax +\fi +\SetupKeyvalOptions{family=BKM@DO,prefix=BKM@DO@} +\DeclareStringOption[0]{id} +\DeclareBoolOption{open} +\DeclareStringOption{flags} +\DeclareStringOption{color} +\DeclareStringOption{dest} +\DeclareStringOption{named} +\DeclareStringOption{uri} +\DeclareStringOption{gotor} +\DeclareStringOption{page} +\DeclareStringOption{view} +\DeclareStringOption{rawaction} +\DeclareStringOption{srcline} +\DeclareStringOption{srcfile} +\AtBeginDocument{% + \let\BKM@entry\BKM@DO@entry +} +\ifBKM@atend + \AfterLastShipout{% + \BKM@EndHook + }% +\fi + +\endinput +%% +%% End of file `bkm-pdftex.def'. diff --git a/Master/texmf-dist/tex/latex/bookmark/bkm-textures.def b/Master/texmf-dist/tex/latex/bookmark/bkm-textures.def new file mode 100644 index 00000000000..770ec109756 --- /dev/null +++ b/Master/texmf-dist/tex/latex/bookmark/bkm-textures.def @@ -0,0 +1,358 @@ +%% +%% This is file `bkm-textures.def', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% bookmark.dtx (with options: `textures,pdfmark') +%% +%% This is a generated file. +%% +%% Project: bookmark +%% Version: 2019/12/03 v1.28 +%% +%% Copyright (C) +%% 2007-2011 Heiko Oberdiek +%% 2016-2019 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/bookmark/issues +%% +%% +%% This work consists of the main source file bookmark.dtx +%% and the derived files +%% bookmark.sty, bookmark.pdf, bookmark.ins, bookmark.drv, +%% bkm-dvipdfm.def, bkm-dvips.def, bkm-dvipsone.def, +%% bkm-textures.def, bkm-pdftex.def, bkm-vtex.def, +%% bookmark-example.tex. +%% +\def\BKM@SourceLocation{% + \ifx\BKM@DO@srcfile\@empty + \ifx\BKM@DO@srcline\@empty + \else + .\MessageBreak + Source: line \BKM@DO@srcline + \fi + \else + \ifx\BKM@DO@srcline\@empty + .\MessageBreak + Source: file `\BKM@DO@srcfile'% + \else + .\MessageBreak + Source: file `\BKM@DO@srcfile', line \BKM@DO@srcline + \fi + \fi +} +\NeedsTeXFormat{LaTeX2e} +\ProvidesFile{bkm-textures.def}% + [2019/12/03 v1.28 bookmark driver for textures (HO)]% +\def\BKM@PSHeaderFile#1{% + \special{prePostScriptfile #1}% +} +\def\BKM@filename{\jobname.out.ps} +\BKM@PSHeaderFile\BKM@filename +\RequirePackage{atveryend}[2009/12/07] +\AfterLastShipout{\BKM@pdfmark@out} +\def\BKM@pdfmark@out{% + \if@filesw + \newwrite\BKM@file + \immediate\openout\BKM@file=\BKM@filename\relax + \BKM@write{\@percentchar!}% + \BKM@write{/pdfmark where{pop}}% + \BKM@write{% + {% + /globaldict where{pop globaldict}{userdict}ifelse% + /pdfmark/cleartomark load put% + }% + }% + \BKM@write{ifelse}% + \else + \let\BKM@write\@gobble + \let\BKM@DO@entry\@gobbletwo + \fi +} +\def\BKM@write#{% + \immediate\write\BKM@file +} +\def\BKM@DO@entry#1#2{% + \begingroup + \kvsetkeys{BKM@DO}{#1}% + \ifx\BKM@DO@srcfile\@empty + \else + \BKM@UnescapeHex\BKM@DO@srcfile + \fi + \def\BKM@DO@title{#2}% + \BKM@UnescapeHex\BKM@DO@title + \expandafter\expandafter\expandafter\BKM@getx + \csname BKM@\BKM@DO@id\endcsname\@empty\@empty + \let\BKM@attr\@empty + \ifx\BKM@DO@flags\@empty + \else + \edef\BKM@attr{\BKM@attr/F \BKM@DO@flags}% + \fi + \ifx\BKM@DO@color\@empty + \else + \edef\BKM@attr{\BKM@attr/C[\BKM@DO@color]}% + \fi + \let\BKM@action\@empty + \ifx\BKM@DO@gotor\@empty + \ifx\BKM@DO@dest\@empty + \ifx\BKM@DO@named\@empty + \ifx\BKM@DO@rawaction\@empty + \ifx\BKM@DO@uri\@empty + \ifx\BKM@DO@page\@empty + \PackageError{bookmark}{% + Missing action\BKM@SourceLocation + }\@ehc + \edef\BKM@action{% + /Action/GoTo% + /Page 1% + /View[/Fit]% + }% + \else + \ifx\BKM@DO@view\@empty + \def\BKM@DO@view{Fit}% + \fi + \edef\BKM@action{% + /Action/GoTo% + /Page \BKM@DO@page + /View[/\BKM@DO@view]% + }% + \fi + \else + \BKM@UnescapeHex\BKM@DO@uri + \BKM@EscapeString\BKM@DO@uri + \edef\BKM@action{% + /Action<<% + /Subtype/URI% + /URI(\BKM@DO@uri)% + >>% + }% + \fi + \else + \BKM@UnescapeHex\BKM@DO@rawaction + \edef\BKM@action{% + /Action<<% + \BKM@DO@rawaction + >>% + }% + \fi + \else + \BKM@EscapeName\BKM@DO@named + \edef\BKM@action{% + /Action<<% + /Subtype/Named% + /N/\BKM@DO@named + >>% + }% + \fi + \else + \BKM@UnescapeHex\BKM@DO@dest + \BKM@EscapeString\BKM@DO@dest + \edef\BKM@action{% + /Action/GoTo% + /Dest(\BKM@DO@dest)cvn% + }% + \fi + \else + \ifx\BKM@DO@dest\@empty + \ifx\BKM@DO@page\@empty + \def\BKM@DO@page{1}% + \fi + \ifx\BKM@DO@view\@empty + \def\BKM@DO@view{Fit}% + \fi + \edef\BKM@action{% + /Page \BKM@DO@page + /View[/\BKM@DO@view]% + }% + \else + \BKM@UnescapeHex\BKM@DO@dest + \BKM@EscapeString\BKM@DO@dest + \edef\BKM@action{% + /Dest(\BKM@DO@dest)cvn% + }% + \fi + \BKM@UnescapeHex\BKM@DO@gotor + \BKM@EscapeString\BKM@DO@gotor + \edef\BKM@action{% + /Action/GoToR% + /File(\BKM@DO@gotor)% + \BKM@action + }% + \fi + \BKM@write{[}% + \BKM@write{/Title(\BKM@DO@title)}% + \ifnum\BKM@x@childs>\z@ + \BKM@write{/Count \ifBKM@DO@open\else-\fi\BKM@x@childs}% + \fi + \ifx\BKM@attr\@empty + \else + \BKM@write{\BKM@attr}% + \fi + \BKM@write{\BKM@action}% + \BKM@write{/OUT pdfmark}% + \endgroup +} +\RequirePackage{auxhook} +\AddLineBeginMainAux{% + \string\providecommand\string\BKM@entry[2]{}% +} +\newcount\BKM@id +\BKM@id=\z@ +\@namedef{BKM@0}{000} +\newif\ifBKM@sw +\newcommand*{\bookmark}[2][]{% + \if@filesw + \begingroup + \BKM@InitSourceLocation + \def\bookmark@text{#2}% + \BKM@setup{#1}% + \ifx\BKM@srcfile\@empty + \else + \BKM@EscapeHex\BKM@srcfile + \fi + \edef\BKM@prev{\the\BKM@id}% + \global\advance\BKM@id\@ne + \BKM@swtrue + \@whilesw\ifBKM@sw\fi{% + \ifnum\ifBKM@startatroot\z@\else\BKM@prev\fi=\z@ + \BKM@startatrootfalse + \expandafter\xdef\csname BKM@\the\BKM@id\endcsname{% + 0{\BKM@level}0% + }% + \BKM@swfalse + \else + \expandafter\expandafter\expandafter\BKM@getx + \csname BKM@\BKM@prev\endcsname + \ifnum\BKM@level>\BKM@x@level\relax + \expandafter\xdef\csname BKM@\the\BKM@id\endcsname{% + {\BKM@prev}{\BKM@level}0% + }% + \ifnum\BKM@prev>\z@ + \BKM@CalcExpr\BKM@CalcResult\BKM@x@childs+1% + \expandafter\xdef\csname BKM@\BKM@prev\endcsname{% + {\BKM@x@parent}{\BKM@x@level}{\BKM@CalcResult}% + }% + \fi + \BKM@swfalse + \else + \let\BKM@prev\BKM@x@parent + \fi + \fi + }% + \pdfstringdef\BKM@title{\bookmark@text}% + \edef\BKM@FLAGS{\BKM@PrintStyle}% + \csname BKM@HypDestOptHook\endcsname + \BKM@EscapeHex\BKM@dest + \BKM@EscapeHex\BKM@uri + \BKM@EscapeHex\BKM@gotor + \BKM@EscapeHex\BKM@rawaction + \BKM@EscapeHex\BKM@title + \immediate\write\@mainaux{% + \string\BKM@entry{% + id=\number\BKM@id + \ifBKM@open + \ifnum\BKM@level<\BKM@openlevel + ,open% + \fi + \fi + \BKM@auxentry{dest}% + \BKM@auxentry{named}% + \BKM@auxentry{uri}% + \BKM@auxentry{gotor}% + \BKM@auxentry{page}% + \BKM@auxentry{view}% + \BKM@auxentry{rawaction}% + \BKM@auxentry{color}% + \ifnum\BKM@FLAGS>\z@ + ,flags=\BKM@FLAGS + \fi + \BKM@auxentry{srcline}% + \BKM@auxentry{srcfile}% + }{\BKM@title}% + }% + \endgroup + \fi +} +\def\BKM@getx#1#2#3{% + \def\BKM@x@parent{#1}% + \def\BKM@x@level{#2}% + \def\BKM@x@childs{#3}% +} +\def\BKM@auxentry#1{% + \expandafter\ifx\csname BKM@#1\endcsname\@empty + \else + ,#1={\csname BKM@#1\endcsname}% + \fi +} +\def\BKM@InitSourceLocation{% + \edef\BKM@srcline{\the\inputlineno}% + \BKM@LuaTeX@InitFile + \ifx\BKM@srcfile\@empty + \ltx@IfUndefined{currfilepath}{}{% + \edef\BKM@srcfile{\currfilepath}% + }% + \fi +} +\ifluatex + \ifnum\luatexversion>36 % + \def\BKM@LuaTeX@InitFile{% + \begingroup + \ltx@LocToksA={}% + \edef\x{\endgroup + \def\noexpand\BKM@srcfile{% + \the\expandafter\ltx@LocToksA + \directlua{% + if status and status.filename then % + tex.settoks('ltx@LocToksA', status.filename)% + end% + }% + }% + }\x + }% + \else + \let\BKM@LuaTeX@InitFile\relax + \fi +\else + \let\BKM@LuaTeX@InitFile\relax +\fi +\SetupKeyvalOptions{family=BKM@DO,prefix=BKM@DO@} +\DeclareStringOption[0]{id} +\DeclareBoolOption{open} +\DeclareStringOption{flags} +\DeclareStringOption{color} +\DeclareStringOption{dest} +\DeclareStringOption{named} +\DeclareStringOption{uri} +\DeclareStringOption{gotor} +\DeclareStringOption{page} +\DeclareStringOption{view} +\DeclareStringOption{rawaction} +\DeclareStringOption{srcline} +\DeclareStringOption{srcfile} +\AtBeginDocument{% + \let\BKM@entry\BKM@DO@entry +} +\ifBKM@atend + \AfterLastShipout{% + \BKM@EndHook + }% +\fi + +\endinput +%% +%% End of file `bkm-textures.def'. diff --git a/Master/texmf-dist/tex/latex/bookmark/bkm-vtex.def b/Master/texmf-dist/tex/latex/bookmark/bkm-vtex.def new file mode 100644 index 00000000000..ddb0cdf14c5 --- /dev/null +++ b/Master/texmf-dist/tex/latex/bookmark/bkm-vtex.def @@ -0,0 +1,300 @@ +%% +%% This is file `bkm-vtex.def', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% bookmark.dtx (with options: `vtex') +%% +%% This is a generated file. +%% +%% Project: bookmark +%% Version: 2019/12/03 v1.28 +%% +%% Copyright (C) +%% 2007-2011 Heiko Oberdiek +%% 2016-2019 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/bookmark/issues +%% +%% +%% This work consists of the main source file bookmark.dtx +%% and the derived files +%% bookmark.sty, bookmark.pdf, bookmark.ins, bookmark.drv, +%% bkm-dvipdfm.def, bkm-dvips.def, bkm-dvipsone.def, +%% bkm-textures.def, bkm-pdftex.def, bkm-vtex.def, +%% bookmark-example.tex. +%% +\NeedsTeXFormat{LaTeX2e} +\ProvidesFile{bkm-vtex.def}% + [2019/12/03 v1.28 bookmark driver for VTeX (HO)]% +\ifvtexpdf +\else + \PackageWarningNoLine{bookmark}{% + The VTeX driver only supports PDF mode% + }% +\fi +\newcount\BKM@id +\BKM@id=\z@ +\@namedef{BKM@0}{00} +\newif\ifBKM@sw +\newcommand*{\bookmark}[2][]{% + \if@filesw + \begingroup + \def\bookmark@text{#2}% + \BKM@setup{#1}% + \edef\BKM@prev{\the\BKM@id}% + \global\advance\BKM@id\@ne + \BKM@swtrue + \@whilesw\ifBKM@sw\fi{% + \ifnum\ifBKM@startatroot\z@\else\BKM@prev\fi=\z@ + \BKM@startatrootfalse + \def\BKM@parent{0}% + \expandafter\xdef\csname BKM@\the\BKM@id\endcsname{% + 0{\BKM@level}% + }% + \BKM@swfalse + \else + \expandafter\expandafter\expandafter\BKM@getx + \csname BKM@\BKM@prev\endcsname + \ifnum\BKM@level>\BKM@x@level\relax + \let\BKM@parent\BKM@prev + \expandafter\xdef\csname BKM@\the\BKM@id\endcsname{% + {\BKM@prev}{\BKM@level}% + }% + \BKM@swfalse + \else + \let\BKM@prev\BKM@x@parent + \fi + \fi + }% + \pdfstringdef\BKM@title{\bookmark@text}% + \BKM@vtex@title + \edef\BKM@FLAGS{\BKM@PrintStyle}% + \let\BKM@action\@empty + \ifx\BKM@gotor\@empty + \ifx\BKM@dest\@empty + \ifx\BKM@named\@empty + \ifx\BKM@rawaction\@empty + \ifx\BKM@uri\@empty + \ifx\BKM@page\@empty + \PackageError{bookmark}{Missing action}\@ehc + \def\BKM@action{!1}% + \else + \edef\BKM@action{!\BKM@page}% + \fi + \else + \BKM@EscapeString\BKM@uri + \edef\BKM@action{% + <u=% + /S/URI% + /URI(\BKM@uri)% + >% + }% + \fi + \else + \edef\BKM@action{<u=\BKM@rawaction>}% + \fi + \else + \BKM@EscapeName\BKM@named + \edef\BKM@action{% + <u=% + /S/Named% + /N/\BKM@named + >% + }% + \fi + \else + \BKM@EscapeString\BKM@dest + \edef\BKM@action{\BKM@dest}% + \fi + \else + \ifx\BKM@dest\@empty + \ifx\BKM@page\@empty + \def\BKM@page{1}% + \fi + \ifx\BKM@view\@empty + \def\BKM@view{Fit}% + \fi + \edef\BKM@action{/D[\BKM@page/\BKM@view]}% + \else + \BKM@EscapeString\BKM@dest + \edef\BKM@action{/D(\BKM@dest)}% + \fi + \BKM@EscapeString\BKM@gotor + \edef\BKM@action{% + <u=% + /S/GoToR% + /F(\BKM@gotor)% + \BKM@action + >>% + }% + \fi + \ifx\BKM@color\@empty + \let\BKM@RGBcolor\@empty + \else + \expandafter\BKM@toRGB\BKM@color\@nil + \fi + \special{% + !outline \BKM@action;% + p=\BKM@parent,% + i=\number\BKM@id,% + s=% + \ifBKM@open + \ifnum\BKM@level<\BKM@openlevel + o% + \else + c% + \fi + \else + c% + \fi,% + \ifx\BKM@RGBcolor\@empty + \else + c=\BKM@RGBcolor,% + \fi + \ifnum\BKM@FLAGS>\z@ + f=\BKM@FLAGS,% + \fi + t=\BKM@title + }% + \endgroup + \fi +} +\def\BKM@getx#1#2{% + \def\BKM@x@parent{#1}% + \def\BKM@x@level{#2}% +} +\def\BKM@toRGB#1 #2 #3\@nil{% + \let\BKM@RGBcolor\@empty + \BKM@toRGBComponent{#1}% + \BKM@toRGBComponent{#2}% + \BKM@toRGBComponent{#3}% +} +\def\BKM@toRGBComponent#1{% + \dimen@=#1pt\relax + \ifdim\dimen@>\z@ + \ifdim\dimen@<\p@ + \dimen@=255\dimen@ + \advance\dimen@ by 32768sp\relax + \divide\dimen@ by 65536\relax + \dimen@ii=\dimen@ + \divide\dimen@ii by 16\relax + \edef\BKM@RGBcolor{% + \BKM@RGBcolor + \BKM@toHexDigit\dimen@ii + }% + \dimen@ii=16\dimen@ii + \advance\dimen@-\dimen@ii + \edef\BKM@RGBcolor{% + \BKM@RGBcolor + \BKM@toHexDigit\dimen@ + }% + \else + \edef\BKM@RGBcolor{\BKM@RGBcolor FF}% + \fi + \else + \edef\BKM@RGBcolor{\BKM@RGBcolor00}% + \fi +} +\def\BKM@toHexDigit#1{% + \ifcase\expandafter\@firstofone\expandafter{\number#1} % + 0\or 1\or 2\or 3\or 4\or 5\or 6\or 7\or + 8\or 9\or A\or B\or C\or D\or E\or F% + \fi +} +\begingroup + \catcode`\|=0 % + \catcode`\\=12 % + |gdef|BKM@vtex@title{% + |@onelevel@sanitize|BKM@title + |edef|BKM@title{|expandafter|BKM@vtex@leftparen|BKM@title\(|@nil}% + |edef|BKM@title{|expandafter|BKM@vtex@rightparen|BKM@title\)|@nil}% + |edef|BKM@title{|expandafter|BKM@vtex@zero|BKM@title\0|@nil}% + |edef|BKM@title{|expandafter|BKM@vtex@one|BKM@title\1|@nil}% + |edef|BKM@title{|expandafter|BKM@vtex@two|BKM@title\2|@nil}% + |edef|BKM@title{|expandafter|BKM@vtex@three|BKM@title\3|@nil}% + }% + |gdef|BKM@vtex@leftparen#1\(#2|@nil{% + #1% + |ifx||#2||% + |else + (% + |ltx@ReturnAfterFi{% + |BKM@vtex@leftparen#2|@nil + }% + |fi + }% + |gdef|BKM@vtex@rightparen#1\)#2|@nil{% + #1% + |ifx||#2||% + |else + )% + |ltx@ReturnAfterFi{% + |BKM@vtex@rightparen#2|@nil + }% + |fi + }% + |gdef|BKM@vtex@zero#1\0#2|@nil{% + #1% + |ifx||#2||% + |else + |noexpand|hv@pdf@char0% + |ltx@ReturnAfterFi{% + |BKM@vtex@zero#2|@nil + }% + |fi + }% + |gdef|BKM@vtex@one#1\1#2|@nil{% + #1% + |ifx||#2||% + |else + |noexpand|hv@pdf@char1% + |ltx@ReturnAfterFi{% + |BKM@vtex@one#2|@nil + }% + |fi + }% + |gdef|BKM@vtex@two#1\2#2|@nil{% + #1% + |ifx||#2||% + |else + |noexpand|hv@pdf@char2% + |ltx@ReturnAfterFi{% + |BKM@vtex@two#2|@nil + }% + |fi + }% + |gdef|BKM@vtex@three#1\3#2|@nil{% + #1% + |ifx||#2||% + |else + |noexpand|hv@pdf@char3% + |ltx@ReturnAfterFi{% + |BKM@vtex@three#2|@nil + }% + |fi + }% +|endgroup +\ifBKM@atend + \RequirePackage{atenddvi}% + \AtEndDvi{\BKM@EndHook}% +\fi + +\endinput +%% +%% End of file `bkm-vtex.def'. diff --git a/Master/texmf-dist/tex/latex/bookmark/bookmark.sty b/Master/texmf-dist/tex/latex/bookmark/bookmark.sty new file mode 100644 index 00000000000..9b8e40ec642 --- /dev/null +++ b/Master/texmf-dist/tex/latex/bookmark/bookmark.sty @@ -0,0 +1,760 @@ +%% +%% This is file `bookmark.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% bookmark.dtx (with options: `package') +%% +%% This is a generated file. +%% +%% Project: bookmark +%% Version: 2019/12/03 v1.28 +%% +%% Copyright (C) +%% 2007-2011 Heiko Oberdiek +%% 2016-2019 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/bookmark/issues +%% +%% +%% This work consists of the main source file bookmark.dtx +%% and the derived files +%% bookmark.sty, bookmark.pdf, bookmark.ins, bookmark.drv, +%% bkm-dvipdfm.def, bkm-dvips.def, bkm-dvipsone.def, +%% bkm-textures.def, bkm-pdftex.def, bkm-vtex.def, +%% bookmark-example.tex. +%% +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{bookmark}% + [2019/12/03 v1.28 PDF bookmarks (HO)]% +\begingroup\expandafter\expandafter\expandafter\endgroup +\expandafter\ifx\csname numexpr\endcsname\relax + \def\BKM@CalcExpr#1#2#3#4{% + \begingroup + \count@=#2\relax + \advance\count@ by#3#4\relax + \edef\x{\endgroup + \def\noexpand#1{\the\count@}% + }% + \x + }% +\else + \def\BKM@CalcExpr#1#2#3#4{% + \edef#1{% + \the\numexpr#2#3#4\relax + }% + }% +\fi +\def\BKM@EscapeName#1{% + \ifx#1\@empty + \else + \EdefEscapeName#1#1% + \fi +}% +\def\BKM@EscapeString#1{% + \ifx#1\@empty + \else + \EdefEscapeString#1#1% + \fi +}% +\def\BKM@EscapeHex#1{% + \ifx#1\@empty + \else + \EdefEscapeHex#1#1% + \fi +}% +\def\BKM@UnescapeHex#1{% + \EdefUnescapeHex#1#1% +}% +\RequirePackage{hyperref}[2010/06/18] +\SetupKeyvalOptions{family=BKM,prefix=BKM@} +\DeclareLocalOptions{% + atend,% + bold,% + color,% + depth,% + dest,% + draft,% + final,% + gotor,% + italic,% + keeplevel,% + level,% + named,% + numbered,% + open,% + openlevel,% + page,% + rawaction,% + rellevel,% + srcfile,% + srcline,% + startatroot,% + uri,% + view,% +} +\newcommand*{\bookmarksetup}{\kvsetkeys{BKM}} +\def\BKM@setup#1{% + \bookmarksetup{#1}% + \ifx\BKM@HookNext\ltx@empty + \else + \expandafter\bookmarksetup\expandafter{\BKM@HookNext}% + \BKM@HookNextClear + \fi + \BKM@hook + \ifBKM@keeplevel + \else + \xdef\BKM@currentlevel{\BKM@level}% + \fi +} +\newcommand*{\bookmarksetupnext}[1]{% + \ltx@GlobalAppendToMacro\BKM@HookNext{,#1}% +} +\def\BKM@HookNextClear{% + \global\let\BKM@HookNext\ltx@empty +} +\BKM@HookNextClear +\DeclareBoolOption{draft} +\DeclareComplementaryOption{final}{draft} +\def\BKM@DisableOptions{% + \DisableKeyvalOption[action=warning,package=bookmark]% + {BKM}{draft}% + \DisableKeyvalOption[action=warning,package=bookmark]% + {BKM}{final}% +} +\DeclareBoolOption[\ifHy@bookmarksopen true\else false\fi]{open} +\def\bookmark@open{% + \ifBKM@open\ltx@one\else\ltx@zero\fi +} +\DeclareStringOption[\maxdimen]{openlevel} +\edef\BKM@openlevel{\number\@bookmarksopenlevel} +\ltx@IfUndefined{Hy@bookmarksdepth}{% + \def\BKM@depth{\c@tocdepth}% +}{% + \let\BKM@depth\Hy@bookmarksdepth +} +\define@key{BKM}{depth}[]{% + \edef\BKM@param{#1}% + \ifx\BKM@param\@empty + \def\BKM@depth{\c@tocdepth}% + \else + \ltx@IfUndefined{toclevel@\BKM@param}{% + \@onelevel@sanitize\BKM@param + \edef\BKM@temp{\expandafter\@car\BKM@param\@nil}% + \ifcase 0\expandafter\ifx\BKM@temp-1\fi + \expandafter\ifnum\expandafter`\BKM@temp>47 % + \expandafter\ifnum\expandafter`\BKM@temp<58 % + 1% + \fi + \fi + \relax + \PackageWarning{bookmark}{% + Unknown document division name (\BKM@param)\MessageBreak + for option `depth'% + }% + \else + \BKM@SetDepthOrLevel\BKM@depth\BKM@param + \fi + }{% + \BKM@SetDepthOrLevel\BKM@depth{% + \csname toclevel@\BKM@param\endcsname + }% + }% + \fi +} +\def\bookmark@depth{\BKM@depth} +\def\BKM@SetDepthOrLevel#1#2{% + \begingroup + \setbox\z@=\hbox{% + \count@=#2\relax + \expandafter + }% + \expandafter\endgroup + \expandafter\def\expandafter#1\expandafter{\the\count@}% +} +\DeclareStringOption[\BKM@currentlevel]{level}[\BKM@currentlevel] +\define@key{BKM}{level}{% + \edef\BKM@param{#1}% + \ifx\BKM@param\BKM@MacroCurrentLevel + \let\BKM@level\BKM@param + \else + \ltx@IfUndefined{toclevel@\BKM@param}{% + \@onelevel@sanitize\BKM@param + \edef\BKM@temp{\expandafter\@car\BKM@param\@nil}% + \ifcase 0\expandafter\ifx\BKM@temp-1\fi + \expandafter\ifnum\expandafter`\BKM@temp>47 % + \expandafter\ifnum\expandafter`\BKM@temp<58 % + 1% + \fi + \fi + \relax + \PackageWarning{bookmark}{% + Unknown document division name (\BKM@param)\MessageBreak + for option `level'% + }% + \else + \BKM@SetDepthOrLevel\BKM@level\BKM@param + \fi + }{% + \BKM@SetDepthOrLevel\BKM@level{% + \csname toclevel@\BKM@param\endcsname + }% + }% + \fi +} +\def\BKM@MacroCurrentLevel{\BKM@currentlevel} +\DeclareBoolOption{keeplevel} +\DeclareBoolOption{startatroot} +\def\BKM@startatrootfalse{% + \global\let\ifBKM@startatroot\iffalse +} +\def\BKM@startatroottrue{% + \global\let\ifBKM@startatroot\iftrue +} +\define@key{BKM}{rellevel}{% + \BKM@CalcExpr\BKM@level{#1}+\BKM@currentlevel +} +\def\bookmark@level{\BKM@level} +\def\BKM@currentlevel{0} +\DeclareBoolOption[% + \ifHy@bookmarksnumbered true\else false\fi +]{numbered} +\g@addto@macro\BKM@numberedtrue{% + \let\ifHy@bookmarksnumbered\iftrue +} +\g@addto@macro\BKM@numberedfalse{% + \let\ifHy@bookmarksnumbered\iffalse +} +\g@addto@macro\Hy@bookmarksnumberedtrue{% + \let\ifBKM@numbered\iftrue +} +\g@addto@macro\Hy@bookmarksnumberedfalse{% + \let\ifBKM@numbered\iffalse +} +\def\bookmark@numbered{% + \ifBKM@numbered\ltx@one\else\ltx@zero\fi +} +\def\BKM@PatchHyperrefOption#1{% + \expandafter\BKM@@PatchHyperrefOption\csname KV@Hyp@#1\endcsname% +} +\def\BKM@@PatchHyperrefOption#1{% + \expandafter\BKM@@@PatchHyperrefOption#1{##1}\BKM@nil#1% +} +\def\BKM@@@PatchHyperrefOption#1\BKM@nil#2#3{% + \def#2##1{% + #1% + \bookmarksetup{#3={##1}}% + }% +} +\BKM@PatchHyperrefOption{bookmarksopen}{open} +\BKM@PatchHyperrefOption{bookmarksopenlevel}{openlevel} +\BKM@PatchHyperrefOption{bookmarksdepth}{depth} +\bitsetReset{BKM@FontStyle}% +\define@key{BKM}{italic}[true]{% + \expandafter\ifx\csname if#1\endcsname\iftrue + \bitsetSet{BKM@FontStyle}{0}% + \else + \bitsetClear{BKM@FontStyle}{0}% + \fi +}% +\define@key{BKM}{bold}[true]{% + \expandafter\ifx\csname if#1\endcsname\iftrue + \bitsetSet{BKM@FontStyle}{1}% + \else + \bitsetClear{BKM@FontStyle}{1}% + \fi +}% +\def\bookmark@italic{% + \ifnum\bitsetGet{BKM@FontStyle}{0}=1 \ltx@one\else\ltx@zero\fi +} +\def\bookmark@bold{% + \ifnum\bitsetGet{BKM@FontStyle}{1}=1 \ltx@one\else\ltx@zero\fi +} +\def\BKM@PrintStyle{% + \bitsetGetDec{BKM@FontStyle}% +}% +\define@key{BKM}{color}{% + \HyColor@BookmarkColor{#1}\BKM@color{bookmark}{color}% +} +\let\BKM@color\@empty +\def\bookmark@color{\BKM@color} +\def\BKM@temp#1{% + \DeclareStringOption{#1}% + \expandafter\edef\csname bookmark@#1\endcsname{% + \expandafter\noexpand\csname BKM@#1\endcsname + }% +} +\BKM@temp{dest} +\BKM@temp{named} +\BKM@temp{uri} +\BKM@temp{gotor} +\BKM@temp{rawaction} +\define@key{BKM}{page}{% + \def\BKM@page{#1}% + \ifx\BKM@page\@empty + \else + \edef\BKM@page{\number\BKM@page}% + \ifnum\BKM@page>\z@ + \else + \PackageError{bookmark}{Page must be positive}\@ehc + \def\BKM@page{1}% + \fi + \fi +} +\let\BKM@page\@empty +\def\bookmark@page{\BKM@@page} +\define@key{BKM}{view}{% + \BKM@CheckView{#1}% +} +\let\BKM@view\@empty +\def\bookmark@view{\BKM@view} +\def\BKM@CheckView#1{% + \BKM@CheckViewType#1 \@nil +} +\def\BKM@CheckViewType#1 #2\@nil{% + \def\BKM@type{#1}% + \@onelevel@sanitize\BKM@type + \BKM@TestViewType{Fit}{}% + \BKM@TestViewType{FitB}{}% + \BKM@TestViewType{FitH}{% + \BKM@CheckParam#2 \@nil{top}% + }% + \BKM@TestViewType{FitBH}{% + \BKM@CheckParam#2 \@nil{top}% + }% + \BKM@TestViewType{FitV}{% + \BKM@CheckParam#2 \@nil{bottom}% + }% + \BKM@TestViewType{FitBV}{% + \BKM@CheckParam#2 \@nil{bottom}% + }% + \BKM@TestViewType{FitR}{% + \BKM@CheckRect{#2}{ }% + }% + \BKM@TestViewType{XYZ}{% + \BKM@CheckXYZ{#2}{ }% + }% + \@car{% + \PackageError{bookmark}{% + Unknown view type `\BKM@type',\MessageBreak + using `FitH' instead% + }\@ehc + \def\BKM@view{FitH}% + }% + \@nil +} +\def\BKM@TestViewType#1{% + \def\BKM@temp{#1}% + \@onelevel@sanitize\BKM@temp + \ifx\BKM@type\BKM@temp + \let\BKM@view\BKM@temp + \expandafter\@car + \else + \expandafter\@gobble + \fi +} +\def\BKM@CheckParam#1 #2\@nil#3{% + \def\BKM@param{#1}% + \ifx\BKM@param\@empty + \PackageWarning{bookmark}{% + Missing parameter (#3) for `\BKM@type',\MessageBreak + using 0% + }% + \def\BKM@param{0}% + \else + \BKM@CalcParam + \fi + \edef\BKM@view{\BKM@view\space\BKM@param}% +} +\def\BKM@CheckRect#1#2{% + \BKM@@CheckRect#1#2#2#2#2\@nil +} +\def\BKM@@CheckRect#1 #2 #3 #4 #5\@nil{% + \def\BKM@temp{0}% + \def\BKM@param{#1}% + \ifx\BKM@param\@empty + \def\BKM@param{0}% + \def\BKM@temp{1}% + \else + \BKM@CalcParam + \fi + \edef\BKM@view{\BKM@view\space\BKM@param}% + \def\BKM@param{#2}% + \ifx\BKM@param\@empty + \def\BKM@param{0}% + \def\BKM@temp{1}% + \else + \BKM@CalcParam + \fi + \edef\BKM@view{\BKM@view\space\BKM@param}% + \def\BKM@param{#3}% + \ifx\BKM@param\@empty + \def\BKM@param{0}% + \def\BKM@temp{1}% + \else + \BKM@CalcParam + \fi + \edef\BKM@view{\BKM@view\space\BKM@param}% + \def\BKM@param{#4}% + \ifx\BKM@param\@empty + \def\BKM@param{0}% + \def\BKM@temp{1}% + \else + \BKM@CalcParam + \fi + \edef\BKM@view{\BKM@view\space\BKM@param}% + \ifnum\BKM@temp>\z@ + \PackageWarning{bookmark}{Missing parameters for `\BKM@type'}% + \fi +} +\def\BKM@CheckXYZ#1#2{% + \BKM@@CheckXYZ#1#2#2#2\@nil +} +\def\BKM@@CheckXYZ#1 #2 #3 #4\@nil{% + \def\BKM@param{#1}% + \let\BKM@temp\BKM@param + \@onelevel@sanitize\BKM@temp + \ifx\BKM@param\@empty + \let\BKM@param\BKM@null + \else + \ifx\BKM@temp\BKM@null + \else + \BKM@CalcParam + \fi + \fi + \edef\BKM@view{\BKM@view\space\BKM@param}% + \def\BKM@param{#2}% + \let\BKM@temp\BKM@param + \@onelevel@sanitize\BKM@temp + \ifx\BKM@param\@empty + \let\BKM@param\BKM@null + \else + \ifx\BKM@temp\BKM@null + \else + \BKM@CalcParam + \fi + \fi + \edef\BKM@view{\BKM@view\space\BKM@param}% + \def\BKM@param{#3}% + \ifx\BKM@param\@empty + \let\BKM@param\BKM@null + \fi + \edef\BKM@view{\BKM@view\space\BKM@param}% +} +\def\BKM@null{null} +\@onelevel@sanitize\BKM@null +\def\BKM@CalcParam{% + \begingroup + \let\calc\@firstofone + \expandafter\BKM@@CalcParam\BKM@param\@empty\@empty\@nil +} +\def\BKM@@CalcParam#1#2#3\@nil{% + \ifx\calc#1% + \@ifundefined{calc@assign@dimen}{% + \@ifundefined{dimexpr}{% + \setlength{\dimen@}{#2}% + }{% + \setlength{\dimen@}{\dimexpr#2\relax}% + }% + }{% + \setlength{\dimen@}{#2}% + }% + \dimen@.99626\dimen@ + \edef\BKM@param{\strip@pt\dimen@}% + \expandafter\endgroup + \expandafter\def\expandafter\BKM@param\expandafter{\BKM@param}% + \else + \endgroup + \fi +} +\DeclareBoolOption{atend} +\g@addto@macro\BKM@DisableOptions{% + \DisableKeyvalOption[action=warning,package=bookmark]% + {BKM}{atend}% +} +\newcommand*{\bookmarkdefinestyle}[2]{% + \@ifundefined{BKM@style@#1}{% + }{% + \PackageInfo{bookmark}{Redefining style `#1'}% + }% + \@namedef{BKM@style@#1}{#2}% +} +\define@key{BKM}{style}{% + \BKM@StyleCall{#1}% +} +\newif\ifBKM@ok +\def\BKM@StyleCall#1{% + \@ifundefined{BKM@style@#1}{% + \PackageWarning{bookmark}{% + Ignoring unknown style `#1'% + }% + }{% + \BKM@oktrue + \edef\BKM@StyleCurrent{#1}% + \@onelevel@sanitize\BKM@StyleCurrent + \let\BKM@StyleEntry\BKM@StyleEntryCheck + \BKM@StyleStack + \ifBKM@ok + \expandafter\@firstofone + \else + \PackageError{bookmark}{% + Ignoring recursive call of style `\BKM@StyleCurrent'% + }\@ehc + \expandafter\@gobble + \fi + {% + \let\BKM@StyleEntry\relax + \edef\BKM@StyleStack{% + \BKM@StyleEntry{\BKM@StyleCurrent}% + \BKM@StyleStack + }% + \expandafter\expandafter\expandafter\bookmarksetup + \expandafter\expandafter\expandafter{% + \csname BKM@style@\BKM@StyleCurrent\endcsname + }% + \BKM@StyleStackPop + }% + }% +} +\def\BKM@StyleStackPop{% + \let\BKM@StyleEntry\relax + \edef\BKM@StyleStack{% + \expandafter\@gobbletwo\BKM@StyleStack + }% +} +\def\BKM@StyleEntryCheck#1{% + \def\BKM@temp{#1}% + \ifx\BKM@temp\BKM@StyleCurrent + \BKM@okfalse + \fi +} +\def\BKM@StyleStack{} +\DeclareStringOption{srcline} +\DeclareStringOption{srcfile} +\def\BKM@hook{} +\define@key{BKM}{addtohook}{% + \ltx@LocalAppendToMacro\BKM@hook{#1}% +} +\newcommand*{\bookmarkget}[1]{% + \romannumeral0% + \ltx@ifundefined{bookmark@#1}{% + \ltx@space + }{% + \expandafter\expandafter\expandafter\ltx@space + \csname bookmark@#1\endcsname + }% +} +\def\BKM@DefineDriverKey#1{% + \define@key{BKM}{#1}[]{% + \def\BKM@driver{#1}% + }% + \g@addto@macro\BKM@DisableOptions{% + \DisableKeyvalOption[action=warning,package=bookmark]% + {BKM}{#1}% + }% +} +\BKM@DefineDriverKey{pdftex} +\BKM@DefineDriverKey{dvips} +\BKM@DefineDriverKey{dvipsone} +\BKM@DefineDriverKey{textures} +\BKM@DefineDriverKey{dvipdfm} +\BKM@DefineDriverKey{dvipdfmx} +\BKM@DefineDriverKey{xetex} +\BKM@DefineDriverKey{vtex} +\define@key{BKM}{dvipdfmx-outline-open}[true]{% + \expandafter\ifx\csname if#1\expandafter\endcsname + \csname iftrue\endcsname + \chardef\SpecialDvipdfmxOutlineOpen\@ne + \else + \chardef\SpecialDvipdfmxOutlineOpen\z@ + \fi +} +\g@addto@macro\BKM@DisableOptions{% + \DisableKeyvalOption{BKM}{dvipdfmx-outline-open}% +} +\def\bookmark@driver{\BKM@driver} +\InputIfFileExists{bookmark.cfg}{}{} +\providecommand*{\BookmarkDriverDefault}{dvips} +\ifpdf + \def\BKM@driver{pdftex}% + \ifx\pdfoutline\@undefined + \ifx\pdfextension\@undefined\else + \protected\def\pdfoutline{\pdfextension outline } + \fi + \fi +\else + \ifxetex + \def\BKM@driver{dvipdfm}% + \else + \ifvtex + \def\BKM@driver{vtex}% + \else + \edef\BKM@driver{\BookmarkDriverDefault}% + \fi + \fi +\fi +\ProcessKeyvalOptions* +\BKM@DisableOptions +\ifBKM@draft + \PackageWarningNoLine{bookmark}{Draft mode on}% + \let\bookmarksetup\ltx@gobble + \let\BookmarkAtEnd\ltx@gobble + \let\bookmarkdefinestyle\ltx@gobbletwo + \let\bookmarkget\ltx@gobble + \let\pdfbookmark\ltx@undefined + \newcommand*{\pdfbookmark}[3][]{}% + \let\currentpdfbookmark\ltx@gobbletwo + \let\subpdfbookmark\ltx@gobbletwo + \let\belowpdfbookmark\ltx@gobbletwo + \newcommand*{\bookmark}[2][]{}% + \renewcommand*{\Hy@writebookmark}[5]{}% + \let\ReadBookmarks\relax + \let\BKM@DefGotoNameAction\ltx@gobbletwo % package `hypdestopt' + \expandafter\endinput +\fi +\newif\ifBKM@DvipdfmxOutlineOpen +\ltx@IfUndefined{SpecialDvipdfmxOutlineOpen}{% + \ifxetex + \ifdim\number\XeTeXversion\XeTeXrevision in<0.9995in % + \else + \chardef\SpecialDvipdfmxOutlineOpen\ltx@one + \BKM@DvipdfmxOutlineOpentrue + \fi + \fi +}{% + \ifnum\SpecialDvipdfmxOutlineOpen>\z@ + \BKM@DvipdfmxOutlineOpentrue + \fi +} +\def\BKM@temp{dvipdfmx}% +\ifx\BKM@temp\BKM@driver + \def\BKM@driver{dvipdfm}% +\fi +\def\BKM@temp{pdftex}% +\ifpdf + \ifx\BKM@temp\BKM@driver + \else + \PackageWarningNoLine{bookmark}{% + Wrong driver `\BKM@driver', using `pdftex' instead% + }% + \let\BKM@driver\BKM@temp + \fi +\else + \ifx\BKM@temp\BKM@driver + \PackageError{bookmark}{% + Wrong driver, pdfTeX is not running in PDF mode.\MessageBreak + Package loading is aborted% + }\@ehc + \expandafter\expandafter\expandafter\endinput + \fi + \def\BKM@temp{dvipdfm}% + \ifxetex + \ifx\BKM@temp\BKM@driver + \else + \PackageWarningNoLine{bookmark}{% + Wrong driver `\BKM@driver',\MessageBreak + using `dvipdfm' for XeTeX instead% + }% + \let\BKM@driver\BKM@temp + \fi + \else + \def\BKM@temp{vtex}% + \ifvtex + \ifx\BKM@temp\BKM@driver + \else + \PackageWarningNoLine{bookmark}{% + Wrong driver `\BKM@driver',\MessageBreak + using `vtex' for VTeX instead% + }% + \let\BKM@driver\BKM@temp + \fi + \else + \ifx\BKM@temp\BKM@driver + \PackageError{bookmark}{% + Wrong driver, VTeX is not running in PDF mode.\MessageBreak + Package loading is aborted% + }\@ehc + \expandafter\expandafter\expandafter\endinput + \fi + \fi + \fi +\fi +\InputIfFileExists{bkm-\BKM@driver.def}{}{% + \PackageError{bookmark}{% + Unsupported driver `\BKM@driver'.\MessageBreak + Package loading is aborted% + }\@ehc + \endinput +} +\let\pdfbookmark\ltx@undefined +\newcommand*{\pdfbookmark}[3][0]{% + \bookmark[level=#1,dest={#3.#1}]{#2}% + \hyper@anchorstart{#3.#1}\hyper@anchorend +} +\def\currentpdfbookmark{% + \pdfbookmark[\BKM@currentlevel]% +} +\def\subpdfbookmark{% + \BKM@CalcExpr\BKM@CalcResult\BKM@currentlevel+1% + \expandafter\pdfbookmark\expandafter[\BKM@CalcResult]% +} +\def\belowpdfbookmark#1#2{% + \xdef\BKM@gtemp{\number\BKM@currentlevel}% + \subpdfbookmark{#1}{#2}% + \global\let\BKM@currentlevel\BKM@gtemp +} +\def\Hy@writebookmark#1#2#3#4#5{% + \ifnum#4>\BKM@depth\relax + \else + \def\BKM@type{#5}% + \ifx\BKM@type\Hy@bookmarkstype + \begingroup + \ifBKM@numbered + \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 + \bookmark[level=#4,dest={#3}]{#2}% + \endgroup + \fi + \fi +} +\let\ReadBookmarks\relax +\ifBKM@atend +\else + \newcommand{\BookmarkAtEnd}[1]{% + \PackageWarning{bookmark}{% + Ignored, because option `atend' is missing% + }% + }% + \expandafter\endinput +\fi +\newcommand*{\BookmarkAtEnd}{% + \g@addto@macro\BKM@EndHook +} +\let\BKM@EndHook\@empty + +\endinput +%% +%% End of file `bookmark.sty'. |