%% %% 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. %% %% Copyright (C) 2007, 2008 by Heiko Oberdiek %% %% 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". %% %% This Current Maintainer of this work is Heiko Oberdiek. %% %% 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}% [2008/09/13 v1.4 bookmark driver for pdfTeX (HO)]% \def\BKM@DO@entry#1#2{% \begingroup \setkeys{BKM@DO}{#1}% \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 \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}\@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}}% } \RequirePackage{auxhook} \AddLineBeginMainAux{% \string\providecommand\string\BKM@entry[2]{}% } \newcount\BKM@id \BKM@id=\z@ \def\BKM@0{000} \newif\ifBKM@sw \newcommand*{\bookmark}[2][]{% \if@filesw \begingroup \bookmarksetup{#1}% \ifBKM@keeplevel \else \xdef\BKM@currentlevel{\BKM@level}% \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@ \global\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{#2}% \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@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 } \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} \AtBeginDocument{% \let\BKM@entry\BKM@DO@entry } \ifBKM@atend \AtBeginDocument{% \AtEndDocument{% \clearpage \BKM@EndHook }% }% \fi \endinput %% %% End of file `bkm-pdftex.def'.