From ca06c2adc9964661159bbb5544ebdd1a8d620ac7 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Wed, 15 Jan 2020 21:51:17 +0000 Subject: axessibility (15jan20) git-svn-id: svn://tug.org/texlive/trunk@53416 c570f23f-e606-0410-a88d-b1316a301751 --- .../tex/latex/axessibility/axessibility.sty | 564 +++++++++++++++++++++ 1 file changed, 564 insertions(+) create mode 100644 Master/texmf-dist/tex/latex/axessibility/axessibility.sty (limited to 'Master/texmf-dist/tex/latex/axessibility') diff --git a/Master/texmf-dist/tex/latex/axessibility/axessibility.sty b/Master/texmf-dist/tex/latex/axessibility/axessibility.sty new file mode 100644 index 00000000000..f90f8f53a70 --- /dev/null +++ b/Master/texmf-dist/tex/latex/axessibility/axessibility.sty @@ -0,0 +1,564 @@ +%% +%% 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'. -- cgit v1.2.3