diff options
author | Karl Berry <karl@freefriends.org> | 2007-04-11 23:02:14 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2007-04-11 23:02:14 +0000 |
commit | 6858df01ea6ebb32f4be0f68e4b2e03d8713f38f (patch) | |
tree | d0466192a4c6ae7f99e95d2e6e9b613ebcb73d3d /Master/texmf-dist/tex/latex/oberdiek/bookmark.sty | |
parent | 59314283a9039be6cceb0bbee8600837477c9058 (diff) |
oberdiek: accsupp, atenddvi, hycolor, iflang (11apr07)
git-svn-id: svn://tug.org/texlive/trunk@4149 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.sty | 155 |
1 files changed, 110 insertions, 45 deletions
diff --git a/Master/texmf-dist/tex/latex/oberdiek/bookmark.sty b/Master/texmf-dist/tex/latex/oberdiek/bookmark.sty index ad62d8cea75..a2eb799ac2f 100644 --- a/Master/texmf-dist/tex/latex/oberdiek/bookmark.sty +++ b/Master/texmf-dist/tex/latex/oberdiek/bookmark.sty @@ -31,8 +31,29 @@ %% \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{bookmark}% - [2007/03/03 v0.6 PDF bookmarks (HO)] -\RequirePackage{pdfescape}% + [2007/04/09 v0.8 PDF bookmarks (HO)]% +\newif\ifBKM@WithFlags +\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 + }% + \BKM@WithFlagsfalse +\else + \def\BKM@CalcExpr#1#2#3#4{% + \edef#1{% + \the\numexpr#2#3#4\relax + }% + }% + \BKM@WithFlagstrue +\fi +\RequirePackage{pdfescape}[2007/03/20] \def\BKM@EscapeName#1{% \ifx#1\@empty \else @@ -59,8 +80,11 @@ \RequirePackage{ifvtex} \RequirePackage{hyperref} \RequirePackage{auxhook} -\RequirePackage{flags} \RequirePackage{kvoptions} +\RequirePackage{hycolor} +\ifBKM@WithFlags + \RequirePackage{flags}% +\fi \SetupKeyvalOptions{family=BKM,prefix=BKM@} \newcommand*{\bookmarksetup}{\setkeys{BKM}} \DeclareBoolOption[\ifHy@bookmarksopen true\else false\fi]{open} @@ -111,7 +135,7 @@ \DeclareBoolOption{keeplevel} \DeclareBoolOption{startatroot} \define@key{BKM}{rellevel}{% - \edef\BKM@level{\number\numexpr#1+\BKM@currentlevel\relax}% + \BKM@CalcExpr\BKM@level{#1}+\BKM@currentlevel } \def\BKM@currentlevel{0} \DeclareBoolOption[% @@ -144,43 +168,45 @@ \BKM@PatchHyperrefOption{bookmarksopen}{open} \BKM@PatchHyperrefOption{bookmarksopenlevel}{openlevel} \BKM@PatchHyperrefOption{bookmarksdepth}{depth} -\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}{% +\ifBKM@WithFlags + \expandafter\@firstoftwo +\else + \expandafter\@secondoftwo +\fi +{% + \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 + }% + \def\BKM@PrintStyle{% + \printflags{BKM@style}% + }% +}{% + \def\BKM@temp#1{% + \define@key{BKM}{#1}[true]{% \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 + Option `#1' is not available\MessageBreak + because of missing e-TeX% }% }% - \fi + }% + \BKM@temp{italic}% + \BKM@temp{bold}% + \def\BKM@PrintStyle{0}% +} +\define@key{BKM}{color}{% + \HyColor@BookmarkColor{#1}\BKM@color{bookmark}{color}% } \let\BKM@color\@empty \DeclareStringOption{dest} @@ -359,22 +385,37 @@ \endgroup \fi } +\DeclareBoolOption{atend} +\def\BKM@DisableOptions{% + \DisableKeyvalOption{BKM}{atend}% +} \def\BKM@DefineDriverKey#1{% \define@key{BKM}{#1}[]{% \def\BKM@driver{#1}% }% - \g@addto@macro\BKM@DisableDriverOptions{% + \g@addto@macro\BKM@DisableOptions{% \DisableKeyvalOption{BKM}{#1}% }% } -\let\BKM@DisableDriverOptions\@empty \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}% +} \InputIfFileExists{bookmark.cfg}{}{} \providecommand*{\BookmarkDriverDefault}{dvips} \ifpdf @@ -386,12 +427,24 @@ \ifvtex \def\BKM@driver{vtex}% \else - \let\BKM@driver\BookmarkDriverDefault + \edef\BKM@driver{\BookmarkDriverDefault}% \fi \fi \fi \ProcessKeyvalOptions* -\BKM@DisableDriverOptions +\BKM@DisableOptions +\newif\ifBKM@DvipdfmxOutlineOpen +\begingroup\expandafter\expandafter\expandafter\endgroup +\expandafter\ifx\csname SpecialDvipdfmxOutlineOpen\endcsname\relax +\else + \ifnum\SpecialDvipdfmxOutlineOpen>\z@ + \BKM@DvipdfmxOutlineOpentrue + \fi +\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 @@ -456,9 +509,8 @@ \pdfbookmark[\BKM@currentlevel]% } \renewcommand*{\subpdfbookmark}{% - \expandafter\pdfbookmark\expandafter[% - \the\numexpr\BKM@currentlevel+1\relax - ]% + \BKM@CalcExpr\BKM@CalcResult\BKM@currentlevel+1% + \expandafter\pdfbookmark\expandafter[\BKM@CalcResult]% } \renewcommand*{\belowpdfbookmark}[2]{% \xdef\BKM@gtemp{\number\BKM@currentlevel}% @@ -486,6 +538,19 @@ \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'. |