summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/hyperref/hyperref-patches.dtx
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2022-02-23 03:01:16 +0000
committerNorbert Preining <norbert@preining.info>2022-02-23 03:01:16 +0000
commitd529109bf475e3f1e220ce0e980e104b1a7e3c6b (patch)
treeaf59aa7f9553f1cb355b3d98042ffa26a2e61184 /macros/latex/contrib/hyperref/hyperref-patches.dtx
parentfb013a78d9e3aef2ecf58702d4adcec8d9ab6b28 (diff)
CTAN sync 202202230301
Diffstat (limited to 'macros/latex/contrib/hyperref/hyperref-patches.dtx')
-rw-r--r--macros/latex/contrib/hyperref/hyperref-patches.dtx252
1 files changed, 252 insertions, 0 deletions
diff --git a/macros/latex/contrib/hyperref/hyperref-patches.dtx b/macros/latex/contrib/hyperref/hyperref-patches.dtx
new file mode 100644
index 0000000000..cf6dfbb393
--- /dev/null
+++ b/macros/latex/contrib/hyperref/hyperref-patches.dtx
@@ -0,0 +1,252 @@
+% \iffalse meta-comment
+% \iffalse
+%% File: hyperref-patches.dtx
+%% Copyright
+%% 1995-2001 Sebastian Rahtz, with portions written by David Carlisle and Heiko Oberdiek,
+%% 2001-2015 Heiko Oberdiek.
+%% 2016-2019 Oberdiek Package Support Group
+%% 2019-2021 LaTeX Project
+%% https://github.com/latex3/hyperref/issues
+%%
+%% This file is part of the `Hyperref Bundle'.
+%% -------------------------------------------
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%%
+%% The Current Maintainer of this work is the LaTeX Project.
+%%
+%% The list of all files belonging to the `Hyperref Bundle' is
+%% given in the file `manifest.txt'.
+%
+%<*driver>
+\RequirePackage{pdfmanagement-testphase}
+\DeclareDocumentMetadata{pdfstandard=A-2b}
+\makeatletter
+\declare@file@substitution{doc.sty}{doc-v3beta.sty}
+\makeatother
+\documentclass[full]{l3doc}
+\usepackage{array,booktabs,hyperxmp}
+\hypersetup{pdfauthor=The LaTeX Project,pdftitle=hyperref patches}
+\usepackage{caption}
+\begin{document}
+ \DocInput{\jobname.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \title{^^A
+% Old hyperref patches
+% }
+%
+% \author{^^A
+% The \LaTeX{} Project\thanks
+% {^^A
+% E-mail:
+% \href{mailto:latex-team@latex-project.org}
+% {latex-team@latex-project.org}^^A
+% }^^A
+% }
+%
+% \date{Version 0.9, released 2021-06-29}
+%
+% \maketitle
+% \begin{documentation}
+%
+% \section{\pkg{hyperref-patches} documentation}
+%
+% \pkg{hyperref} has included over the years a rather large number of
+% patches and correction for external packages to make them compatible with
+% hyperlinks.
+%
+% Some of these patches are now (mostly) unnecessary, either because the external
+% package is no longer used or because the package was fixed or extended to
+% supports hyperlinks.
+%
+% This small package contains patches where it is not sure if they can be removed
+% completely so that if needed that can be added manually, either by loading
+% this package or by copying the code.
+%
+% By default all patches are loaded, a patch can be disabled with a package option.
+% Currently the following options are available:
+% \texttt{nofoiltex}, \texttt{nolisting}, \texttt{nolistings}, \texttt{norevtex}.
+%
+% \end{documentation}
+
+% \begin{implementation}
+%
+% \section{\pkg{hyperref-patches} documentation}
+%
+% \begin{macrocode}
+%<*package>
+\ProvidesPackage{hyperref-patches}[2021-06-29 v0.9 old hyperref patches]
+% \end{macrocode}
+% \section{Package options to disable patches}
+%
+% \begin{macrocode}
+\newif\ifHy@patches@foiltex
+\Hy@patches@foiltextrue
+\DeclareOption{nofoiltex}{\Hy@patches@foiltexfalse}
+\newif\ifHy@patches@listing
+\Hy@patches@listingtrue
+\DeclareOption{nolisting}{\Hy@patches@listingfalse}
+\newif\ifHy@patches@listings
+\Hy@patches@listingstrue
+\DeclareOption{nolistings}{\Hy@patches@listingsfalse}
+\newif\ifHy@patches@revtex
+\Hy@patches@revtextrue
+\DeclareOption{norevtex}{\Hy@patches@revtexfalse}
+\ProcessOptions
+% \end{macrocode}
+% \section{Compatibility with foiltex}
+% --Moved 2021-06-30--
+%
+% foils.cls redefine figure, table and caption as it doesn't want them to float
+% and also thinks that list of figures and tables are unnecessary. This
+% means that \cs{ext@table} and \cs{ext@figure} are missing too which
+% are needed by the definitions of hyperref.
+%
+% foiltex is not part of the standard tex systems and hasn't been update the last
+% time in 2008. So the patch is removed from hyperref.
+%
+% --End of move comment--
+%
+% \begin{macrocode}
+\ifHy@patches@foiltex
+\@ifclassloaded{foils}{%
+ \providecommand*\ext@table{lot}%
+ \providecommand*\ext@figure{lof}%
+}{}
+\fi
+% \end{macrocode}
+% \section{listing}
+% --Moved 2021-06-30--
+%
+% This provide two commands for the listing package which is from 1999.
+% Probably unneeded anyway, as this are the defaults, at best they prevent some warnings.
+%
+% --End of move comment--
+% \begin{macrocode}
+\ifHy@patches@listing
+\@ifpackageloaded{listing}{%
+ \providecommand*\theHlisting{\thelisting}%
+ \providecommand*\toclevel@listing{0}%
+}{}
+\fi
+% \end{macrocode}
+% \section{listings}
+% --Moved 2021-06-30--
+%
+% This provide two commands for the listing package which is from 1999.
+% Probably unneeded anyway, as this are the defaults, at best they prevent some warnings.
+%
+% --End of move comment--
+% \begin{macrocode}
+\ifHy@patches@listings
+\@ifpackageloaded{listings}{%
+ \providecommand*\theHlstlisting{\thelstlisting}%
+ \providecommand*\toclevel@lstlisting{0}%
+}{}
+\fi
+% \end{macrocode}
+%
+% \section{revtex}
+%
+% --Moved 2021-09-02--
+% revtex.cls is obsolete and it is no installed in texlive and miktex so the patch for it
+% has been removed from hyperref.
+% --End of move comment--
+%
+% Revtex (bless its little heart) takes over |\bibcite| and looks
+% at the result to measure something. Make this a hypertext link
+% and it goes ape. Therefore, make an anodyne result first, call
+% its business, then go back to the real thing.
+% \begin{macrocode}
+\ifHy@patches@revtex
+\@ifclassloaded{revtex}{%
+ \Hy@Info{*** compatibility with revtex **** }%
+ \def\revtex@checking#1#2{%
+ \expandafter\let\expandafter\T@temp\csname b@#1\endcsname
+ \expandafter\def\csname b@#1\endcsname{#2}%
+ \@SetMaxRnhefLabel{#1}%
+ \expandafter\let\csname b@#1\endcsname\T@temp
+ }%
+% \end{macrocode}
+% Tanmoy provided this replacement for CITEX. Lord knows what it does.
+% For chapterbib added: \@extra@b@citeb
+% \begin{macrocode}
+ \@ifundefined{@CITE}{\def\@CITE{\@cite}}{}%
+ \providecommand*{\@extra@b@citeb}{}%
+ \def\@CITEX[#1]#2{%
+ \let\@citea\@empty
+ \leavevmode
+ \unskip
+ $^{%
+ \scriptstyle
+ \@CITE{%
+ \@for\@citeb:=#2\do{%
+ \@citea
+ \def\@citea{,\penalty\@m\ }%
+ \edef\@citeb{\expandafter\@firstofone\@citeb}%
+ \if@filesw
+ \immediate\write\@auxout{\string\citation{\@citeb}}%
+ \fi
+ \@ifundefined{b@\@citeb\extra@b@citeb}{%
+ \mbox{\reset@font\bfseries ?}%
+ \G@refundefinedtrue
+ \@latex@warning{%
+ Citation `\@citeb' on page \thepage \space undefined%
+ }%
+ }{%
+ {\csname b@\@citeb\@extra@b@citeb\endcsname}%
+ }%
+ }%
+ }{#1}%
+ }$%
+ }%
+% \end{macrocode}
+% No, life is too short. I am not going to understand the
+% Revtex |\@collapse| macro, I shall
+% just restore the original behaviour of |\@citex|;
+% sigh. This is SO vile.
+% \begin{macrocode}
+ \def\@citex[#1]#2{%
+ \let\@citea\@empty
+ \@cite{%
+ \@for\@citeb:=#2\do{%
+ \@citea
+ \def\@citea{,\penalty\@m\ }%
+ \edef\@citeb{\expandafter\@firstofone\@citeb}%
+ \if@filesw
+ \immediate\write\@auxout{\string\citation{\@citeb}}%
+ \fi
+ \@ifundefined{b@\@citeb\@extra@b@citeb}{%
+ \mbox{\reset@font\bfseries ?}%
+ \G@refundefinedtrue
+ \@latex@warning{%
+ Citation `\@citeb' on page \thepage \space undefined%
+ }%
+ }{%
+ \hbox{\csname b@\@citeb\@extra@b@citeb\endcsname}%
+ }%
+ }%
+ }{#1}%
+ }%
+}{}
+\fi
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</package>
+% \end{macrocode}
+%
+% \end{implementation}
+%
+% \PrintIndex