summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/oberdiek/bookmark.sty
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2007-02-21 23:54:19 +0000
committerKarl Berry <karl@freefriends.org>2007-02-21 23:54:19 +0000
commit038a5dc7d31591d03bb7dd2bee2ca5e89f0ff26a (patch)
tree0206f1532eaf8dea0c935a4e7b66a593f15ac1c4 /Master/texmf-dist/tex/latex/oberdiek/bookmark.sty
parentd13b89bc23ac3bf2bce2bd534b97ed97e0b091c1 (diff)
oberdiek bookmark0.2, hypcap1.6 (20feb07)
git-svn-id: svn://tug.org/texlive/trunk@3977 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/oberdiek/bookmark.sty')
-rw-r--r--Master/texmf-dist/tex/latex/oberdiek/bookmark.sty388
1 files changed, 388 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/oberdiek/bookmark.sty b/Master/texmf-dist/tex/latex/oberdiek/bookmark.sty
new file mode 100644
index 00000000000..758cb6a6134
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/oberdiek/bookmark.sty
@@ -0,0 +1,388 @@
+%%
+%% 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.
+%%
+%% Copyright (C) 2007 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+%%
+%% 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-pdftex.def,
+%% bookmark-example.tex.
+%%
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{bookmark}%
+ [2007/02/20 v0.2 PDF bookmarks (HO)]
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname pdfescapehex\endcsname\relax
+ \PackageWarningNoLine{bookmark}{%
+ Some features of pdfTeX 1.30 are missing that\MessageBreak
+ protect some arguments. Replacements for these\MessageBreak
+ features are not implemented. Thus the pdf file\MessageBreak
+ can become invalid or the .aux file breaks%
+ }%
+ \let\BKM@escapename\@firstofone
+ \let\BKM@escapestring\@firstofone
+ \let\BKM@escapehex\@firstofone
+ \let\BKM@unescapehex\@firstofone
+\else
+ \let\BKM@escapename\pdfescapename
+ \let\BKM@escapestring\pdfescapestring
+ \let\BKM@escapehex\pdfescapehex
+ \let\BKM@unescapehex\pdfunescapehex
+\fi
+\RequirePackage{ifpdf}
+\RequirePackage{ifxetex}
+\RequirePackage{hyperref}
+\RequirePackage{auxhook}
+\RequirePackage{flags}
+\RequirePackage{kvoptions}
+\SetupKeyvalOptions{family=BKM,prefix=BKM@}
+\newcommand*{\bookmarksetup}{\setkeys{BKM}}
+\DeclareBoolOption{open}
+\DeclareStringOption[\maxdimen]{openlevel}
+\DeclareStringOption[\c@tocdepth]{depth}
+\DeclareStringOption[\BKM@currentlevel]{level}[\BKM@currentlevel]
+\DeclareBoolOption{keeplevel}
+\DeclareBoolOption{startatroot}
+\define@key{BKM}{rellevel}{%
+ \edef\BKM@level{\number\numexpr#1+\BKM@currentlevel\relax}%
+}
+\def\BKM@currentlevel{0}
+\resetflags{BKM@style}
+\define@key{BKM}{italic}[true]{%
+ \expandafter\ifx\csname if#1\endcsname\iftrue
+ \setflag{BKM@style}{1}%
+ \else
+ \clearflag{BKM@style}{1}%
+ \fi
+}
+\define@key{BKM}{bold}[true]{%
+ \expandafter\ifx\csname if#1\endcsname\iftrue
+ \setflag{BKM@style}{2}%
+ \else
+ \clearflag{BKM@style}{2}%
+ \fi
+}
+\define@key{BKM}{rgbcolor}{%
+ \def\BKM@color{#1}%
+}
+\define@key{BKM}{color}{%
+ \ifx\\#1\\%
+ \let\BKM@color\@empty
+ \else
+ \@ifundefined{XC@bordercolor}{%
+ \PackageWarning{bookmark}{%
+ Load package `xcolor' (version >= 2.11) first.\MessageBreak
+ Ignoring color specification%
+ }%
+ }{%
+ \begingroup
+ \csname @safe@activestrue\endcsname
+ \XC@bordercolor{}{#1}%
+ \expandafter\endgroup
+ \expandafter\def\expandafter\BKM@color\expandafter{\@bordercolor}%
+ }%
+ \fi
+}
+\let\BKM@color\@empty
+\DeclareStringOption{dest}
+\DeclareStringOption{named}
+\DeclareStringOption{uri}
+\DeclareStringOption{gotor}
+\DeclareStringOption{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
+\define@key{BKM}{view}{%
+ \BKM@CheckView{#1}%
+}
+\let\BKM@view\@empty
+\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{pdfbookmark}{%
+ 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
+ \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}{%
+ \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
+}
+\define@key{BKM}{pdftex}[]{%
+ \def\BKM@driver{pdftex}%
+}
+\define@key{BKM}{dvips}[]{%
+ \def\BKM@driver{dvips}%
+}
+\define@key{BKM}{dvipdfm}[]{%
+ \def\BKM@driver{dvipdfm}%
+}
+\define@key{BKM}{dvipdfmx}[]{%
+ \def\BKM@driver{dvipdfm}%
+}
+\define@key{BKM}{xetex}[]{%
+ \def\BKM@driver{dvipdfm}%
+}
+\InputIfFileExists{bookmark.cfg}{}{}
+\providecommand*{\BookmarkDriverDefault}{dvips}
+\ifpdf
+ \def\BKM@driver{pdftex}%
+\else
+ \ifxetex
+ \def\BKM@driver{dvipdfm}%
+ \else
+ \let\BKM@driver\BookmarkDriverDefault
+ \fi
+\fi
+\ProcessKeyvalOptions*
+\DisableKeyvalOption{BKM}{pdftex}
+\DisableKeyvalOption{BKM}{dvips}
+\DisableKeyvalOption{BKM}{dvipdfm}
+\DisableKeyvalOption{BKM}{dvipdfmx}
+\DisableKeyvalOption{BKM}{xetex}
+\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
+ \fi
+\fi
+\InputIfFileExists{bkm-\BKM@driver.def}{}{%
+ \PackageError{bookmark}{%
+ Unsupported driver `\BKM@driver'.\MessageBreak
+ Package loading is aborted%
+ }\@ehc
+ \endinput
+}
+\renewcommand*{\pdfbookmark}[3][0]{%
+ \bookmark[level=#1,dest={#3.#1}]{#2}%
+ \hyper@anchorstart{#3.#1}\hyper@anchorend
+}
+\renewcommand*{\currentpdfbookmark}{%
+ \pdfbookmark[\BKM@currentlevel]%
+}
+\renewcommand*{\subpdfbookmark}{%
+ \expandafter\pdfbookmark\expandafter[%
+ \the\numexpr\BKM@currentlevel+1\relax
+ ]%
+}
+\renewcommand*{\belowpdfbookmark}[2]{%
+ \xdef\BKM@gtemp{\number\BKM@currentlevel}%
+ \subpdfbookmark{#1}{#2}%
+ \global\let\BKM@currentlevel\BKM@gtemp
+}
+\renewcommand*{\Hy@writebookmark}[5]{%
+ \ifnum#4>\Hy@bookmarksdepth\relax
+ \else
+ \begingroup
+ \ifHy@bookmarksnumbered
+ \let\numberline\Hy@numberline
+ \let\partnumberline\Hy@numberline
+ \let\chapternumberline\Hy@numberline
+ \else
+ \let\numberline\@gobble
+ \let\partnumberline\@gobble
+ \let\chapternumberline\@gobble
+ \fi
+ \bookmark[level=#4,dest={#3}]{#2}%
+ \endgroup
+ \fi
+}
+\let\ReadBookmarks\relax
+\endinput
+%%
+%% End of file `bookmark.sty'.