summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2007-02-25 23:34:35 +0000
committerKarl Berry <karl@freefriends.org>2007-02-25 23:34:35 +0000
commit4a0068129d6635fb71e1d030ac322a3ab55c45e1 (patch)
treedb1111fa73bc46d164667d86a57e7f4bdde16a5b /Master/texmf-dist/tex
parent31589ad96e2e5acc5f1d7e6bdaa92e4d56365497 (diff)
oberdiek
git-svn-id: svn://tug.org/texlive/trunk@3989 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex')
-rw-r--r--Master/texmf-dist/tex/generic/oberdiek/pdfescape.sty399
-rw-r--r--Master/texmf-dist/tex/latex/oberdiek/bkm-dvipdfm.def17
-rw-r--r--Master/texmf-dist/tex/latex/oberdiek/bkm-dvips.def80
-rw-r--r--Master/texmf-dist/tex/latex/oberdiek/bkm-pdftex.def79
-rw-r--r--Master/texmf-dist/tex/latex/oberdiek/bookmark.sty69
5 files changed, 525 insertions, 119 deletions
diff --git a/Master/texmf-dist/tex/generic/oberdiek/pdfescape.sty b/Master/texmf-dist/tex/generic/oberdiek/pdfescape.sty
new file mode 100644
index 00000000000..b573cc7984d
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/oberdiek/pdfescape.sty
@@ -0,0 +1,399 @@
+%%
+%% This is file `pdfescape.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% pdfescape.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 pdfescape.dtx
+%% and the derived files
+%% pdfescape.sty, pdfescape.pdf, pdfescape.ins, pdfescape.drv,
+%% pdfescape-test1.tex, pdfescape-test2.tex,
+%% pdfescape-test3.tex.
+%%
+\begingroup
+ \expandafter\let\expandafter\x\csname ver@pdfescape.sty\endcsname
+ \ifcase 0%
+ \ifx\x\relax % plain
+ \else
+ \ifx\x\empty % LaTeX
+ \else
+ 1%
+ \fi
+ \fi
+ \else
+ \expandafter\ifx\csname PackageInfo\endcsname\relax
+ \def\x#1#2{%
+ \immediate\write-1{Package #1 Info: #2.}%
+ }%
+ \else
+ \def\x#1#2{\PackageInfo{#1}{#2, stopped}}%
+ \fi
+ \x{pdfescape}{The package is already loaded}%
+ \endgroup
+ \expandafter\endinput
+ \fi
+\endgroup
+\begingroup
+ \expandafter\ifx\csname ProvidesPackage\endcsname\relax
+ \def\x#1#2#3[#4]{\endgroup
+ \immediate\write-1{Package: #3 #4}%
+ \xdef#1{#4}%
+ }%
+ \else
+ \def\x#1#2[#3]{\endgroup
+ #2[{#3}]%
+ \ifx#1\relax
+ \xdef#1{#3}%
+ \fi
+ }%
+ \fi
+\expandafter\x\csname ver@pdfescape.sty\endcsname
+\ProvidesPackage{pdfescape}%
+ [2006/02/25 v1.1 Provides hex, PDF name and string conversions (HO)]
+\expandafter\edef\csname PE@AtEnd\endcsname{%
+ \catcode64 \the\catcode64\relax
+}
+\catcode64 11 % @
+\def\PE@EnsureCode#1#2#3{%
+ \edef\PE@AtEnd{%
+ \PE@AtEnd
+ #1#2 \the#1#2\relax
+ }%
+ #1#2 #3\relax
+}
+\PE@EnsureCode\catcode{0}{12}% ^^@
+\PE@EnsureCode\catcode{34}{12}% "
+\PE@EnsureCode\catcode{42}{12}% *
+\PE@EnsureCode\catcode{45}{12}% -
+\PE@EnsureCode\catcode{46}{12}% .
+\PE@EnsureCode\catcode{60}{12}% <
+\PE@EnsureCode\catcode{61}{12}% =
+\PE@EnsureCode\catcode{62}{12}% >
+\PE@EnsureCode\catcode{94}{7}% ^
+\PE@EnsureCode\catcode{96}{12}% `
+\PE@EnsureCode\uccode{34}{0}% "
+\PE@EnsureCode\uccode{48}{0}% 0
+\PE@EnsureCode\uccode{61}{0}% =
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname pdfescapehex\endcsname\relax
+ \long\def\EdefEscapeHex#1#2{%
+ \PE@sanitize#1{#2}%
+ \edef#1{\expandafter\PE@SpaceToOther#1 \relax}%
+ \PE@EscapeHex#1%
+ }%
+ \def\EdefUnescapeHex#1#2{%
+ \PE@sanitize#1{#2}%
+ \PE@UnescapeHex#1%
+ }%
+ \long\def\EdefEscapeName#1#2{%
+ \PE@sanitize#1{#2}%
+ \edef#1{\expandafter\PE@SpaceToOther#1 \relax}%
+ \PE@EscapeName#1%
+ }%
+ \long\def\EdefEscapeString#1#2{%
+ \PE@sanitize#1{#2}%
+ \edef#1{\expandafter\PE@SpaceToOther#1 \relax}%
+ \PE@EscapeString#1%
+ }%
+\else
+\long\def\PE@edefbabel#1#2#3{%
+ \begingroup
+ \csname @save@activestrue\endcsname
+ \edef#1{#2{#3}}%
+ \expandafter\endgroup
+ \expandafter\def\expandafter#1\expandafter{#1}%
+}
+ \long\def\EdefEscapeHex#1#2{%
+ \PE@edefbabel#1\pdfescapehex{#2}%
+ }%
+ \def\EdefUnescapeHex#1#2{%
+ \PE@edefbabel#1\pdfunescapehex{#2}%
+ }%
+ \long\def\EdefEscapeName#1#2{%
+ \PE@edefbabel#1\pdfescapename{#2}%
+ }%
+ \long\def\EdefEscapeString#1#2{%
+ \PE@edefbabel#1\pdfescapestring{#2}%
+ }%
+ \PE@AtEnd
+ \expandafter\endinput
+\fi
+\edef\PE@hash{\string#}
+\begingroup
+ \catcode`\ =12\relax%
+\def\x{\endgroup\def\PE@space@other{ }}\x\relax
+\def\PE@space@space{ }
+\begingroup
+ \long\def\@gobble#1{}%
+ \escapechar=92 %
+\edef\x{\endgroup
+ \def\noexpand\PE@backslash{\expandafter\@gobble\string\\}%
+}
+\x
+\newif\ifPE@etex
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname numexpr\endcsname\relax
+\else
+ \PE@etextrue
+\fi
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname detokenize\endcsname\relax
+ \long\def\PE@sanitize#1#2{%
+ \begingroup
+ \csname @safe@activestrue\endcsname
+ \edef#1{#2}%
+ \PE@onelevel@sanitize#1%
+ \expandafter\endgroup
+ \expandafter\def\expandafter#1\expandafter{#1}%
+ }%
+ \begingroup\expandafter\expandafter\expandafter\endgroup
+ \expandafter\ifx\csname @onelevel@sanitize\endcsname\relax
+ \def\PE@onelevel@sanitize#1{%
+ \edef#1{\expandafter\PE@strip@prefix\meaning#1}%
+ }%
+ \def\PE@strip@prefix#1>{}%
+ \else
+ \let\PE@onelevel@sanitize\@onelevel@sanitize
+ \fi
+\else
+ \long\def\PE@sanitize#1#2{%
+ \begingroup
+ \csname @safe@activestrue\endcsname
+ \edef#1{#2}%
+ \edef#1{\detokenize\expandafter{#1}}%
+ \expandafter\endgroup
+ \expandafter\def\expandafter#1\expandafter{#1}%
+ }%
+\fi
+\def\PE@SpaceToOther#1 #2\relax{%
+ #1%
+ \ifx\\#2\\%
+ \else
+ \PE@space@other
+ \@ReturnAfterFi{%
+ \PE@SpaceToOther#2\relax
+ }%
+ \fi
+}
+\long\def\@ReturnAfterFi#1\fi{\fi#1}
+\ifPE@etex
+ \def\PE@EscapeHex#1{%
+ \edef#1{\expandafter\PE@ToHex#1\relax}%
+ }%
+\else
+ \def\PE@EscapeHex#1{%
+ \def\PE@result{}%
+ \expandafter\PE@ToHex#1\relax
+ \let#1\PE@result
+ }%
+\fi
+\def\PE@ToHex#1{%
+ \ifx\relax#1%
+ \else
+ \PE@HexChar{#1}%
+ \expandafter\PE@ToHex
+ \fi
+}%
+\ifPE@etex
+ \def\PE@HexChar#1{%
+ \PE@HexDigit{\numexpr\dimexpr.0625\dimexpr`#1sp\relax\relax\relax}%
+ \PE@HexDigit{%
+ \numexpr`#1-16*\dimexpr.0625\dimexpr`#1sp\relax\relax\relax
+ }%
+ }%
+\else
+ \def\PE@HexChar#1{%
+ \dimen0=`#1sp%
+ \dimen2=.0625\dimen0 %
+ \advance\dimen0-16\dimen2 %
+ \edef\PE@result{%
+ \PE@result
+ \PE@HexDigit{\dimen2 }%
+ \PE@HexDigit{\dimen0 }%
+ }%
+ }%
+\fi
+\def\PE@HexDigit#1{%
+ \expandafter\string
+ \ifcase#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
+}
+\ifPE@etex
+ \def\PE@OctChar#1{%
+ \expandafter\PE@@OctChar
+ \the\numexpr\dimexpr.015625\dimexpr`#1sp\relax\relax
+ \expandafter\relax
+ \expandafter\relax
+ \the\numexpr\dimexpr.125\dimexpr`#1sp\relax\relax\relax
+ \relax
+ #1%
+ }%
+ \def\PE@@OctChar#1\relax#2\relax#3{%
+ \PE@backslash
+ #1%
+ \the\numexpr#2-8*#1\relax
+ \the\numexpr\dimexpr`#3sp\relax-8*#2\relax
+ }%
+\else
+ \def\PE@OctChar#1{%
+ \dimen0=`#1sp%
+ \dimen2=.125\dimen0 %
+ \dimen4=.125\dimen2 %
+ \advance\dimen0-8\dimen2 %
+ \advance\dimen2-8\dimen4 %
+ \edef\PE@result{%
+ \PE@result
+ \PE@backslash
+ \number\dimen4 %
+ \number\dimen2 %
+ \number\dimen0 %
+ }%
+ }%
+\fi
+\def\PE@UnescapeHex#1{%
+ \begingroup
+ \def\PE@result{}%
+ \expandafter\PE@DeHex#1\relax\relax
+ \expandafter\endgroup
+ \expandafter\def\expandafter#1\expandafter{\PE@result}%
+}
+\def\PE@DeHex#1#2{%
+ \ifx#2\relax
+ \ifx#1\relax
+ \else
+ \PE@DeHex#10\relax\relax
+ \fi
+ \else
+ \uppercase{\lccode0="#1#2}\relax
+ \ifnum\lccode0=32 %
+ \edef\PE@result{\PE@result\PE@space@space}%
+ \else
+ \lowercase{\def\PE@temp{^^@}}%
+ \edef\PE@result{\PE@result\PE@temp}%
+ \fi
+ \expandafter\PE@DeHex
+ \fi
+}
+\ifPE@etex
+ \def\PE@EscapeName#1{%
+ \edef#1{\expandafter\PE@EscapeNameTokens#1\relax}%
+ }%
+\else
+ \def\PE@EscapeName#1{%
+ \def\PE@result{}%
+ \expandafter\PE@EscapeNameTokens#1\relax
+ \let#1\PE@result
+ }%
+\fi
+\def\PE@EscapeNameTokens#1{%
+ \ifx\relax#1%
+ \else
+ \ifnum`#1<33 %
+ \ifcase`#1 %
+ % drop illegal zero
+ \else
+ \PE@EscapeNameAdd\PE@hash
+ \PE@HexChar#1%
+ \fi
+ \else
+ \ifnum`#1>126 %
+ \PE@EscapeNameAdd\PE@hash
+ \PE@HexChar#1%
+ \else \ifnum`#1=35 \PE@EscapeNameHashChar 23% #
+ \else\ifnum`#1=37 \PE@EscapeNameHashChar 25% %
+ \else\ifnum`#1=40 \PE@EscapeNameHashChar 28% (
+ \else\ifnum`#1=41 \PE@EscapeNameHashChar 29% )
+ \else\ifnum`#1=47 \PE@EscapeNameHashChar 2F% /
+ \else\ifnum`#1=60 \PE@EscapeNameHashChar 3C% <
+ \else\ifnum`#1=62 \PE@EscapeNameHashChar 3E% >
+ \else\ifnum`#1=91 \PE@EscapeNameHashChar 5B% [
+ \else\ifnum`#1=93 \PE@EscapeNameHashChar 5D% ]
+ \else\ifnum`#1=123 \PE@EscapeNameHashChar 7B% {
+ \else\ifnum`#1=125 \PE@EscapeNameHashChar 7D% }
+ \else
+ \PE@EscapeNameAdd{#1}%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
+ \fi
+ \fi
+ \expandafter\PE@EscapeNameTokens
+ \fi
+}%
+\def\PE@EscapeNameHashChar#1#2{%
+ \PE@EscapeNameAdd{\PE@hash\string#1\string#2}%
+}%
+\ifPE@etex
+ \def\PE@EscapeNameAdd#1{#1}%
+\else
+ \def\PE@EscapeNameAdd#1{%
+ \edef\PE@result{%
+ \PE@result
+ #1%
+ }%
+ }%
+\fi
+\ifPE@etex
+ \def\PE@EscapeString#1{%
+ \edef#1{\expandafter\PE@EscapeStringTokens#1\relax}%
+ }%
+\else
+ \def\PE@EscapeString#1{%
+ \begingroup
+ \def\PE@result{}%
+ \expandafter\PE@EscapeStringTokens#1\relax
+ \expandafter\endgroup
+ \expandafter\def\expandafter#1\expandafter{\PE@result}%
+ }%
+\fi
+\def\PE@EscapeStringTokens#1{%
+ \ifx\relax#1%
+ \else
+ \ifnum`#1<33 %
+ \PE@OctChar#1%
+ \else
+ \ifnum`#1>126 %
+ \PE@OctChar#1%
+ \else \ifnum`#1=40 \PE@EscapeStringAdd{\string\(}% (
+ \else\ifnum`#1=41 \PE@EscapeStringAdd{\string\)}% )
+ \else\ifnum`#1=92 \PE@EscapeStringAdd{\string\\}% \
+ \else
+ \PE@EscapeStringAdd{#1}%
+ \fi\fi\fi
+ \fi
+ \fi
+ \expandafter\PE@EscapeStringTokens
+ \fi
+}%
+\ifPE@etex
+ \def\PE@EscapeStringAdd#1{#1}%
+\else
+ \def\PE@EscapeStringAdd#1{%
+ \edef\PE@result{%
+ \PE@result
+ #1%
+ }%
+ }%
+\fi
+\PE@AtEnd
+\endinput
+%%
+%% End of file `pdfescape.sty'.
diff --git a/Master/texmf-dist/tex/latex/oberdiek/bkm-dvipdfm.def b/Master/texmf-dist/tex/latex/oberdiek/bkm-dvipdfm.def
index 7097a9b402c..ad3ea1d3260 100644
--- a/Master/texmf-dist/tex/latex/oberdiek/bkm-dvipdfm.def
+++ b/Master/texmf-dist/tex/latex/oberdiek/bkm-dvipdfm.def
@@ -30,7 +30,7 @@
%%
\NeedsTeXFormat{LaTeX2e}
\ProvidesFile{bkm-dvipdfm.def}%
- [2007/02/20 v0.2 bookmark driver for dvipdfm (HO)]
+ [2007/02/22 v0.4 bookmark driver for dvipdfm (HO)]
\newcount\BKM@id
\BKM@id=\z@
\def\BKM@0{000}
@@ -86,10 +86,11 @@
\edef\BKM@action{/Dest[@page\BKM@page/\BKM@view]}%
\fi
\else
+ \BKM@EscapeString\BKM@uri
\edef\BKM@action{%
/A<<%
/S/URI%
- /URI(\BKM@escapestring{\BKM@uri})%
+ /URI(\BKM@uri)%
>>%
}%
\fi
@@ -97,15 +98,17 @@
\edef\BKM@action{/A<<\BKM@rawaction>>}%
\fi
\else
+ \BKM@EscapeName\BKM@named
\edef\BKM@action{%
- /A<</S/Named/N/\BKM@escapename{\BKM@named}>>%
+ /A<</S/Named/N/\BKM@named>>%
}%
\fi
\else
+ \BKM@EscapeString\BKM@dest
\edef\BKM@action{%
/A<<%
/S/GoTo%
- /D(\BKM@escapestring{\BKM@dest})%
+ /D(\BKM@dest)%
>>%
}%
\fi
@@ -121,12 +124,14 @@
\fi
\edef\BKM@action{/D[\BKM@page/\BKM@view]}%
\else
- \edef\BKM@action{/D(\BKM@escapestring{\BKM@dest})}%
+ \BKM@EscapeString\BKM@dest
+ \edef\BKM@action{/D(\BKM@dest)}%
\fi
+ \BKM@EscapeString\BKM@gotor
\edef\BKM@action{%
/A<<%
/S/GoToR%
- /F(\BKM@escapestring{\BKM@gotor})%
+ /F(\BKM@gotor)%
\BKM@action
>>%
}%
diff --git a/Master/texmf-dist/tex/latex/oberdiek/bkm-dvips.def b/Master/texmf-dist/tex/latex/oberdiek/bkm-dvips.def
index 1de078f8033..a10ac2f354d 100644
--- a/Master/texmf-dist/tex/latex/oberdiek/bkm-dvips.def
+++ b/Master/texmf-dist/tex/latex/oberdiek/bkm-dvips.def
@@ -30,7 +30,7 @@
%%
\NeedsTeXFormat{LaTeX2e}
\ProvidesFile{bkm-dvips.def}%
- [2007/02/20 v0.2 bookmark driver for dvips (HO)]
+ [2007/02/22 v0.4 bookmark driver for dvips (HO)]
\def\BKM@filename{\jobname.out.ps}
\special{header=\BKM@filename}
\AtEndDocument{\BKM@dvips@out}
@@ -53,7 +53,8 @@
\def\BKM@DO@entry#1#2{%
\begingroup
\setkeys{BKM@DO}{#1}%
- \edef\BKM@DO@title{\BKM@unescapehex{#2}}%
+ \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
@@ -89,32 +90,38 @@
}%
\fi
\else
+ \BKM@UnescapeHex\BKM@DO@uri
+ \BKM@EscapeString\BKM@DO@uri
\edef\BKM@action{%
/Action<<%
/Subtype/URI%
- /URI(\BKM@escapestring{\BKM@unescapehex{\BKM@DO@uri}})%
+ /URI(\BKM@DO@uri)%
>>%
}%
\fi
\else
+ \BKM@UnescapeHex\BKM@DO@rawaction
\edef\BKM@action{%
/Action<<%
- \BKM@unescapehex{\BKM@DO@rawaction}%
+ \BKM@DO@rawaction
>>%
}%
\fi
\else
+ \BKM@EscapeName\BKM@DO@named
\edef\BKM@action{%
/Action<<%
/Subtype/Named%
- /N/\BKM@escapename{\BKM@DO@named}%
+ /N/\BKM@DO@named
>>%
}%
\fi
\else
+ \BKM@UnescapeHex\BKM@DO@dest
+ \BKM@EscapeString\BKM@DO@dest
\edef\BKM@action{%
/Action/GoTo%
- /Dest(\BKM@escapestring{\BKM@DO@dest})cvn%
+ /Dest(\BKM@DO@dest)cvn%
}%
\fi
\else
@@ -130,13 +137,17 @@
/View[/\BKM@DO@view]%
}%
\else
+ \BKM@UnescapeHex\BKM@DO@dest
+ \BKM@EscapeString\BKM@DO@dest
\edef\BKM@action{%
- /Dest(\BKM@escapestring{\BKM@DO@dest})cvn%
+ /Dest(\BKM@DO@dest)cvn%
}%
\fi
+ \BKM@UnescapeHex\BKM@DO@gotor
+ \BKM@EscapeString\BKM@DO@gotor
\edef\BKM@action{%
/Action/GoToR%
- /F(\BKM@escapestring{\BKM@unescapehex{\BKM@DO@gotor}})%
+ /F(\BKM@DO@gotor)%
\BKM@action
}%
\fi
@@ -201,6 +212,11 @@
}%
\pdfstringdef\BKM@title{#2}%
\edef\BKM@FLAGS{\printflags{BKM@style}}%
+ \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
@@ -209,42 +225,18 @@
,open%
\fi
\fi
- \ifx\BKM@dest\@empty
- \else
- ,dest={\BKM@dest}%
- \fi
- \ifx\BKM@named\@empty
- \else
- ,named={\BKM@named}%
- \fi
- \ifx\BKM@uri\@empty
- \else
- ,uri={\BKM@escapehex{\BKM@uri}}%
- \fi
- \ifx\BKM@gotor\@empty
- \else
- ,gotor={\BKM@escapehex{\BKM@gotor}}%
- \fi
- \ifx\BKM@page\@empty
- \else
- ,page=\BKM@page
- \fi
- \ifx\BKM@view\@empty
- \else
- ,view={\BKM@view}%
- \fi
- \ifx\BKM@rawaction\@empty
- \else
- ,rawaction={\BKM@escapehex{\BKM@rawaction}}%
- \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
- \ifx\BKM@color\@empty
- \else
- ,color={\BKM@color}%
- \fi
- }{\BKM@escapehex{\BKM@title}}%
+ }{\BKM@title}%
}%
\endgroup
\fi
@@ -254,6 +246,12 @@
\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}
diff --git a/Master/texmf-dist/tex/latex/oberdiek/bkm-pdftex.def b/Master/texmf-dist/tex/latex/oberdiek/bkm-pdftex.def
index 1295407ba63..e8fb50f63d4 100644
--- a/Master/texmf-dist/tex/latex/oberdiek/bkm-pdftex.def
+++ b/Master/texmf-dist/tex/latex/oberdiek/bkm-pdftex.def
@@ -30,11 +30,12 @@
%%
\NeedsTeXFormat{LaTeX2e}
\ProvidesFile{bkm-pdftex.def}%
- [2007/02/20 v0.2 bookmark driver for pdftex (HO)]
+ [2007/02/22 v0.4 bookmark driver for pdftex (HO)]
\def\BKM@DO@entry#1#2{%
\begingroup
\setkeys{BKM@DO}{#1}%
- \edef\BKM@DO@title{\BKM@unescapehex{#2}}%
+ \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
@@ -66,24 +67,29 @@
\edef\BKM@action{goto page\BKM@DO@page{/\BKM@DO@view}}%
\fi
\else
- \edef\BKM@action{user{<</S/URI/URI(%
- \BKM@escapestring{\BKM@unescapehex{\BKM@DO@uri}})>>}}%
+ \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@unescapehex{\BKM@DO@rawaction}%
+ \BKM@DO@rawaction
>>%
}%
}%
\fi
\else
+ \BKM@EscapeName\BKM@DO@named
\edef\BKM@action{%
- user{<</S/Named/N/\BKM@escapename{\BKM@DO@named}>>}%
+ user{<</S/Named/N/\BKM@DO@named>>}%
}%
\fi
\else
+ \BKM@UnescapeHex\BKM@DO@dest
+ \BKM@EscapeString\BKM@DO@dest
\edef\BKM@action{goto name{\BKM@DO@dest}}%
\fi
\else
@@ -98,13 +104,17 @@
\fi
\edef\BKM@action{/D[\BKM@DO@page/\BKM@DO@view]}%
\else
- \edef\BKM@action{/D(\BKM@escapestring{\BKM@DO@dest})}%
+ \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@escapestring{\BKM@unescapehex{\BKM@DO@gotor}})%
+ /F(\BKM@DO@gotor)%
\BKM@action
>>%
}%
@@ -163,6 +173,11 @@
}%
\pdfstringdef\BKM@title{#2}%
\edef\BKM@FLAGS{\printflags{BKM@style}}%
+ \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
@@ -171,42 +186,18 @@
,open%
\fi
\fi
- \ifx\BKM@dest\@empty
- \else
- ,dest={\BKM@dest}%
- \fi
- \ifx\BKM@named\@empty
- \else
- ,named={\BKM@named}%
- \fi
- \ifx\BKM@uri\@empty
- \else
- ,uri={\BKM@escapehex{\BKM@uri}}%
- \fi
- \ifx\BKM@gotor\@empty
- \else
- ,gotor={\BKM@escapehex{\BKM@gotor}}%
- \fi
- \ifx\BKM@page\@empty
- \else
- ,page=\BKM@page
- \fi
- \ifx\BKM@view\@empty
- \else
- ,view={\BKM@view}%
- \fi
- \ifx\BKM@rawaction\@empty
- \else
- ,rawaction={\BKM@escapehex{\BKM@rawaction}}%
- \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
- \ifx\BKM@color\@empty
- \else
- ,color={\BKM@color}%
- \fi
- }{\BKM@escapehex{\BKM@title}}%
+ }{\BKM@title}%
}%
\endgroup
\fi
@@ -216,6 +207,12 @@
\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}
diff --git a/Master/texmf-dist/tex/latex/oberdiek/bookmark.sty b/Master/texmf-dist/tex/latex/oberdiek/bookmark.sty
index 758cb6a6134..cbf01370757 100644
--- a/Master/texmf-dist/tex/latex/oberdiek/bookmark.sty
+++ b/Master/texmf-dist/tex/latex/oberdiek/bookmark.sty
@@ -30,25 +30,29 @@
%%
\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
+ [2007/02/22 v0.4 PDF bookmarks (HO)]
+\RequirePackage{pdfescape}%
+\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{ifpdf}
\RequirePackage{ifxetex}
\RequirePackage{hyperref}
@@ -368,18 +372,21 @@
\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
+ \def\BKM@type{#5}%
+ \ifx\BKM@type\Hy@bookmarkstype
+ \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
\fi
}
\let\ReadBookmarks\relax