diff options
author | Karl Berry <karl@freefriends.org> | 2010-09-11 22:56:04 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2010-09-11 22:56:04 +0000 |
commit | eb1e0a22fee869ae52e26bf9cd370da5a15358f3 (patch) | |
tree | 87cb97ca719386815056c272aecf23a871e54773 /Master/texmf-dist/tex/latex/hyperref/hyperref.sty | |
parent | 1c41710dabbde19fb39689af8b04bc5cb0ab4007 (diff) |
hyperref update (11sep10)
git-svn-id: svn://tug.org/texlive/trunk@19658 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/hyperref/hyperref.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/hyperref/hyperref.sty | 331 |
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 |