%%
%% This is file `schemata.sty',
%% generated with the docstrip utility.
%%
%% 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@comcast.net
%%  License:| Released under the LaTeX Project Public License v1.3c or later
%%      See:| http://www.latex-project.org/lppl.txt
%% 
{\expandafter}\expandafter\ifx \csname schemataLaTeX\endcsname\relax
  \def\schemataLaTeX{LaTeX2e}\fi
\ifx\fmtname\schemataLaTeX
\expandafter\NeedsTeXFormat\expandafter{\schemataLaTeX}
\ProvidesPackage{schemata}
  [2020/03/14 v1.1 generic package to aid construction of topical categories]
\fi
\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
\ifx\fmtname\schemataLaTeX
  \newcommand*{\DoBraces}%
    {\let\@schemata@LD\lbrace \let\@schemata@RD\rbrace}
\else
  \def\DoBraces%
    {\let\@schemata@LD\lbrace \let\@schemata@RD\rbrace}
\fi
\ifx\fmtname\schemataLaTeX
  \newcommand*{\DoBrackets}%
    {\let\@schemata@LD\lbrack \let\@schemata@RD\rbrack}
\else
  \def\DoBrackets%
    {\let\@schemata@LD\lbrack \let\@schemata@RD\rbrack}
\fi
\ifx\fmtname\schemataLaTeX
  \newcommand*{\DoParens}%
    {\let\@schemata@LD( \let\@schemata@RD)}
\else
  \def\DoParens%
    {\let\@schemata@LD( \let\@schemata@RD)}
\fi
\ifx\fmtname\schemataLaTeX
  \newcommand*{\DoGroups}%
    {\let\@schemata@LD\lgroup \let\@schemata@RD\rgroup}
\else
  \def\DoGroups%
    {\let\@schemata@LD\lgroup \let\@schemata@RD\rgroup}
\fi
\ifx\fmtname\schemataLaTeX
  \newcommand*{\LCschema}{\@schemata@LCBoxtrue}
\else
  \def\LCschema{\@schemata@LCBoxtrue}
\fi
\ifx\fmtname\schemataLaTeX
  \newcommand*{\UCschema}{\@schemata@LCBoxfalse}
\else
  \def\UCschema{\@schemata@LCBoxfalse}
\fi
\ifx\fmtname\schemataLaTeX
  \newcommand*{\SwitchSB}{\@schemata@SWBoxtrue}%
\else
  \def\SwitchSB{\@schemata@SWBoxtrue}
\fi
\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\@schemata@schemabox%
    \else
      \let\next\@schemata@@schemab@x%
    \fi
    \next%
  }%
  \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
      \def\@Adj{\strut}%
      \if@schemata@SWBox\def\@Adj{}\fi
    \fi
    \if@schemata@NudgeBox
      \let\@Nudge\SBNudgeFactor%
    \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
  \else
    #2%
  \fi
  \@schemata@SWBoxfalse%
  \@schemata@NudgeBoxfalse%
}
\ifx\fmtname\schemataLaTeX
  \newcommand{\schema}[3][open]{%
    \@schemata@schema[#1]{#2}{#3}}
\else
  \long\def\schema{\futurelet\testchar\@schemata@schem@}
  \long\def\@schemata@schem@{%
    \ifx[\testchar
      \let\next\@schemata@schema%
    \else
      \let\next\@schemata@@schem@%
    \fi
    \next%
  }%
  \long\def\@schemata@@schem@#1#2{%
    \@schemata@schema[open]{#1}{#2}}
\fi
\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]{%
    \@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
      \let\next\@schemata@@Schem@%
    \fi
    \next%
  }%
  \long\def\@schemata@@Schem@#1#2#3#4{%
    \@schemata@Schema[open]{#1}{#2}{#3}{#4}}
\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
  \def\@schemata@lbrace#1{%
    \ifmmode
      \left.\vcenter{\vbox to #1{\vfil}}\right\@schemata@LD%
    \fi
  }
\fi
\ifx\fmtname\schemataLaTeX
  \newcommand*{\@schemata@rbrace}[1]{%
    \ifmmode
      \left\@schemata@RD\vcenter{\vbox to #1{\vfil}}\right.%
    \fi
  }
\else
  \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
\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) 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
%% version 1.3c of this license or (at your option) any later
%% version.  The latest version of this license is in the file:
%% 
%% http://www.latex-project.org/lppl.txt
%% 
%% This work is "maintained" (as per LPPL maintenance status) by
%% Charles P. Schaum.
%% 
%% 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.
%% 
%%
%% End of file `schemata.sty'.
