summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2010-09-14 23:56:54 +0000
committerKarl Berry <karl@freefriends.org>2010-09-14 23:56:54 +0000
commit6a202048032d41223115d64328753cae0efeca55 (patch)
tree37c51c814990236275ffd25da210a5e4e0781662 /Master/texmf-dist/source
parent3d0cb91a86809c8becca994b9f708c9cc8eb7fdc (diff)
hyperref update (15sep10)
git-svn-id: svn://tug.org/texlive/trunk@19734 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source')
-rw-r--r--Master/texmf-dist/source/latex/hyperref/doc/manual.tex37
-rw-r--r--Master/texmf-dist/source/latex/hyperref/doc/options.tex1
-rw-r--r--Master/texmf-dist/source/latex/hyperref/hyperref.dtx425
3 files changed, 318 insertions, 145 deletions
diff --git a/Master/texmf-dist/source/latex/hyperref/doc/manual.tex b/Master/texmf-dist/source/latex/hyperref/doc/manual.tex
index 956606fcf4f..418d4f493e0 100644
--- a/Master/texmf-dist/source/latex/hyperref/doc/manual.tex
+++ b/Master/texmf-dist/source/latex/hyperref/doc/manual.tex
@@ -233,6 +233,24 @@ not portable. The main advantage of using the Hyper\TeX\ \ci{special}
commands is that you can also use the document in hypertext DVI viewers,
such as \textsf{xdvi}.
+\begin{description}
+\item[driverfallback]
+ If a driver is not given and cannot be autodetected, then use
+ the driver option, given as value to this option \textsf{driverfallback}.
+ Example:
+ \begin{quote}
+ \texttt{driverfallback=dvipdfm}
+ \end{quote}
+ Autodetected drivers (\textsf{pdftex}, \textsf{xetex}, \textsf{vtex},
+ \textsf{vtexpdfmark}) are recognized from within \TeX\ and
+ therefore cannot be given as value to option \textsf{driverfallback}.
+ However a DVI driver program is run after the \TeX\ run is finished.
+ Thus it cannot be detected at \TeX\ macro level. Then package hyperref
+ uses the driver, given by \textsf{driverfallback}. If the driver
+ is already specified or can be autodetected, then option
+ \textsf{driverfallback} is ignored.
+\end{description}
+
\section{Implicit behavior}
This package can be used with more or less any normal \LaTeX\ document
@@ -361,10 +379,25 @@ However, at any case, the link area will be wrong and displaced.
\subsection{Backend drivers}
-If no driver is specified, the package defaults to loading the
-\textsf{hypertex} driver.
+If no driver is specified, the package tries to find a driver in
+the following order:
+\begin{enumerate}
+\item Autodetection, some \TeX\ processors can be detected at \TeX\ macro
+ level (pdf\TeX, Xe\TeX, V\TeX).
+\item Option \textsf{driverfallback}. If this option is set, its value
+ is taken as driver option.
+\item Makro \cs{Hy@defaultdriver}. The makro takes a driver file
+ name (without file extension).
+\item Package default is \textsf{hypertex}.
+\end{enumerate}
+Many distributions are using a driver file \texttt{hypertex.cfg} that
+define \cs{Hy@defaultdriver} with \texttt{hdvips}. This is recommended
+because driver \textsf{dvips} provides much more features than
+\textsf{hypertex} for PDF generation.
\noindent\begin{longtable}{>{\ttfamily}lp{.8\hsize}}
+driverfallback & Its value is used as driver option\\
+ & if the driver is not given or autodetected.\\
dvipdfm & Sets up \textsf{hyperref} for use with the \textsf{dvipdfm} driver.\\
dvipdfmx & Sets up \textsf{hyperref} for use with the \textsf{dvipdfmx} driver.\\
dvips & Sets up \textsf{hyperref} for use with the \textsf{dvips} driver. \\
diff --git a/Master/texmf-dist/source/latex/hyperref/doc/options.tex b/Master/texmf-dist/source/latex/hyperref/doc/options.tex
index 7e8278cea26..d7e05c77d38 100644
--- a/Master/texmf-dist/source/latex/hyperref/doc/options.tex
+++ b/Master/texmf-dist/source/latex/hyperref/doc/options.tex
@@ -33,6 +33,7 @@ colorlinks &color links&false\\
debug &provide details of anchors defined&false\\
&same as verbose&\\
draft &do not do any hyper linking&false\\
+driverfallback &Use this driver option, if no driver is given and cannot be autodetected\\
dvipdfm &use dvipdfm backend\\
dvipdfmx &use dvipdfmx backend (dvipdfm)\\
dvips &use dvips backend\\
diff --git a/Master/texmf-dist/source/latex/hyperref/hyperref.dtx b/Master/texmf-dist/source/latex/hyperref/hyperref.dtx
index 353532ad87f..f56ee4d783a 100644
--- a/Master/texmf-dist/source/latex/hyperref/hyperref.dtx
+++ b/Master/texmf-dist/source/latex/hyperref/hyperref.dtx
@@ -44,7 +44,7 @@
%<puenc>\ProvidesFile{puenc.def}
%<puvnenc>\ProvidesFile{puvnenc.def}
%<puarenc>\ProvidesFile{puarenc.def}
-%<!none> [2010/09/11 v6.81m
+%<!none> [2010/09/13 v6.81n
%<package> Hypertext links for LaTeX]
%<nohyperref> Dummy hyperref (SR)]
%<driver> Hyperref documentation driver file]
@@ -126,7 +126,7 @@
\end{document}
%</driver>
% \fi
-% \CheckSum{27643}
+% \CheckSum{27751}
%
% \MakeShortVerb{|}
% \StopEventually{}
@@ -566,6 +566,7 @@
% with the later releases!
% \begin{macrocode}
\RequirePackage{ltxcmds}[2010/03/09]
+\RequirePackage{infwarerr}[2010/04/08]
\RequirePackage{keyval}[1997/11/10]
\RequirePackage{kvsetkeys}[2007/09/29]
\RequirePackage{pdfescape}[2007/11/11]
@@ -574,9 +575,18 @@
\RequirePackage{ifxetex}[2006/08/21]
\RequirePackage{hycolor}
\RequirePackage{letltxmacro}[2008/06/13]
-\def\Hy@Warning#1{\PackageWarning{hyperref}{#1}}
-\def\Hy@WarningNoLine#1{\PackageWarningNoLine{hyperref}{#1}}
-\def\Hy@Info#1{\PackageInfo{hyperref}{#1}}
+\def\Hy@Error#1{\@PackageError{hyperref}}
+\def\Hy@Warning#1{\@PackageWarning{hyperref}{#1}}
+\def\Hy@WarningNoLine#1{\@PackageWarningNoLine{hyperref}{#1}}
+\def\Hy@Info#1{\@PackageInfo{hyperref}{#1}}
+\def\Hy@InfoNoLine{\@PackageInfoNoLine{hyperref}}
+\def\Hy@Message#1{%
+ \GenericWarning{%
+ (hyperref)\@spaces\@spaces\@spaces\@spaces
+ }{%
+ Package hyperref Message: #1\ltx@gobble
+ }%
+}
% \end{macrocode}
%
% \subsection{Checks with regular expressions}
@@ -685,6 +695,14 @@
}
% \end{macrocode}
%
+% Package kvoptions is used for processing options that are
+% given as key value pairs. The package provides
+% |\ProcessKeyvalOptions|, formerly known as
+% |\ProcessOptionsWithKV|.
+% \begin{macrocode}
+\RequirePackage{kvoptions}[2009/07/21]
+% \end{macrocode}
+%
% \subsection{Switches}
% \begin{macrocode}
\newif\ifHy@typexml
@@ -4390,6 +4408,13 @@
%
% \section{Options}
%
+% \begin{macrocode}
+\SetupKeyvalOptions{%
+ family=Hyp,%
+ prefix=HyOpt%
+}
+% \end{macrocode}
+%
% \subsection{Help macros}
%
% \begin{macro}{\Hy@boolkey}
@@ -4711,7 +4736,7 @@
\ifx\HyPsd@LoadUnicode\relax
\else
\def\HyPsd@LoadUnicode{%
- \PackageError{hyperref}{%
+ \Hy@Error{%
Unicode support for bookmarks is not available.\MessageBreak
Activate unicode support by using one of the options\MessageBreak
`unicode', `pdfencoding=unicode', `pdfencoding=auto'\MessageBreak
@@ -4812,15 +4837,47 @@
% \end{macrocode}
%
% \section{Options for different drivers}\label{drivers}
+%
+% \begin{macrocode}
+\newif\ifHy@DviMode
+\let\Hy@DviErrMsg\ltx@empty
+\ifpdf
+ \def\Hy@DviErrMsg{pdfTeX or LuaTeX is running in PDF mode}%
+\else
+ \ifxetex
+ \def\Hy@DviErrMsg{XeTeX is running}%
+ \else
+ \ifvtex
+ \ifvtexdvi
+ \Hy@DviModetrue
+ \else
+ \def\Hy@DviErrMsg{VTeX is running, but not in DVI mode}%
+ \fi
+ \else
+ \Hy@DviModetrue
+ \fi
+ \fi
+\fi
+\def\HyOpt@CheckDvi#1{%
+ \ifHy@DviMode
+ \expandafter\ltx@firstofone
+ \else
+ \Hy@Error{%
+ Wrong DVI mode driver option `#1',\MessageBreak
+ because \Hy@DviErrMsg
+ }\@ehc
+ \expandafter\ltx@gobble
+ \fi
+}
+% \end{macrocode}
% \begin{macrocode}
-\define@key{Hyp}{hyperref}[true]{}
-\define@key{Hyp}{tex4ht}[true]{%
+\DeclareVoidOption{tex4ht}{%
\Hy@texhttrue
\kvsetkeys{Hyp}{colorlinks=true}%
- \def\BeforeTeXIVht{\usepackage{color}}%
+ \def\BeforeTeXIVht{\RequirePackage{color}}%
\def\Hy@driver{htex4ht}%
\def\MaybeStopEarly{%
- \typeout{Hyperref stopped early}%
+ \Hy@Message{Stopped early}%
\Hy@AtBeginDocument{%
\PDF@FinishDoc
\gdef\PDF@FinishDoc{}%
@@ -4828,17 +4885,30 @@
\endinput
}%
}
-\define@key{Hyp}{pdftex}[true]{%
- \def\Hy@driver{hpdftex}%
+\DeclareVoidOption{pdftex}{%
+ \ifpdf
+ \def\Hy@driver{hpdftex}%
+ \else
+ \Hy@Error{%
+ Wrong driver option `pdftex',\MessageBreak
+ because pdfTeX in PDF mode is not detected%
+ }\@ehc
+ \fi
}
-\define@key{Hyp}{nativepdf}[true]{%
- \def\Hy@driver{hdvips}%
+\DeclareVoidOption{nativepdf}{%
+ \HyOpt@CheckDvi{nativepdf}{%
+ \def\Hy@driver{hdvips}%
+ }%
}
-\define@key{Hyp}{dvipdfm}[true]{%
- \def\Hy@driver{hdvipdfm}%
+\DeclareVoidOption{dvipdfm}{%
+ \HyOpt@CheckDvi{dvipdfm}{%
+ \def\Hy@driver{hdvipdfm}%
+ }%
}
-\define@key{Hyp}{dvipdfmx}[true]{%
- \def\Hy@driver{hdvipdfm}%
+\DeclareVoidOption{dvipdfmx}{%
+ \HyOpt@CheckDvi{dvipdfmx}{%
+ \def\Hy@driver{hdvipdfm}%
+ }%
}
\define@key{Hyp}{dvipdfmx-outline-open}[true]{%
\expandafter\ifx\csname if#1\expandafter\endcsname
@@ -4848,33 +4918,41 @@
\chardef\SpecialDvipdfmxOutlineOpen\z@
\fi
}
-\define@key{Hyp}{xetex}[true]{%
- \def\Hy@driver{hxetex}%
+\DeclareVoidOption{xetex}{%
+ \ifxetex
+ \def\Hy@driver{hxetex}%
+ \else
+ \Hy@Error{%
+ Wrong driver option `xetex',\MessageBreak
+ because XeTeX is not detected%
+ }\@ehc
+ \fi
}
-\define@key{Hyp}{pdfmark}[true]{%
- \def\Hy@driver{hdvips}%
+\DeclareVoidOption{pdfmark}{%
+ \HyOpt@CheckDvi{pdfmark}{%
+ \def\Hy@driver{hdvips}%
+ }%
}
-\define@key{Hyp}{dvips}[true]{%
- \def\Hy@driver{hdvips}%
+\DeclareVoidOption{dvips}{%
+ \HyOpt@CheckDvi{dvips}{%
+ \def\Hy@driver{hdvips}%
+ }%
}
-\define@key{Hyp}{hypertex}[true]{%
- \def\Hy@driver{hypertex}%
+\DeclareVoidOption{hypertex}{%
+ \HyOpt@CheckDvi{hypertex}{%
+ \def\Hy@driver{hypertex}%
+ }%
}
\let\Hy@MaybeStopNow\relax
-\define@key{Hyp}{vtex}[true]{%
- \begingroup\expandafter\expandafter\expandafter\endgroup
- \expandafter\ifx\csname OpMode\endcsname\relax
- \@latex@error{Non-VTeX processor}{}%
- \global\let\Hy@MaybeStopNow\endinput
- \endinput
- \else
+\DeclareVoidOption{vtex}{%
+ \ifvtex
\ifnum 0\ifnum\OpMode<1 1\fi \ifnum\OpMode>3 1\fi =0 %
\def\Hy@driver{hvtex}%
\else
\ifnum\OpMode=10\relax
\def\Hy@driver{hvtexhtm}%
\def\MaybeStopEarly{%
- \typeout{Hyperref stopped early}%
+ \Hy@Message{Stopped early}%
\Hy@AtBeginDocument{%
\PDF@FinishDoc
\gdef\PDF@FinishDoc{}%
@@ -4882,55 +4960,80 @@
\endinput
}%
\else
- \@latex@error{Mode (\the\OpMode) has no hyperref driver}{}%
- \global\let\Hy@MaybeStopNow\endinput
- \endinput
+ \Hy@Error{%
+ Wrong driver option `vtex',\MessageBreak
+ because of wrong OpMode (\the\OpMode)%
+ }\@ehc
\fi
\fi
+ \else
+ \Hy@Error{%
+ Wrong driver option `vtex',\MessageBreak
+ because VTeX is not running%
+ }\@ehc
\fi
}
-\define@key{Hyp}{vtexpdfmark}[true]{%
- \begingroup\expandafter\expandafter\expandafter\endgroup
- \expandafter\ifx\csname OpMode\endcsname\relax
- \@latex@error{Non-VTeX processor}{}%
- \let\Hy@MaybeStopNow\endinput
- \endinput
- \else
+\DeclareVoidOption{vtexpdfmark}{%
+ \ifvtex
\ifnum 0\ifnum\OpMode<1 1\fi \ifnum\OpMode>3 1\fi =0 %
\def\Hy@driver{hvtexmrk}%
\else
- \@latex@error{Mode (\the\OpMode) has no hyperref driver}{}%
- \let\Hy@MaybeStopNow\endinput
- \endinput
+ \Hy@Error{%
+ Wrong driver option `vtexpdfmark',\MessageBreak
+ because of wrong OpMode (\the\OpMode)%
+ }\@ehc
\fi
- \fi
-}
-\define@key{Hyp}{dviwindo}[true]{%
- \def\Hy@driver{hdviwind}%
- \kvsetkeys{Hyp}{colorlinks}%
- \ifpdf
\else
- \ifxetex
- \else
- \PassOptionsToPackage{dviwindo}{color}%
- \fi
+ \Hy@Error{%
+ Wrong driver option `vtexpdfmark,\MessageBreak
+ because VTeX is not running%
+ }\@ehc
\fi
}
-\define@key{Hyp}{dvipsone}[true]{%
- \def\Hy@driver{hdvipson}%
+\DeclareVoidOption{dviwindo}{%
+ \HyOpt@CheckDvi{dviwindo}{%
+ \def\Hy@driver{hdviwind}%
+ \kvsetkeys{Hyp}{colorlinks}%
+ \PassOptionsToPackage{dviwindo}{color}%
+ }%
+}
+\DeclareVoidOption{dvipsone}{%
+ \HyOpt@CheckDvi{dvipsone}{%
+ \def\Hy@driver{hdvipson}%
+ }%
}
-\define@key{Hyp}{textures}[true]{%
- \def\Hy@driver{htexture}%
+\DeclareVoidOption{textures}{%
+ \HyOpt@CheckDvi{textures}{%
+ \def\Hy@driver{htexture}%
+ }%
}
-\define@key{Hyp}{latex2html}[true]{%
- \Hy@AtBeginDocument{\@@latextohtmlX}%
+\DeclareVoidOption{latex2html}{%
+ \HyOpt@CheckDvi{latex2html}{%
+ \Hy@AtBeginDocument{\@@latextohtmlX}%
+ }%
}
% \end{macrocode}
% No more special treatment for ps2pdf. Let it sink or swim.
% \begin{macrocode}
-\define@key{Hyp}{ps2pdf}[true]{%
- \def\Hy@driver{hdvips}%
- \providecommand*\@pdfborder{0 0 1}%
+\DeclareVoidOption{ps2pdf}{%
+ \HyOpt@CheckDvi{ps2pdf}{%
+ \def\Hy@driver{hdvips}%
+ }%
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\let\HyOpt@DriverFallback\ltx@empty
+\define@key{Hyp}{driverfallback}{%
+ \ifHy@DviMode
+ \def\HyOpt@DriverFallback{#1}%
+ \Hy@Match\HyOpt@DriverFallback{%
+ ^(|dvipdfm|dvipdfmx|dvips|dvipsone|dviwindo|hypertex|ps2pdf|%
+ latex2html|tex4ht)$%
+ }{}{%
+ \let\HyOpt@DriverFallback\ltx@empty
+ }%
+ \fi
}
% \end{macrocode}
%
@@ -5422,7 +5525,7 @@
% \end{macrocode}
% More work is needed in case of options |vietnamese| and |vietnam|.
% \begin{macrocode}
-\define@key{Hyp}{vietnamese}[]{%
+\DeclareVoidOption{vietnamese}{%
\HyLang@addto\extrasvietnamese\HyLang@vietnamese
\Hy@AtEndOfPackage{%
\@ifundefined{T@PU}{}{%
@@ -5430,7 +5533,7 @@
}%
}%
}
-\define@key{Hyp}{vietnam}[]{%
+\DeclareVoidOption{vietnam}{%
\HyLang@addto\extrasvietnam\HyLang@vietnamese
\Hy@AtEndOfPackage{%
\@ifundefined{T@PU}{}{%
@@ -5442,7 +5545,7 @@
% Similar for option |arabic| that just loads the additions
% to PU encoding for Arabi.
% \begin{macrocode}
-\define@key{Hyp}{arabic}[]{%
+\DeclareVoidOption{arabic}{%
\Hy@AtEndOfPackage{%
\@ifundefined{T@PU}{}{%
\input{puarenc.def}%
@@ -5633,7 +5736,9 @@
% value.
% \begin{macrocode}
\let\@pdfpagetransition\relax
-\define@key{Hyp}{pdfpagetransition}{\def\@pdfpagetransition{#1}}
+\define@key{Hyp}{pdfpagetransition}{%
+ \def\@pdfpagetransition{#1}%
+}
% \end{macrocode}
% \end{macro}
% \begin{macro}{\@pdfpageduration}
@@ -5644,7 +5749,19 @@
% value.
% \begin{macrocode}
\let\@pdfpageduration\relax
-\define@key{Hyp}{pdfpageduration}{\def\@pdfpageduration{#1}}
+\define@key{Hyp}{pdfpageduration}{%
+ \def\@pdfpageduration{#1}%
+ \Hy@Match\@pdfpageduration{%
+ ^(|[0-9]+\.?[0-9]*|[0-9]*\.?[0-9]+)$%
+ }{}{%
+ \Hy@Warning{%
+ Invalid value `\@pdfpageduration'\MessageBreak
+ of `pdfpageduration'\MessageBreak
+ is replaced by an empty value%
+ }%
+ \let\@pdfpageduration\ltx@empty
+ }%
+}
% \end{macrocode}
% \end{macro}
%
@@ -5706,7 +5823,23 @@
\do{/O}{Outline}%
\do{/P}{Push}%
}
-\define@key{Hyp}{pdfborder}{\def\@pdfborder{#1}}
+\define@key{Hyp}{pdfborder}{%
+ \def\Hy@temp{#1}%
+ \Hy@Match\Hy@temp{%
+ ^(\HyPat@NonNegativeReal/ %
+ \HyPat@NonNegativeReal/ %
+ \HyPat@NonNegativeReal/%
+ ( ?[\HyPat@NonNegativeReal/( \HyPat@NonNegativeReal/)*])?)$%
+ }{%
+ \let\@pdfborder\Hy@temp
+ }{%
+ \Hy@Warning{%
+ Invalid value `\Hy@temp'\MessageBreak
+ for option `pdfborder'.\MessageBreak
+ Option setting is ignored%
+ }%
+ }%
+}
\define@key{Hyp}{pdfborderstyle}{\def\@pdfborderstyle{#1}}
\def\Hy@setpdfborder{%
\ifx\@pdfborder\@empty
@@ -6184,14 +6317,6 @@
% package options, but put them through the \emph{keyval} package.
% This section was written by David Carlisle.
%
-% Package kvoptions is used for processing options that are
-% given as key value pairs. The package provides
-% |\ProcessKeyvalOptions|, formerly known as
-% |\ProcessOptionsWithKV|.
-% \begin{macrocode}
-\RequirePackage{kvoptions}[2009/07/21]
-% \end{macrocode}
-%
% \begin{macrocode}
\SetupKeyvalOptions{family=Hyp}
\DeclareLocalOptions{%
@@ -6276,7 +6401,7 @@
\expandafter\endgroup
\ifx\y Y%
\else
- \PackageError{hyperref}{%
+ \Hy@Error{%
PDF/A: Named action `#1' is not permitted%
}\@ehc
{#2}%
@@ -6346,11 +6471,11 @@
\fi
\Hy@DisableOption{typexml}
\ifHy@implicit
- \typeout{Implicit mode ON; LaTeX internals redefined}%
+ \Hy@InfoNoLine{Implicit mode ON; LaTeX internals redefined}%
\else
- \typeout{Implicit mode OFF; no redefinition of LaTeX internals}%
+ \Hy@InfoNoLine{Implicit mode OFF; no redefinition of LaTeX internals}%
\def\MaybeStopEarly{%
- \typeout{Hyperref stopped early}%
+ \Hy@Message{Stopped early}%
\Hy@AtBeginDocument{%
\PDF@FinishDoc
\gdef\PDF@FinishDoc{}%
@@ -6453,7 +6578,9 @@
% If the driver is not given, find the right driver or
% use the default driver.
% \begin{macrocode}
+ \def\HyOpt@DriverType{}%
\ifx\Hy@driver\@empty
+ \def\HyOpt@DriverType{ (autodetected)}%
\providecommand*{\Hy@defaultdriver}{hypertex}%
\ifpdf
\def\Hy@driver{hpdftex}%
@@ -6464,7 +6591,7 @@
\ifvtexhtml
\def\Hy@driver{hvtexhtm}%
\def\MaybeStopEarly{%
- \typeout{Hyperref stopped early}%
+ \Hy@Message{Stopped early}%
\Hy@AtBeginDocument{%
\PDF@FinishDoc
\gdef\PDF@FinishDoc{}%
@@ -6478,7 +6605,23 @@
\ifvtexps
\def\Hy@driver{hvtex}%
\else
- \let\Hy@driver\Hy@defaultdriver
+ \ifx\HyOpt@DriverFallback\ltx@empty
+ \let\Hy@driver\Hy@defaultdriver
+ \def\HyOpt@DriverType{ (default)}%
+ \else
+ \begingroup
+ \toks@\expandafter{\HyOpt@DriverFallback}%
+ \edef\x{\endgroup
+ \noexpand\kvsetkeys{Hyp}{\the\toks@}%
+ }%
+ \x
+ \ifx\Hy@driver\ltx@empty
+ \let\Hy@driver\Hy@defaultdriver
+ \def\HyOpt@DriverType{ (default)}%
+ \else
+ \def\HyOpt@DriverType{ (fallback)}%
+ \fi
+ \fi
\fi
\fi
\fi
@@ -6491,13 +6634,29 @@
\PassOptionsToPackage{dviwindo}{color}%
\fi
\fi
- \typeout{* hyperref using default driver \Hy@driver\ltx@space*}%
- \else
- \typeout{* hyperref using driver \Hy@driver\ltx@space*}%
\fi
+ \Hy@Message{Driver\HyOpt@DriverType: \Hy@driver}%
\input{\Hy@driver.def}%
\let\@unprocessedoptions\relax
\Hy@RestoreCatcodes
+ \Hy@DisableOption{tex4ht}%
+ \Hy@DisableOption{pdftex}%
+ \Hy@DisableOption{nativepdf}%
+ \Hy@DisableOption{dvipdfm}%
+ \Hy@DisableOption{dvipdfmx}%
+ \Hy@DisableOption{dvipdfmx-outline-open}%
+ \Hy@DisableOption{pdfmark}%
+ \Hy@DisableOption{dvips}%
+ \Hy@DisableOption{hypertex}%
+ \Hy@DisableOption{vtex}%
+ \Hy@DisableOption{vtexpdfmark}%
+ \Hy@DisableOption{dviwindo}%
+ \Hy@DisableOption{dvipsone}%
+ \Hy@DisableOption{textures}%
+ \Hy@DisableOption{latex2html}%
+ \Hy@DisableOption{ps2pdf}%
+ \Hy@DisableOption{xetex}%
+ \Hy@DisableOption{pdfversion}%
}
% \end{macrocode}
% Support for open outlines is enabled for Xe\TeX\ >= 0.9995.
@@ -6519,26 +6678,6 @@
\Hy@DvipdfmxOutlineOpentrue
\fi
\fi
-\Hy@DisableOption{tex4ht}
-\Hy@DisableOption{pdftex}
-\Hy@DisableOption{nativepdf}
-\Hy@DisableOption{dvipdfm}
-\Hy@DisableOption{dvipdfmx}
-\Hy@DisableOption{dvipdfmx-outline-open}
-\Hy@DisableOption{pdfmark}
-\Hy@DisableOption{dvips}
-\Hy@DisableOption{hypertex}
-\Hy@DisableOption{vtex}
-\Hy@DisableOption{vtexpdfmark}
-\Hy@DisableOption{dviwindo}
-\Hy@DisableOption{dvipsone}
-\Hy@DisableOption{textures}
-\Hy@DisableOption{latex2html}
-\Hy@DisableOption{ps2pdf}
-\Hy@DisableOption{xetex}
-\Hy@AtEndOfPackage{%
- \Hy@DisableOption{pdfversion}%
-}
% \end{macrocode}
%
% \subsubsection{Bookmarks}
@@ -6953,7 +7092,7 @@
\newif\ifHy@href@ismap
\define@key{href}{ismap}[true]{%
\ltx@IfUndefined{Hy@href@ismap#1}{%
- \PackageError{hyperref}{%
+ \Hy@Error{%
Invalid value (#1) for key `ismap'.\MessageBreak
Permitted values are `true' or `false'.\MessageBreak
Ignoring `ismap'%
@@ -7203,7 +7342,7 @@
% \begin{macrocode}
\ifx\@pdftempa\@pdftempwordrun
\ifHy@pdfa
- \PackageError{hyperref}{%
+ \Hy@Error{%
PDF/A: Launch action is prohibited%
}\@ehc
\begingroup
@@ -7657,7 +7796,7 @@
\lowercase{\def\Hy@temp{#1}}%
\@ifundefined{Fld@export@\Hy@temp}{%
\@onelevel@sanitize\Hy@temp
- \PackageError{hyperref}{%
+ \Hy@Error{%
Unknown export format `\Hy@temp'.\MessageBreak
Known formats are `FDF', `HTML', `XFDF', and `PDF'%
}\@ehc
@@ -7822,7 +7961,7 @@
\else\ifFld@password
\else\ifFld@fileselect
\else 1\fi\fi\fi\relax
- \PackageError{hyperref}{%
+ \Hy@Error{%
Field option `comb' cannot used together with\MessageBreak
`multiline', `password', or `fileselect'%
}\@ehc
@@ -8051,7 +8190,7 @@
\lowercase{\def\Hy@temp{#1}}%
\@ifundefined{Form@method@\Hy@temp}{%
\@onelevel@sanitize\Hy@temp
- \PackageError{hyperref}{%
+ \Hy@Error{%
Unknown method `\Hy@temp'.\MessageBreak
Known values are `post' and `get'%
}\@ehc
@@ -8222,7 +8361,7 @@
\def\Hy@@temp#1#2{%
\ifHy@pdfa
\define@key{Field}{#2}{%
- \PackageError{hyperref}{%
+ \Hy@Error{%
PDF/A: Additional action `#2' is prohibited%
}\@ehc
}%
@@ -8271,7 +8410,7 @@
\else
\ifHy@pdfa
\define@key{Field}{onclick}{%
- \PackageError{hyperref}{%
+ \Hy@Error{%
PDF/A: Action `onclick' is prohibited%
}\@ehc
}%
@@ -13720,29 +13859,29 @@
\Hy@RestoreLastskip
}
\def\@Form[#1]{%
- \typeout{Sorry, TeXpider does not yet support FORMs}%
+ \Hy@Message{Sorry, TeXpider does not yet support FORMs}%
}
\def\@endForm{}
\def\@Gauge[#1]#2#3#4{% parameters, label, minimum, maximum
- \typeout{Sorry, TeXpider does not yet support FORM gauges}%
+ \Hy@Message{Sorry, TeXpider does not yet support FORM gauges}%
}
\def\@TextField[#1]#2{% parameters, label
- \typeout{Sorry, TeXpider does not yet support FORM text fields}%
+ \Hy@Message{Sorry, TeXpider does not yet support FORM text fields}%
}
\def\@CheckBox[#1]#2{% parameters, label
- \typeout{Sorry, TeXpider does not yet support FORM checkboxes}%
+ \Hy@Message{Sorry, TeXpider does not yet support FORM checkboxes}%
}
\def\@ChoiceMenu[#1]#2#3{% parameters, label, choices
- \typeout{Sorry, TeXpider does not yet support FORM choice menus}%
+ \Hy@Message{Sorry, TeXpider does not yet support FORM choice menus}%
}
\def\@PushButton[#1]#2{% parameters, label
- \typeout{Sorry, TeXpider does not yet support FORM pushbuttons}%
+ \Hy@Message{Sorry, TeXpider does not yet support FORM pushbuttons}%
}
\def\@Reset[#1]#2{%
- \typeout{Sorry, TeXpider does not yet support FORMs}%
+ \Hy@Message{Sorry, TeXpider does not yet support FORMs}%
}
\def\@Submit[#1]#2{%
- \typeout{Sorry, TeXpider does not yet support FORMs}%
+ \Hy@Message{Sorry, TeXpider does not yet support FORMs}%
}
%</vtexhtml>
% \end{macrocode}
@@ -15944,7 +16083,7 @@
\providecommand*{\XR@ext}{html}
\def\Hy@raisedlink{}
\@ifpackageloaded{tex4ht}{%
- \typeout{hyperref tex4ht: tex4ht already loaded}%
+ \Hy@InfoNoLine{tex4ht is already loaded}%
}{%
\RequirePackage[htex4ht]{tex4ht}%
}
@@ -16280,7 +16419,7 @@
}
\def\@endForm{}
\def\@Gauge[#1]#2#3#4{% parameters, label, minimum, maximum
- \typeout{Sorry, pdfmark drivers do not support FORM gauges}%
+ \Hy@Message{Sorry, pdfmark drivers do not support FORM gauges}%
}
\def\@TextField[#1]#2{% parameters, label
\def\Fld@name{#2}%
@@ -16407,7 +16546,7 @@
\DefaultOptionsofPushButton,#1%
}%
\ifHy@pdfa
- \PackageError{hyperref}{%
+ \Hy@Error{%
PDF/A: Push button with JavaScript is prohibited%
}\@ehc
\LayoutPushButtonField{%
@@ -16453,7 +16592,7 @@
}%
\leavevmode
\ifHy@pdfa
- \PackageError{hyperref}{%
+ \Hy@Error{%
PDF/A: Reset action is prohibited%
}\@ehc
\MakeButtonField{#2}%
@@ -16492,25 +16631,25 @@
% \subsection{HyperTeX}
% \begin{macrocode}
%<*hypertex>
-\def\@Form[#1]{\typeout{Sorry, HyperTeX does not support FORMs}}
+\def\@Form[#1]{\Hy@Message{Sorry, HyperTeX does not support FORMs}}
\def\@endForm{}
\def\@Gauge[#1]#2#3#4{% parameters, label, minimum, maximum
- \typeout{Sorry, HyperTeX does not support FORM gauges}%
+ \Hy@Message{Sorry, HyperTeX does not support FORM gauges}%
}
\def\@TextField[#1]#2{% parameters, label
- \typeout{Sorry, HyperTeX does not support FORM text fields}%
+ \Hy@Message{Sorry, HyperTeX does not support FORM text fields}%
}
\def\@CheckBox[#1]#2{% parameters, label
- \typeout{Sorry, HyperTeX does not support FORM checkboxes}%
+ \Hy@Message{Sorry, HyperTeX does not support FORM checkboxes}%
}
\def\@ChoiceMenu[#1]#2#3{% parameters, label, choices
- \typeout{Sorry, HyperTeX does not support FORM choice menus}%
+ \Hy@Message{Sorry, HyperTeX does not support FORM choice menus}%
}
\def\@PushButton[#1]#2{% parameters, label
- \typeout{Sorry, HyperTeX does not support FORM pushbuttons}%
+ \Hy@Message{Sorry, HyperTeX does not support FORM pushbuttons}%
}
-\def\@Reset[#1]#2{\typeout{Sorry, HyperTeX does not support FORMs}}
-\def\@Submit[#1]#2{\typeout{Sorry, HyperTeX does not support FORMs}}
+\def\@Reset[#1]#2{\Hy@Message{Sorry, HyperTeX does not support FORMs}}
+\def\@Submit[#1]#2{\Hy@Message{Sorry, HyperTeX does not support FORMs}}
%</hypertex>
% \end{macrocode}
% \subsection{TeX4ht}
@@ -16522,7 +16661,7 @@
}
\def\@endForm{\HCode{</form>}}
\def\@Gauge[#1]#2#3#4{% parameters, label, minimum, maximum
- \typeout{Sorry, TeX4ht does not support gauges}%
+ \Hy@Message{Sorry, TeX4ht does not support gauges}%
}
\def\@TextField[#1]#2{% parameters, label
\let\Hy@reserved@a\@empty
@@ -16663,7 +16802,7 @@
% \begin{macrocode}
%<*pdftex>
\def\@Gauge[#1]#2#3#4{% parameters, label, minimum, maximum
- \typeout{Sorry, pdftex does not support FORM gauges}%
+ \Hy@Message{Sorry, pdftex does not support FORM gauges}%
}
\def\MakeFieldObject#1#2{\sbox0{#1}%
\immediate\pdfxform0 %
@@ -16914,7 +17053,7 @@
}%
\PDFForm@Name
\ifHy@pdfa
- \PackageError{hyperref}{%
+ \Hy@Error{%
PDF/A: Push button with JavaScript is prohibited%
}\@ehc
\LayoutPushButtonField{%
@@ -16966,7 +17105,7 @@
}%
\leavevmode
\ifHy@pdfa
- \PackageError{hyperref}{%
+ \Hy@Error{%
PDF/A: Reset action is prohibited%
}\@ehc
\MakeButtonField{#2}%
@@ -17071,7 +17210,7 @@
% \begin{macro}{\@Gauge}
% \begin{macrocode}
\def\@Gauge[#1]#2#3#4{% parameters, label, minimum, maximum
- \typeout{Sorry, dvipdfm/XeTeX does not support FORM gauges}%
+ \Hy@Message{Sorry, dvipdfm/XeTeX does not support FORM gauges}%
}
% \end{macrocode}
% \end{macro}
@@ -17334,7 +17473,7 @@
}%
\PDFForm@Name
\ifHy@pdfa
- \PackageError{hyperref}{%
+ \Hy@Error{%
PDF/A: Push button with JavaScript is prohibited%
}\@ehc
\LayoutPushButtonField{%
@@ -17402,7 +17541,7 @@
}%
\leavevmode
\ifHy@pdfa
- \PackageError{hyperref}{%
+ \Hy@Error{%
PDF/A: Reset action is prohibited%
}\@ehc
\MakeButtonField{#2}%