Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* move output patches from pdfresource, number new-or files * adapt wrapper styles to new-or numbering * update documentation for DocumentMetadata * update pdfmanagement support files * update tests (output patches new-or-1 no longer loaded by default) * update test: file name change new-or-2 and shipout/lastpage use (xmp) * update versions, file dates and add changes entry * correct typos and file names from review Co-authored-by: Ulrike Fischer <fischer@troubleshooting-tex.de>
- Loading branch information
Showing
46 changed files
with
1,481 additions
and
689 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,159 @@ | ||
% \iffalse meta-comment | ||
% | ||
%% File: latex-lab-new-or-1.dtx (C) Copyright 2020-2022 Frank Mittelbach | ||
% | ||
% It may be distributed and/or modified under the conditions of the | ||
% LaTeX Project Public License (LPPL), either version 1.3c of this | ||
% license or (at your option) any later version. The latest version | ||
% of this license is in the file | ||
% | ||
% https://www.latex-project.org/lppl.txt | ||
% | ||
%<*driver> | ||
\documentclass{l3doc} | ||
|
||
\EnableCrossrefs | ||
\CodelineIndex | ||
\begin{document} | ||
\DocInput{latex-lab-new-or-1.dtx} | ||
\end{document} | ||
%</driver> | ||
% | ||
% \fi | ||
% | ||
% \providecommand\hook[1]{\texttt{#1}} | ||
% | ||
% | ||
% | ||
% \title{Temporary output patches for tagging and better link support} | ||
% \author{Frank Mittelbach \and Ulrike Fischer} | ||
% | ||
% \maketitle | ||
% | ||
% \section{Introduction} | ||
% | ||
% This file contains a few patches of internal \LaTeX{} commands | ||
% to support paragraph tagging across | ||
% page boundaries (in \pdfTeX) and improve the behaviour of links across page breaks. | ||
% | ||
% Until this get properly integrated with the kernel code this has | ||
% to be taken as a prototype and code, interfaces as well as | ||
% behavior may change without notice and certainly without any | ||
% backwards compatibility! | ||
% | ||
% | ||
% \StopEventually{\setlength\IndexMin{200pt} \PrintIndex } | ||
% | ||
% | ||
% \section{The Implementation} | ||
% \begin{macrocode} | ||
%<*code> | ||
% \end{macrocode} | ||
% | ||
% \begin{macrocode} | ||
\ProvidesPackage{latex-lab-testphase-new-or-1} | ||
[2022-11-94 v0.1a Temporary output patches for tagging and better link support] | ||
\RequirePackage{etoolbox} | ||
% \end{macrocode} | ||
% | ||
% | ||
% \subsection{Patching the OR} | ||
% This adds hooks around header and footer, in \cs{@makecol} and in multicol. | ||
% At first initialize some of the hooks. We use providecommand to avoid problems if | ||
% the kernel changes here and provides them directly. | ||
% \begin{macrocode} | ||
\providecommand\@kernel@before@head{} | ||
\providecommand\@kernel@before@foot{} | ||
\providecommand\@kernel@after@head{} | ||
\providecommand\@kernel@after@foot{} | ||
\providecommand\@mult@ptagging@hook{}% multicol | ||
% \end{macrocode} | ||
% | ||
% \begin{macrocode} | ||
|
||
\patchcmd\@outputpage | ||
{\vfil\color@hbox\normalcolor\hb@xt@\textwidth{\@thehead}\color@endbox} | ||
{\vfil\@kernel@before@head\color@hbox\normalcolor\hb@xt@\textwidth{\@thehead}\color@endbox\@kernel@after@head} | ||
{\typeout{Patching header in \string\@outputpage}}{\PATCHerror } | ||
|
||
|
||
\patchcmd\@outputpage | ||
{\color@hbox\normalcolor\hb@xt@\textwidth{\@thefoot}\color@endbox} | ||
{\@kernel@before@foot\color@hbox\normalcolor\hb@xt@\textwidth{\@thefoot}\color@endbox\@kernel@after@foot} | ||
{\typeout{Patching footer in \string\@outputpage}}{\PATCHerror } | ||
% \end{macrocode} | ||
% | ||
% \begin{macro}{\@makecol} | ||
% We have to patch \cs{@makecol} in two places: | ||
% \begin{itemize} | ||
% \item | ||
% update 255 up front to add missing tmb/tme if necessary | ||
% \item | ||
% update the \cs{footins} stream if that one got split | ||
% \end{itemize} | ||
% | ||
% We patch \cs{@makecol}, if new-or-2 is loaded too it will overwrite that again. | ||
% \begin{macrocode} | ||
\providecommand\@kernel@before@footins{} | ||
\providecommand\@kernel@before@cclv{} | ||
|
||
\patchcmd\@makecol | ||
{\vskip\skip\footins} | ||
{\vskip\skip\footins\@kernel@before@footins} | ||
{\typeout{Patching \string\@makecol\space for tagging}}{\PATCHerror } | ||
|
||
%for some reason patching with etoolbox only works in this order ... | ||
|
||
\pretocmd\@makecol{\@kernel@before@cclv} | ||
{\typeout{Patching \string\@makecol\space for tagging}}{\PATCHerror } | ||
% \end{macrocode} | ||
% \end{macro} | ||
% | ||
% \subsection{\pkg{multicol} adjustments} | ||
% | ||
% The patches for pkg{multicol} are fairly minimal: | ||
% \begin{itemize} | ||
% \item At the start of the environment anything already on the | ||
% page is picked up and stored in \cs{partial@page}, we may need to add | ||
% a TMB to that (it should have a proper TME). This has to happen | ||
% in the \enquote{main} stream context. | ||
% \item | ||
% \item | ||
% \end{itemize} | ||
% | ||
% \begin{macrocode} | ||
\AddToHook{package/multicol/after} | ||
{% multicol needs later loading | ||
% \end{macrocode} | ||
% | ||
% \begin{macrocode} | ||
\patchcmd\page@sofar | ||
{\setbox\z@\hbox{p}\global\dimen\tw@\dp\z@}% | ||
{% | ||
\setbox\z@\hbox{p}\global\dimen\tw@\dp\z@ | ||
\@mult@ptagging@hook | ||
}% | ||
{\typeout{Patching \string\page@sofar\space for tagging}}{\PATCHerror}% | ||
} | ||
% \end{macrocode} | ||
% | ||
% \subsection{Interrupt hooks} | ||
% This requires the l3pdfannot module! | ||
% We add the code here and not in hyperref, as it should also work with links | ||
% created directly with the l3pdfannot commands. The file is only | ||
% loaded by the pdfmanagement, so no need to test if the commands exist. | ||
% \begin{macrocode} | ||
\ExplSyntaxOn | ||
\def\@kernel@before@head{\pdfannot_link_off:} | ||
\def\@kernel@before@foot{\pdfannot_link_off:} | ||
\def\@kernel@after@head {\pdfannot_link_on:} | ||
\def\@kernel@after@foot {\pdfannot_link_on:} | ||
\ExplSyntaxOff | ||
% \end{macrocode} | ||
% | ||
% \begin{macrocode} | ||
%</code> | ||
% \end{macrocode} | ||
% | ||
% \Finale | ||
% |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.