summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/hyperref/hyperref.sty
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/hyperref/hyperref.sty')
-rw-r--r--Master/texmf-dist/tex/latex/hyperref/hyperref.sty331
1 files changed, 286 insertions, 45 deletions
diff --git a/Master/texmf-dist/tex/latex/hyperref/hyperref.sty b/Master/texmf-dist/tex/latex/hyperref/hyperref.sty
index 4e42f4f12b8..d7c55490684 100644
--- a/Master/texmf-dist/tex/latex/hyperref/hyperref.sty
+++ b/Master/texmf-dist/tex/latex/hyperref/hyperref.sty
@@ -30,7 +30,7 @@
%%
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{hyperref}
- [2010/06/18 v6.81g
+ [2010/09/11 v6.81m
Hypertext links for LaTeX]
\begingroup
\@makeother\`%
@@ -111,6 +111,45 @@
\def\Hy@Warning#1{\PackageWarning{hyperref}{#1}}
\def\Hy@WarningNoLine#1{\PackageWarningNoLine{hyperref}{#1}}
\def\Hy@Info#1{\PackageInfo{hyperref}{#1}}
+\ltx@IfUndefined{pdfmatch}{%
+ \def\Hy@Match#1#2#3#4{}%
+}{%
+ \def\Hy@Match#1#2{%
+ \begingroup
+ \edef\^{\ltx@backslashchar\string^}%
+ \edef\.{\ltx@backslashchar.}%
+ \edef\[{\ltx@backslashchar[}% ]]
+ \edef\${\ltx@backslashchar$}%
+ \edef\({\ltx@backslashchar(}%
+ \edef\){\ltx@backslashchar)}%
+ \edef\|{\ltx@backslashchar|}%
+ \edef\*{\ltx@backslashchar*}%
+ \edef\+{\ltx@backslashchar+}%
+ \edef\?{\ltx@backslashchar?}%
+ \edef\{{\ltx@backslashchar\ltx@leftbracechar}%
+ \edef\}{\ltx@rightbracechar}%
+ \edef\\{\ltx@backslashchar\ltx@backslashchar}%
+ \ifnum\pdfmatch{#2}{#1}=\ltx@one
+ \endgroup
+ \expandafter\ltx@firstoftwo
+ \else
+ \endgroup
+ \expandafter\ltx@secondoftwo
+ \fi
+ }%
+}
+\ltx@ifpackagelater{ltxcmds}{2010/09/11}{}{%
+ \begingroup
+ \lccode`0=`\{\relax
+ \lowercase{\endgroup
+ \def\ltx@leftbracechar{0}%
+ }%
+ \begingroup
+ \lccode`0=`\}\relax
+ \lowercase{\endgroup
+ \def\ltx@rightbracechar{0}%
+ }%
+}
\@ifundefined{AfterBeginDocument}{%
\def\AfterBeginDocument{\AtBeginDocument}%
}{}%
@@ -391,7 +430,7 @@
\let\label\@gobble
\let\index\@gobble
\let\glossary\@gobble
- \let\href\@secondoftwo
+ \let\href\HyPsd@href
\let\@mkboth\@gobbletwo
\let\ref\HyPsd@ref
\let\pageref\HyPsd@pageref
@@ -1365,6 +1404,7 @@
#3%
}%
}
+\def\HyPsd@href#1#{\@secondoftwo}
\def\HyPsd@ref#1{\HyPsd@@ref#1*\END}%
\def\HyPsd@@ref#1*#2\END{%
\ifx\\#2\\%
@@ -2156,10 +2196,28 @@
\def\Hy@writebookmark#1#2#3#4#5{}%
\let\HyperRaiseLinkHook\@empty
\def\HyperRaiseLinkDefault{\baselineskip}
+\newcount\Hy@SavedSpaceFactor
+\def\Hy@SaveSpaceFactor{%
+ \global\Hy@SavedSpaceFactor=\ifhmode\spacefactor\else\z@\fi
+}
+\def\Hy@RestoreSpaceFactor{%
+ \relax
+ \ifhmode
+ \ifnum\Hy@SavedSpaceFactor>\z@
+ \spacefactor=\Hy@SavedSpaceFactor
+ \fi
+ \fi
+}
+\def\Hy@SaveSavedSpaceFactor{%
+ \edef\Hy@RestoreSavedSpaceFactor{%
+ \global\Hy@SavedSpaceFactor=\the\Hy@SavedSpaceFactor\relax
+ }%
+}
\def\Hy@raisedlink#1{%
\ifvmode
#1%
\else
+ \Hy@SaveSpaceFactor
\penalty\@M
\smash{%
\begingroup
@@ -2167,8 +2225,13 @@
\setlength\HyperRaiseLinkLength\HyperRaiseLinkDefault
\HyperRaiseLinkHook
\expandafter\endgroup
- \expandafter\raise\the\HyperRaiseLinkLength\hbox{#1}%
+ \expandafter\raise\the\HyperRaiseLinkLength\hbox{%
+ \Hy@RestoreSpaceFactor
+ #1%
+ \Hy@SaveSpaceFactor
+ }%
}%
+ \Hy@RestoreSpaceFactor
\fi
}
\def\Hy@SaveLastskip{%
@@ -3455,7 +3518,40 @@
\ifx\\#1\\%
\def\@pdfstartview{}%
\else
- \hypercalcbpdef\@pdfstartview{ /#1 }%
+ \hypercalcbpdef\@pdfstartview{/#1}%
+ \fi
+}
+\def\HyPat@NonNegativeReal/{%
+ ([0-9]+\.?[0-9]*|[0-9]*\.?[0-9]+)%
+}
+\define@key{Hyp}{pdfremotestartview}{%
+ \ifx\\#1\\%
+ \def\@pdfremotestartview{/Fit}%
+ \else
+ \hypercalcbpdef\@pdfremotestartview{#1}%
+ \edef\@pdfremotestartview{\@pdfremotestartview}%
+ \Hy@Match\@pdfremotestartview{%
+ ^(XYZ -?(null|\HyPat@NonNegativeReal/) %
+ -?(null|\HyPat@NonNegativeReal/) %
+ (null|\HyPat@NonNegativeReal/)|%
+ Fit(|B|%
+ (H|V|BH|BV) (null|\HyPat@NonNegativeReal/)|%
+ R \HyPat@NonNegativeReal/ \HyPat@NonNegativeReal/ %
+ \HyPat@NonNegativeReal/ \HyPat@NonNegativeReal/%
+ ))$%
+ }{}{%
+ \Hy@Warning{%
+ Invalid value `\@pdfremotestartview'\MessageBreak
+ of `pdfremotestartview'\MessageBreak
+ is replaced by `Fit'%
+ }%
+ \let\@pdfremotestartview\@empty
+ }%
+ \ifx\@pdfremotestartview\@empty
+ \def\@pdfremotestartview{/Fit}%
+ \else
+ \edef\@pdfremotestartview{/\@pdfremotestartview}%
+ \fi
\fi
}
\define@key{Hyp}{pdfpagescrop}{\edef\@pdfpagescrop{#1}}
@@ -3529,7 +3625,8 @@
\def\@pdfkeywords{}
\def\@pdftrapped{}
\def\@pdfpagescrop{}
-\def\@pdfstartview{ /Fit }
+\def\@pdfstartview{/Fit}
+\def\@pdfremotestartview{/Fit}
\def\@pdfstartpage{1}
\def\@pdfprintpagerange{}
\def\@pdflang{}
@@ -3593,7 +3690,7 @@
\let\@secondoffive\@secondoftwo
\let\ReadBookmarks\relax
\let\WriteBookmarks\relax
- \Hy@WarningNoLine{ draft mode on}%
+ \Hy@WarningNoLine{Draft mode on}%
\fi
\Hy@DisableOption{draft}%
\Hy@DisableOption{nolinks}%
@@ -4137,7 +4234,9 @@
\hskip\z@skip
\fi
}
-\DeclareRobustCommand*{\href}{%
+\DeclareRobustCommand*{\href}[1][]{%
+ \begingroup
+ \setkeys{href}{#1}%
\@ifnextchar\bgroup\Hy@href{\hyper@normalise\href@}%
}
\def\Hy@href#{%
@@ -4147,10 +4246,78 @@
\catcode`\$=6 %
\catcode`\#=12 %
\gdef\href@$1{\expandafter\href@split$1##\\}%
- \gdef\href@split$1#$2#$3\\{%
- \hyper@@link{$1}{$2}%
+ \gdef\href@split$1#$2#$3\\$4{%
+ \hyper@@link{$1}{$2}{$4}%
+ \endgroup
}%
\endgroup
+\define@key{href}{page}{%
+ \def\Hy@href@page{#1}%
+}
+\let\Hy@href@page\@empty
+\newcount\c@Hy@tempcnt
+\def\theHy@tempcnt{\the\c@Hy@tempcnt}
+\def\Hy@MakeRemoteAction{%
+ \ifx\Hy@href@page\@empty
+ \def\Hy@href@page{0}%
+ \else
+ \setcounter{Hy@tempcnt}{\Hy@href@page}%
+ \ifnum\c@Hy@tempcnt<\@ne
+ \Hy@Warning{%
+ Invalid page number (\theHy@tempcnt)\MessageBreak
+ for remote PDF file.\MessageBreak
+ Using page 1%
+ }%
+ \def\Hy@href@page{0}%
+ \else
+ \global\advance\c@Hy@tempcnt\m@ne
+ \edef\Hy@href@page{\theHy@tempcnt}%
+ \fi
+ \fi
+ \ifx\Hy@href@nextactionraw\@empty
+ \else
+ \Hy@newwindowsettrue
+ \Hy@newwindowtrue
+ \fi
+}
+\define@key{href}{pdfremotestartview}{%
+ \setkeys{Hyp}{pdfremotestartview={#1}}%
+}
+\let\KV@href@pdfnewwindow\KV@Hyp@pdfnewwindow
+\let\KV@href@pdfnewwindow@default\KV@Hyp@pdfnewwindow@default
+\newif\ifHy@href@ismap
+\define@key{href}{ismap}[true]{%
+ \ltx@IfUndefined{Hy@href@ismap#1}{%
+ \PackageError{hyperref}{%
+ Invalid value (#1) for key `ismap'.\MessageBreak
+ Permitted values are `true' or `false'.\MessageBreak
+ Ignoring `ismap'%
+ }\@ehc
+ }{%
+ \csname Hy@href@ismap#1\endcsname
+ }%
+}
+\let\Hy@href@nextactionraw\@empty
+\define@key{href}{nextactionraw}{%
+ \edef\Hy@href@nextactionraw{#1}%
+ \ifx\Hy@href@nextactionraw\@empty
+ \else
+ \Hy@Match\Hy@href@nextactionraw{%
+ ^(\HyPat@ObjRef/|<<.*/S[ /].+>>|%
+ \[( ?\HyPat@ObjRef/|<<.*/S[ /].+>>)+ ?])$%
+ }{}{%
+ \Hy@Warning{Invalid value for `nextactionraw':\MessageBreak
+ \Hy@href@nextactionraw\MessageBreak
+ The action is discarded%
+ }%
+ }%
+ \ifx\Hy@href@nextactionraw\@empty
+ \else
+ \edef\Hy@href@nextactionraw{/Next \Hy@href@nextactionraw}%
+ \fi
+ \fi
+}
+\def\HyPat@ObjRef/{.+}
\RequirePackage{url}
\let\HyOrg@url\url
\def\Hurl{\begingroup \Url}
@@ -4263,20 +4430,26 @@
\x
}
\def\hyper@readexternallink#1\\#2#3#4{%
- \expandafter\@hyper@readexternallink{#2}{#3}{#4}#1::\\{#1}%
+ \begingroup
+ \let\\\relax
+ \expandafter\endgroup
+ \expandafter\@@hyper@@readexternallink#1\\{#2}{#3}{#4}%
+}
+\def\@@hyper@@readexternallink#1\\#2#3#4{%
+ \@hyper@readexternallink{#2}{#3}{#4}#1::\\{#1}%
}
\def\@pdftempwordfile{file}%
\def\@pdftempwordrun{run}%
\def\@hyper@readexternallink#1#2#3#4:#5:#6\\#7{%
\ifx\\#6\\%
- \expandafter\@hyper@linkfile file:#7\\{#3}{#2}%
+ \@hyper@linkfile file:#7\\{#3}{#2}{#7}%
\else
\ifx\\#4\\%
- \expandafter\@hyper@linkfile file:#7\\{#3}{#2}%
+ \@hyper@linkfile file:#7\\{#3}{#2}{#7}%
\else
\def\@pdftempa{#4}%
\ifx\@pdftempa\@pdftempwordfile
- \expandafter\@hyper@linkfile#7\\{#3}{#2}%
+ \@hyper@linkfile#7\\{#3}{#2}{#7}%
\else
\ifx\@pdftempa\@pdftempwordrun
\ifHy@pdfa
@@ -4288,7 +4461,7 @@
#2%
\endgroup
\else
- \expandafter\@hyper@launch#7\\{#3}{#2}%
+ \@hyper@launch#7\\{#3}{#2}%
\fi
\else
\hyper@linkurl{#3}{#7\ifx\\#2\\\else\hyper@hash#2\fi}%
@@ -4308,8 +4481,8 @@
\fi
}%
}
-\def\@hyper@linkfile file:#1\\#2#3{%
- %file url,link string, name
+\def\@hyper@linkfile file:#1\\#2#3#4{%
+ %file url,link string, name, original uri
\filename@parse{#1}%
\ifx\filename@ext\relax
\edef\filename@ext{\XR@ext}%
@@ -4320,7 +4493,7 @@
}{%
\ifx\@baseurl\@empty
\hyper@linkurl{#2}{%
- \Hy@linkfileprefix\use@file\ifx\\#3\\\else\hyper@hash#3\fi
+ #4\ifx\\#3\\\else\hyper@hash#3\fi
}%
\else
\hyper@linkurl{#2}{\use@file\ifx\\#3\\\else\hyper@hash#3\fi}%
@@ -4345,6 +4518,29 @@
}%
\expandafter\expandafter\expandafter\z\expandafter\x\y\@nil
}
+\def\Hy@StringLocalhost{localhost}
+\@onelevel@sanitize\Hy@StringLocalhost
+\def\Hy@CleanupFile#1{%
+ \edef#1{#1}%
+ \expandafter\Hy@@CleanupFile#1\hbox///\hbox\@nil{#1}%
+}
+\def\Hy@@CleanupFile#1//#2/#3\hbox#4\@nil#5{%
+ \begingroup
+ \toks@{\endgroup}%
+ \def\x{#1}%
+ \ifx\x\@empty
+ \def\x{#2}%
+ \ifx\x\@empty
+ \toks@{\endgroup\def#5{/#3}}%
+ \else
+ \@onelevel@sanitize\x
+ \ifx\x\Hy@StringLocalhost
+ \toks@{\endgroup\def#5{/#3}}%
+ \fi
+ \fi
+ \fi
+ \the\toks@
+}
\long\def\hyper@@anchor#1#2{\@hyper@@anchor#1\relax#2\relax}
\long\def\@hyper@@anchor#1\relax#2#3\relax{%
\ifx\\#1\\%
@@ -4375,6 +4571,7 @@
\fi
\let\anchor@spot\@empty
}
+\def\anchor@spot{}
\let\htmladdimg\hyperimage
\def\htmladdnormallink#1#2{\href{#2}{#1}}
\def\htmladdnormallinkfoot#1#2{\href{#2}{#1}\footnote{#2}}
@@ -4886,12 +5083,21 @@
\def\Field@boolkey#1#2{%
\csname Fld@#2\ifx\relax#1\relax true\else#1\fi\endcsname
}
-\newtoks\Field@toks
-\Field@toks={ }%
-\def\Field@addtoks#1#2{%
- \edef\@processme{\Field@toks{\the\Field@toks\space #1="#2"}}%
- \@processme
-}
+\ifHy@texht
+ \newtoks\Field@toks
+ \Field@toks={ }%
+ \def\Field@addtoks#1#2{%
+ \edef\@processme{\Field@toks{\the\Field@toks\space #1="#2"}}%
+ \@processme
+ }%
+\else
+ \def\Hy@WarnHTMLFieldOption#1{%
+ \Hy@Warning{%
+ HTML field option `#1'\MessageBreak
+ is ignored%
+ }%
+ }%
+\fi
\def\Fld@checkequals#1=#2=#3\\{%
\def\@currDisplay{#1}%
\ifx\\#2\\%
@@ -4909,12 +5115,21 @@
\define@key{Field}{disabled}[true]{%
\lowercase{\Field@boolkey{#1}}{disabled}%
}
-\define@key{Field}{accesskey}{%
- \Field@addtoks{accesskey}{#1}%
-}
-\define@key{Field}{tabkey}{%
- \Field@addtoks{tabkey}{#1}%
-}
+\ifHy@texht
+ \define@key{Field}{accesskey}{%
+ \Field@addtoks{accesskey}{#1}%
+ }%
+ \define@key{Field}{tabkey}{%
+ \Field@addtoks{tabkey}{#1}%
+ }%
+\else
+ \define@key{Field}{accesskey}{%
+ \Hy@WarnHTMLFieldOption{accesskey}%
+ }%
+ \define@key{Field}{tabkey}{%
+ \Hy@WarnHTMLFieldOption{tabkey}%
+ }%
+\fi
\define@key{Field}{name}{%
\def\Fld@name{#1}%
}
@@ -5032,33 +5247,46 @@
\Hy@temp{onblur}
\Hy@temp{onenter}
\Hy@temp{onexit}
-\def\Hy@temp#1{%
- \define@key{Field}{#1}{%
- \Field@addtoks{#1}{##1}%
+\ifHy@texht
+ \def\Hy@temp#1{%
+ \define@key{Field}{#1}{%
+ \Field@addtoks{#1}{##1}%
+ }%
}%
-}
-\Hy@temp{onselect}
-\Hy@temp{onchange}
+\else
+ \def\Hy@temp#1{%
+ \define@key{Field}{#1}{%
+ \Hy@WarnHTMLFieldOption{#1}%
+ }%
+ }%
+\fi
\Hy@temp{ondblclick}
\Hy@temp{onmousedown}
\Hy@temp{onmouseup}
\Hy@temp{onmouseover}
\Hy@temp{onmousemove}
\Hy@temp{onmouseout}
-\Hy@temp{onkeypress}
\Hy@temp{onkeydown}
\Hy@temp{onkeyup}
-\ifHy@pdfa
- \define@key{Field}{onclick}{%
- \PackageError{hyperref}{%
- PDF/A: Action `onclick' is prohibited%
- }\@ehc
- }%
-\else
+\Hy@temp{onselect}
+\Hy@temp{onchange}
+\Hy@temp{onkeypress}
+\ifHy@texht
\define@key{Field}{onclick}{%
- \def\Fld@onclick@code{#1}%
\Field@addtoks{onclick}{#1}%
}%
+\else
+ \ifHy@pdfa
+ \define@key{Field}{onclick}{%
+ \PackageError{hyperref}{%
+ PDF/A: Action `onclick' is prohibited%
+ }\@ehc
+ }%
+ \else
+ \define@key{Field}{onclick}{%
+ \def\Fld@onclick@code{#1}%
+ }%
+ \fi
\fi
\DeclareRobustCommand\TextField{%
\@ifnextchar[{\@TextField}{\@TextField[]}%
@@ -5610,6 +5838,7 @@
\fi
\fi
}
+\let\Hy@saved@refstepcounter\refstepcounter
\@ifpackageloaded{amsmath}{}{\newif\ifmeasuring@\measuring@false}
\def\hyper@refstepcounter#1{%
\edef\This@name{#1}%
@@ -5832,6 +6061,18 @@
\edef#1{\getpagerefnumber{#2}}%
}%
}{}
+\def\Hy@varioref@refstepcounter#1{%
+ \stepcounter{#1}%
+ \protected@edef\@currentlabel{%
+ \csname p@#1\expandafter\endcsname\csname the#1\endcsname
+ }%
+}
+\AtBeginDocument{%
+ \ifx\refstepcounter\Hy@varioref@refstepcounter
+ \let\H@refstepcounter\refstepcounter
+ \let\refstepcounter\Hy@saved@refstepcounter
+ \fi
+}
\@ifpackageloaded{longtable}{%
\begingroup
\def\y{\LT@array}%
@@ -6581,7 +6822,7 @@
\evensidemargin
\fi
\kern-1bp\relax
- \Hy@TempPageAnchor
+ \Hy@TempPageAnchor\relax
\hss
}%
\vss