diff options
author | Karl Berry <karl@freefriends.org> | 2020-03-14 20:44:40 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2020-03-14 20:44:40 +0000 |
commit | 03ebbf475d4730919119e90d754c69849151749d (patch) | |
tree | 6f72c1bc34d3fb22a115497b7f175ff7377c8410 /Master/texmf-dist/tex/generic/schemata/schemata.sty | |
parent | b2608121e57d86dd2f5f8ba12b2a9fc3d4fcbb7a (diff) |
schemata (14mar20)
git-svn-id: svn://tug.org/texlive/trunk@54296 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/generic/schemata/schemata.sty')
-rw-r--r-- | Master/texmf-dist/tex/generic/schemata/schemata.sty | 475 |
1 files changed, 227 insertions, 248 deletions
diff --git a/Master/texmf-dist/tex/generic/schemata/schemata.sty b/Master/texmf-dist/tex/generic/schemata/schemata.sty index 79dd4d5b76d..8d5c89bc194 100644 --- a/Master/texmf-dist/tex/generic/schemata/schemata.sty +++ b/Master/texmf-dist/tex/generic/schemata/schemata.sty @@ -5,308 +5,285 @@ %% The original source files were: %% %% schemata.dtx (with options: `package') +%% %% --------:| ---------------------------------------------------------------- %% schemata:| Generic package to aid construction of topical categories %% Author:| Charles P. Schaum -%% E-mail:| charles dot schaum at comcast dot net +%% E-mail:| charles dot schaum@comcast.net %% License:| Released under the LaTeX Project Public License v1.3c or later %% See:| http://www.latex-project.org/lppl.txt %% -\expandafter\ifx\csname newenvironment\endcsname\relax\else -\NeedsTeXFormat{LaTeX2e}[1999/12/01] +{\expandafter}\expandafter\ifx \csname schemataLaTeX\endcsname\relax + \def\schemataLaTeX{LaTeX2e}\fi +\ifx\fmtname\schemataLaTeX +\expandafter\NeedsTeXFormat\expandafter{\schemataLaTeX} \ProvidesPackage{schemata} - [2016/01/25 v0.8 generic package to aid construction of topical categories] + [2020/03/13 v1.0 generic package to aid construction of topical categories] \fi -\expandafter\ifx\csname newenvironment\endcsname\relax - \catcode`@=11% - \def\DoBraces{\let\@schemata@LD\lbrace \let\@schemata@RD\rbrace}% - \DoBraces% -\else - \DeclareOption{braces}{\let\@schemata@LD\lbrace \let\@schemata@RD\rbrace} - \DeclareOption{brackets}{\let\@schemata@LD\lbrack \let\@schemata@RD\rbrack} - \DeclareOption{parens}{\let\@schemata@LD( \let\@schemata@RD)} +\ifx\fmtname\schemataLaTeX\else + \catcode`@=11\relax +\fi +\newbox\@schemata@rhs +\newbox\@schemata@lhs +\newdimen\@schemata@rheight +\newdimen\@schemata@lheight +\newif\if@schemata@LCBox +\newif\if@schemata@SWBox +\newif\if@schemata@NudgeBox +\ifx\fmtname\schemataLaTeX + \DeclareOption{braces}% + {\let\@schemata@LD\lbrace \let\@schemata@RD\rbrace} + \DeclareOption{brackets}% + {\let\@schemata@LD\lbrack \let\@schemata@RD\rbrack} + \DeclareOption{parens}% + {\let\@schemata@LD( \let\@schemata@RD)} + \DeclareOption{groups}% + {\let\@schemata@LD\lgroup \let\@schemata@RD\rgroup} \ExecuteOptions{braces} \ProcessOptions\relax +\else + \let\@schemata@LD\lbrace% + \let\@schemata@RD\rbrace% \fi -\newbox\@rhs% -\newbox\@lhs% -\newdimen\@rheight% -\newdimen\@lheight% -\newif\if@schemata@LCBox% -\newif\if@schemata@SWBox% -\newif\if@schemata@NudgeBox% -\expandafter\ifx\csname newenvironment\endcsname\relax +\ifx\fmtname\schemataLaTeX + \newcommand*{\DoBraces}% + {\let\@schemata@LD\lbrace \let\@schemata@RD\rbrace} \else - \newcommand{\DoBraces}{\let\@schemata@LD\lbrace \let\@schemata@RD\rbrace}% + \def\DoBraces% + {\let\@schemata@LD\lbrace \let\@schemata@RD\rbrace} \fi -\expandafter\ifx\csname newenvironment\endcsname\relax - \def\DoBrackets{\let\@schemata@LD\lbrack \let\@schemata@RD\rbrack}% +\ifx\fmtname\schemataLaTeX + \newcommand*{\DoBrackets}% + {\let\@schemata@LD\lbrack \let\@schemata@RD\rbrack} \else - \newcommand{\DoBrackets}{\let\@schemata@LD\lbrack \let\@schemata@RD\rbrack}% + \def\DoBrackets% + {\let\@schemata@LD\lbrack \let\@schemata@RD\rbrack} \fi -\expandafter\ifx\csname newenvironment\endcsname\relax - \def\DoParens{\let\@schemata@LD( \let\@schemata@RD)}% +\ifx\fmtname\schemataLaTeX + \newcommand*{\DoParens}% + {\let\@schemata@LD( \let\@schemata@RD)} \else - \newcommand{\DoParens}{\let\@schemata@LD( \let\@schemata@RD)}% + \def\DoParens% + {\let\@schemata@LD( \let\@schemata@RD)} \fi -\expandafter\ifx\csname newenvironment\endcsname\relax - \def\LCschema{\@schemata@LCBoxtrue}% +\ifx\fmtname\schemataLaTeX + \newcommand*{\DoGroups}% + {\let\@schemata@LD\lgroup \let\@schemata@RD\rgroup} \else - \newcommand{\LCschema}{\@schemata@LCBoxtrue}% + \def\DoGroups% + {\let\@schemata@LD\lgroup \let\@schemata@RD\rgroup} \fi -\expandafter\ifx\csname newenvironment\endcsname\relax - \def\UCschema{\@schemata@LCBoxfalse}% +\ifx\fmtname\schemataLaTeX + \newcommand*{\LCschema}{\@schemata@LCBoxtrue} \else - \newcommand{\UCschema}{\@schemata@LCBoxfalse}% + \def\LCschema{\@schemata@LCBoxtrue} \fi -\expandafter\ifx\csname newenvironment\endcsname\relax - \def\SwitchSB{\@schemata@SWBoxtrue}% +\ifx\fmtname\schemataLaTeX + \newcommand*{\UCschema}{\@schemata@LCBoxfalse} \else - \newcommand{\SwitchSB}{\@schemata@SWBoxtrue}% + \def\UCschema{\@schemata@LCBoxfalse} \fi -\expandafter\ifx\csname newenvironment\endcsname\relax - \def\NudgeSB{\@schemata@NudgeBoxtrue}% +\ifx\fmtname\schemataLaTeX + \newcommand*{\SwitchSB}{\@schemata@SWBoxtrue}% \else - \newcommand{\NudgeSB}{\@schemata@NudgeBoxtrue}% + \def\SwitchSB{\@schemata@SWBoxtrue} \fi -\expandafter\ifx\csname newenvironment\endcsname\relax - \gdef\schemabox{\futurelet\testchar\@schemabox} - \gdef\@schemabox{% +\ifx\fmtname\schemataLaTeX + \newcommand*{\NudgeSB}{\@schemata@NudgeBoxtrue} +\else + \def\NudgeSB{\@schemata@NudgeBoxtrue} +\fi +\ifx\fmtname\schemataLaTeX + \newcommand{\SBNudgeFactor}{\kern0.2em} +\else + \def\SBNudgeFactor{\kern0.2em} +\fi +\ifx\fmtname\schemataLaTeX + \newcommand*{\schemabox}[2][0pt]{\@schemata@schemabox[#1]{#2}} +\else + \def\schemabox{\futurelet\testchar\@schemata@schemab@x} + \def\@schemata@schemab@x{% \ifx[\testchar - \let\next\@@schemabox% + \let\next\@schemata@schemabox% \else - \let\next\@@schemab@x% + \let\next\@schemata@@schemab@x% \fi \next% }% - \gdef\@@schemab@x#1{\@@schemabox[0pt]{#1}} - \gdef\@@schemabox[#1]#2{% - \ifinner - \if@schemata@LCBox - \def\@Adj{}% - \if@schemata@SWBox\def\@Adj{\strut}\fi - \else - \def\@Adj{\strut}% - \if@schemata@SWBox\def\@Adj{}\fi - \fi - \if@schemata@NudgeBox - \def\@Nudge{\kern0.2em}% - \else - \def\@Nudge{}% - \fi - \ifdim#1<1pt - \def\\{\@Nudge\egroup\hbox\bgroup\ignorespaces }% - \vbox{\hbox\bgroup\@Adj\ignorespaces #2\@Nudge\egroup}% - \else - \def\\{\hfil\egroup\hbox to #1\bgroup\ignorespaces }% - \vbox{\hbox to #1\bgroup\@Adj\ignorespaces #2\hfil\egroup}% - \fi + \def\@schemata@@schemab@x#1{\@schemata@schemabox[0pt]{#1}} +\fi +\def\@schemata@schemabox[#1]#2{% + \ifinner + \if@schemata@LCBox + \def\@Adj{}% + \if@schemata@SWBox\def\@Adj{\strut}\fi \else - #2% + \def\@Adj{\strut}% + \if@schemata@SWBox\def\@Adj{}\fi \fi - \@schemata@SWBoxfalse% - \@schemata@NudgeBoxfalse% - }% -\else - \newcommand{\schemabox}[2][0pt]{% - \ifinner - \if@schemata@LCBox - \def\@Adj{}% - \if@schemata@SWBox\def\@Adj{\strut}\fi - \else - \def\@Adj{\strut}% - \if@schemata@SWBox\def\@Adj{}\fi - \fi - \if@schemata@NudgeBox - \def\@Nudge{\kern0.2em}% - \else - \def\@Nudge{}% - \fi - \ifdim#1<1pt - \def\\{\@Nudge\egroup\hbox\bgroup\ignorespaces }% - \vbox{\hbox\bgroup\@Adj\ignorespaces #2\@Nudge\egroup}% - \else - \def\\{\hfil\egroup\hbox to #1\bgroup\ignorespaces }% - \vbox{\hbox to #1\bgroup\@Adj\ignorespaces #2\hfil\egroup}% - \fi + \if@schemata@NudgeBox + \let\@Nudge\SBNudgeFactor% \else - #2% + \def\@Nudge{}% \fi - \@schemata@SWBoxfalse% - \@schemata@NudgeBoxfalse% - }% -\fi -\expandafter\ifx\csname newenvironment\endcsname\relax - \gdef\schema{\futurelet\testchar\@schema} - \gdef\@schema{\ifx[\testchar \let\next\@@schema% - \else \let\next\@@schem@ \fi \next} - \gdef\@@schem@#1#2{\@@schema[open]{#1}{#2}} - \gdef\@@schema[#1]#2#3{% - \def\@ption{#1}\def\@pen{open}% - \ifx\@ption\@pen - \setbox\@rhs=\vbox{#3}% - \@rheight=\ht\@rhs% - \advance\@rheight\dp\@rhs% - \advance\@rheight by 1.44265ex% - \hbox{$\vcenter{#2}% - \@schemata@lbrace{\@rheight}% - \vcenter{#3}$}% + \ifdim#1<1pt + \def\\{\@Nudge\egroup\hbox\bgroup\ignorespaces }% + \vbox{\hbox\bgroup\@Adj\ignorespaces #2\@Nudge\egroup}% \else - \setbox\@lhs=\vbox{#2}% - \@lheight=\ht\@lhs% - \advance\@lheight\dp\@lhs% - \advance\@lheight by 1.44265ex% - \hbox{$\vcenter{#2}% - \kern-0.2em\@schemata@rbrace{\@lheight}% - \vcenter{#3}$}% + \def\\{\hfil\egroup\hbox to #1\bgroup\ignorespaces }% + \vbox{\hbox to #1\bgroup\@Adj\ignorespaces #2\hfil\egroup}% \fi - }% -\else + \else + #2% + \fi + \@schemata@SWBoxfalse% + \@schemata@NudgeBoxfalse% +} +\ifx\fmtname\schemataLaTeX \newcommand{\schema}[3][open]{% - \def\@ption{#1}\def\@pen{open}% - \ifx\@ption\@pen - \setbox\@rhs=\vbox{#3}% - \@rheight=\ht\@rhs% - \advance\@rheight\dp\@rhs% - \advance\@rheight by 1.44265ex% - \hbox{$\vcenter{#2}% - \@schemata@lbrace{\@rheight}% - \vcenter{#3}$}% + \@schemata@schema[#1]{#2}{#3}} +\else + \long\def\schema{\futurelet\testchar\@schemata@schem@} + \long\def\@schemata@schem@{% + \ifx[\testchar + \let\next\@schemata@schema% \else - \setbox\@lhs=\vbox{#2}% - \@lheight=\ht\@lhs% - \advance\@lheight\dp\@lhs% - \advance\@lheight by 1.44265ex% - \hbox{$\vcenter{#2}% - \kern-0.2em\@schemata@rbrace{\@lheight}% - \vcenter{#3}$}% + \let\next\@schemata@@schem@% \fi + \next% }% + \long\def\@schemata@@schem@#1#2{% + \@schemata@schema[open]{#1}{#2}} \fi -\expandafter\ifx\csname newenvironment\endcsname\relax - \gdef\Schema{\futurelet\testchar\@Schema} - \gdef\@Schema{\ifx[\testchar \let\next\@@Schema% - \else \let\next\@@Schem@ \fi \next} - \gdef\@@Schem@#1#2#3#4{\@@Schema[open]{#1}{#2}{#3}{#4}} - \gdef\@@Schema[#1]#2#3#4#5{% - \def\@ption{#1}% - \def\@pen{open}% - \dimen0=#2% - \ifx\@ption\@pen - \hbox{$\vcenter{\vskip1.44265\dimen0#4}% - \@schemata@biglbrace{#2}{#3}\vcenter{#5}$}% - \else - \hbox{$\vcenter{\vskip1.44265\dimen0#4}\kern-0.2em% - \@schemata@bigrbrace{#2}{#3}\vcenter{#5}$}% - \fi - }% -\else +\long\def\@schemata@schema[#1]#2#3{% + \def\@ption{#1}\def\@pen{open}% + \ifx\@ption\@pen + \setbox\@schemata@rhs=\vbox{#3}% + \@schemata@rheight=\ht\@schemata@rhs% + \advance\@schemata@rheight\dp\@schemata@rhs% + \advance\@schemata@rheight by 1.44265ex% + \hbox{$\vcenter{#2}% + \@schemata@lbrace{\@schemata@rheight}% + \vcenter{#3}$}% + \else + \setbox\@schemata@lhs=\vbox{#2}% + \@schemata@lheight=\ht\@schemata@lhs% + \advance\@schemata@lheight\dp\@schemata@lhs% + \advance\@schemata@lheight by 1.44265ex% + \hbox{$\vcenter{#2}% + \kern-0.2em\@schemata@rbrace{\@schemata@lheight}% + \vcenter{#3}$}% + \fi +} +\ifx\fmtname\schemataLaTeX \newcommand{\Schema}[5][open]{% - \def\@ption{#1}% - \def\@pen{open}% - \dimen0=#2% - \ifx\@ption\@pen - \hbox{$\vcenter{\vskip1.44265\dimen0#4}% - \@schemata@biglbrace{#2}{#3}\vcenter{#5}$}% + \@schemata@Schema[#1]{#2}{#3}{#4}{#5}} +\else + \long\def\Schema{\futurelet\testchar\@schemata@Schem@} + \long\def\@schemata@Schem@{% + \ifx[\testchar + \let\next\@schemata@Schema% \else - \hbox{$\vcenter{\vskip1.44265\dimen0#4}\kern-0.2em% - \@schemata@bigrbrace{#2}{#3}\vcenter{#5}$}% + \let\next\@schemata@@Schem@% \fi + \next% }% + \long\def\@schemata@@Schem@#1#2#3#4{% + \@schemata@Schema[open]{#1}{#2}{#3}{#4}} \fi -\expandafter\ifx\csname newenvironment\endcsname\relax - \def\@schemata@lbrace#1{% - \ifmmode\left.\vcenter{\vbox to #1{\vfil}}\right\@schemata@LD\fi} -\else - \newcommand{\@schemata@lbrace}[1]{% - \ifmmode\left.\vcenter{\vbox to #1{\vfil}}\right\@schemata@LD\fi} -\fi -\expandafter\ifx\csname newenvironment\endcsname\relax - \def\@schemata@rbrace#1{% - \ifmmode\left\@schemata@RD\vcenter{\vbox to #1{\vfil}}\right.\fi} -\else - \newcommand{\@schemata@rbrace}[1]{% - \ifmmode\left\@schemata@RD\vcenter{\vbox to #1{\vfil}}\right.\fi} -\fi -\expandafter\ifx\csname newenvironment\endcsname\relax - \def\@schemata@biglbrace#1#2{% - \dimen0=#1% - \dimen2=#2% - \dimen4=-\dimen2% - \ifdim\dimen4>\dimen2\dimen2=\dimen4\fi - \ifdim\dimen0<0pt - \ifmmode\vcenter{\hbox{$\left.% - \vbox to 1.44265\dimen2{\vfil}% - \right\@schemata@LD% - \atop\vbox to -1.44265\dimen0{\vfil}$}}\fi - \else - \ifmmode\vcenter{\hbox{$\vbox to 1.44265\dimen0{\vfil}% - \atop\left.% - \vbox to 1.44265\dimen2{\vfil}% - \right\@schemata@LD$}}\fi +\long\def\@schemata@Schema[#1]#2#3#4#5{% + \def\@ption{#1}% + \def\@pen{open}% + \dimen0=#2% + \ifx\@ption\@pen + \hbox{$\vcenter{\vskip1.44265\dimen0#4}% + \@schemata@biglbrace{#2}{#3}\vcenter{#5}$}% + \else + \hbox{$\vcenter{\vskip1.44265\dimen0#4}\kern-0.2em% + \@schemata@bigrbrace{#2}{#3}\vcenter{#5}$}% + \fi +} +\ifx\fmtname\schemataLaTeX + \newcommand*{\@schemata@lbrace}[1]{% + \ifmmode + \left.\vcenter{\vbox to #1{\vfil}}\right\@schemata@LD% \fi - }% + } \else - \newcommand{\@schemata@biglbrace}[2]{% - \dimen0=#1% - \dimen2=#2% - \dimen4=-\dimen2% - \ifdim\dimen4>\dimen2\dimen2=\dimen4\fi - \ifdim\dimen0<0pt - \ifmmode\vcenter{\hbox{$\left.% - \vbox to 1.44265\dimen2{\vfil}% - \right\@schemata@LD% - \atop\vbox to -1.44265\dimen0{\vfil}$}}\fi - \else - \ifmmode\vcenter{\hbox{$\vbox to 1.44265\dimen0{\vfil}% - \atop\left.% - \vbox to 1.44265\dimen2{\vfil}% - \right\@schemata@LD$}}\fi + \def\@schemata@lbrace#1{% + \ifmmode + \left.\vcenter{\vbox to #1{\vfil}}\right\@schemata@LD% \fi - }% + } \fi -\expandafter\ifx\csname newenvironment\endcsname\relax - \def\@schemata@bigrbrace#1#2{% - \dimen0=#1% - \dimen2=#2% - \dimen4=-\dimen2% - \ifdim\dimen4>\dimen2\dimen2=\dimen4\fi - \ifdim\dimen0<0pt - \ifmmode\vcenter{\hbox{$\left.% - \vbox to 1.44265\dimen2{\vfil}% - \right\@schemata@RD% - \atop\vbox to -1.44265\dimen0{\vfil}$}}\fi - \else - \ifmmode\vcenter{\hbox{$\vbox to 1.44265\dimen0{\vfil}% - \atop\left.% - \vbox to 1.44265\dimen2{\vfil}% - \right\@schemata@RD$}}\fi +\ifx\fmtname\schemataLaTeX + \newcommand*{\@schemata@rbrace}[1]{% + \ifmmode + \left\@schemata@RD\vcenter{\vbox to #1{\vfil}}\right.% \fi - }% + } \else - \newcommand{\@schemata@bigrbrace}[2]{% - \dimen0=#1% - \dimen2=#2% - \dimen4=-\dimen2% - \ifdim\dimen4>\dimen2\dimen2=\dimen4\fi - \ifdim\dimen0<0pt - \ifmmode\vcenter{\hbox{$\left.% - \vbox to 1.44265\dimen2{\vfil}% - \right\@schemata@RD% - \atop\vbox to -1.44265\dimen0{\vfil}$}}\fi - \else - \ifmmode\vcenter{\hbox{$\vbox to 1.44265\dimen0{\vfil}% - \atop\left.% - \vbox to 1.44265\dimen2{\vfil}% - \right\@schemata@RD$}}\fi + \def\@schemata@rbrace#1{% + \ifmmode + \left\@schemata@RD\vcenter{\vbox to #1{\vfil}}\right.% \fi - }% + } +\fi +\ifx\fmtname\schemataLaTeX + \newcommand*{\@schemata@biglbrace}[2]{% + \@schemata@@biglbrace{#1}{#2}} +\else + \def\@schemata@biglbrace#1#2{% + \@schemata@@biglbrace{#1}{#2}} +\fi +\def\@schemata@@biglbrace#1#2{% + \dimen0=#1% + \dimen2=#2% + \dimen4=-\dimen2% + \ifdim\dimen4>\dimen2\dimen2=\dimen4\fi + \ifdim\dimen0<0pt + \ifmmode\vcenter{\hbox{$\left.% + \vbox to 1.44265\dimen2{\vfil}% + \right\@schemata@LD% + \atop\vbox to -1.44265\dimen0{\vfil}$}}\fi + \else + \ifmmode\vcenter{\hbox{$\vbox to 1.44265\dimen0{\vfil}% + \atop\left.% + \vbox to 1.44265\dimen2{\vfil}% + \right\@schemata@LD$}}\fi + \fi +} +\ifx\fmtname\schemataLaTeX + \newcommand*{\@schemata@bigrbrace}[2]{% + \@schemata@@bigrbrace{#1}{#2}% + } +\else + \def\@schemata@bigrbrace#1#2{% + \@schemata@@bigrbrace{#1}{#2}% + } \fi -\expandafter\ifx\csname newenvironment\endcsname\relax - \catcode`@=12 +\def\@schemata@@bigrbrace#1#2{% + \dimen0=#1% + \dimen2=#2% + \dimen4=-\dimen2% + \ifdim\dimen4>\dimen2\dimen2=\dimen4\fi + \ifdim\dimen0<0pt + \ifmmode\vcenter{\hbox{$\left.% + \vbox to 1.44265\dimen2{\vfil}% + \right\@schemata@RD% + \atop\vbox to -1.44265\dimen0{\vfil}$}}\fi + \else + \ifmmode\vcenter{\hbox{$\vbox to 1.44265\dimen0{\vfil}% + \atop\left.% + \vbox to 1.44265\dimen2{\vfil}% + \right\@schemata@RD$}}\fi + \fi +} +\ifx\fmtname\schemataLaTeX\else + \catcode`@=12\relax \fi %% -%% Copyright (C) 2016 by Charles P. Schaum <charles dot schaum at comcast dot net> +%% Copyright (C) 2020 by Charles P. Schaum <charles dot schaum@comcast.net> %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License (LPPL), either @@ -318,8 +295,10 @@ %% This work is "maintained" (as per LPPL maintenance status) by %% Charles P. Schaum. %% -%% This work consists of the file schemata.dtx and a Makefile. -%% Running "make" generates the derived files README, schemata.pdf and schemata.sty. +%% This work consists of the file schemata.dtx, schematest.tex, +%% schemata.png, and a Makefile. +%% Running "make" generates the derived files README, schemata.pdf, +%% and schemata.sty. %% Running "make inst" installs the files in the user's TeX tree. %% Running "make install" installs the files in the local TeX tree. %% |