diff options
author | Karl Berry <karl@freefriends.org> | 2024-06-13 20:16:23 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2024-06-13 20:16:23 +0000 |
commit | 5012f9d54f190e7605b49e1f626abc8c54fd19b0 (patch) | |
tree | 2e985de70892225d7b5d955f15533bd9b664296b /Master/texmf-dist/tex/latex | |
parent | 95e8a1f4641bd5dbb0a14bf499ddb18ef5efa6f8 (diff) |
spelatex (13jun24)
git-svn-id: svn://tug.org/texlive/trunk@71514 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex')
-rw-r--r-- | Master/texmf-dist/tex/latex/spelatex/spelatex.sty | 379 |
1 files changed, 379 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/spelatex/spelatex.sty b/Master/texmf-dist/tex/latex/spelatex/spelatex.sty new file mode 100644 index 00000000000..fb67f185c05 --- /dev/null +++ b/Master/texmf-dist/tex/latex/spelatex/spelatex.sty @@ -0,0 +1,379 @@ +%% +%% This is file `spelatex.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% spelatex.dtx (with options: `package') +%% +%% This is a generated file. +%% +%% Copyright (C) 2024 by Walter Daems <walter.daems@ieee.org> +%% and Paul Levrie +%% +%% This file 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. +%% +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{spelatex} + [2024/06/12 v0.9 SpeLaTeX - Speech-enabled LaTeX (DMW and LVP)] +\def\fileversion{0.9} +\def\filedate{2024/06/12} + + +%% + +\RequirePackage{expl3} +\RequirePackage{hyperref} +\RequirePackage{xcolor} +\RequirePackage{ifthen} +\RequirePackage{fancyvrb} +\RequirePackage{newfile} +\RequirePackage{rotating} +\RequirePackage{babel} +\hypersetup{backref=true, + breaklinks=true, + colorlinks=true, + citecolor=black, + filecolor=black, + hyperindex=true, + linkcolor=black, + pageanchor=true, + pagebackref=true, + pagecolor=black, + pdfpagemode=UseOutlines, + bookmarksopen=true, + urlcolor=black} +\RequirePackage{kvoptions} +\SetupKeyvalOptions{ + family=spel, + prefix=spel@ +} +\DeclareStringOption[ogg]{format} +\DeclareBoolOption[false]{disabled} +\DeclareBoolOption[false]{extramath} +\DeclareBoolOption[false]{propermath} +\ProcessKeyvalOptions* +\DeclareRobustCommand{\spelatex}{S\kern-0.3ex\raisebox{-0.1ex}{\rotatebox{-15}{p}}\kern-0.25ex\raisebox{0.1ex}{\rotatebox{10}{e}}\kern-0.1ex\LaTeX} +\DeclareRobustCommand{\spelbox}{S\kern-0.3ex\raisebox{-0.1ex}{\rotatebox{-15}{p}}\kern-0.25ex\raisebox{0.1ex}{\rotatebox{10}{e}}\kern-0.1exLbo\raisebox{-0.2ex}{x}} +\DeclareRobustCommand{\spelpl}{\texttt{spel-wizard.pl}} +\newoutputstream{chunk} +\newoutputstream{spelidx} +\openoutputfile{\jobname.spelidx}{spelidx} +\AtEndDocument{ + \closeoutputstream{spelidx}% +} +\newcommand\audiodir{\jobname-spel} +\newcommand\chunkdir{\jobname-spel} +\addtostream{spelidx}{format|\spel@format} +\addtostream{spelidx}{audiodir|\audiodir} +\addtostream{spelidx}{chunkdir|\chunkdir} +\ifspel@disabled\newcommand{\spel@idxwrite}[2]{}\else +\newcommand{\spel@idxwrite}[2]{% + \typeout{spel: Generating #1 - #2}% + \addtostream{spelidx}{#1|#2}% +} +\fi +\ifspel@disabled\newcommand{\spel@chunkwrite}[2]{}\else +\newcommand{\spel@chunkwrite}[2]{% + \openoutputfile{\audiodir/#1.tex}{chunk}% + \addtostream{chunk}{#2}% + \closeoutputstream{chunk}% +} +\fi +\newcounter{spel@spart} +\renewcommand\thespel@spart{\@arabic\c@spel@spart} +\setcounter{spel@spart}{0} +\ifx\c@chapter\@undefined +\else +\ifx\c@part\@undefined +\newcounter{spel@schapter} +\else +\newcounter{spel@schapter}[part] +\fi +\renewcommand\thespel@schapter{\@arabic\c@spel@schapter} +\setcounter{spel@schapter}{0} +\fi +\ifx\c@chapter\@undefined +\newcounter{spel@ssect} +\else +\newcounter{spel@ssect}[chapter] +\fi +\renewcommand\thespel@ssect{\@arabic\c@spel@ssect} +\setcounter{spel@ssect}{0} +\newcounter{spel@footnote} +\renewcommand\thespel@footnote{\@arabic\c@spel@footnote} +\setcounter{spel@footnote}{0} +\newcounter{spel@chunk}[subparagraph] +\renewcommand\thespel@chunk{\@arabic\c@spel@chunk} +\setcounter{spel@chunk}{0} +\AddBabelHook{informspel}{write}{\spel@idxwrite{language}{\languagename}} +\EnableBabelHook{informspel} +\ifspel@disabled\newcommand{\spel@registerelement}[1]{}\else +\newcommand{\spel@registerelement}[1]{% + \expandafter\let\csname spel@@#1\expandafter\endcsname\csname #1\endcsname + \expandafter\gdef\csname #1\endcsname##1{% + \spel@chunkwrite{#1}{##1} + \csname spel@@#1\endcsname{\href{run:\audiodir/#1.\spel@format}{##1}} + } + \expandafter\AtBeginDocument{ + \spel@idxwrite{#1}{#1} + } +} +\fi +\spel@registerelement{title} +\spel@registerelement{date} +\spel@registerelement{author} +\ifspel@disabled\else +\let\spel@@addcontentsline\addcontentsline +\renewcommand\addcontentsline[3]{% + \let\spel@@href\href% + \renewcommand\href[2]{#2}% + \spel@@addcontentsline{#1}{#2}{#3}% + \let\href\spel@@href% +} +\providecommand{\tableofcontents}{} +\renewcommand\tableofcontents{% + \if@twocolumn + \@restonecoltrue\onecolumn + \else + \@restonecolfalse + \fi + \@ifclassloaded{article}{\section*{\contentsname}}{\chapter*{\contentsname}} + \@mkboth{% + \MakeUppercase\contentsname}{\MakeUppercase\contentsname}% + \@starttoc{toc}% + \if@restonecol\twocolumn\fi + } +\fi +\ifspel@disabled\else +\let\spel@@part\@part +\def\@part[#1]#2{% + \setcounter{spel@chunk}{0}% need this because counter resetting fails + \spel@@part[#1]{\href{run:\audiodir/\spel@@optpart.\spel@format}{#2}}% + \spel@idxwrite{part \thepart}{\spel@@optpart}% + \spel@chunkwrite{\spel@@optpart}{#2}% +} +\fi +\ifspel@disabled\else +\let\spel@@spart\@spart +\def\@spart#1{% + \stepcounter{spel@spart}% + \setcounter{spel@chunk}{0}% need this because counter resetting fails + \spel@@spart{% + \href{run:\audiodir/\spel@@optpart star-\thespel@spart.\spel@format}{#1}}% + \spel@idxwrite{part}{\spel@@optpart star-\thespel@spart}% + \spel@chunkwrite{\spel@@optpart star-\thespel@spart}{#1}% +} +\fi +\ifspel@disabled\else +\ifx\chapter\@undefined\else +\let\spel@@chapter\@chapter +\def\@chapter[#1]#2{% + \setcounter{spel@chunk}{0}% need this because counter resetting fails + \spel@@chapter[#1]{% + \href{run:\audiodir/\spel@@optpart\thechapter.\spel@format}{#2}}% + \spel@idxwrite{chapter \thechapter}{\spel@@optpart\thechapter}% + \spel@chunkwrite{\spel@@optpart\thechapter}{#2}% +} +\fi +\fi +\ifspel@disabled\else +\ifx\schapter\@undefined\else +\let\spel@@schapter\@schapter +\def\@schapter#1{% + \stepcounter{spel@schapter}% + \setcounter{spel@chunk}{0}% need this because counter resetting fails + \spel@@schapter{% + \href{run:\audiodir/\spel@@optpart star-\thespel@schapter.\spel@format}{#1}}% + \spel@idxwrite{chapter}{\spel@@optpart star-\thespel@schapter}% + \spel@chunkwrite{\spel@@optpart star-\thespel@schapter}{#1}% +} +\fi +\fi +\ifspel@disabled\else +\let\spel@@sect\@sect +\def\@sect#1#2#3#4#5#6[#7]#8{% + % correct default tex behavior + \ifnum #2>\c@secnumdepth% + \stepcounter{#1}% + \fi% + \setcounter{spel@chunk}{0}% need this because counter resetting fails + \spel@@sect{#1}{#2}{#3}{#4}{#5}{#6}[#7]{% + \href{run:\audiodir/\spel@@optpart\thesubparagraph.\spel@format}{#8}\hfill% + \href{run:\audiodir/\spel@@optpart\thesubparagraph.m3u}{\textcolor{black!50}{\triangleright}}}% + \def\spel@@label{\ifnum #2>\c@secnumdepth\else#1 \csname the#1\endcsname\fi} + \spel@idxwrite{\spel@@label}{\spel@@optpart\thesubparagraph}% + \spel@chunkwrite{\spel@@optpart\thesubparagraph}{#8}% +} +\fi +\ifspel@disabled\else +\let\spel@@ssect\@ssect +\def\@ssect#1#2#3#4#5{% + \stepcounter{spel@ssect}% + %\setcounter{spel@chunk}{0}% need this because counter resetting fails + \spel@@ssect{#1}{#2}{#3}{#4}{% + \href{run:\audiodir/\spel@@optpart\thesubparagraph-star-\thespel@ssect.\spel@format}% + {#5}}% + \spel@idxwrite{section}{\spel@@optpart\thesubparagraph-star-\thespel@ssect}% + \spel@chunkwrite{\spel@@optpart\thesubparagraph-star-\thespel@ssect}{#5}% +} +\fi +\ifspel@disabled\else +\let\spel@@fntext\@footnotetext +\long\def\@footnotetext#1{% + \stepcounter{spel@footnote}% + \spel@@fntext{% + \href{run:\audiodir/footnote-\thespel@footnote.\spel@format}{#1}} + \spel@idxwrite{footnote}{footnote-\thespel@footnote}% + \spel@chunkwrite{footnote-\thespel@footnote}{#1}% +} +\fi + +\ifspel@disabled\newcommand{\spelitem}{\item}\else +\newcommand{\spelitem}{% + \@ifnextchar[{\spelitem@opt}{\spelitem@intone} +} +\fi +\def\spelitem@opt[#1]{\spelitem@inttwo{#1}} +\def\spelitem@intone#1{% + \stepcounter{spel@chunk}% + \spel@idxwrite{item}{\spel@@optpart\thesubparagraph-\thespel@chunk}% + \spel@chunkwrite{\spel@@optpart\thesubparagraph-\thespel@chunk}{#1}% + \item \href{run:\audiodir/\spel@@optpart\thesubparagraph-\thespel@chunk.\spel@format}{#1} +} +\def\spelitem@inttwo#1#2{% + \stepcounter{spel@chunk}% + \spel@idxwrite{item}{\spel@@optpart\thesubparagraph-\thespel@chunk}% + \spel@chunkwrite{\spel@@optpart\thesubparagraph-\thespel@chunk}{#1 . #2}% + \item[#1] \href{run:\audiodir/\spel@@optpart\thesubparagraph-\thespel@chunk.\spel@format}{#2} +} +\ifspel@disabled\else +\let\spel@@caption\caption +\renewcommand\caption[2][]{% + \stepcounter{spel@chunk}% + \spel@idxwrite{caption}{\spel@@optpart\thesubparagraph-\thespel@chunk}% + \spel@chunkwrite{\spel@@optpart\thesubparagraph-\thespel@chunk}{#2}% + \spel@@caption[#1]{\protect\href{run:\audiodir/\spel@@optpart\thesubparagraph-\thespel@chunk.\spel@format}{#2}} +} +\fi +\ifspel@disabled\def\spelchunk{}\else +\def\spelchunk{% + \catcode`\^^M=\active% + \stepcounter{spel@chunk}% + \spel@idxwrite{chunk}{\spel@@optpart\thesubparagraph-\thespel@chunk}% + \@ifnextchar[{\catcode`\^^M=5\spelchunk@opt}{\catcode`\^^M=5\spelchunk@int}}% +\fi +\ifspel@disabled\def\endspelchunk{}\else +\def\endspelchunk{% + \end{VerbatimOut}% + \catcode`\^^M=5\relax% + \href{run:\audiodir/\spel@@optpart\thesubparagraph-\thespel@chunk.\spel@format}{\input{./\chunkdir/\spel@@optpart\thesubparagraph-\thespel@chunk}\leavevmode}% +}% +\fi +\def\spelchunk@opt[#1]{\fvset{#1}\spelchunk@int} +\def\spelchunk@int{% + \VerbatimEnvironment + \begin{VerbatimOut}{\chunkdir/\spel@@optpart\thesubparagraph-\thespel@chunk.tex}} +\def\spelchunkad{% + \catcode`\^^M=\active + \@ifnextchar[{\catcode`\^^M=5\spelchunk@opt}{\catcode`\^^M=5\spelchunk@int}} +\def\endspelchunkad{% + \end{VerbatimOut} + \catcode`\^^M=5\relax +} +\AtBeginDocument{ + \newcommand\spel@@optpart{} +} +\ExplSyntaxOn +\NewDocumentCommand{\spelmacpp}{moom} +{ + \addtostream{spelidx}{macpp|#1|#2|#3|#4} +} +\ExplSyntaxOff +\spelmacpp{sf}{} +\spelmacpp{it}{} +\spelmacpp{tt}{} +\spelmacpp{bf}{} +\spelmacpp{HUGE}{} +\spelmacpp{Huge}{} +\spelmacpp{huge}{} +\spelmacpp{LARGE}{} +\spelmacpp{Large}{} +\spelmacpp{large}{} +\spelmacpp{normalsize}{} +\spelmacpp{small}{} +\spelmacpp{footnotesize}{} +\spelmacpp{scriptsize}{} +\spelmacpp{tiny}{} +\spelmacpp{minuscule}{} +\spelmacpp{textsf}[1]{keep} +\spelmacpp{textit}[1]{keep} +\spelmacpp{texttt}[1]{keep} +\spelmacpp{textbf}[1]{keep} +\spelmacpp{quad}{} +\spelmacpp{qquad}{} +\spelmacpp{displaystyle}{} +\spelmacpp{relax}{} +\spelmacpp{strut}{} +\spelmacpp{mathstrut}{} +\spelmacpp{label}[1]{} +\spelmacpp{fbox}[1]{keep} +\ExplSyntaxOn +\NewDocumentCommand{\spelenvpp}{moom} +{ + \addtostream{spelidx}{envpp|#1|#2|#3|#4} +} +\ExplSyntaxOff +\spelenvpp{center}{keep} +\ExplSyntaxOn +\NewDocumentCommand{\spelmacad}{moom} +{ + \addtostream{spelidx}{macad|#1|#2|#3|#4} +} +\ExplSyntaxOff +\spelmacad{spelatex}{spee-laytech} +\spelmacad{spelbox}{spel-box} +\spelmacad{spelpl}{spel wizzard dot pl} +\spelmacad{LaTeX}{laytech} +\spelmacad{TeX}{tech} +\spelmacad{textsf}[1]{#1} +\spelmacad{texttt}[1]{#1} +\spelmacad{textit}[1]{#1} +\spelmacad{emph}[1]{#1} +\spelmacad{underline}[1]{#1} +\spelmacad{mbox}[1]{#1} +\spelmacad{text}[1]{#1} +\spelmacad{nobreakspace}{#1} +\spelmacad{textasciitilde}[1]{ } +\spelmacad{textbackslash}{backslash} +\spelmacad{footnote}[1]{} +\spelmacad{pm}{@{i18n(plusminus)}} +\spelmacad{ldots}{...} +\spelmacad{cite}[1]{} +\spelmacad{ref}[1]{} +\spelmacad{pageref}[1]{} +\ExplSyntaxOn +\NewDocumentCommand{\spelenvad}{moomm} +{ + \addtostream{spelidx}{envad|#1|#2|#3|#4|#5} +} +\ExplSyntaxOff +\spelenvad{center}{}{} +\ifspel@extramath +\DeclareRobustCommand{\setenum}[1]{\left\{#1\right\}} +\spelmacad{setenum}[1]{@{i18n(Setenum,#1)}} +\DeclareRobustCommand{\setdesc}[1]{\left\{#1\right\}} +\spelmacad{setdesc}[1]{@{i18n(Setdesc,#1)}} +\fi + +\endinput +%% +%% End of file `spelatex.sty'. |