diff options
Diffstat (limited to 'Master/texmf-dist/source/latex/hyperref/hyperref.dtx')
-rw-r--r-- | Master/texmf-dist/source/latex/hyperref/hyperref.dtx | 219 |
1 files changed, 201 insertions, 18 deletions
diff --git a/Master/texmf-dist/source/latex/hyperref/hyperref.dtx b/Master/texmf-dist/source/latex/hyperref/hyperref.dtx index fe98b953c56..dd0a946c1a0 100644 --- a/Master/texmf-dist/source/latex/hyperref/hyperref.dtx +++ b/Master/texmf-dist/source/latex/hyperref/hyperref.dtx @@ -39,7 +39,7 @@ %<puenc>\ProvidesFile{puenc.def} %<puvnenc>\ProvidesFile{puvnenc.def} %<puarenc>\ProvidesFile{puarenc.def} -%<!none> [2010/01/08 v6.80a +%<!none> [2010/01/11 v6.80b %<package> Hypertext links for LaTeX] %<nohyperref> Dummy hyperref (SR)] %<driver> Hyperref documentation driver file] @@ -119,7 +119,7 @@ \end{document} %</driver> % \fi -% \CheckSum{25220} +% \CheckSum{25445} % % \MakeShortVerb{|} % \StopEventually{} @@ -559,6 +559,8 @@ % with the later releases! % \begin{macrocode} \RequirePackage{keyval}[1997/11/10] +\RequirePackage{kvsetkeys}[2007/09/29] +\RequirePackage{pdfescape}[2007/11/11] \RequirePackage{ifpdf}[2006/02/20] \RequirePackage{ifvtex} \RequirePackage{ifxetex}[2006/08/21] @@ -4421,7 +4423,13 @@ \define@key{Hyp}{dviwindo}[true]{% \def\Hy@driver{hdviwind}% \setkeys{Hyp}{colorlinks}% - \PassOptionsToPackage{dviwindo}{color}% + \ifpdf + \else + \ifxetex + \else + \PassOptionsToPackage{dviwindo}{color}% + \fi + \fi } \define@key{Hyp}{dvipsone}[true]{% \def\Hy@driver{hdvipson}% @@ -5281,6 +5289,8 @@ \do{4}{four copies}% \do{5}{five copies}% } +% \end{macrocode} +% \begin{macrocode} \define@key{Hyp}{pdfusetitle}[true]{% \Hy@boolkey[pdfusetitle]{usetitle}{#1}% } @@ -5340,6 +5350,132 @@ \HyPsd@XeTeXBigCharstrue \pdfstringdef\@pdfkeywords{#1}% } +\define@key{Hyp}{pdftrapped}{% + \lowercase{\edef\Hy@temp{#1}}% + \ifx\Hy@temp\HyInfo@trapped@true + \def\@pdftrapped{True}% + \else + \ifx\Hy@temp\HyInfo@trapped@false + \def\@pdftrapped{False}% + \else + \ifx\Hy@temp\HyInfo@trapped@unknown + \def\@pdftrapped{Unknown}% + \else + \ifx\Hy@temp\@empty + \else + \Hy@Warning{% + Unsupported value `#1'\MessageBreak + for option `pdftrapped'% + }% + \fi + \def\@pdftrapped{}% + \fi + \fi + \fi +} +\def\HyInfo@trapped@true{true} +\def\HyInfo@trapped@false{false} +\def\HyInfo@trapped@unknown{unknown} +\def\HyInfo@TrappedUnsupported{% + \ifx\@pdftrapped\@empty + \else + \Hy@WarningNoLine{`pdftrapped' is not supported by this driver}% + \gdef\HyInfo@TrappedUnsupported{}% + \fi +} +\define@key{Hyp}{pdfinfo}{% + \kvsetkeys{pdfinfo}{#1}% +} +\def\Hy@temp#1{% + \lowercase{\Hy@temp@A{#1}}{#1}% +} +\def\Hy@temp@A#1#2{% + \define@key{pdfinfo}{#2}{% + \hypersetup{pdf#1={##1}}% + }% +} +\Hy@temp{Title} +\Hy@temp{Author} +\Hy@temp{Keywords} +\Hy@temp{Subject} +\Hy@temp{Creator} +\Hy@temp{Producer} +\Hy@temp{CreationDate} +\Hy@temp{ModDate} +\Hy@temp{Trapped} +\newif\ifHyInfo@AddonUnsupported +\kv@set@family@handler{pdfinfo}{% + \HyInfo@AddonHandler{#1}{#2}% +} +\let\HyInfo@do\relax +\def\HyInfo@AddonHandler#1#2{% + \ifx\kv@value\relax + \Hy@Warning{% + Option `pdfinfo': ignoring key `\kv@key' without value% + }% + \else + \EdefEscapeName\HyInfo@KeyEscaped{\kv@key}% + \EdefUnescapeName\HyInfo@Key{\HyInfo@KeyEscaped}% + \expandafter\ifx\csname KV@pdfinfo@\HyInfo@Key\endcsname\relax + \ifHyInfo@AddonUnsupported + \Hy@Warning{% + This driver does not support additional\MessageBreak + information entries, therefore\MessageBreak + `\kv@key' is ignored% + }% + \else + \define@key{pdfinfo}{\HyInfo@Key}{% + \HyXeTeX@CheckUnicode + \HyPsd@XeTeXBigCharstrue + \pdfstringdef\HyInfo@Value{##1}% + \expandafter\let\csname HyInfo@Value@\HyInfo@Key\endcsname + \HyInfo@Value + }% + \edef\HyInfo@AddonList{% + \HyInfo@AddonList + \HyInfo@do{\HyInfo@Key}% + }% + \kv@parse@normalized{% + \HyInfo@Key={#2}% + }{% + \kv@processor@default{pdfinfo}% + }% + \fi + \else + \kv@parse@normalized{% + \HyInfo@Key={#2}% + }{% + \kv@processor@default{pdfinfo}% + }% + \fi + \fi +} +\def\HyInfo@GenerateAddons{% + \ifHyInfo@AddonUnsupported + \def\HyInfo@Addons{}% + \else + \begingroup + \toks@{}% + \def\HyInfo@do##1{% + \EdefEscapeName\HyInfo@Key{##1}% + \edef\x{% + \toks@{% + \the\toks@ + /\HyInfo@Key(\csname HyInfo@Value@##1\endcsname)% + }% + }% + \x + }% + \HyInfo@AddonList + \edef\x{\endgroup + \def\noexpand\HyInfo@Addons{\the\toks@}% + }% + \x + \fi +} +\def\HyInfo@AddonList{} +% \end{macrocode} +% \begin{macrocode} \define@key{Hyp}{pdfview}{\calculate@pdfview#1 \\} \define@key{Hyp}{pdflinkmargin}{\setpdflinkmargin{#1}} \let\setpdflinkmargin\@gobble @@ -5447,6 +5583,7 @@ \def\@pdfmoddate{} \def\@pdfsubject{} \def\@pdfkeywords{} +\def\@pdftrapped{} \def\@pdfpagescrop{} \def\@pdfstartview{ /Fit } \def\@pdfstartpage{1} @@ -6978,9 +7115,6 @@ % % \subsection{Choice field} % -% \begin{macrocode} -\RequirePackage{kvsetkeys}[2007/09/29] -% \end{macrocode} % \begin{macro}{\HyField@PDFChoices} % |#1|: list of choices in key value syntax, key = exported name, % value = displayed text.\\ @@ -8242,19 +8376,21 @@ % \begin{macrocode} %<*pdfmarkbase> \begingroup - \toks@\expandafter{\Hy@FirstPageHook}% - \xdef\Hy@FirstPageHook{% - \noexpand\headerps@out{% - systemdict /pdfmark known% - {% - userdict /?pdfmark systemdict /exec get put% - }{% - userdict /?pdfmark systemdict /pop get put % - userdict /pdfmark systemdict /cleartomark get put% + \@ifundefined{headerps@out}{}{% + \toks@\expandafter{\Hy@FirstPageHook}% + \xdef\Hy@FirstPageHook{% + \noexpand\headerps@out{% + systemdict /pdfmark known% + {% + userdict /?pdfmark systemdict /exec get put% + }{% + userdict /?pdfmark systemdict /pop get put % + userdict /pdfmark systemdict /cleartomark get put% + }% + ifelse% }% - ifelse% + \the\toks@ }% - \the\toks@ }% \endgroup %</pdfmarkbase> @@ -11321,6 +11457,7 @@ % \begin{macrocode} \def\PDF@FinishDoc{% \Hy@UseMaketitleInfos + \HyInfo@GenerateAddons \pdfinfo{% /Author(\@pdfauthor)% /Title(\@pdftitle)% @@ -11339,6 +11476,11 @@ /Producer(\@pdfproducer)% \fi /Keywords(\@pdfkeywords)% + \ifx\@pdftrapped\@empty + \else + /Trapped/\@pdftrapped + \fi + \HyInfo@Addons }% \Hy@DisableOption{pdfauthor}% \Hy@DisableOption{pdftitle}% @@ -11348,6 +11490,8 @@ \Hy@DisableOption{pdfmoddate}% \Hy@DisableOption{pdfproducer}% \Hy@DisableOption{pdfkeywords}% + \Hy@DisableOption{pdftrapped}% + \Hy@DisableOption{pdfinfo}% } % \end{macrocode} % \end{macro} @@ -11897,8 +12041,10 @@ \ifx\@pdfproducer\relax \def\@pdfproducer{dviwindo + Distiller}% \fi +\HyInfo@AddonUnsupportedtrue \def\PDF@FinishDoc{% \Hy@UseMaketitleInfos + \HyInfo@TrappedUnsupported \special{PDF: Keywords \@pdfkeywords}% \special{PDF: Title \@pdftitle}% \special{PDF: Creator \@pdfcreator}% @@ -11924,6 +12070,8 @@ \Hy@DisableOption{pdfmoddate}% \Hy@DisableOption{pdfproducer}% \Hy@DisableOption{pdfkeywords}% + \Hy@DisableOption{pdftrapped}% + \Hy@DisableOption{pdfinfo}% } \def\PDF@SetupDoc{% \ifx\@baseurl\@empty @@ -12341,6 +12489,7 @@ \fi \def\PDF@FinishDoc{% \Hy@UseMaketitleInfos + \HyInfo@GenerateAddons \@pdfm@mark{% docinfo<<% /Title(\@pdftitle)% @@ -12360,6 +12509,11 @@ /Producer(\@pdfproducer)% \fi /Keywords(\@pdfkeywords)% + \ifx\@pdftrapped\@empty + \else + /Trapped/\@pdftrapped + \fi + \HyInfo@Addons >>% }% \Hy@DisableOption{pdfauthor}% @@ -12370,6 +12524,8 @@ \Hy@DisableOption{pdfmoddate}% \Hy@DisableOption{pdfproducer}% \Hy@DisableOption{pdfkeywords}% + \Hy@DisableOption{pdftrapped}% + \Hy@DisableOption{pdfinfo}% } % \end{macrocode} % \begin{macrocode} @@ -13174,8 +13330,10 @@ \special{!pdfinfo l=</\@pdfpagelayout\space>}% \fi }% +\HyInfo@AddonUnsupportedtrue \def\PDF@FinishDoc{% \Hy@UseMaketitleInfos + \HyInfo@TrappedUnsupported \special{!pdfinfo a=<\@pdfauthor>}% \special{!pdfinfo t=<\@pdftitle>}% \special{!pdfinfo s=<\@pdfsubject>}% @@ -13193,6 +13351,8 @@ \Hy@DisableOption{pdfmoddate}% \Hy@DisableOption{pdfproducer}% \Hy@DisableOption{pdfkeywords}% + \Hy@DisableOption{pdftrapped}% + \Hy@DisableOption{pdfinfo}% } %</vtex> % \end{macrocode} @@ -13461,6 +13621,7 @@ \newtoks\pdf@docset \def\PDF@FinishDoc{% \Hy@UseMaketitleInfos + \HyInfo@GenerateAddons \let\Hy@temp\@empty \ifx\@pdfcreationdate\@empty \else @@ -13488,8 +13649,16 @@ Subject=\@pdfsubject,% Creator=\@pdfcreator,% Author=\@pdfauthor,% - Keywords=\@pdfkeywords + Keywords=\@pdfkeywords,% + Trapped=\@pdftrapped }% + \ifx\HyInfo@Addons\@empty + \else + \pdfmark{% + pdfmark=/DOCINFO,% + Raw={\HyInfo@Addons}% + }% + \fi \Hy@DisableOption{pdfauthor}% \Hy@DisableOption{pdftitle}% \Hy@DisableOption{pdfsubject}% @@ -13498,6 +13667,8 @@ \Hy@DisableOption{pdfmoddate}% \Hy@DisableOption{pdfproducer}% \Hy@DisableOption{pdfkeywords}% + \Hy@DisableOption{pdftrapped}% + \Hy@DisableOption{pdfinfo}% } \def\PDF@SetupDoc{% \def\Hy@temp{}% @@ -13836,6 +14007,14 @@ \define@key{PDF}{ModDate}{\pdf@addtoks{(#1)}{ModDate}} \define@key{PDF}{Base}{\pdf@addtoks{(#1)}{Base}} \define@key{PDF}{URI}{\pdf@addtoks{#1}{URI}} +\define@key{PDF}{Trapped}{% + \edef\Hy@temp{#1}% + \ifx\Hy@temp\@empty + \else + \pdf@addtoks{/#1}{Trapped}% + \fi +} + %</pdfmarkbase> %<*pdfmark> \def\Acrobatmenu#1#2{% @@ -14483,8 +14662,10 @@ \ifx\@pdfproducer\relax \def\@pdfproducer{dvipsone + Distiller}% \fi +\HyInfo@AddonUnsupportedtrue \def\PDF@FinishDoc{% \Hy@UseMaketitleInfos + \HyInfo@TrappedUnsupported \special{PDF: Keywords \@pdfkeywords}% \special{PDF: Title \@pdftitle}% \special{PDF: Creator \@pdfcreator}% @@ -14510,6 +14691,8 @@ \Hy@DisableOption{pdfmoddate}% \Hy@DisableOption{pdfproducer}% \Hy@DisableOption{pdfkeywords}% + \Hy@DisableOption{pdftrapped}% + \Hy@DisableOption{pdfinfo}% } \def\PDF@SetupDoc{% \def\Hy@temp{}% |