summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/shipunov
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2008-02-19 17:05:28 +0000
committerKarl Berry <karl@freefriends.org>2008-02-19 17:05:28 +0000
commitcf4d2164c6ed64dccbe7d8abdd8b0c95f8509a1c (patch)
treeadbb0d174b4ab3c017b085367d946ad7ba3b417b /Master/texmf-dist/tex/latex/shipunov
parentf95f16133feaac8dd66077e38d247937f819c815 (diff)
new latex collection shipunov (18feb08)
git-svn-id: svn://tug.org/texlive/trunk@6680 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/shipunov')
-rw-r--r--Master/texmf-dist/tex/latex/shipunov/altverse.sty95
-rw-r--r--Master/texmf-dist/tex/latex/shipunov/autolist.sty180
-rw-r--r--Master/texmf-dist/tex/latex/shipunov/biokey.sty164
-rw-r--r--Master/texmf-dist/tex/latex/shipunov/biolist.sty51
-rw-r--r--Master/texmf-dist/tex/latex/shipunov/boldline.sty78
-rw-r--r--Master/texmf-dist/tex/latex/shipunov/cassete.cls91
-rw-r--r--Master/texmf-dist/tex/latex/shipunov/classif2.sty306
-rw-r--r--Master/texmf-dist/tex/latex/shipunov/drcaps.sty33
-rw-r--r--Master/texmf-dist/tex/latex/shipunov/etiketka.cls143
-rw-r--r--Master/texmf-dist/tex/latex/shipunov/flower.sty85
-rw-r--r--Master/texmf-dist/tex/latex/shipunov/isyntax.sty23
-rw-r--r--Master/texmf-dist/tex/latex/shipunov/numerus.sty207
-rw-r--r--Master/texmf-dist/tex/latex/shipunov/punct.sty38
-rw-r--r--Master/texmf-dist/tex/latex/shipunov/sltables.sty267
-rw-r--r--Master/texmf-dist/tex/latex/shipunov/starfn.sty12
15 files changed, 1773 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/shipunov/altverse.sty b/Master/texmf-dist/tex/latex/shipunov/altverse.sty
new file mode 100644
index 00000000000..83b6359b53a
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/shipunov/altverse.sty
@@ -0,0 +1,95 @@
+% Author: Alexey B. Shipunov, plantago@herba.msu.ru
+
+\ProvidesPackage{altverse}
+ [2008/02/15 v0.3 Typesetting simple verses with `xtab' package]
+
+\RequirePackage{array}
+\RequirePackage{xtab}
+
+% Typical environment, stanzas and subverses separated by `\\'
+\newenvironment{Verse}[1][\relax]%
+ {\tablehead{}%
+ \tablefirsthead{}%
+ \tabletail{}%
+ \tablelasttail{}%
+ \begin{center}%
+ \global\def\V@TMP{#1}%
+ \let\_\Vindent
+ \begin{xtabular}{@{}>{\V@TMP}l@{}}}%
+ {\end{xtabular}%
+ \end{center}}
+
+% Same, ragged left
+\newenvironment{VERSE}[1][\relax]%
+ {\tablehead{}%
+ \tablefirsthead{}%
+ \tabletail{}%
+ \tablelasttail{}%
+ \global\def\V@TMP{#1}%
+ \let\_\Vindent
+ \begin{xtabular}{@{}>{\V@TMP}l@{}}}%
+ {\end{xtabular}}
+
+% Same, with footnotes
+\newenvironment{Verse*}[1][\relax]%
+ {\tablehead{}%
+ \tablefirsthead{}%
+ \tabletail{}%
+ \tablelasttail{}%
+ \begin{center}%
+ \global\def\V@TMP{#1}%
+ \let\_\Vindent
+ \renewcommand{\thempfootnote}{\fnsymbol{mpfootnote}}%
+ \begin{mpxtabular}{@{}>{\V@TMP}l@{}}}%
+ {\end{mpxtabular}%
+ \end{center}}
+
+% If you need to manually break one of these environments:
+% Example: `\Vbreak{VERSE}'
+\newcommand*{\Vbreak}[1]{\end{#1}\newpage\begin{#1}}
+
+% For indents, abbreviations inside environments `\_'
+% One may set indent for whole verse: \begin{Verse}[\Vindent{2}]
+\newcommand*{\Vindent}[1][.5]{\hspace*{#1in}}
+
+% Header CONTENTS, needs to be set BEFORE the environment
+\newcommand*{\Vhead}[2][\Vhead@TMP]{\def\Vhead@TMP{#2}\V@TOC{#1}\V@MARK{#1}}
+% Put information to the table of contents and headers
+\newcommand*{\V@TOC}[1]{\markright{#1}}
+\newcommand*{\V@MARK}[1]{\addcontentsline{toc}{subsection}{#1}}
+
+% Actual header, centered, should be without `\\'
+\newcommand{\VCtitle}{%
+ \multicolumn{1}{@{}>{\V@TMP\centering\hspace{0pt}}p{\VheadSize}@{}}%
+ {\VheadFormat\Vhead@TMP\par}\\*}
+% Alternate header, with less space after
+\newcommand{\Vctitle}{%
+ \multicolumn{1}{@{}>{\V@TMP\centering\hspace{0pt}}p{\VheadSize}@{}}%
+ {\VheadFormat\Vhead@TMP}\\*}
+% Alternate header, ragged left, should be without `\\'
+\newcommand{\VLtitle}{%
+ \multicolumn{1}{@{}>{\V@TMP\raggedright\hspace{0pt}}p{\VheadSize}@{}}%
+ {\VheadFormat\Vhead@TMP\par}\\*}
+% Heading stars before verse
+\newcommand{\Vstars}{\multicolumn{1}{@{}>{\V@TMP}c@{}}%
+ {${*}\quad{*}\quad{*}$}\\*[\bigskipamount]}
+
+% Subheader, should be without `\\'
+\newcommand{\Vsub}[1]{%
+ \multicolumn{1}{@{}>{\centering\hspace{0pt}}p{\VheadSize}@{}}%
+ {#1}\\*}
+
+% Dedication, should be _with_ `\\'
+\newcommand*{\Vto}[1]{\multicolumn{1}{@{}>{\V@TMP}r@{}}%
+ {\VtoFormat#1}}
+
+% Annotation
+\newcommand*{\Vat}[1]{\V@TMP\VatFormat#1}
+
+% Hooks for redefinitions
+\newcommand*{\VheadFormat}{\reset@font\large\bfseries}
+\newcommand*{\VheadSize}{.4\columnwidth}
+\newcommand*{\VtoFormat}{\reset@font\itshape}
+\newcommand*{\VatFormat}{\reset@font\itshape}
+
+\endinput
diff --git a/Master/texmf-dist/tex/latex/shipunov/autolist.sty b/Master/texmf-dist/tex/latex/shipunov/autolist.sty
new file mode 100644
index 00000000000..e1f65d9f160
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/shipunov/autolist.sty
@@ -0,0 +1,180 @@
+% Authors: A. and A. Shipunovs, plantago@herba.msu.ru
+
+\ProvidesPackage{autolist}%
+ [2008/02/06 v0.3 Various lists]
+
+\ProvidesPackage{autolist}
+\RequirePackage{calc}
+
+\newcounter{TMC@a}
+
+\newdimen\Subleftmargini
+\newdimen\Subleftmarginii
+\newdimen\Subleftmarginiii
+\newdimen\Subleftmarginiv
+\newdimen\Subleftmarginv
+\newdimen\Subleftmarginvi
+\newdimen\Subleftmarginvii
+\newdimen\Subleftmarginviii
+\newdimen\Subleftmarginix
+\newdimen\Subleftmarginx
+
+\newcount\@Subnumdepth \@Subnumdepth = 0
+\@definecounter{Subnumi}
+\@definecounter{Subnumii}
+\@definecounter{Subnumiii}
+\@definecounter{Subnumiv}
+\@definecounter{Subnumv}
+\@definecounter{Subnumvi}
+\@definecounter{Subnumvii}
+\@definecounter{Subnumviii}
+\@definecounter{Subnumix}
+\@definecounter{Subnumx}
+
+% Lists with up to 10 levels
+
+% "List" analog
+\def\Sublist#1#2{\ifnum \@listdepth >9\relax \@toodeep
+ \else \global\advance\@listdepth\@ne \fi
+ \rightmargin \z@ \listparindent\z@ \itemindent\z@
+ \csname @slist\romannumeral\the\@listdepth\endcsname
+ \def\@itemlabel{#1}\let\makelabel\@mklab \@nmbrlistfalse #2\relax
+ \@trivlist
+ \parskip\parsep \parindent\listparindent
+ \advance\linewidth -\rightmargin \advance\linewidth -\leftmargin
+ \advance\@totalleftmargin \leftmargin
+ \parshape \@ne \@totalleftmargin \linewidth
+ \ignorespaces}
+\let\endSublist=\endlist
+
+% Size decrease
+\setlength\Subleftmargini {\parindent}
+\setlength\Subleftmarginii {1em}
+\setlength\Subleftmarginiii{1em}
+\setlength\Subleftmarginiv {1em}
+\setlength\Subleftmarginv {1em}
+\setlength\Subleftmarginvi {1em}
+\setlength\Subleftmarginvii{1em}
+\setlength\Subleftmarginviii{1em}
+\setlength\Subleftmarginix {1em}
+\setlength\Subleftmarginx {1em}
+
+\def\@slistI{\leftmargin\Subleftmargini
+ \topsep0pt \parsep0pt \itemsep0pt}
+\let\@slisti\@slistI
+\@slisti
+\def\@slistii {\leftmargin\Subleftmarginii
+ \labelwidth\Subleftmarginii
+ \advance\labelwidth-\labelsep
+ \topsep0pt \parsep0pt \itemsep0pt}
+\def\@listiii{\leftmargin\Subleftmarginiii
+ \labelwidth\Subleftmarginiii
+ \advance\labelwidth-\labelsep
+ \topsep0pt \parsep0pt \itemsep0pt}
+\def\@listiv {\leftmargin\Subleftmarginiv
+ \labelwidth\Subleftmarginiv
+ \advance\labelwidth-\labelsep
+ \topsep0pt \parsep0pt \itemsep0pt}
+\def\@listv {\leftmargin\Subleftmarginv
+ \labelwidth\Subleftmarginv
+ \advance\labelwidth-\labelsep
+ \topsep0pt \parsep0pt \itemsep0pt}
+\def\@listvi {\leftmargin\Subleftmarginvi
+ \labelwidth\Subleftmarginvi
+ \advance\labelwidth-\labelsep
+ \topsep0pt \parsep0pt \itemsep0pt}
+\def\@listvii{\leftmargin\Subleftmarginvii
+ \labelwidth\Subleftmarginvii
+ \advance\labelwidth-\labelsep
+ \topsep0pt \parsep0pt \itemsep0pt}
+\def\@listviii{\leftmargin\Subleftmarginviii
+ \labelwidth\Subleftmarginviii
+ \advance\labelwidth-\labelsep
+ \topsep0pt \parsep0pt \itemsep0pt}
+\def\@listix {\leftmargin\Subleftmarginix
+ \labelwidth\Subleftmarginix
+ \advance\labelwidth-\labelsep
+ \topsep0pt \parsep0pt \itemsep0pt}
+\def\@listx {\leftmargin\Subleftmarginx
+ \labelwidth\Subleftmarginx
+ \advance\labelwidth-\labelsep
+ \topsep0pt \parsep0pt \itemsep0pt}
+
+% "Enumerate" analog with hierarchical numeration
+\def\Subnum{\ifnum \@Subnumdepth >9 \@toodeep\else
+ \advance\@Subnumdepth \@ne
+ \edef\@Subnumctr{Subnum\romannumeral\the\@Subnumdepth}\Sublist
+ {\csname label\@Subnumctr\endcsname}{\usecounter
+ {\@Subnumctr}\def\makelabel##1{\hss\llap{##1}}}\fi}
+\let\endSubnum=\endlist
+
+\def\theSubnumi{\arabic{Subnumi}}
+\def\theSubnumii{\arabic{Subnumii}}
+\def\theSubnumiii{\arabic{Subnumiii}}
+\def\theSubnumiv{\arabic{Subnumiv}}
+\def\theSubnumv{\arabic{Subnumv}}
+\def\theSubnumvi{\arabic{Subnumvi}}
+\def\theSubnumvii{\arabic{Subnumvii}}
+\def\theSubnumviii{\arabic{Subnumviii}}
+\def\theSubnumix{\arabic{Subnumix}}
+\def\theSubnumx{\arabic{Subnumx}}
+\def\labelSubnumi{\theSubnumi.}
+\def\labelSubnumii{\theSubnumi.\theSubnumii.}
+\def\labelSubnumiii{\theSubnumi.\theSubnumii.\theSubnumiii.}
+\def\labelSubnumiv{\theSubnumi.\theSubnumii.\theSubnumiii.\theSubnumiv.}
+\def\labelSubnumv{\theSubnumi.\theSubnumii.\theSubnumiii.\theSubnumiv.\theSubnumv.}
+\def\labelSubnumvi{\theSubnumi.\theSubnumii.\theSubnumiii.\theSubnumiv.\theSubnumv.\theSubnumvi.}
+\def\labelSubnumvii{\theSubnumi.\theSubnumii.\theSubnumiii.\theSubnumiv.\theSubnumv.\theSubnumvi.\theSubnumvii.}
+\def\labelSubnumviii{\theSubnumi.\theSubnumii.\theSubnumiii.\theSubnumiv.\theSubnumv.\theSubnumvi.\theSubnumvii.\theSubnumviii.}
+\def\labelSubnumix{\theSubnumi.\theSubnumii.\theSubnumiii.\theSubnumiv.\theSubnumv.\theSubnumvi.\theSubnumvii.\theSubnumviii.\theSubnumix.}
+\def\labelSubnumx{\theSubnumi.\theSubnumii.\theSubnumiii.\theSubnumiv.\theSubnumv.\theSubnumvi.\theSubnumvii.\theSubnumviii.\theSubnumix.\theSubnumx.}
+\def\p@Subnumi{}
+\def\p@Subnumii{\theSubnumi.}
+\def\p@Subnumiii{\theSubnumi.\theSubnumii.}
+\def\p@Subnumiv{\theSubnumi.\theSubnumii.\theSubnumiii.}
+\def\p@Subnumv{\theSubnumi.\theSubnumii.\theSubnumiii.\theSubnumiv.}
+\def\p@Subnumvi{\theSubnumi.\theSubnumii.\theSubnumiii.\theSubnumiv.\theSubnumv.}
+\def\p@Subnumvii{\theSubnumi.\theSubnumii.\theSubnumiii.\theSubnumiv.\theSubnumv.\theSubnumvi.}
+\def\p@Subnumviii{\theSubnumi.\theSubnumii.\theSubnumiii.\theSubnumiv.\theSubnumv.\theSubnumvi.\theSubnumvii.}
+\def\p@Subnumix{\theSubnumi.\theSubnumii.\theSubnumiii.\theSubnumiv.\theSubnumv.\theSubnumvi.\theSubnumvii.\theSubnumviii.}
+\def\p@Subnumx{\theSubnumi.\theSubnumii.\theSubnumiii.\theSubnumiv.\theSubnumv.\theSubnumvi.\theSubnumvii.\theSubnumviii.\theSubnumix.}
+
+% Lists with changing indent(LaTeX Companion 1st ed., p. 51--66)
+
+% Ragged left
+\newenvironment{Lautolist}[1][\quad]%
+ {\begin{list}{}{\renewcommand{\makelabel}[1]{{##1}\hfil}%
+ \settowidth{\labelwidth}{{#1}}%
+ \setlength{\leftmargin}{\labelwidth+\labelsep}%
+ \itemsep=.5pt\parsep=2pt\topsep=5pt}}
+ {\end{list}}
+
+% Ragged right
+\newenvironment{Rautolist}[1][\quad]%
+ {\begin{list}{}{\renewcommand{\makelabel}[1]{\hfil{##1}}%
+ \settowidth{\labelwidth}{{#1}}%
+ \setlength{\leftmargin}{\labelwidth+\labelsep}%
+ \itemsep=.5pt\parsep=2pt\topsep=5pt}}
+ {\end{list}}
+
+\newcommand{\Lplabel}[1]
+ {\raisebox{0pt}[1ex][0pt]{\makebox[\labelwidth][l]%
+ {\parbox[t]{\labelwidth}{\raggedright\hspace{0pt}#1}}}}
+
+% Items for several lines
+\newenvironment{Lpolylist}[1][\quad]%
+ {\begin{list}{}{%
+ \renewcommand{\makelabel}[1]{\Lplabel{##1}}%
+ \settowidth{\labelwidth}{{#1}}%
+ \setlength{\leftmargin}{\labelwidth+\labelsep}%
+ \itemsep=.5pt\parsep=2pt\topsep=5pt}}
+ {\end{list}}
+
+% Description-like, but also number items
+\def\L@bl#1{\hspace{\labelsep}\refstepcounter{TMC@a}%
+ \arabic{TMC@a}.\ \textit{#1}}
+\newenvironment{characters}{\begin{list}{}
+ {\renewcommand{\makelabel}{\L@bl}}}
+{\setcounter{TMC@a}{0}\end{list}}
+
+\endinput
diff --git a/Master/texmf-dist/tex/latex/shipunov/biokey.sty b/Master/texmf-dist/tex/latex/shipunov/biokey.sty
new file mode 100644
index 00000000000..ef88da239e2
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/shipunov/biokey.sty
@@ -0,0 +1,164 @@
+% Author: Alexey B. Shipunov (plantago@herba.msu.ru)
+
+\ProvidesPackage{biokey}%
+ [2008/02/11 v3.1 Typesetting biological identification keys]
+
+\newlength\TML@a
+\newlength\TML@b
+\newlength\TML@c
+\newbox\dot@box
+\newcounter{TMC@Ba}
+
+\newif\if@MARG
+\DeclareOption{nomargin}{\@MARGfalse}
+\DeclareOption{margin}{\@MARGtrue}
+
+\ExecuteOptions{nomargin}
+\ProcessOptions
+
+% REFERENCES
+% Main reference
+\def\SameDecl{\samepage}
+\AtBeginDocument{\setbox\dot@box=\hbox to .5em{\hss.\hss}}
+\def\dbox@fill{\leaders\copy%
+ \dot@box\hskip 4.3\wd\dot@box plus1fill minus .3\wd\dot@box}
+\def\dbox@fil{\leaders\copy\dot@box\hfil}
+% Against vertical breaks
+\def\dot@leaders{\doublehyphendemerits0\finalhyphendemerits0%
+ \parfillskip0pt\SameDecl%
+ \penalty800\dbox@fill\penalty400%
+ \vadjust{}\penalty10000\dbox@fil}
+\def\T#1\par{{\dot@leaders\SHRIFTN{#1}\par}\par}
+% `Automatically' paragraph aligment
+\def\TTTT#1\par{{\tolerance 9999 \dot@leaders\SHRIFTN{#1}\par}\par}
+
+% Old style reference
+\def\old@f{\hbox to .5em{\hss.\hss}}
+\def\old@filt{\xleaders\old@f\hfill}
+\def\old@dot@leaders{\doublehyphendemerits0\finalhyphendemerits0%
+ \parfillskip0pt\SameDecl%
+ \unskip\nobreak\old@filt\penalty50%
+ \xleaders\old@f\hskip2em%
+ \vadjust{}\nobreak\old@filt}
+\def\TTT#1\par{{\old@dot@leaders\SHRIFTN{#1}\par}\par}
+
+% OBJECTS
+% With indent
+\def\N#1\par{{\penalty50\SameDecl%
+ \hskip 1em plus 1.2em minus .2em
+\penalty200\hskip0pt\SHRIFTN{#1}\par}\par}
+
+% With glue, but without leaders
+\def\NN#1\par{{\parfillskip0pt\SameDecl%
+ \doublehyphendemerits0\finalhyphendemerits0%
+ \penalty10000\hskip 2em plus 1fil\penalty400%
+ \vadjust{}\penalty10000\hfil\SHRIFTN{#1}\par}\par}
+
+% Object as new paragraph
+\def\NNN#1\par{{\nopagebreak\par%
+ \Indent@C\SHRIFTN{#1}\par}\par}
+
+% PUNCTS
+% Common punct
+\let\TT=\T
+
+% Hanging punct
+\def\VT{\@ifstar{\H@P}{\H@@P}}
+% Leaders stopped on right margin of text
+\def\H@@P#1\par{{\dot@leaders
+ \makebox[0pt][l]{\hspace{.5em}#1}\par}\par}
+% Leaders stopped before punct
+\def\H@P#1\par{{\dot@leaders
+ \makebox[-.5em][l]{#1}\par}\par}
+
+% THESES AND ANTITHESES
+% Hooks...
+\def\SHRIFTZ{\relax}
+\def\SHRIFTN{\relax}
+
+% Lengths (hang = 2em)
+\settowidth{\TML@b}{\SHRIFTZ{.}}
+\TML@a=1.5em
+\addtolength{\TML@a}{-\TML@b}
+\addtolength{\TML@b}{0.5em}
+\def\Indent@T{\hangindent2em\noindent}
+\def\OTSTUP{2em}
+\def\Indent@C{\parindent\OTSTUP\hangindent\parindent}
+
+% Common thesa
+\def\Z#1. {\Indent@T\makebox[1.5em][r]%
+ {\SHRIFTZ{#1.}}\hspace{0.5em}}
+% Thesa with back reference
+\def\ZZ#1(#2).{\Indent@T\makebox[\TML@a][r]%
+ {\SHRIFTZ{#1}}\hspace{0.45em}\SHRIFTZ{(#2).}}
+% Antitheses
+\def\ZZZ#1{\Indent@T\makebox[\TML@a][r]%
+ {#1}\hspace{\TML@b}}
+% First
+\def\AN{\ZZZ{$-$}}
+% You can replace it to $+$
+\def\Ap{\ZZZ{$+$}}
+% Second (with trichotomy)
+\def\AAN{\ZZZ{$=$}}
+% Third (with tetrachotomy)
+\def\AAAN{\ZZZ{$\equiv$}}
+
+% COMMENTS
+\def\FK#1\par{{\nopagebreak\smallskip%
+ \Indent@C%
+ \footnotesize#1\par\smallskip}}
+% You can use it as `numberless thesa'
+\def\KOM#1\par{{\nopagebreak\smallskip%
+ \Indent@C#1\par\smallskip}}
+% Comment for object
+\def\VPRAVO#1 \par{{\nopagebreak\vskip-\parskip
+ \hbox to \linewidth {\hfil #1}\par}}
+
+% AUTOMATICAL KEYS
+\def\TEZA#1{\refstepcounter{TMC@Ba}\label{#1}%
+ \Indent@T\makebox[1.5em][r]%
+ {\SHRIFTZ{\arabic{TMC@Ba}.}}\hspace{0.5em}\ignorespaces}
+\def\STEZA#1#2{\refstepcounter{TMC@Ba}\label{#1}%
+ \Indent@T\makebox[\TML@a][r]%
+ {\SHRIFTZ{\arabic{TMC@Ba}}}\hspace{0.45em}\SHRIFTZ{(\ref{#2}).}}
+\def\SSYLKA#1{\T\ref{#1}.}
+% Shorthands
+\let\TE\TEZA
+\let\SE\STEZA
+\let\SS\SSYLKA
+
+% LEVELED KEYS
+\newenvironment{SDVIG}[1][1]
+ {\TML@c=#1em \let\TML@@c\TML@c
+ \def\Indent@T{\hangindent=2em\parindent=0em
+ \advance\hangindent by 2\TML@@c
+ \advance\parindent by 2\TML@@c}
+ \def\Indent@C{\hangindent=2em\parindent=2em
+ \advance\hangindent by 2\TML@@c
+ \advance\parindent by 2\TML@@c}}{}
+% Shorthands
+\let\LE\SDVIG
+\let\endLE\endSDVIG
+
+% KEYS WITH MARKERS ON LEFT PAGE MARGIN
+
+\if@MARG
+\def\Indent@C{\relax}%
+\def\Z#1. {\noindent\makebox[0em][r]%
+ {\SHRIFTZ{#1.}\hspace{0.5em}}}%
+\def\ZZ#1(#2).{\settowidth{\TML@c}{(#2)}%
+ \noindent\makebox[\TML@c][r]%
+ {\SHRIFTZ{#1}\hspace{0.5em}\SHRIFTZ{(#2).}}}%
+\def\ZZZ#1{\noindent\makebox[0em][r]%
+ {#1\hspace{\TML@b}}}%
+\else\relax
+\fi
+
+% Some useful stuff
+\let\K=\textit
+\let\J=\textbf
+\def\KN#1 {\textit{#1 }}
+\def\NN#1 #2 {\textit{#1 #2 }}
+\def\IN#1.#2.{#1.\,#2.~\ignorespaces}
+
+\endinput
diff --git a/Master/texmf-dist/tex/latex/shipunov/biolist.sty b/Master/texmf-dist/tex/latex/shipunov/biolist.sty
new file mode 100644
index 00000000000..986bfa73569
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/shipunov/biolist.sty
@@ -0,0 +1,51 @@
+% Author: Alexey B. Shipunov (plantago@herba.msu.ru)
+
+\ProvidesPackage{biolist}%
+ [2008/02/06 v0.1 Typesetting species lists for floras (and faunas)]
+
+\newcounter{SEMEYSTVO}[subsection]
+\newcounter{VID}[subsection]
+\newcounter{SEMVID}[SEMEYSTVO]
+\newcount\DOUBLE
+\DOUBLE=1
+
+% Species names
+\def\VDVID{\ifnum\DOUBLE=0
+ \arabic{VID}.%
+ \else
+ \arabic{SEMVID}(\arabic{VID}).%
+ \fi}
+
+\def\VID{\@ifnextchar*\VID@@{\VID@}}
+% \VID
+\def\VID@#1 #2 #3{\addtocounter{VID}{1}\addtocounter{SEMVID}{1}%
+ \hangindent=3.5em\noindent%
+ \makebox[3.3em][r]{\VDVID}\hskip.2em%
+\textit{#1 #2} #3}
+% \VID* for cultivated species
+% objazatelen probel posle komandy!
+\def\VID@@* #1 #2 #3{\hangindent=3.5em\noindent%
+ \makebox[3.3em][r]{$*$\hskip.2em}\hskip.2em%
+\textit{#1 #2} #3}
+
+% Comment for species. No paragraph before!
+\def\VKOMM#1\par{\par\nopagebreak%
+ \parindent=3.5em\hangindent=\parindent%
+ \samepage%
+ {\footnotesize#1\par}}
+\let\VK\VKOMM
+
+% Names for families (or other higher rank taxa)
+\def\SEM{\@ifstar{\SEM@@}{\SEM@}}
+% \SEM
+\def\SEM@#1{\medskip
+ \stepcounter{SEMEYSTVO}
+ \parindent=2em\hangindent=2em
+ {\bfseries\Roman{SEMEYSTVO}. }%
+\textbf{#1}\nopagebreak%
+\smallskip}
+% \SEM* for families consist enrirely of cultivated species
+\def\SEM@@#1{\medskip
+ \parindent=2em\hangindent=2em
+ \textbf{$*$ #1}\nopagebreak%
+\smallskip}
diff --git a/Master/texmf-dist/tex/latex/shipunov/boldline.sty b/Master/texmf-dist/tex/latex/shipunov/boldline.sty
new file mode 100644
index 00000000000..28a830ebb18
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/shipunov/boldline.sty
@@ -0,0 +1,78 @@
+% Author: Alexey B. Shipunov (plantago@herba.msu.ru)
+
+\ProvidesPackage{boldline}%
+ [2008/02/04 v0.2 Adjust line width in tables]
+
+\RequirePackage{array}
+
+% Vertical lines
+\newcolumntype{V}[1]{!{\vrule\@width #1\arrayrulewidth}}
+
+% Horizontal lines
+% Addition to \hline
+\def\hlineB#1{%
+ \noalign{\ifnum0=`}\fi\hrule \@height #1\arrayrulewidth
+\futurelet \reserved@a\@xhlineB{#1}}
+
+\def\@xhlineB#1{\ifx\reserved@a\hlineB
+ \vskip\doublerulesep
+ \vskip-#1\arrayrulewidth
+ \fi
+ \ifnum0=`{\fi}}
+
+% Addition to \cline
+\def\clineB#1#2{\@clineB#1[#2]\@nil}
+\def\@clineB#1-#2[#3]\@nil{%
+ \omit
+ \@multicnt#1%
+ \global\def\Mag@B{#3}%
+ \advance\@multispan\m@ne
+ \ifnum\@multicnt=\@ne\@firstofone{&\omit}\fi
+ \@multicnt#2%
+ \advance\@multicnt-#1%
+ \advance\@multispan\@ne
+ \leaders\hrule\@height \Mag@B\arrayrulewidth\hfill
+ \cr
+ \noalign{\vskip-\Mag@B\arrayrulewidth}}
+
+% For "longtable", input AFTER longtable!
+\@ifundefined{longtable}{}{%
+\def\LT@hlineB{%
+ \noalign{\ifnum0=`}\fi
+ \penalty\@M
+ \futurelet\@let@token\LT@@hlineB}
+\def\LT@@hlineB#1{%
+ \ifx\@let@token\hlineB
+ \global\let\@gtempa\@gobble
+ \gdef\LT@sep{\penalty-\@medpenalty\vskip\doublerulesep}%
+ \else
+ \global\let\@gtempa\@empty
+ \gdef\LT@sep{\penalty-\@lowpenalty\vskip-#1\arrayrulewidth}%
+ \fi
+ \ifnum0=`{\fi}%
+ \multispan\LT@cols
+ \unskip\leaders\hrule\@height #1\arrayrulewidth\hfill\cr
+ \noalign{\LT@sep}%
+ \multispan\LT@cols
+ \unskip\leaders\hrule\@height #1\arrayrulewidth\hfill\cr
+ \noalign{\penalty\@M}%
+ \@gtempa}
+\let\longtable@TMP\longtable
+\def\longtable{%
+\let\hlineB\LT@hlineB
+\longtable@TMP}
+}
+
+% For "mdwtab", input AFTER mdwtab!
+\@ifundefined{hlx}{}{%
+\def\hlxB#1{%
+ \multispan{\tab@columns}%
+ \leaders\hrule\@height #1\arrayrulewidth\hfil%
+ \tab@addruleheight\arrayrulewidth%
+ \cr%
+ \noalign{\ifnum0=`}\fi%
+ \tab@penalty%
+ \futurelet\@let@token\hline@i}
+}
+
+\endinput
diff --git a/Master/texmf-dist/tex/latex/shipunov/cassete.cls b/Master/texmf-dist/tex/latex/shipunov/cassete.cls
new file mode 100644
index 00000000000..afe5a7d9c6b
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/shipunov/cassete.cls
@@ -0,0 +1,91 @@
+% Author: A. Shipunov (plantago@herba.msu.ru)
+
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesClass{cassete}
+ [2008/02/05 v0.2 Labels for audiocassetes]
+
+\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}}
+\ProcessOptions\relax
+\LoadClass{article}
+
+\newcounter{A@Side}
+\newcounter{B@Side}
+
+\def\nohyphens{\hyphenpenalty=10000\exhyphenpenalty=10000\relax}
+
+% Main command
+\def\cassete{\@ifstar{\c@ss}{\c@@ss}}
+
+% Without star -- 5 arguments
+\long\def\c@@ss#1#2#3#4#5{%
+\def\Labe@l{\centering\FormatLabel#1}%
+\def\Text@A{\raggedleft\hspace*{-6mm}\SideA\par\vspace{1mm}\raggedright#2}%
+\def\Text@B{\raggedleft\hspace*{-6mm}\SideB\par\vspace{1mm}\raggedright#3}%
+\def\Text@AD{\raggedright#4}%
+\def\Text@BD{\raggedright#5}%
+\begin{center}
+\unitlength=1mm
+ \begin{picture}(100,105)
+ \put(0,0){\dashbox{2}(100,97){}}
+ \put(8,2){\parbox[b][63mm][t]{39.5mm}{\Text@A}}
+ \put(50,0){\rule{.4pt}{67mm}}
+ \put(58.3,2){\parbox[b][63mm][t]{39.5mm}{\Text@B}}
+ \put(0,80){\rule{100mm}{.4pt}}
+ \put(2,69){\parbox[b][9mm][c]{95mm}{\Labe@l}}
+ \put(0,67){\rule{100mm}{.4pt}}
+ \put(8,80){\parbox[b][15mm][t]{39.5mm}{\Text@AD}}
+ \put(50,80){\rule{.4pt}{17mm}}
+ \put(58.3,80){\parbox[b][15mm][t]{39.5mm}{\Text@BD}}
+\end{picture}
+\end{center}
+\setcounter{A@Side}{0}
+\setcounter{B@Side}{0}}
+
+% With star -- 3 arguments
+\long\def\c@ss#1#2#3{%
+\def\Labe@l{\centering\FormatLabel#1}%
+\def\Text@A{\raggedleft\hspace*{-6mm}\SideA\par\vspace{1mm}\raggedright#2}%
+\def\Text@B{\raggedleft\hspace*{-6mm}\SideB\par\vspace{1mm}\raggedright#3}%
+\begin{center}
+\unitlength=1mm
+ \begin{picture}(99,105)
+ \put(0,0){\dashbox{2}(99,105){}}
+ \put(8,38){\parbox[b][65mm][t]{39mm}{\Text@A}}
+ \put(49.5,38){\rule{.4pt}{67mm}}
+ \put(57.8,38){\parbox[b][65mm][t]{39mm}{\Text@B}}
+ \put(0,38){\rule{99mm}{.4pt}}
+ \put(2,27){\parbox[b][9mm][c]{95mm}{\Labe@l}}
+ \put(0,25){\rule{99mm}{.4pt}}
+\end{picture}
+\end{center}
+\setcounter{A@Side}{0}
+\setcounter{B@Side}{0}}
+
+% For separate songs
+\def\AS{\stepcounter{A@Side}\makebox[0pt][r]{\arabic{A@Side}.\ }}
+\def\BS{\stepcounter{B@Side}\makebox[0pt][r]{\arabic{B@Side}.\ }}
+
+% It is possible to redefine them:
+% Sides
+\def\SideAWord{Side A}
+\def\SideBWord{Side B}
+\def\SideA{\textbf\SideAWord}
+\def\SideB{\textbf\SideBWord}
+% Front edge
+\def\FormatLabel{\large\scshape}
+% Putative headers
+\def\SideT#1{\addvspace{.5mm}\hspace*{-6mm}%
+ \parbox{45mm}{\raggedright#1}\vspace{.5mm}}
+
+% Specific layout
+\topmargin=-14mm
+\headheight=0mm
+\headsep=0mm
+\textheight=255mm
+\footskip=0mm
+\textwidth=190mm
+\oddsidemargin=-14mm
+
+\pagestyle{empty}
+\renewcommand{\baselinestretch}{.92}
+\endinput
diff --git a/Master/texmf-dist/tex/latex/shipunov/classif2.sty b/Master/texmf-dist/tex/latex/shipunov/classif2.sty
new file mode 100644
index 00000000000..c1bd6eedac9
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/shipunov/classif2.sty
@@ -0,0 +1,306 @@
+% Author: Alexey B. Shipunov (plantago@herba.msu.ru)
+
+\ProvidesPackage{classif2}%
+ [2008/02/10 v2.2 Layout for biological classifications]
+
+% Todo: Detailed comments and documentation
+
+% Changes:
+% 2002/04/15 \IHOOK added (for indent justification)
+% 2007/06/23 Infraregnum added
+% 2007/07/26 Improved for numeric ranges
+% 2008/02/06 Abbreviations added
+
+\newif\if@Names
+\DeclareOption{nonames}{\@Namesfalse}
+\DeclareOption{names}{\@Namestrue}
+\ExecuteOptions{names}
+\ProcessOptions
+
+%%%%%%%%%%%%%%%%%%%%%%%%%% Registers %%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\newif\if@Slash
+\newif\if@Repeat
+\newif\ifHide
+\newif\ifNumbers
+\newif\ifGlobal
+\newif\ifDigits
+
+\Numberstrue
+
+\newcount\Base@LevelC@
+\newcount\View@LevelC@
+\newcount\TMC@I
+\newcount\TMC@II
+\newcount\TMC@III
+
+\newdimen\TML@
+\newdimen\IHOOK
+
+\IHOOK=0pt
+
+\newcounter{GlobalLevel}
+\newcounter{Leveliv}
+\newcounter{Leveliii}[Leveliv]
+\newcounter{Levelii}[Leveliii]
+\newcounter{Leveli}[Levelii]
+\newcounter{Level}[Leveli]
+
+%%%%%%%%%%%%%%%%%%%%%%%% Internal tools %%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\@Concatenate#1.#2{#1#2}
+\def\@DeleteSecond#1.#2{#1}
+\def\TMP@{\relax}
+\def\TMP@@{\relax}
+
+%%%%%%%%%%%%%%%%%%%%%%% Level commands %%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\Base@Level#1{\Base@LevelC@=\expandafter\@DeleteSecond#1 %
+ \View@LevelC@=\expandafter\@Concatenate#1 }
+
+\def\LevelName#1#2{\TMC@I=\expandafter\@Concatenate#1 %
+ \expandafter\def\csname Level@TMB@\romannumeral\TMC@I\endcsname{#2 }}
+
+\def\Level{\@ifstar{\Level@S}{\Level@N}}
+
+%\Level*
+\def\Level@S#1.#2 #3 #4 #5\par{{%
+ \reset@font
+ \TMC@I=#1\TMC@II=#2\TMC@III=#1#2%
+ \ifnum\TMC@II>0\def\CF{#1.#2} \else\def\CF{#1} \fi
+ \advance\TMC@I by -\Base@LevelC@
+ \advance\TMC@III by -\View@LevelC@
+ \ifnum\TMC@III<0
+ \ifHide \relax
+ \else
+\Level@Size
+ \Level@Skip
+ \Level@Indent
+ {\Level@Style
+ {\upshape #3 }%
+ #4 }%
+ #5%
+\After@Level\fi
+ \else
+\Level@Size
+ \Level@Skip
+ \Level@Indent
+ {\Level@Style
+ {\upshape #3 }%
+ #4 }%
+ #5%
+\After@Level\fi}}
+
+%\Level
+\def\Level@N#1.#2 #3 #4\par{{
+ \TMP@\TMP@@
+ \reset@font
+ \TMC@I=#1\TMC@II=#2\TMC@III=#1#2%
+ \ifnum\TMC@II>0\def\CF{#1.#2} \else\def\CF{#1} \fi
+ \advance\TMC@I by -\Base@LevelC@
+ \advance\TMC@III by -\View@LevelC@
+ \ifnum\TMC@III<0 \relax
+ \else
+\Level@Size
+ \Level@Skip
+ \Level@Indent
+ {\Level@Style
+ {\upshape \Repeat@Or@Name
+ \Level@Number
+ \ifDigits #1.#2 %
+ \fi}%
+ #3 }%
+ #4%
+\After@Level\fi}}
+
+\def\Level@Size{\ifnum\TMC@I=0 \normalsize
+\else \ifnum\TMC@I=1 \large
+ \else \ifnum\TMC@I=2 \Large
+ \else \ifnum\TMC@I=3 \LARGE
+ \else \ifnum\TMC@I<0 \small
+ \else \huge
+ \fi
+ \fi
+ \fi
+ \fi
+\fi}
+
+\def\Level@Skip{%
+\ifnum \TMC@III<0 \TML@=\parskip
+ \else
+ \TML@=\TMC@III ex%
+ \divide\TML@ by 10%
+\fi
+\ifnum \TMC@I=0%
+ \if@Repeat \nopagebreak\TML@=.5 ex%
+ \fi
+\fi
+\addvspace{\TML@}}
+
+\def\Level@Indent{%
+ \TML@=\TMC@III mm%
+ \hangindent.2\columnwidth
+ \advance\hangindent by -\TML@
+ \advance\hangindent by \IHOOK
+\ifnum\TMC@III>0\else%
+ \settowidth{\TML@}{\Level@Name}%
+ \advance\hangindent by \TML@
+\fi \parindent=\hangindent}
+
+\def\Level@Style{\ifnum\TMC@III<0 \mdseries\itshape
+ \else
+\ifnum\TMC@II=0 \ifnum\TMC@I=0 \mdseries\itshape
+ \else \ifnum\TMC@I=1 \mdseries\scshape
+ \else \bfseries\upshape
+ \fi
+ \fi
+\else \ifnum\TMC@II=2 \mdseries\itshape
+ \else \ifnum\TMC@II=5 \bfseries\upshape
+ \else \ifnum\TMC@II=8 \bfseries\itshape
+ \else \mdseries\upshape
+ \fi
+ \fi
+ \fi
+\fi
+ \fi}
+
+\def\Level@Name{%
+ \advance\TMC@III by \View@LevelC@
+\csname Level@TMB@\romannumeral\TMC@III\endcsname
+ \advance\TMC@III by -\View@LevelC@}
+
+\def\Repeat@Or@Name{%
+\ifnum\TMC@III=0%
+ \if@Repeat\makebox[0pt][r]{\Level@Name
+ \ifNumbers \gdef\TMP@@{\Numberstrue}%
+ \else \gdef\TMP@@{\Numbersfalse}%
+ \fi}\gdef\TMP@{\@Repeatfalse}%
+ \fi
+\else \Level@Name \gdef\TMP@{\@Repeattrue}%
+\fi}
+
+\def\Level@Number{%
+\ifNumbers \ifnum\TMC@III=0
+ \stepcounter{Level}%
+ \arabic{Level}%
+ \ifGlobal \stepcounter{GlobalLevel}%
+ (\arabic{GlobalLevel}). %
+ \else . %
+ \fi
+ \else \ifnum\TMC@II=0
+ \stepcounter{Level\romannumeral\TMC@I}%
+ \arabic{Level\romannumeral\TMC@I}. %
+ \else
+ \fi
+ \fi
+\fi}
+
+\def\After@Level{\par\ifnum\TMC@I>0 \nopagebreak\fi}
+
+\def\CF{}
+
+\def\N#1{[\kern.2em$^{\CF}$\kern-.15em\textit{#1}\kern.15em]}
+
+%%%%%%%%%%%%%%%%%%%%% Environment commands %%%%%%%%%%%%%%%%%%%%%
+
+{\catcode`\/=\active
+\gdef\Start@Slash{%
+\global\catcode`\/=\active
+ \global\let/=\Level}}
+
+\newenvironment{classif}[1]
+ {\Start@Slash\Base@Level{#1}}
+ {\setcounter{GlobalLevel}{0}%
+ \setcounter{Leveliv}{0}%
+ \setcounter{Leveliii}{0}%
+ \setcounter{Levelii}{0}%
+ \setcounter{Leveli}{0}%
+ \setcounter{Level}{0}%
+ \global\catcode`\/12\relax}
+
+%%%%%%%%%%%%%%%%%%%%%%%%% Optional %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\if@Names
+\LevelName{0.5}{Varietes}%
+\LevelName{0.8}{Subspecies}%
+\LevelName{1.0}{Species}%
+\LevelName{1.2}{Subsectio}%
+\LevelName{1.5}{Sectio}%
+\LevelName{1.8}{Subgenus}%
+\LevelName{2.0}{Genus}%
+\LevelName{2.2}{Subtribus}%
+\LevelName{2.5}{Tribus}%
+\LevelName{2.8}{Subfamilia}%
+\LevelName{3.0}{Familia}%
+\LevelName{3.2}{Superfamilia}%
+\LevelName{3.5}{Infraordo}%
+\LevelName{3.8}{Subordo}%
+\LevelName{4.0}{Ordo}%
+\LevelName{4.2}{Superordo}%
+\LevelName{4.5}{Infraclassis}%
+\LevelName{4.8}{Subclassis}%
+\LevelName{5.0}{Classis}%
+\LevelName{5.2}{Superclassis}%
+\LevelName{5.8}{Subphylum}%
+\LevelName{6.0}{Phylum}%
+\LevelName{6.2}{Superphylum}%
+\LevelName{6.5}{Infraregnum}%
+\LevelName{6.8}{Subregnum}%
+\LevelName{7.0}{Regnum}%
+\LevelName{7.2}{Superregnum}%
+\fi
+
+%%%%%%%%%%%%%%%%%%%%%%%% Abbreviations %%%%%%%%%%%%%%%%%%%%%%%%%
+
+\RequirePackage{xspace}
+
+\def\H@Sp{\nobreak%
+ \hskip .5\fontdimen2\font%
+ \@plus .5\fontdimen3\font%
+ \@minus .5\fontdimen4\font%
+\ignorespaces}
+
+\def\Sl{s.\H@Sp l.\xspace}
+\def\Sr{s.\H@Sp str.\xspace}
+\def\Pp{p.\H@Sp p.\xspace}
+\def\Se{stat.\H@Sp m.\xspace}
+\def\St{sed.\H@Sp m.\xspace}
+\def\Is{i.\H@Sp s.\xspace}
+\def\Si{sed.\H@Sp poss.\xspace}
+
+%%%%%%%%%%%%%%%%%%%%%%%% User tools %%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\Comm{\ifnum \TMC@III<0 \TML@=\parskip
+ \else
+ \TML@=\TMC@III ex%
+ \divide\TML@ by 30%
+ \fi
+\\*[\TML@]\normalsize\normalfont}
+
+% Usage:
+% /5.0 Angiospermae \Comm Something
+
+\def\EmptyName#1{\settowidth{\TML@}{#1}\makebox[\TML@]{}}
+
+% Usage (for big indent without `\LevelName'):
+% \LevelName{1.0}{\EmptyName{Species}}
+
+\def\Reset#1{\setcounter{#1}{0}}
+\newcommand\Numerate[2][\arabic]{\stepcounter{#2} #1{#2}.}
+
+% `\Reset' and `\Numerate' usage:
+% \newcounter{Temp}
+% \LevelName{6.2}{Superphylum\Numerate[\Alph]{Temp}}
+% \LevelName{7.0}{Regnum\Numbersfalse\Reset{Temp}}
+% And even like that:
+% \newcounter{Temp}[Leveliii]
+% (main levels are numbered with `Level<i,ii,...>' counters)
+% \LevelName{5.0}{Classis\Numerate[\Roman]{Temp}\Numbersfalse}
+
+% Some goodies:
+\let\K\textit
+\let\INCL\footnote
+\def\KURN#1 #2 {\textit{#1 #2 }}
+\def\IN#1.#2.{#1.\nobreak\hskip.16em #2.~\ignorespaces}
+
+\endinput
diff --git a/Master/texmf-dist/tex/latex/shipunov/drcaps.sty b/Master/texmf-dist/tex/latex/shipunov/drcaps.sty
new file mode 100644
index 00000000000..0c010a19674
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/shipunov/drcaps.sty
@@ -0,0 +1,33 @@
+% Author: Alexey B. Shipunov (plantago@herba.msu.ru)
+
+\ProvidesPackage{drcaps}%
+ [2008/02/05 v0.2 Various drop caps]
+
+\newcount\Cap@
+\newdimen\Cap@D
+
+% Change this command
+\def\formatCap{\normalfont\Huge\bfseries}
+
+% Hanging initial
+\def\RCap#1{\vskip1ex\noindent%
+ {\formatCap#1\hskip.03em}%
+\ignorespaces}
+
+% Margin initial
+\def\HCap#1{\noindent\raisebox{-.75\baselineskip}[0pt][0pt]%
+ {\llap{\formatCap#1\hskip.1em}}%
+\ignorespaces}
+
+% "Normal" initial
+\def\DCap#1{\noindent\setbox0\hbox{\formatCap#1}%
+ \Cap@D\ht0
+ \advance\Cap@D by -1.6ex
+ \raisebox{-\Cap@D}[0pt][0pt]
+ {\makebox[0pt][r]{\copy0\hskip.2\wd0}}%
+ \Cap@\number\ht0
+ \divide\Cap@ by \baselineskip
+ \advance\Cap@ by 1
+\hangindent1.2\wd0 \hangafter-\Cap@ \ignorespaces}
+
+\endinput
diff --git a/Master/texmf-dist/tex/latex/shipunov/etiketka.cls b/Master/texmf-dist/tex/latex/shipunov/etiketka.cls
new file mode 100644
index 00000000000..fea5932fbef
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/shipunov/etiketka.cls
@@ -0,0 +1,143 @@
+% Author: Alexey B. Shipunov (plantago@herba.msu.ru)
+
+\ProvidesClass{etiketka}%
+ [2008/02/16 v2.7 Herbarium labels]
+
+\newif\if@NOL
+\newcounter{etiketka@}
+\newcounter{etiketka@@}
+\newsavebox{\TMP@etiketka}
+
+\DeclareOption{nolines}{\@NOLtrue}
+\DeclareOption{lines}{\@NOLfalse}
+\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}}
+
+\ExecuteOptions{lines}
+\ProcessOptions
+
+\LoadClass{article}
+
+% SPECIFIC LAYOUT
+\topmargin-14mm
+\headheight0mm
+\headsep0mm
+\textheight254mm
+\footskip0mm
+\textwidth190mm
+\oddsidemargin-14mm
+\parskip 2ex plus .5ex minus .2ex
+
+\let\ps@plain\ps@empty
+\ps@empty
+
+\nofiles
+
+\twocolumn
+% Columnsep rule with dots...
+\def\@outputdblcol{%
+ \if@firstcolumn
+ \global \@firstcolumnfalse
+ \global \setbox\@leftcolumn \box\@outputbox
+ \else
+ \global \@firstcolumntrue
+ \setbox\@outputbox \vbox {%
+ \hb@xt@\textwidth {%
+ \hb@xt@\columnwidth {%
+ \box\@leftcolumn \hss}%
+ \hfil
+ \hskip-1.2em\rlap{\vbox to \ht\@outputbox {\leaders \vbox to 1.5em{\vss.\vss}\vfill}}\hskip1.2em
+ \hfil
+ \hb@xt@\columnwidth {%
+ \box\@outputbox \hss}%
+ }%
+ }%
+ \@combinedblfloats
+ \@outputpage
+ \begingroup
+ \@dblfloatplacement
+ \@startdblcolumn
+ \@whilesw\if@fcolmade \fi
+ {\@outputpage
+ \@startdblcolumn}%
+ \endgroup
+ \fi
+}
+
+\if@NOL
+\columnsep0pt
+\columnseprule0pt
+\def\NameStyle{\centering}
+\def\NameRule{\vspace*{.7\baselineskip}}
+\def\EtiketkaRule{\relax}
+\fi
+
+% USEFUL MACROS
+\def\nohyphens{\hyphenpenalty=10000\exhyphenpenalty=10000\relax}
+
+% MAIN ENVIRONMENT
+\newenvironment{etiketka}[1][1]{%
+\setcounter{etiketka@@}{#1}
+\begin{lrbox}{\TMP@etiketka}
+ \begin{minipage}{0.93\columnwidth}
+ {\centering\scshape\HerbName\par}
+ \vspace*{.3cm}
+ \raggedright}
+ {\EtiketkaRule
+ \end{minipage}
+\end{lrbox}
+ \setcounter{etiketka@}{0}
+ \loop\ifnum \value{etiketka@} < \value{etiketka@@}
+ \stepcounter{etiketka@}
+ \usebox{\TMP@etiketka}
+\endgraf\repeat}
+
+% LABEL ELEMENTS
+% Maybe redefined...
+\def\NameStyle{\parindent2em\hangindent2em}
+\def\NameRule{\centerline{\rule{.95\linewidth}{.4pt}}}
+\def\EtiketkaRule{%
+ \vspace*{1em}
+ \hbox to \linewidth{\leaders \hbox to 1.5em{\hss.\hss}\hfill}
+ \vspace*{1.2em}}
+
+% NAMES
+% You can input something as \Name Plantago {} {}
+% Empty line after required!
+\def\Name#1 #2 #3\par{{\NameStyle
+ \textit{#1 #2} #3\par}%
+ \vspace*{-.7\baselineskip}
+ \NameRule
+ \vspace*{.2cm}}
+% Anonimous label
+% Empty line after required!
+\def\Without{\Name {\rule{0pt}{1ex}} {} {}}
+
+% REGION, DISTRICT AND LOCAL ADDRESS
+% Empty line after required!
+\def\Dist#1\par{{\parindent 2em\hangindent 2em#1\par}}
+\def\Loc#1\par{{\parindent 4em\hangindent 4em#1\par}}
+
+% COORDINATES
+\def\CGrad#1#2{#1$^\circ$ \East,
+ #2$^\circ$ \North{}}
+\def\CMin#1#2#3#4{#1$^\circ$~#2$^\prime$ \East,
+ #3$^\circ$~#4$^\prime$ \North{}}
+\def\CSec#1#2#3#4#5#6{#1$^\circ$~#2$^\prime$~#3$^{\prime\prime}$ \East,
+ #4$^\circ$~#5$^\prime$~#6$^{\prime\prime}$ \North{}}
+
+% HABIT, DATE, COLLECTOR(S)
+% Empty line after required!
+\def\Date#1\par{\vspace*{.2cm}\parbox[t]{.3\linewidth}{#1}\hfill}
+% Empty line after required!
+\def\Coll#1\par{\parbox[t]{.5\linewidth}
+ {\raggedright\nohyphens\CollName#1}\par}
+
+% COMMANDS FOR REDEFINITION
+\def\East{E}
+\def\North{N}
+\def\Reg{\relax}
+\def\Habit{\relax}
+\def\HerbName{\relax}
+\def\CollName{\relax}
+
+\endinput
diff --git a/Master/texmf-dist/tex/latex/shipunov/flower.sty b/Master/texmf-dist/tex/latex/shipunov/flower.sty
new file mode 100644
index 00000000000..e7a39acf3e6
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/shipunov/flower.sty
@@ -0,0 +1,85 @@
+% Author: Alexey B. Shipunov (plantago@herba.msu.ru)
+
+\ProvidesPackage{flower}%
+ [2008/02/06 v1.2 Typesetting botanical sings]
+
+% Fonts `wasy' required
+\DeclareRobustCommand\wasyfamily
+ {\fontencoding{U}\fontfamily{wasy}\selectfont}
+\DeclareSymbolFont{WASY}{U}{wasy}{m}{n}
+\SetSymbolFont{WASY}{bold}{U}{wasy}{bx}{n}
+
+% SIGNS BEFORE FORMULA
+% Male
+\DeclareMathSymbol{\Mal}{\mathord}{WASY}{"1A}
+% Female
+\DeclareMathSymbol{\Fem}{\mathord}{WASY}{"19}
+% Hermafroditic
+\def\Herm{\mbox{\ensuremath{\Mal}\kern-.82em\lower.27ex\hbox{\ensuremath{\Fem}}\kern.2em}}
+% Asymmetry
+\DeclareMathSymbol{\Asx}{\mathord}{WASY}{"12}
+% Actinomorphy
+\DeclareMathSymbol{\Act}{\mathord}{WASY}{"42}
+% Zygomorphy
+\DeclareMathSymbol{\Zyg}{\mathord}{symbols}{"22}
+
+% FLORAL UNITS
+% Perianth
+\def\P#1{\mathrm{\PName}_{#1}}
+% Calyx
+\def\K#1{\mathrm{\KName}_{#1}}
+% Corolla
+\def\C#1{\mathrm{\CName}_{#1}}
+% Androceum
+\def\A#1{\mathrm{\AName}_{#1}}
+% Gynoeceum
+\def\G#1{\mathrm{\GName}_{#1}}
+% Exterior ovary = hypogynous flower: $\Ge(2)$ or $\Ge{(2)}$
+\def\Ge{\@ifnextchar(\Ge@B{\Ge@@}}
+ \def\Ge@B(#1){\mathrm{\GName}_{(\underline{#1})}}
+ \def\Ge@@#1{\mathrm{\GName}_{\underline{#1}}}
+% Hemiinferior ovary = hemiepigynous flower
+\def\Gm{\@ifnextchar(\Gm@B{\Gm@@}}
+ \def\Gm@B(#1){\mathrm{\GName}_{\hbox{-}(#1)\hbox{-}}}
+ \def\Gm@@#1{\mathrm{\GName}_{\hbox{-}#1\hbox{-}}}
+% Inferior ovary = epigynous flower
+\def\Gi{\@ifnextchar(\Gi@B{\Gi@@}}
+ \def\Gi@B(#1){\mathrm{\GName}%
+ \raise.25ex\hbox{$_{\scriptstyle(\overline{#1})}$}}
+ \def\Gi@@#1{\mathrm{\GName}%
+ \raise.25ex\hbox{$_{\scriptstyle\overline{#1}}$}}
+% Non-trivial floral units
+\def\?#1#2{\ensuremath{\mathrm{#1}_{#2}}}
+
+% For redefinition:
+\def\PName{P}
+\def\KName{K}
+\def\CName{C}
+\def\AName{A}
+\def\GName{G}
+
+% FLOWER OPERATION NAMES (Shipunov, unpubl.)
+% Fixation
+\newcommand{\Fix}{\mathop{\mathrm{Fix}}\nolimits}
+% Reduction
+\newcommand{\Red}{\mathop{\mathrm{Red}}\nolimits}
+% Connation
+\newcommand{\Con}{\mathop{\mathrm{Con}}\nolimits}
+% Differentiation
+\newcommand{\Dif}{\mathop{\mathrm{Dif}}\nolimits}
+% Homeosis
+\newcommand{\Mov}{\mathop{\mathrm{Mov}}\nolimits}
+
+% PLANT LIFE FORMS
+% Annuals
+\def\Mon{\mbox{\textcircled{\lower.1ex\hbox{$\cdot$}}}}
+% Biennials
+\def\Bin{\mbox{\textcircled{\lower.1ex\hbox{$\cdot\mkern-1mu\cdot$}}}}
+% Perennials
+\def\Per{{\wasyfamily\char"58}}
+% Shrubs
+\def\Shrub{{\wasyfamily\char"59}}
+% Trees
+\def\Tree{{\wasyfamily\char"59}\kern-.58em\lower-.65ex\hbox{-}\kern.15em}
+
+\endinput
diff --git a/Master/texmf-dist/tex/latex/shipunov/isyntax.sty b/Master/texmf-dist/tex/latex/shipunov/isyntax.sty
new file mode 100644
index 00000000000..3163b0d5fa1
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/shipunov/isyntax.sty
@@ -0,0 +1,23 @@
+\ProvidesPackage{isyntax}
+ [2008/02/07 v0.3 Interactive syntax check]
+
+\RequirePackage{ifthen}
+
+\newif\if@SO
+\DeclareOption{syntaxonly}{\@SOtrue}
+\DeclareOption{nosyntaxonly}{\@SOfalse}
+
+\ExecuteOptions{syntaxonly}
+\ProcessOptions
+
+\if@SO
+ \RequirePackage{syntonly}
+ \typeout{}% Screen typeout:
+ \typeout{*********************************************}
+ \typeout{ Do you want only to check syntax of your}
+ \typeout{ document (no dvi/pdf output)? (y/n)}
+ \typein[\isyntax]{*********************************************}
+ \ifthenelse{\equal{\isyntax}{y}}{\syntaxonly}{\relax}
+\fi\relax
+
+\endinput
diff --git a/Master/texmf-dist/tex/latex/shipunov/numerus.sty b/Master/texmf-dist/tex/latex/shipunov/numerus.sty
new file mode 100644
index 00000000000..038ef56ba0f
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/shipunov/numerus.sty
@@ -0,0 +1,207 @@
+% Author: Alexey B. Shipunov (plantago@herba.msu.ru)
+
+\ProvidesPackage{numerus}%
+ [2008/02/07 v1.2 Spell numbers in Russian words]
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% Синтаксис: \propis[необязательный_аргумент]{<число>} %
+% \Propis[необязательный_аргумент]{<число>} %
+% \PROpis[необязательный_аргумент]{<число>} %
+% %
+% Необязательный_аргумент: k (по умолчанию, количественное %
+% числительное) %
+% z (порядковое числительное женского рода %
+% в именительном падеже) %
+% m (порядковое числительное мужского рода %
+% в именительном падеже) %
+% %
+% <Число>: цифра < 999 для порядковых числительных и < 999999 для %
+% количественных, или счетчик, принимающий аналогичные %
+% значения %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% Простой пример: \propis{99} дает `девяносто девять' %
+% %
+% Сложный пример: сначала %
+% \renewcommand*{\thechapter}{\PROpis[z]{\c@chapter}}, %
+% потом (если \c@chapter=99) \textsl{\uppercase{Глава} \thechapter} %
+% дает текст `ГЛАВА ДЕВЯНОСТО ДЕВЯТАЯ' наклонным шрифтом %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\newif\ifKol@
+\newif\ifPor@Zen
+\newcount\Vrem@A
+
+% Все буквы маленькие (`девяносто девять')
+\newcommand*{\propis}[2][k]{%
+ \let\V@\relax
+ \Delat@Propis{#1}{#2}}
+
+% Первая буква большая (`Девяносто девять')
+\newcommand*{\Propis}[2][k]{%
+ \let\V@\Perv@B
+ \let\B@=B%
+ \Delat@Propis{#1}{#2}}
+
+\def\Verh@#1{\uppercase{#1}}
+\def\Perv@B#1{\if B\B@ \Verh@ #1\else
+ #1\fi
+ \let\B@\relax}
+
+% Все буквы большие (`ДЕВЯНОСТО ДЕВЯТЬ') ---
+% \uppercase{\propis{...}} не работает
+\newcommand*{\PROpis}[2][k]{%
+ \let\V@\uppercase
+ \Delat@Propis{#1}{#2}}
+
+% Основная команда
+\def\Delat@Propis#1#2{{%
+ \if k#1\Kol@true\else
+ \if z#1\Por@Zentrue\else
+ \if m#1\relax\else
+ \Oshibka@Arg
+\fi\fi\fi\Test@Propis{#2}}}
+
+% Проверка ошибок и разветвление
+\def\Test@Propis#1{%
+ \ifnum #1<0\Oshibka@Otr\else
+ \ifnum #1<10\Delat@Ed#1\else
+ \ifnum #1<20\expandafter\expandafter\expandafter
+ \Nadz@\expandafter\number#1\else
+ \ifnum #1<100\expandafter\expandafter\expandafter
+ \Delat@Des\expandafter\number#1\else
+ \ifnum #1<1000\expandafter\expandafter\expandafter
+ \Delat@Sot\expandafter\number#1\else
+ \ifnum #1<1000000\ifKol@\Vrem@A#1\advance\Vrem@A1000000
+ \expandafter\expandafter\expandafter
+ \Delat@Tys\expandafter\number\Vrem@A\else
+ \Oshibka@Tys\fi\else
+ \Oshibka@Mill
+\fi\fi\fi\fi\fi\fi}
+
+% Ошибки
+\def\Oshibka@Arg{\PackageWarning{numeral}{%
+`propis' got wrong mandatory argument!^^J%
+Command did not executed}}
+
+\def\Oshibka@Otr{\PackageWarning{numeral}{%
+`propis' got argument < 0!^^J%
+Command did not executed}}
+
+\def\Oshibka@Tys{\PackageWarning{numeral}{%
+Ordinal numerals > 999 not supported :(^^J%
+Command did not executed}}
+
+\def\Ошибка@Mill{\PackageWarning{numeral}{%
+`propis' got argument > 999 999!^^J%
+Command did not executed}}
+
+% Единицы (0...10)
+\def\Delat@Ed#1{\ifKol@\Kol@Ed#1\else
+ \Por@Ed#1\fi}
+
+\def\Kol@Ed#1{\ifcase#1\V@{ноль}\or\V@{один}\or\V@{два}\or
+\V@{три}\or\V@{четыре}\or\V@{пять}\or\V@{шесть}\or\V@{семь}\or
+\V@{восемь}\or\V@{девять}\or\V@{десять}\fi}
+
+\def\Por@Ed#1{\ifcase#1\V@{нулев}\or\V@{перв}\or\V@{втор}\or
+\V@{трет}\or\V@{четверт}\or\V@{пят}\or\V@{шест}\or\V@{седьм}\or
+\V@{восьм}\or\V@{девят}\or\V@{десят}\fi\Ok@Ed#1}
+
+\def\Ok@Ed#1{\ifKol@\relax\else
+ \ifPor@Zen\ifcase#1\V@{ая}\or\V@{ая}\or\V@{ая}\or
+ \V@{ья}\else\V@{ая}\fi\else
+ \ifcase#1\V@{ой}\or\V@{ый}\or\V@{ой}\or
+ \V@{ий}\or\V@{ый}%
+ \or\V@{ый}\or\V@{ой}\or\V@{ой}\or
+ \V@{ой}\or\V@{ый}%
+\fi\fi\fi}
+
+% От 10 до 19
+\def\Nadz@#1#2{\ifcase#2\V@{десят}\or\V@{одиннадцат}\or
+\V@{двенадцат}\or\V@{тринадцат}\or\V@{четырнадцат}\or
+\V@{пятнадцат}\or\V@{шестнадцат}\or\V@{семнадцат}\or
+\V@{восемнадцат}\or\V@{девятнадцат}\fi\Ok@Nadz}
+
+\def\Ok@Nadz{\ifKol@\V@{ь}\else
+ \ifPor@Zen\V@{ая}\else\V@{ый}%
+\fi\fi}
+
+% 20--99
+\def\Delat@Des#1#2{\ifKol@\Kol@Des#1%
+ \ifnum #2=0\relax\else
+ \ \Kol@Ed#2\fi\else
+ \ifnum #2=0\Por@Des#1\else
+ \Kol@Des#1\ \Por@Ed#2%
+\fi\fi}
+
+\def\Kol@Des#1{\ifcase#1\or\or\V@{двадцать}\or\V@{тридцать}\or
+\V@{сорок}\or\V@{пятьдесят}\or\V@{шестьдесят}\or
+\V@{семьдесят}\or\V@{восемьдесят}\or\V@{девяносто}\fi}
+
+\def\Por@Des#1{\ifcase#1\or\or\V@{двадцат}\or\V@{тридцат}\or
+\V@{сороков}\or\V@{пятидесят}\or\V@{шестидесят}\or
+\V@{семидесят}\or\V@{восьмидесят}\or\V@{девяност}\fi\Ok@Des#1}
+
+\def\Ok@Des#1{\ifKol@\relax\else
+ \ifPor@Zen\V@{ая}\else
+ \ifcase#1\or\or\V@{ый}\or\V@{ый}\or\V@{ой}\else
+ \V@{ый}\fi
+\fi\fi}
+
+% 100--999
+\def\Delat@Sot#1#2#3{%
+\ifnum #2=0%
+ \ifnum #3=0%
+ \ifKol@\Kol@Sot#1\else\Por@Sot#1\fi\else
+ \Kol@Sot#1\ \Delat@Ed#3\fi\else
+\Delat@Ост@Sot#1#2#3\fi}
+
+\def\Delat@Ост@Sot#1#2#3{\Kol@Sot#1\ \ifnum#2=1\Nadz@#2#3\else
+ \Delat@Des#2#3\fi}
+
+\def\Kol@Sot#1{\ifcase#1\or\V@{сто}\or\V@{двести}\or
+\V@{триста}\or\V@{четыреста}\or\V@{пятьсот}\or\V@{шестьсот}\or
+\V@{семьсот}\or\V@{восемьсот}\or\V@{девятьсот}\fi}
+
+\def\Por@Sot#1{\ifcase#1\or\V@{сот}\or\V@{двухсот}\or
+\V@{трехсот}\or\V@{четырехсот}\or\V@{пятисот}\or\V@{шестисот}\or
+\V@{семисот}\or\V@{восьмисот}\or\V@{девятисот}\fi\Ok@Nadz}
+
+% 1000--999999 (только для количественных числительных)
+\def\Delat@Tys1#1#2#3#4#5#6{%
+ \Delat@P@Tys{#1}{#2}{#3}%
+\Delat@V@Tys{#4}{#5}{#6}}
+
+% Первые три цифры
+\def\Delat@P@Tys#1#2#3{%
+\ifnum #1=0%
+ \ifnum #2=0%
+ \ifnum #3=1\V@{тысяча}\else
+ \ifnum #3=2\V@{две тысячи}\else
+ \Delat@Ed#3\ \V@{тысяч}%
+\ifcase#3\or\or\or\V@{и}\or\V@{и}\else\relax\fi\fi\fi\else
+ \ifnum #2=1\Nadz@#2#3\ \V@{тысяч}\else
+ \ifnum #3=1\Delat@Des{#2}{0}\V@{одна тысяча}\else
+ \ifnum #3=2\Delat@Des{#2}{0}\V@{две тысячи}\else
+ \Delat@Des#2#3\ \V@{тысяч}%
+\ifcase#3\or\or\or\V@{и}\or\V@{и}\else\relax\fi\fi\fi\fi\fi\else
+ \ifnum #3=1\Delat@Sot{#1}{#2}{0}\V@{одна тысяча}\else
+ \ifnum #3=2\Delat@Sot{#1}{#2}{0}\V@{две тысячи}\else
+\Delat@Sot#1#2#3\ \V@{тысяч}\ifnum #2=1\relax\else
+\ifcase#3\or\or\or\V@{и}\or\V@{и}\else\relax\fi\fi\fi\fi\fi}
+
+% Вторые три цифры
+\def\Delat@V@Tys#1#2#3{%
+\ifnum #1=0%
+ \ifnum #2=0%
+ \ifnum #3=0\relax\else
+ \ \Delat@Ed#3\fi\else
+ \ifnum #2=1\ \Nadz@#2#3\else
+ \ \Delat@Des#2#3\fi\fi\else
+\ \Delat@Sot#1#2#3\fi}
+
+\endinput
diff --git a/Master/texmf-dist/tex/latex/shipunov/punct.sty b/Master/texmf-dist/tex/latex/shipunov/punct.sty
new file mode 100644
index 00000000000..84c3c2692e9
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/shipunov/punct.sty
@@ -0,0 +1,38 @@
+% Author: Alexey B. Shipunov (plantago@herba.msu.ru)
+
+\ProvidesPackage{punct}%
+ [2008/02/06 v0.3 Straight punctuation with italic text]
+
+% Catcodes redefined! May be dangerous...
+
+\def\PUNactive{%
+\let\Z@P=,%
+\let\T@T=.%
+\let\D@V=:%
+\let\T@C=;%
+\let\O@C=(%
+\let\Z@C=)%
+\let\V@L=!%
+\let\V@P=?%
+\catcode`,=\active%
+\catcode`.=\active%
+\catcode`;=\active%
+\catcode`:=\active%
+\catcode`(=\active%
+\catcode`)=\active%
+\catcode`!=\active%
+\catcode`?=\active}
+
+{\PUNactive%
+\gdef,{{\/\reset@font\Z@P}}%
+\gdef.{{\/\reset@font\T@T}}%
+\gdef:{{\/\reset@font\D@V}}%
+\gdef;{{\/\reset@font\T@C}}%
+\gdef({{\/\reset@font\O@C}}%
+\gdef){{\/\reset@font\Z@C}}%
+\gdef!{{\/\reset@font\V@L}}%
+\gdef?{{\/\reset@font\V@P}}}
+
+\def\ITP{\PUNactive\itshape}
+
+\endinput
diff --git a/Master/texmf-dist/tex/latex/shipunov/sltables.sty b/Master/texmf-dist/tex/latex/shipunov/sltables.sty
new file mode 100644
index 00000000000..f75fdfdb15f
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/shipunov/sltables.sty
@@ -0,0 +1,267 @@
+% Modified from the original sources by A. Shipunov (plantago@herba.msu.ru)
+
+\ProvidesPackage{sltables}
+ [2008/02/07 v1.2 S-Tables LaTeX package]
+
+%% Some modifications to LaTeX:
+%% Add LaTeX 2.09 counter
+\newcount\mscount
+%
+% S-Tables Macro v1.0, ACS, TAMU (RANHELP@VENUS.TAMU.EDU)
+%
+% Help Text
+%
+\newhelp\stablestylehelp{You must choose a style between 0 and 3.}%
+\newhelp\stablelinehelp{You should not use special hrules when stretching
+a table.}%
+\newhelp\stablesmultiplehelp{You have tried to place an S-Table inside another
+S-Table. I would recommend not going on.}%
+%
+% Line Thicknesses (Values)
+%
+\newdimen\stablesthinline
+\stablesthinline=0.4pt
+\newdimen\stablesthickline
+\stablesthickline=1pt
+%
+% Border and Internal Line Thicknesses
+%
+\newif\ifstablesborderthin
+\stablesborderthinfalse
+\newif\ifstablesinternalthin
+\stablesinternalthintrue
+\newif\ifstablesomit
+\newif\ifstablemode
+\newif\ifstablesright
+\stablesrightfalse
+%
+% Save Registers
+%
+\newdimen\stablesbaselineskip
+\newdimen\stableslineskip
+\newdimen\stableslineskiplimit
+%
+% Counters
+%
+\newcount\stablesmode
+\newcount\stableslines
+\newcount\stablestemp
+\stablestemp=3
+\newcount\stablescount
+\stablescount=0
+\newcount\stableslinet
+\stableslinet=0
+%
+% Table Style Selection
+%
+% 0 - Centered
+% 1 - Left Justified
+% 2 - Right Justified
+% 3 - Not Justified
+%
+\newcount\stablestyle
+\stablestyle=0
+%
+% Element Buffering Definitions
+%
+\def\stablesleft{\quad\hfil}%
+\def\stablesright{\hfil\quad}%
+%
+% Vertical Bar Activation <== changed!
+%
+{\catcode`\|=\active
+\gdef\Start@Bar{%
+\global\catcode`\|=\active
+ \global\def|{\global\advance\stablesmode by 1&&&}%
+ \global\def\|{\global\advance\stablesmode by 1&\omit\vrule width 0pt%
+\hfil&&}}}%
+%
+%
+% Strut Control
+%
+\newcount\stablestrutsize
+\newbox\stablestrutbox
+\setbox\stablestrutbox=\hbox{\vrule height10pt depth5pt width0pt}
+\def\stablestrut{\relax\ifmmode%
+ \copy\stablestrutbox%
+ \else%
+ \unhcopy\stablestrutbox%
+ \fi}%
+%
+% Misc. Internal Stuff
+%
+\newdimen\stablesborderwidth
+\newdimen\stablesinternalwidth
+\newdimen\stablesdummy
+\newcount\stablesdummyc
+\newif\ifstablesin
+\stablesinfalse
+%
+% Table Macros
+%
+\def\stable{\Start@Bar\stablestart% <== changed!
+ \stablemodetrue%
+ \stablesadj%
+ \halign%
+ \stablesdef}%
+\def\stableto#1{\Start@Bar\stablestart% <== changed!
+ \stablemodefalse%
+ \stablesadj%
+ \halign to #1%
+ \stablesdef}%
+\def\stablesp#1{\Start@Bar\stablestart% <== changed!
+ \stablemodefalse%
+ \stablesadj%
+ \halign spread #1%
+ \stablesdef}%
+\def\stablesadj{%
+ \ifcase\stablestyle%
+ \hbox to \hsize\bgroup\hss\vbox\bgroup%
+ \or%
+ \hbox to \hsize\bgroup\vbox\bgroup%
+ \or%
+ \hbox to \hsize\bgroup\hss\vbox\bgroup%
+ \or%
+ \hbox\bgroup\vbox\bgroup%
+ \else%
+ \errhelp=\stablestylehelp%
+ \errmessage{Invalid style selected, using default}%
+ \hbox to \hsize\bgroup\hss\vbox\bgroup%
+ \fi}%
+\def\stablesend{\egroup%
+ \ifcase\stablestyle%
+ \hss\egroup%
+ \or%
+ \hss\egroup%
+ \or%
+ \egroup%
+ \or%
+ \egroup%
+ \else%
+ \hss\egroup%
+ \fi}%
+\def\stablestart{%
+ \ifstablesin%
+ \errhelp=\stablesmultiplehelp%
+ \errmessage{An S-Table cannot be placed within an S-Table!}%
+ \fi
+ \global\stablesintrue%
+ \global\advance\stablescount by 1%
+ \message{<S-Tables Generating Table \number\stablescount}%
+ \begingroup%
+ \stablestrutsize=\ht\stablestrutbox%
+ \advance\stablestrutsize by \dp\stablestrutbox%
+ \ifstablesborderthin%
+ \stablesborderwidth=\stablesthinline%
+ \else%
+ \stablesborderwidth=\stablesthickline%
+ \fi%
+ \ifstablesinternalthin%
+ \stablesinternalwidth=\stablesthinline%
+ \else%
+ \stablesinternalwidth=\stablesthickline%
+ \fi%
+ \tabskip=0pt%
+ \stablesbaselineskip=\baselineskip%
+ \stableslineskip=\lineskip%
+ \stableslineskiplimit=\lineskiplimit%
+ \offinterlineskip%
+ \def\borderrule{\vrule width \stablesborderwidth}%
+ \def\internalrule{\vrule width \stablesinternalwidth}%
+%
+ \def\thinline{\noalign{\hrule height \stablesthinline}}%
+ \def\thickline{\noalign{\hrule height \stablesthickline}}%
+ \def\trule{\omit\leaders\hrule height \stablesthinline\hfill}%
+ \def\ttrule{\omit\leaders\hrule height \stablesthickline\hfill}%
+ \def\tttrule##1{\omit\leaders\hrule height ##1\hfill}%
+ \def\stablesel{&\omit\global\stablesmode=0%
+ \global\advance\stableslines by 1\borderrule\hfil\cr}%
+ \def\el{\stablesel&}%
+ \def\elt{\stablesel\thinline&}%
+ \def\eltt{\stablesel\thickline&}%
+ \def\elttt##1{\stablesel\noalign{\hrule height ##1}&}%
+ \def\elspec{&\omit\hfil\borderrule\cr\omit\borderrule&%
+ \ifstablemode%
+ \else%
+ \errhelp=\stablelinehelp%
+ \errmessage{Special ruling will not display properly}%
+ \fi}%
+%
+ \def\stmultispan##1{\mscount=##1 \loop\ifnum\mscount>3 \stspan\repeat}%
+ \def\stspan{\span\omit \advance\mscount by -1}%
+%
+ \def\multicolumn##1{\omit\multiply\stablestemp by ##1%
+ \stmultispan{\stablestemp}%
+ \advance\stablesmode by ##1%
+ \advance\stablesmode by -1%
+ \stablestemp=3}%
+ \def\multirow##1{\stablesdummyc=##1\parindent=0pt\setbox0\hbox\bgroup%
+ \aftergroup\emultirow\let\temp=}
+ \def\emultirow{\setbox1\vbox to\stablesdummyc\stablestrutsize%
+ {\hsize\wd0\vfil\box0\vfil}%
+ \ht1=\ht\stablestrutbox%
+ \dp1=\dp\stablestrutbox%
+ \box1}%
+%
+% \def\stvcen##1{\vtop{\vfill\hbox{##1}\vfill}}% Currently does not work!
+ \def\stpar##1{\vtop\bgroup\hsize ##1%
+ \baselineskip=\stablesbaselineskip%
+ \lineskip=\stableslineskip%
+ \lineskiplimit=\stableslineskiplimit\bgroup\aftergroup\estpar\let\temp=}%
+ \def\estpar{\vskip 6pt\egroup}%
+ \def\stparrow##1##2{\stablesdummy=##2%
+ \setbox0=\vtop to ##1\stablestrutsize\bgroup%
+ \hsize\stablesdummy%
+ \baselineskip=\stablesbaselineskip%
+ \lineskip=\stableslineskip%
+ \lineskiplimit=\stableslineskiplimit%
+ \bgroup\vfil\aftergroup\estparrow%
+ \let\temp=}%
+ \def\estparrow{\vfil\egroup%
+ \ht0=\ht\stablestrutbox%
+ \dp0=\dp\stablestrutbox%
+ \wd0=\stablesdummy%
+ \box0}%
+%
+ \def\vt{\global\advance\stablesmode by 1&\omit\vrule width \stablesthinline%
+ \hfil&&}%
+ \def\vtt{\global\advance\stablesmode by 1&\omit\vrule width \stablesthickline%
+ \hfil&&}%
+ \def\vttt##1{\global\advance\stablesmode by 1&\omit\vrule width ##1%
+ \hfil&&}%
+ \def\vtr{\global\advance\stablesmode by 1&\omit\hfil\vrule width%
+ \stablesthinline&&}%
+ \def\vttr{\global\advance\stablesmode by 1&\omit\hfil\vrule width%
+ \stablesthickline&&}%
+ \def\vtttr##1{\global\advance\stablesmode by 1&\omit\hfil\vrule width ##1&&}%
+ \stableslines=0%
+ \stablesomitfalse}
+%
+\def\stablesdef{\bgroup\stablestrut\borderrule##\tabskip=0pt plus 1fil%
+ &\stablesleft##\stablesright%
+ &##\ifstablesright\hfill\fi\internalrule\ifstablesright\else\hfill\fi%
+ \tabskip 0pt&&##\hfil\tabskip=0pt plus 1fil%
+ &\stablesleft##\stablesright%
+ &##\ifstablesright\hfill\fi\internalrule\ifstablesright\else\hfill\fi%
+ \tabskip=0pt\cr%
+ \ifstablesborderthin%
+ \thinline%
+ \else%
+ \thickline%
+ \fi&%
+}%
+\def\endstable{\advance\stableslines by 1\advance\stablesmode by 1% <== changed!
+ \message{- Rows: \number\stableslines, Columns: \number\stablesmode>}%
+ \stablesel%
+ \ifstablesborderthin%
+ \thinline%
+ \else%
+ \thickline%
+ \fi%
+ \egroup\stablesend%
+\endgroup%
+\global\stablesinfalse%
+\global\catcode`\|=12}% <== new!
+\let\endstableto\endstable% <== new!
+\let\endstablesp\endstable% <== new!
+%
diff --git a/Master/texmf-dist/tex/latex/shipunov/starfn.sty b/Master/texmf-dist/tex/latex/shipunov/starfn.sty
new file mode 100644
index 00000000000..e70be056141
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/shipunov/starfn.sty
@@ -0,0 +1,12 @@
+% Author: Alexey B. Shipunov (plantago@herba.msu.ru)
+
+\ProvidesPackage{starfn}%
+ [2008/02/16 v0.4 Footnote marks as stars on each page: Russian typographic tradition]
+
+\RequirePackage{footnpag}
+
+\def\@starsymbol#1{\ensuremath{\ifcase#1\or *\or **\or ***\or
+ *4\or *5\or *6\or *7\or *8\or *9 \else\@ctrerr\fi}}
+
+\renewcommand\thefootnote{\@starsymbol\c@footnote}
+\endinput