%% %% This is file `axessibility.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% axessibility.dtx %% %% This is a generated file. %% %% Copyright (C) 2018, 2019, 2020 by %% Anna Capietto, Sandro Coriasco, Boris Doubrov, Alexander Koslovski, %% Tiziana Armano, Nadir Murru, Dragan Ahmetovic, Cristian Bernareggi %% %% Based on accsupp and tagpdf %% %% This work consists of the main source files axessibility.dtx and axessibility.lua, %% and the derived files %% axessibility.ins, axessibility.sty, axessibility.pdf, README, %% axessibilityExampleSingleLineT.tex, axessibilityExampleSingleLineA.tex, %% . axessibilityExampleAlignT.tex, axessibilityExampleAlignA.tex %% %% 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 %% Sandro Coriasco %% \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{axessibility} %% 'tagpdf' or 'accsupp' option \newif\iftagpdfopt \DeclareOption{accsupp}{ \tagpdfoptfalse } \DeclareOption{tagpdf}{ \tagpdfopttrue } \ExecuteOptions{tagpdf} \ProcessOptions\relax \RequirePackage{amsmath} \RequirePackage{amssymb} \RequirePackage{xstring} %%% %%% \makeatletter \long\def\@macronestedifalign{ \ifingather@ \restorealignstate@ \egroup \nonumber \ifnum0=`{\fi\iffalse}\fi \else $$% \fi } \long\def\@macronestedifmultline{ \iftagsleft@ \@xp\lendmultline@ \else \@xp\rendmultline@ \fi } \makeatother \iftagpdfopt %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % tagpdf option code (default) % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \RequirePackage{tagpdf} \tagpdfsetup{tabsorder=structure,uncompress,activate-all,interwordspace=true} \tagpdfifpdftexT { %set language / can also be done with hyperref \pdfcatalog{/Lang (en-US)} \usepackage[T1]{fontenc} \input glyphtounicode \pdfgentounicode=1 } \tagpdfifluatexT { %set language / can also be done with hyperref \pdfextension catalog{/Lang (en-US)} \RequirePackage{fontspec} \RequirePackage{luacode} \newfontface\zerowidthfont{freeserif} \directlua{ require("axessibility.lua") } } \makeatletter \newtoks\@mltext \newtoks\@mltexttmp \newcommand{\doreplacement}[1]{ \tagpdfifluatexT \directlua { replace_dls_and_double_dls(#1) } } \let\begin@document=\document \let\end@document=\enddocument \renewcommand{\document}{\begin@document\tagstructbegin{tag=Document}} \renewcommand{\enddocument}{\tagstructend\end@document} \makeatother \makeatletter \newenvironment{temp@env}{% \relax\ifmmode\@badmath\else$\fi% \collect@body\wrap}{% \relax\ifmmode\ifinner$\else\@badmath\fi\else \@badmath\fi} \protected\def\(#1\){\begin{temp@env}#1\end{temp@env}} \makeatother \newcommand{\auxiliaryspace}{ } \makeatletter \long\def\wrap#1{ \tagstructbegin{tag=P,alttext-o=\detokenize\expandafter{#1}, actualtext-o=\detokenize\expandafter{#1}} \tagmcbegin{tag=P,alttext-o=\detokenize\expandafter{#1}, actualtext-o=\detokenize\expandafter{#1}} #1 \tagmcend \tagstructend } \makeatother \makeatletter \renewenvironment{equation}{% \incr@eqnum \mathdisplay@push \st@rredfalse \global\@eqnswtrue \mathdisplay{equation}% \collect@body\wrap\auxiliaryspace}{% \endmathdisplay{equation}% \mathdisplay@pop \ignorespacesafterend } \makeatother \makeatletter \renewenvironment{equation*}{% \mathdisplay@push \st@rredtrue \global\@eqnswfalse \mathdisplay{equation*}% \collect@body\wrap\auxiliaryspace}{% \endmathdisplay{equation*}% \mathdisplay@pop \ignorespacesafterend } \makeatother \makeatletter \protected\def\[#1\]{\begin{equation*}#1\end{equation*}} \makeatother \makeatletter \long\def\wrapml#1{ \def\@mltext{\detokenize\expandafter{#1}} \def\@mltexttmp{} \StrBehind[6]{\@mltext}{ }[\@mltexttmp] \StrGobbleRight{\@mltexttmp}{1}[\@mltext] \tagstructbegin{tag=P,alttext-o=\detokenize\expandafter{\@mltext}, actualtext-o=\detokenize\expandafter{\@mltext}} \tagmcbegin{tag=P,alttext-o=\detokenize\expandafter{\@mltext}, actualtext-o=\detokenize\expandafter{\@mltext}} #1 } \long\def\wrapmlstar#1{ \def\@mltext{\detokenize\expandafter{#1}} \def\@mltexttmp{} \StrBehind[5]{\@mltext}{ }[\@mltexttmp] \StrGobbleRight{\@mltexttmp}{1}[\@mltext] \tagstructbegin{tag=P,alttext-o=\detokenize\expandafter{\@mltext}, actualtext-o=\detokenize\expandafter{\@mltext}} \tagmcbegin{tag=P,alttext-o=\detokenize\expandafter{\@mltext}, actualtext-o=\detokenize\expandafter{\@mltext}} #1 } \long\def\wrapmlalt#1{ \def\@mltext{\detokenize\expandafter{#1}} \def\@mltexttmp{} \StrBehind[5]{\@mltext}{ }[\@mltexttmp] \StrGobbleRight{\@mltexttmp}{1}[\@mltext] \tagstructbegin{tag=P,alttext-o=\detokenize\expandafter{\@mltext}, actualtext-o=\detokenize\expandafter{\@mltext}} \tagmcbegin{tag=P,alttext-o=\detokenize\expandafter{\@mltext}, actualtext-o=\detokenize\expandafter{\@mltext}} #1 } \makeatother \makeatletter \renewenvironment{align}{% \collect@body\wrapml\auxiliaryspace \start@align\@ne\st@rredfalse\m@ne }{% \math@cr \black@\totwidth@ \egroup \@macronestedifalign \ignorespacesafterend \tagmcend \tagstructend } \renewenvironment{align*}{% \collect@body\wrapmlstar\auxiliaryspace \start@align\@ne\st@rredtrue\m@ne }{% \endalign } \renewenvironment{alignat}{% \collect@body\wrapml\auxiliaryspace\auxiliaryspace \start@align\z@\st@rredfalse }{% \endalign } \renewenvironment{alignat*}{% \collect@body\wrapmlstar\auxiliaryspace \start@align\z@\st@rredtrue }{% \endalign } \renewenvironment{xalignat}{% \collect@body\wrapmlalt\auxiliaryspace \start@align\@ne\st@rredfalse }{% \endalign } \renewenvironment{xalignat*}{% \collect@body\wrapmlstar\auxiliaryspace \start@align\@ne\st@rredtrue }{% \endalign } \renewenvironment{xxalignat}{% \collect@body\wrapmlalt\auxiliaryspace \start@align\tw@\st@rredtrue }{% \endalign } \renewenvironment{flalign}{% \collect@body\wrapml\auxiliaryspace \start@align\tw@\st@rredfalse\m@ne }{% \endalign } \renewenvironment{flalign*}{% \collect@body\wrapmlstar\auxiliaryspace \start@align\tw@\st@rredtrue\m@ne }{% \endalign } \renewenvironment{gather}{% \collect@body\wrapmlalt\auxiliaryspace\auxiliaryspace \start@gather\st@rredfalse }{% \math@cr \black@\totwidth@ \egroup $$\ignorespacesafterend \tagmcend \tagstructend } \renewenvironment{gather*}{% \collect@body\wrapmlstar\auxiliaryspace\auxiliaryspace \start@gather\st@rredtrue }{% \endgather } \renewenvironment{multline}{% \collect@body\wrapmlalt\auxiliaryspace\auxiliaryspace \start@multline\st@rredfalse }{% \@macronestedifmultline \ignorespacesafterend \tagmcend \tagstructend } \renewenvironment{multline*}{ \collect@body\wrapmlstar\auxiliaryspace\auxiliaryspace \start@multline\st@rredtrue }{ \endmultline } \makeatother %%%% %%%% \else %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % accsupp option code % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \RequirePackage{accsupp} \pdfcompresslevel=0 \pdfoptionpdfminorversion=6 \input{glyphtounicode} \pdfgentounicode=1 \makeatletter \newtoks\@mltext \newtoks\@mltexttmp \makeatother \makeatletter \renewcommand*{\BeginAccSupp}[1]{% \begingroup \setkeys{ACCSUPP}{#1}% \edef\ACCSUPP@span{% /S/Span<<% \ifx\ACCSUPP@Lang\relax \else /Lang\ACCSUPP@Lang \fi \ifx\ACCSUPP@Alt\relax \else /Alt\ACCSUPP@Alt \fi \ifx\ACCSUPP@ActualText\relax \else /ActualText\ACCSUPP@ActualText \fi \ifx\ACCSUPP@E\relax \else /E\ACCSUPP@E \fi >>% }% \ACCSUPP@bdc \ACCSUPP@space \endgroup } \makeatother \newcommand{\auxiliaryspace}{ } \makeatletter \long\def\wrap#1{ \BeginAccSupp{method=escape,ActualText=\detokenize\expandafter{#1}} #1 \EndAccSupp{}% } \makeatother \makeatletter \long\def\wrapml#1{ \def\@mltext{\detokenize\expandafter{#1}} \def\@mltexttmp{} \StrBehind[5]{\@mltext}{ }[\@mltexttmp] \StrGobbleRight{\@mltexttmp}{1}[\@mltext] \BeginAccSupp{method=escape,ActualText=\auxiliaryspace\@mltext} #1 \EndAccSupp{}% } \makeatother \makeatletter \renewenvironment{equation}{% \incr@eqnum \mathdisplay@push \st@rredfalse \global\@eqnswtrue \mathdisplay{equation}% \collect@body\wrap\auxiliaryspace}{% \endmathdisplay{equation}% \mathdisplay@pop \ignorespacesafterend } \makeatother \makeatletter \renewenvironment{equation*}{% \mathdisplay@push \st@rredtrue \global\@eqnswfalse \mathdisplay{equation*}% \collect@body\wrap\auxiliaryspace}{% \endmathdisplay{equation*}% \mathdisplay@pop \ignorespacesafterend } \makeatother \makeatletter \protected\def\[#1\]{\begin{equation*}#1\end{equation*}} \makeatother \makeatletter \newenvironment{tempenv}{% \relax\ifmmode\@badmath\else$\fi% \collect@body\wrap}{% \relax\ifmmode\ifinner$\else\@badmath\fi\else \@badmath\fi} \protected\def\(#1\){\begin{tempenv}#1\end{tempenv}} \makeatother \makeatletter \renewenvironment{align}{% \collect@body\wrapml\auxiliaryspace \start@align\@ne\st@rredfalse\m@ne }{% \math@cr \black@\totwidth@ \egroup \@macronestedifalign \ignorespacesafterend } \renewenvironment{align*}{% \collect@body\wrapml\auxiliaryspace \start@align\@ne\st@rredtrue\m@ne }{% \endalign } \renewenvironment{alignat}{% \collect@body\wrapml\auxiliaryspace \start@align\z@\st@rredfalse }{% \endalign } \renewenvironment{alignat*}{% \collect@body\wrapml\auxiliaryspace \start@align\z@\st@rredtrue }{% \endalign } \renewenvironment{xalignat}{% \collect@body\wrapml\auxiliaryspace \start@align\@ne\st@rredfalse }{% \endalign } \renewenvironment{xalignat*}{% \collect@body\wrapml\auxiliaryspace \start@align\@ne\st@rredtrue }{% \endalign } \renewenvironment{xxalignat}{% \collect@body\wrapml\auxiliaryspace \start@align\tw@\st@rredtrue }{% \endalign } \renewenvironment{flalign}{% \collect@body\wrapml\auxiliaryspace \start@align\tw@\st@rredfalse\m@ne }{% \endalign } \renewenvironment{flalign*}{% \collect@body\wrapml\auxiliaryspace \start@align\tw@\st@rredtrue\m@ne }{% \endalign } \renewenvironment{gather}{% \collect@body\wrapml\auxiliaryspace\auxiliaryspace \start@gather\st@rredfalse }{% \math@cr \black@\totwidth@ \egroup $$\ignorespacesafterend } \renewenvironment{gather*}{% \collect@body\wrapml\auxiliaryspace\auxiliaryspace \start@gather\st@rredtrue }{% \endgather } \renewenvironment{multline}{% \collect@body\wrapml\auxiliaryspace\auxiliaryspace \start@multline\st@rredfalse }{% %\iftagsleft@ \@xp\lendmultline@ \else \@xp\rendmultline@ \fi \@macronestedifmultline \ignorespacesafterend } \renewenvironment{multline*}{ \collect@body\wrapml\auxiliaryspace\auxiliaryspace \start@multline\st@rredtrue }{ \endmultline } %%} %% \makeatother %%%% %%%% \fi \endinput %% %% End of file `axessibility.sty'.