% \iffalse meta-comment % %% File: latex-lab-firstaid.dtx (C) Copyright 2023 LaTeX Project % % 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 % % % The development version of the bundle can be found below % % https://github.com/latex3/latex2e/required/latex-lab % % for those people who are interested or want to report an issue. % \def\ltlabfirstaiddate{2023-07-20} \def\ltlabfirstaidversion{0.85a} %<*driver> \documentclass{l3doc} \EnableCrossrefs \CodelineIndex \begin{document} \DocInput{latex-lab-firstaid.dtx} \end{document} % % % \fi % % \title{The \textsf{latex-lab-firstaid} package\\ % Temporary patches to external packages needed for the tagging project} % \author{\LaTeX{} Project\thanks{Initial implementation done by Ulrike Fischer}} % \date{v\ltlabfirstaidversion\ \ltlabfirstaiddate} % % \maketitle % % \newcommand{\xt}[1]{\textsl{\textsf{#1}}} % \newcommand{\TODO}[1]{\textbf{[TODO:} #1\textbf{]}} % \newcommand{\docclass}{document class \marginpar{\raggedright document class % customizations}} % % \providecommand\hook[1]{\texttt{#1}} % % \begin{abstract} % \end{abstract} % % \section{Introduction} % % The followings contains small temporary changes to external packages to avoid % errors with the new tagging code. % % Similar to the main firstaid package the goal is to remove the % patches once the packages have been updated. % \section{Implementation} % \begin{macrocode} %<*package> %<@@=tag> % \end{macrocode} % \begin{macrocode} \ProvidesPackage {latex-lab-testphase-firstaid} [% \ltlabfirstaiddate\space v\ltlabfirstaiddate\space Temporary patches to external packages needed for the tagging project] % \end{macrocode} % \subsection{blindtext} % The blindtext package generates lists with nested \cs{loop} command. % The inner loop introduces a group around the list which error when lists are tagged % as \cs{@doendpe} is lost. % \begin{macrocode} \AddToHook{file/blindtext.sty/after}[latex-lab-firstaid]{% \FirstAidNeededT{blindtext}{sty}{\blindfiledate\space\blindfileversion\space% blindtext-Package}% {% \renewcommand{\blind@items}{% \setcounter{blind@listcount}{1}% \loop \ifblind@optional \ifblind@long \item[\blindtext@countitem] \blindtext@text \else \item[\blindtext@count] \blindtext@item \fi \else % \blind@optionalfalse \ifblind@long \item \blindtext@text \else \item \blindtext@countitem \fi \fi % \ifblind@optional {% \loop \ifnum\value{blindlistlevel}>\value{blindlist@level}% \stepcounter{blind@levelcount}% \blind@list[\value{blindlist}]\relax \addtocounter{blind@levelcount}{-1}% \setcounter{blind@listcount}{1}% \repeat \expandafter}\if@endpe\@doendpe\fi % <----------changed \ifnum\value{blind@listcount}<\value{blindlist}% \stepcounter{blind@listcount}% \repeat } }% } % \end{macrocode} % \subsection{cleveref} % The cleveref package redefines \cs{@makefntext} and this means that the patches in % the new footnote code fails. We use a hook instead % \begin{macrocode} \AddToHook{package/cleveref/after} { \let\@makefntext\cref@old@makefntext \AddToHook{cmd/@makefntext/before}{% \cref@constructprefix{footnote}{\cref@result}% \protected@edef\cref@currentlabel{% [footnote][\arabic{footnote}][\cref@result]% \p@footnote\@thefnmark}} % \end{macrocode} % The second problem is that it redefines \cs{refstepcounter} to use an argument. % In itself this isn't a problem but as the new definition doesn't grab the arguments % directly it fails over the generic hook inserted at the end of the definition % \begin{macrocode} \RenewDocumentCommand\refstepcounter{om}{% \IfNoValueTF{#1}% {\refstepcounter@noarg{#2}}% {\refstepcounter@optarg[#1]{#2}}% }% } % \end{macrocode} % \begin{macrocode} % % \end{macrocode} % \begin{macrocode} %<*latex-lab> \ProvidesFile{firstaid-latex-lab-testphase.ltx} [\ltlabfirstaiddate\space v\ltlabfirstaidversion\space latex-lab wrapper firstaid] \RequirePackage{latex-lab-testphase-firstaid} % % \end{macrocode}