%% %% 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: 2023-12-10 v1.31 %% %% Copyright (C) %% 2007-2011 Heiko Oberdiek %% 2016-2023 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 file is part of the "bookmark bundle" (The Work in LPPL) %% and all files in that bundle must be distributed together. %% %% The released version of this bundle is available from CTAN. %% %% This work consists of the main source files bookmark.dtx %% and bookmark.ins and the derived files %% bookmark.sty, bookmark.pdf, %% bkm-dvipdfm.def, bkm-dvips.def, bkm-pdftex.def, bkm-vtex.def, %% bookmark-example.tex. %% \NeedsTeXFormat{LaTeX2e} \ProvidesFile{bkm-pdftex.def}% [2023-12-10 v1.31 bookmark driver for pdfTeX and luaTeX (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{<>}}% \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{<>}% }% \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}}% } \ExplSyntaxOn \IfDocumentMetadataTF { \tag_if_active:T { \def\BKM@DefGotoNameAction#1#2 { \BKM@EscapeString\BKM@DO@dest \edef#1{goto~struct~name~{#2}~name~{#2}}% } } }{} \ExplSyntaxOff \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 } \AddToHook{begindocument}{% \immediate\write\@mainaux{\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 \@ifundefined{currfilepath}{}{% \edef\BKM@srcfile{\currfilepath}% }% \fi } \ifluatex \def\BKM@LuaTeX@InitFile{% \begingroup \toks@={}% \edef\x{\endgroup \def\noexpand\BKM@srcfile{% \the\expandafter\toks@ \directlua{% if status and status.filename then % tex.settoks('toks@', status.filename)% end% }% }% }\x }% \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 \AddToHook{enddocument/afterlastpage}{% \BKM@EndHook }% \fi \endinput %% %% End of file `bkm-pdftex.def'.