summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/hyperref/hyperref.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source/latex/hyperref/hyperref.dtx')
-rw-r--r--Master/texmf-dist/source/latex/hyperref/hyperref.dtx219
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{}%