summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/t2/etc
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/t2/etc')
-rw-r--r--macros/latex/contrib/t2/etc/amsppt.diff61
-rw-r--r--macros/latex/contrib/t2/etc/citehack.sty88
-rw-r--r--macros/latex/contrib/t2/etc/mathtext.dtx226
-rw-r--r--macros/latex/contrib/t2/etc/mathtext.ins8
-rw-r--r--macros/latex/contrib/t2/etc/misccorr.sty309
-rw-r--r--macros/latex/contrib/t2/etc/rubibtex/README50
-rw-r--r--macros/latex/contrib/t2/etc/rubibtex/rubibtex110
-rw-r--r--macros/latex/contrib/t2/etc/rubibtex/rubibtex.bat5
-rw-r--r--macros/latex/contrib/t2/etc/rubibtex/rubibtex.old80
-rw-r--r--macros/latex/contrib/t2/etc/rubibtex/rubibtex.sed68
-rw-r--r--macros/latex/contrib/t2/etc/ruinpenc67
-rw-r--r--macros/latex/contrib/t2/etc/rumkidx/README44
-rw-r--r--macros/latex/contrib/t2/etc/rumkidx/rumakeindex77
-rw-r--r--macros/latex/contrib/t2/etc/rumkidx/rumkidx1.sed68
-rw-r--r--macros/latex/contrib/t2/etc/rumkidx/rumkidx2.sed1
-rw-r--r--macros/latex/contrib/t2/etc/rumkidx/rumkidx3.sed1
-rw-r--r--macros/latex/contrib/t2/etc/rumkidx/rumkidxd.bat2
-rw-r--r--macros/latex/contrib/t2/etc/rumkidx/rumkidxw.bat2
-rw-r--r--macros/latex/contrib/t2/etc/t2filter.c51
-rw-r--r--macros/latex/contrib/t2/etc/utf-8/test-utf8.tex28
-rw-r--r--macros/latex/contrib/t2/etc/utf-8/utf-8.def68
-rw-r--r--macros/latex/contrib/t2/etc/utf-8/utfcyr.def264
-rw-r--r--macros/latex/contrib/t2/etc/utf-8/utflat.def228
23 files changed, 1906 insertions, 0 deletions
diff --git a/macros/latex/contrib/t2/etc/amsppt.diff b/macros/latex/contrib/t2/etc/amsppt.diff
new file mode 100644
index 0000000000..ce07487559
--- /dev/null
+++ b/macros/latex/contrib/t2/etc/amsppt.diff
@@ -0,0 +1,61 @@
+--- amsppt.sty.orig Sun Feb 2 19:41:23 1997
++++ amsppt.sty Tue Oct 20 12:11:07 1998
+@@ -119,21 +119,21 @@
+ \expandafter\ifx\first@#1-\end-\empty@ \false@\else \true@\fi}
+ \endgroup
+ \message{more fonts,}
+-\font@\tensmc=cmcsc10 \relax
++\font@\tensmc=\fontprefix csc10 \relax
+ \let\sevenex=\tenex % needs special handling in \PSAMSFonts
+-\font@\sevenit=cmti7 \relax
+-\font@\eightrm=cmr8 \relax % preloaded in plain.tex
+-\font@\sixrm=cmr6 \relax % preloaded in plain.tex
++\font@\sevenit=\fontprefix ti7 \relax
++\font@\eightrm=\fontprefix r8 \relax % preloaded in plain.tex
++\font@\sixrm=\fontprefix r6 \relax % preloaded in plain.tex
+ \font@\eighti=cmmi8 \relax \skewchar\eighti='177 % preloaded
+ \font@\sixi=cmmi6 \relax \skewchar\sixi='177 % preloaded
+ \font@\eightsy=cmsy8 \relax \skewchar\eightsy='60 % preloaded
+ \font@\sixsy=cmsy6 \relax \skewchar\sixsy='60 % preloaded
+ \let\eightex=\tenex % needs special handling in \PSAMSFonts
+-\font@\eightbf=cmbx8 \relax % preloaded in plain.tex
+-\font@\sixbf=cmbx6 \relax % preloaded in plain.tex
+-\font@\eightit=cmti8 \relax % preloaded in plain.tex
+-\font@\eightsl=cmsl8 \relax % preloaded in plain.tex
+-\font@\eighttt=cmtt8 \relax % preloaded in plain.tex
++\font@\eightbf=\fontprefix bx8 \relax % preloaded in plain.tex
++\font@\sixbf=\fontprefix bx6 \relax % preloaded in plain.tex
++\font@\eightit=\fontprefix ti8 \relax % preloaded in plain.tex
++\font@\eightsl=\fontprefix sl8 \relax % preloaded in plain.tex
++\font@\eighttt=\fontprefix tt8 \relax % preloaded in plain.tex
+ \let\eightsmc=\nullfont % needs special handling in \PSAMSFonts
+ \newtoks\tenpoint@
+ \def\tenpoint{\normalbaselineskip12\p@
+@@ -223,7 +223,7 @@
+ \else\ifnum##3=8 10 at8pt%
+ \else\ifnum##3=6 7 at6pt%
+ \else ##3\fi\fi\fi\relax}%
+- \font@\eightsmc=cmcsc10 at 8pt
++ \font@\eightsmc=\fontprefix csc10 at 8pt
+ \font@\eightex=cmex10 at 8pt
+ \font@\sevenex=cmex10 at 7pt
+ \PSAMSFontstrue
+@@ -266,7 +266,7 @@
+ \let\loadextrafonts@\empty@
+ \ifPSAMSFonts
+ \else
+- \font@\eightsmc=cmcsc8 \relax
++ \font@\eightsmc=\fontprefix csc8 \relax
+ \font@\eightex=cmex8 \relax
+ \font@\sevenex=cmex7 \relax
+ \fi
+@@ -936,7 +936,8 @@
+ \def\vadjust##1{\holdover{\vadjust@{##1}}}%
+ \def\newpage{\vadjust{\vfill\break}}%
+ }
+-\def\refstyle#1{\uppercase{%
++\ifx\@uppercase\undefined\let\@uppercase\uppercase\fi
++\def\refstyle#1{\@uppercase{%
+ \gdef\refstyle@{#1}%
+ \if#1A\relax \def\keyformat##1{[##1]\enspace\hfil}%
+ \else\if#1B\relax
diff --git a/macros/latex/contrib/t2/etc/citehack.sty b/macros/latex/contrib/t2/etc/citehack.sty
new file mode 100644
index 0000000000..4e44dc5417
--- /dev/null
+++ b/macros/latex/contrib/t2/etc/citehack.sty
@@ -0,0 +1,88 @@
+% This is the file citehack.sty of the T2 package.
+%
+% Allow inputenc-generated characters as references in \cite and \bibitem.
+% Also in \label and \ref.
+
+\ProvidesPackage{citehack}
+
+\let\org@IeC\IeC
+\def\tmp@IeC#1{\string\IeC\space{\string#1 }}
+
+% This is a modified \@bibitem command;
+% we added \let\protect\noexpand, like in \@lbibitem,
+% because the item may include, e.g., \IeC {...}
+% or some other protected commands.
+\def\@bibitem#1{\item\if@filesw {\let\protect\noexpand\immediate\write\@auxout
+ {\string\bibcite{#1}{\the\value{\@listctr}}}}\fi\ignorespaces}
+%\def\@lbibitem[#1]#2{\item[\@biblabel{#1}\hfill]\if@filesw
+% {\let\protect\noexpand\let\IeC\tmp@IeC
+% \immediate
+% \write\@auxout{\string\bibcite{#2}{#1}}}\fi\ignorespaces}
+%\def\@bibitem#1{\item\if@filesw \let\IeC\tmp@IeC\immediate\write\@auxout
+% {\string\bibcite{#1}{\the\value{\@listctr}}}\let\IeC\org@IeC\fi\ignorespaces}
+
+\def\@citex[#1]#2{\let\IeC\tmp@IeC\edef\CH@temp{#2}\let\IeC\org@IeC
+ \let\@citea\@empty
+ \@cite{\@for\@citeb:=\CH@temp\do
+ {\@citea\def\@citea{,\penalty\@m\ }%
+ \edef\@citeb{\expandafter\@firstofone\@citeb\@empty}%
+ \if@filesw\immediate\write\@auxout{\string\citation{\@citeb}}\fi
+ \@ifundefined{b@\@citeb}{\mbox{\reset@font\bfseries ?}%
+ \G@refundefinedtrue
+ \@latex@warning
+ {Citation `\@citeb' on page \thepage \space undefined}}%
+ {\hbox{\csname b@\@citeb\endcsname}}}}{#1}}
+
+\def\nocite#1{\@bsphack
+ \let\IeC\tmp@IeC\edef\CH@temp{#1}\let\IeC\org@IeC
+ \@for\@citeb:=\CH@temp\do{%
+ \edef\@citeb{\expandafter\@firstofone\@citeb}%
+ \if@filesw\immediate\write\@auxout{\string\citation{\@citeb}}\fi
+ \@ifundefined{b@\@citeb}{\G@refundefinedtrue
+ \@latex@warning{Citation `\@citeb' undefined}}{}}%
+ \@esphack}
+
+\def\@newl@bel#1#2#3{\let\IeC\tmp@IeC
+ \@ifundefined{#1@#2}%
+ \relax
+ {\gdef \@multiplelabels {%
+ \@latex@warning@no@line{There were multiply-defined labels}}%
+ \@latex@warning@no@line{Label `#2' multiply defined}}%
+ \global\@namedef{#1@#2}{#3}\let\IeC\org@IeC}
+
+% This is a modified \@testdef command taken from Babel:
+\def\@testdef #1#2#3{%
+ \let\IeC\tmp@IeC
+ \expandafter\let\expandafter\bbl@tempa\csname #1@#2\endcsname
+ \def\bbl@tempb{#3}%
+ \ifx\bbl@tempa\relax\else
+ \edef\bbl@tempa{\expandafter\strip@prefix\meaning\bbl@tempa}\fi
+ \edef\bbl@tempb{\expandafter\strip@prefix\meaning\bbl@tempb}%
+ \ifx \bbl@tempa \bbl@tempb
+ \else \@tempswatrue \fi\let\IeC\org@IeC}
+
+% \ref, \pageref and \label support:
+\DeclareRobustCommand\ref[1]{\let\IeC\tmp@IeC
+ \expandafter\let\expandafter\CH@temp\csname r@#1\endcsname
+ \let\IeC\org@IeC\@setref\CH@temp\@firstoftwo{#1}}
+\DeclareRobustCommand\pageref[1]{\let\IeC\tmp@IeC
+ \expandafter\let\expandafter\CH@temp\csname r@#1\endcsname
+ \let\IeC\org@IeC\@setref\CH@temp\@secondoftwo{#1}}
+\def\label#1{\let\IeC\tmp@IeC
+ \@bsphack\protected@write\@auxout{}{\string\newlabel{#1}{{\@currentlabel}{\thepage}}}\@esphack
+ \let\IeC\org@IeC}
+
+% varioref package support:
+\def\vref@pagenum#1#2{\let\IeC\tmp@IeC
+ \@ifundefined{r@#2}{\@namedef{r@#2}{{??}{??}}}{}%
+ \edef#1{\expandafter\expandafter\expandafter
+ \@cdr\csname r@#2\endcsname
+ \@nil}%
+ \let\IeC\org@IeC}
+\def\vrefpagenum#1#2{\let\IeC\tmp@IeC
+ \@ifundefined{r@#2}%
+ {\G@refundefinedtrue
+ \@latex@warning{Reference `#2' on page \thepage \space
+ undefined}}{}%
+ \let\IeC\org@IeC
+ \vref@pagenum{#1}{#2}}
diff --git a/macros/latex/contrib/t2/etc/mathtext.dtx b/macros/latex/contrib/t2/etc/mathtext.dtx
new file mode 100644
index 0000000000..96ba3baa27
--- /dev/null
+++ b/macros/latex/contrib/t2/etc/mathtext.dtx
@@ -0,0 +1,226 @@
+% \iffalse
+%<*driver>
+\documentclass{ltxdoc}
+\begin{document}
+\DocInput{mathtext.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \begin{macrocode}
+%<*mathtext>
+\ProvidesPackage{mathtext}
+ [2018/04/13 v1.1 transparent text-and-math defs]
+% \end{macrocode}
+%
+% This stuff is intended to be put into the LaTeX kernel.
+% It adds new NFSS user-level command: |\DeclareTextMathSymbol|.
+% It does not touch in any way the previous behavior for encodings
+% which do not use |\DeclareTextMathSymbol|.
+%
+% The symbols defined via |\DeclareTextMathSymbol| work transparently
+% in both text and math mode. And interestingly, they expand a bit
+% faster than `normal' text-only symbols defined via |\DeclareTextSymbol|.
+%
+% This is a redefinition of the |\@@enc@update| defined in
+% |ltfssbas.dtx|. The only change is that we added updating of
+% new commands like |\T2A-tmcmd| to |\@current@tmcmd| or from
+% |\@changed@tmcmd|. These changes are fully backward-compatible,
+% and do not change the previous behavior.
+% \begin{macrocode}
+\def\@@enc@update{%
+ \expandafter\let\csname\cf@encoding-cmd\endcsname\@changed@cmd
+ \expandafter\let\csname\cf@encoding-tmcmd\endcsname\@changed@tmcmd
+ \expandafter\let\csname\f@encoding-cmd\endcsname\@current@cmd
+ \expandafter\let\csname\f@encoding-tmcmd\endcsname\@current@tmcmd
+ \default@T
+ \csname T@\f@encoding\endcsname
+ \csname D@\f@encoding\endcsname
+ \let\enc@update\relax
+ \let\cf@encoding\f@encoding
+}
+% \end{macrocode}
+% This is a new command, |\@current@tmcmd|, which is an analog of
+% |\@current@cmd| for `text and math' symbols.
+% \begin{macrocode}
+\def\@current@tmcmd#1#2#3{%
+ \ifx\protect\@typeset@protect
+ \@tmchar#2#3%
+ \else
+ \noexpand#1%
+ \fi}
+%<!warn>\def\@tmchar#1#2{\if@mmode#2\else#1\fi}
+%<warn>\def\@tmchar#1#2{\if@mmode\math@warn#2\else#1\fi}
+% \end{macrocode}
+% This is a new command, |\@changed@tmcmd|, which is an analog of
+% |\@changed@cmd| for `text and math' symbols.
+% \begin{macrocode}
+\def\@changed@tmcmd#1#2#3{%
+ \ifx\protect\@typeset@protect
+ \@tmchar@#1%
+ \else
+ \noexpand#1%
+ \fi}
+\def\@tmchar@#1{%
+ \if@mmode
+ \expandafter\ifx\csname\cf@encoding math\string#1\endcsname\relax
+ \expandafter\ifx\csname ?math\string#1\endcsname\relax
+ \expandafter\def\csname ?math\string#1\endcsname{%
+ \TextSymbolUnavailable#1%
+ }%
+ \fi
+ \global\expandafter\let
+ \csname\cf@encoding math\string#1\expandafter\endcsname
+ \csname ?math\string#1\endcsname
+ \fi
+%<!warn> \csname\cf@encoding math\string#1%
+%<warn> \expandafter\math@warn\csname\cf@encoding math\string#1%
+ \expandafter\endcsname
+ \else
+ \expandafter\ifx\csname\cf@encoding\string#1\endcsname\relax
+ \expandafter\ifx\csname ?\string#1\endcsname\relax
+ \expandafter\def\csname ?\string#1\endcsname{%
+ \TextSymbolUnavailable#1%
+ }%
+ \fi
+ \global\expandafter\let
+ \csname\cf@encoding \string#1\expandafter\endcsname
+ \csname ?\string#1\endcsname
+ \fi
+ \csname\cf@encoding\string#1%
+ \expandafter\endcsname
+ \fi}
+\expandafter\let\csname?-tmcmd\endcsname\@changed@tmcmd
+% \end{macrocode}
+% We should add initialization of |\|\meta{encoding}|-tmcmd|
+% to be |\@changed@tmcmd| when the new encoding is declared.
+% \begin{macrocode}
+\def\DeclareFontEncoding@#1#2#3{%
+ \expandafter
+ \ifx\csname T@#1\endcsname\relax
+ \def\cdp@elt{\noexpand\cdp@elt}%
+ \xdef\cdp@list{\cdp@list\cdp@elt{#1}%
+ {\default@family}{\default@series}%
+ {\default@shape}}%
+ \expandafter\let\csname#1-cmd\endcsname\@changed@cmd
+ \expandafter\let\csname#1-tmcmd\endcsname\@changed@tmcmd
+% \end{macrocode}
+% 2018 addition to load UTF-8 support file (David Carlisle, for latex3 project)
+% \begin{macrocode}
+ \begingroup
+ \wlog{Now handling font encoding #1 ...}%
+ \lowercase{%
+ \InputIfFileExists{#1enc.dfu}}%
+ {\wlog{... processing UTF-8 mapping file for font %
+ encoding #1}}%
+ {\wlog{... no UTF-8 mapping file for font encoding #1}}%
+ \endgroup
+% \end{macrocode}
+% end of 2018 addition
+% \begin{macrocode}
+ \else
+ \@font@info{Redeclaring font encoding #1}%
+ \fi
+ \global\@namedef{T@#1}{#2}%
+ \global\@namedef{M@#1}{\default@M#3}%
+ \xdef\LastDeclaredEncoding{#1}%
+% \end{macrocode}
+% The following command is specific to the |mathtext| package, i.e.\ is
+% not for `generic' transparent text and math: it declares a symbol font
+% (which could then be redefined if necessary), which is needed to use
+% the |\DeclareTextMathSymbol|.
+% \begin{macrocode}
+ \DeclareSymbolFont{#1letters}{#1}\rmdefault\mddefault\updefault
+ }
+% \end{macrocode}
+%
+% \begin{macro}{\DeclareTextMathSymbol}
+% This is a new user-level NFSS macro. It is intended to be moved
+% to |ltoutenc.dtx| or |ltfssdcl.dtx|.
+%
+% It was written by Werner Lemberg |<wl@gnu.org>|.
+%
+% Parameters are: name, encoding, category, math character class,
+% and slot.
+%
+% \begin{macrocode}
+\def\DeclareTextMathSymbol#1#2#3#4#5{%
+ \expandafter\def\expandafter#1%
+ \expandafter{%
+ \csname#2-tmcmd\expandafter\endcsname
+ \expandafter#1%
+ \csname#2\string#1\expandafter\endcsname
+ \csname#2math\string#1\endcsname
+ }%
+ \expandafter\chardef\csname#2\string#1\endcsname#5\relax
+ \expandafter\DeclareMathSymbol\csname#2math\string#1\endcsname
+ {#3}{#4}{#5}}
+\@onlypreamble\DeclareTextMathSymbol
+% \end{macrocode}
+% \end{macro}
+%
+% The next few lines try to solve the following problem: if the first
+% unexpandable token of a cell in |\halign| (or |\valign|) is a Cyrillic
+% letter, then the look-ahead mechanism searching for possible |\omit|
+% will expand the |\ifmmode| test used in definitions of Cyrillic
+% letters, and e.g.~in the case of the |array| environment which
+% switches to math mode, will return wrong result, which will lead to
+% missing character or incorrect result. We use here some hackery and
+% redefine the |\if@mmode| test for the |\halign| and |\valign| commands
+% (as well as these commands). The really correct fix is possible within
+% e-\TeX\ (so, one should make a support do use the best possible solution,
+% and not only in this case). We ensure to execute this code only once,
+% because otherwise an endless loop will arise (e.g. if both T2A and T2B
+% are loaded in one document), because of |\halign| redefinition.
+% \begin{macrocode}
+\let\if@mmode\ifmmode
+% \end{macrocode}
+% This command stops look-ahead (protection is needed to avoid recursive
+% expansion when |\protected@write| is used inside |\halign|):
+% \begin{macrocode}
+\DeclareRobustCommand\reset@if@mmode{\let\if@mmode\ifmmode}
+\def\if@mmode@{\reset@if@mmode\ifmmode}
+\let\org@halign\halign
+\DeclareRobustCommand\halign{\let\if@mmode\if@mmode@\org@halign}
+% \end{macrocode}
+% wait until textcase and amsmath will not use "fake" |\valign| :-)
+% \begin{macrocode}
+%\let\org@valign\valign
+%\DeclareRobustCommand\valign{\let\if@mmode\if@mmode@\org@valign}
+% \end{macrocode}
+% This is needed to make single Cyrillic letters (without braces) work as
+% upper/lower indices (otherwise, |\let| will confuse \TeX). Do we need to
+% set |\everydisplay| similarly (it seems that not)?
+% \begin{macrocode}
+\everymath\expandafter{\the\everymath\let\if@mmode\ifmmode}
+% \end{macrocode}
+% We redefine some \LaTeX{} text-only commands to work `transparently'
+% in text and math mode.
+% \begin{macrocode}
+\def\DeclareTextSymbol#1#2#3{%
+ \DeclareTextMathSymbol#1{#2}\mathalpha{#2letters}{#3}}
+% \end{macrocode}
+% \begin{macro}{\gobble@math}
+% \begin{macro}{\math@warn}
+% These two commands are used for producing warning message
+% if a symbol declared via |\DeclareTextMathSymbol| command occurs in
+% math mode. This can be used e.g.\ to check that such symbols were not
+% used unintentionally in math mode (say, some Cyrillic letter instead
+% of similarly looking Latin letter; in general, Cyrillic letters are
+% perfectly legal and certainly could be used in math mode).
+% \begin{macrocode}
+%<*warn>
+\DeclareOption{warn}{%
+\edef\reserved@a{\@backslashchar##1\expandafter\@gobble
+ \string\math\@backslashchar}%
+\expandafter\def\expandafter\gobble@math\reserved@a{}%
+\def\math@warn#1{#1\PackageWarning{mathtext}{letter
+ `\expandafter\gobble@math\string#1' used in math mode}}}
+\let\math@warn\@empty
+\ProcessOptions*
+%</warn>
+%</mathtext>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+\endinput
diff --git a/macros/latex/contrib/t2/etc/mathtext.ins b/macros/latex/contrib/t2/etc/mathtext.ins
new file mode 100644
index 0000000000..61a532d2de
--- /dev/null
+++ b/macros/latex/contrib/t2/etc/mathtext.ins
@@ -0,0 +1,8 @@
+\input docstrip
+\keepsilent
+
+\generate{
+ \file{mathtext.sty}{\from{mathtext.dtx}{mathtext,warn}}
+}
+
+\endbatchfile
diff --git a/macros/latex/contrib/t2/etc/misccorr.sty b/macros/latex/contrib/t2/etc/misccorr.sty
new file mode 100644
index 0000000000..e82055ec37
--- /dev/null
+++ b/macros/latex/contrib/t2/etc/misccorr.sty
@@ -0,0 +1,309 @@
+% misccorr package
+% Based on `russcorr' by Serge Lvovski and other sources.
+% This package should be used IN ADDITION to BABEL's `russian' option.
+% Mail bug reports, questions, comments, suggestions to vvv@vsu.ru
+\ProvidesPackage{misccorr}[1999/09/23 v0.1
+ misc corrections for russian typesetting]
+
+\newif\if@longtoc
+\DeclareOption{longtoc}{\@longtoctrue}
+\DeclareOption{shorttoc}{\@longtocfalse}
+\newif\if@indentheadings
+\DeclareOption{indentheadings}{\@indentheadingstrue}
+\DeclareOption{noindentheadings}{\@indentheadingsfalse}
+% Note that the default LaTeX behavior is \@longtocfalse
+\ExecuteOptions{longtoc,noindentheadings}
+\ProcessOptions
+
+% \varkappa, \leqslant, \geqslant, etc (in addition to \varepsilon, \varphi)
+\RequirePackage{amssymb}
+
+\RequirePackage{enumerate}[1999/03/05]
+\g@addto@macro\@enhook{%
+ \def\@tempb{\IeC{\CYRA}}%
+ \def\@tempc{\IeC{\cyra}}%
+ \ifx\@tempb\@entemp\def\@tempa{\@enLabel\Asbuk}\fi
+ \ifx\@tempc\@entemp\def\@tempa{\@enLabel\asbuk}\fi}
+
+% lists
+% 襞信邑 "艺由粕蒙艺磐" 纤艺峙紊 enumerate
+\def\labelenumi{\theenumi)}
+\def\theenumii{\asbuk{enumii}}
+\def\labelenumii{\theenumii)}
+\def\p@enumii{\theenumi}
+\def\labelenumiii{{\bf--}}
+\let\theenumiii\relax
+\def\p@enumiii{\theenumi\theenumii}
+%
+% 泡 诹幸旁赏 姿塘馁琢载 夼再遗 enumerate 囊涨 囊涨 ...
+%
+\def\enumerate{\ifnum \@enumdepth >2% 沦滔 3, 闻 2
+\@toodeep\else
+ \advance\@enumdepth \@ne
+ \edef\@enumctr{enum\romannumeral\the\@enumdepth}\list
+ {\csname label\@enumctr\endcsname}{\usecounter
+ {\@enumctr}\def\makelabel##1{\hss\llap{##1}}}\fi}
+%
+% 襞信邑 闲遗呐躺 纤艺峙紊 rlist
+% 奶 酉谀廖裳 有捎讼, 讼韵屹
+% \item' 握团艺涝友 艺佑松蜕 抡俗镣
+% (釉蚁尬偻 奶 rlist, 幸闲捎钨蜕 奶 rlist[u])
+%
+\@definecounter{rlistctr}
+\newif\if@rlistsnested\@rlistsnestedfalse
+\def\rlist{\@ifnextchar[{\@rlist}{\@rlist[l]}}
+\def\@rlist[#1]{\if u#1\def\@tempa{A}\else\def\@tempa{a}\fi
+ \if@rlistsnested\@toodeep\else
+ \@rlistsnestedtrue
+ \edef\therlistctr{\expandafter\noexpand\csname
+ @\@tempa sbuk\endcsname\noexpand\c@rlistctr}%
+ \list{\labelrlist}{\usecounter
+ {rlistctr}}\fi}
+\let\endrlist\endlist
+\def\labelrlist{\therlistctr)}
+
+% Unfortunately, \@seccntformat is not reflected in toc.
+% Hence, we had to hack up the definition of \@sect a little.
+% In the LaTeX definition of |\@sect| we changed in two places
+% |\numberline{\csname the#1\endcsname}| to
+% |\numberline{\@tocseccntformat{#1}\relax}|
+% and |#7| to |\if@longtoc#8\else#7\fi|.
+% We preferred not to change |\numberline| e.g.
+% |\def\numberline#1{\hb@xt@\@tempdima{#1.\hfil}}|
+\def\@sect#1#2#3#4#5#6[#7]#8{%
+ \ifnum #2>\c@secnumdepth
+ \let\@svsec\@empty
+ \else
+ \refstepcounter{#1}%
+ \protected@edef\@svsec{\@seccntformat{#1}\relax}%
+ \fi
+ \@tempskipa #5\relax
+ \ifdim \@tempskipa>\z@
+ \begingroup
+ #6{%
+ \@hangfrom{\hskip #3\relax\@svsec}%
+ \interlinepenalty \@M #8\@@par}%
+ \endgroup
+ \csname #1mark\endcsname{#7}%
+ \addcontentsline{toc}{#1}{%
+ \ifnum #2>\c@secnumdepth \else
+ \protect\numberline{\@tocseccntformat{#1}\relax}%
+ \fi
+ \if@longtoc#8\else#7\fi}%
+ \else
+ \def\@svsechd{%
+ #6{\hskip #3\relax
+ \@svsec #8}%
+ \csname #1mark\endcsname{#7}%
+ \addcontentsline{toc}{#1}{%
+ \ifnum #2>\c@secnumdepth \else
+ \protect\numberline{\@tocseccntformat{#1}\relax}%
+ \fi
+ \if@longtoc#8\else#7\fi}}%
+ \fi
+ \@xsect{#5}}
+\def\@seccntformat#1{\csname the#1\endcsname.\enskip}
+\def\@tocseccntformat#1{\csname the#1\endcsname.}
+
+\if@indentheadings
+\def\section{\@startsection {section}{1}{\parindent}%
+ {3.5ex \@plus 1ex \@minus .2ex}%
+ {2.3ex \@plus.2ex}%
+ {\reset@font\Large\bfseries}}
+\def\subsection{\@startsection{subsection}{2}{\parindent}%
+ {3.25ex\@plus 1ex \@minus .2ex}%
+ {1.5ex \@plus .2ex}%
+ {\reset@font\large\bfseries}}
+\def\subsubsection{\@startsection{subsubsection}{3}{\parindent}%
+ {3.25ex\@plus 1ex \@minus .2ex}%
+ {1.5ex \@plus .2ex}%
+ {\reset@font\normalsize\bfseries}}
+\fi
+
+\@ifundefined{chapter}{}{%
+\def\postchapter{.}
+\def\chapter{\if@openright\cleardoublepage\else\clearpage\fi
+ \thispagestyle{plain}%
+ \global\@topnum\z@
+ \if@indentheadings\@afterindenttrue
+ \else\@afterindentfalse
+ \fi
+ \secdef\@chapter\@schapter}
+\def\@chapter[#1]#2{\ifnum \c@secnumdepth >\m@ne
+ \if@mainmatter
+ \refstepcounter{chapter}%
+ \typeout{\@chapapp\space\thechapter.}%
+ \addcontentsline{toc}{chapter}%
+ {\protect\numberline{\thechapter
+ \postchapter}%
+ \if@longtoc#2\else#1\fi}%
+ \else
+ \addcontentsline{toc}{chapter}%
+ {\if@longtoc#2\else#1\fi}\fi
+ \else
+ \addcontentsline{toc}{chapter}{\if@longtoc#2\else#1\fi}
+ \fi
+ \chaptermark{#1}%
+ \addtocontents{lof}{\protect\addvspace{10\p@}}%
+ \addtocontents{lot}{\protect\addvspace{10\p@}}%
+ \if@twocolumn
+ \@topnewpage[\@makechapterhead{#2}]%
+ \else
+ \@makechapterhead{#2}%
+ \@afterheading
+ \fi}
+}% end of conditional
+\@ifundefined{chapter}{}{%
+\def\@makechapterhead#1{%
+ \vspace*{50\p@}%
+ {\reset@font \@tempdima\parindent \raggedright
+ \if@indentheadings\advance\leftskip\@tempdima\fi
+ \ifnum \c@secnumdepth >\m@ne
+ \if@mainmatter
+ \huge\bfseries \@chapapp{} \thechapter\postchapter
+ \par\nobreak
+ \vskip 20\p@
+ \fi
+ \fi
+ \interlinepenalty\@M
+ \Huge \bfseries #1\par
+ \nobreak
+ \vskip 40\p@
+ }}%
+\def\@schapter#1{\if@twocolumn
+ \@topnewpage[\@makeschapterhead{#1}]%
+ \else
+ \@makeschapterhead{#1}%
+ \@afterheading
+ \fi}
+\def\@makeschapterhead#1{%
+ \vspace*{50\p@}%
+ {\reset@font \@tempdima\parindent \raggedright
+ \if@indentheadings\advance\leftskip\@tempdima\fi
+ \interlinepenalty\@M
+ \Huge \bfseries #1\par\nobreak
+ \nobreak
+ \vskip 40\p@
+ }}
+}% end of conditional
+
+% captions
+\long\def\@makecaption#1#2{%
+ \vskip\abovecaptionskip
+ \sbox\@tempboxa{#1. #2}%
+ \ifdim \wd\@tempboxa >\hsize
+ #1. #2\par
+% \unhbox\@tempboxa\par
+ \else
+ \global \@minipagefalse
+ \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%
+ \fi
+ \vskip\belowcaptionskip}
+
+\long\def\@caption#1[#2]#3{\par\addcontentsline{\csname
+ ext@#1\endcsname}{#1}{\protect\numberline{\csname
+ the#1\endcsname.}{\ignorespaces #2}}\begingroup
+ \@parboxrestore
+ \normalsize
+ \@makecaption{\csname fnum@#1\endcsname}{\ignorespaces #3}\par
+ \endgroup}
+
+% theorems
+\def\afterthmseparator{.}
+\expandafter\ifx\csname theoremstyle\endcsname\relax
+ \def\@begintheorem#1#2{\trivlist
+ \item[\hskip \labelsep{\bfseries #1\ #2\unskip\afterthmseparator
+ }]\itshape}
+ \def\@opargbegintheorem#1#2#3{\trivlist
+ \item[\hskip \labelsep{\bfseries #1\ #2\ (#3)\afterthmseparator
+ }]\itshape}
+\fi
+
+% class-dependent redefinitions: appendix and running heads
+\@ifundefined{chapter}{% article
+\renewcommand\appendix{\par
+ \setcounter{section}{0}%
+ \setcounter{subsection}{0}%
+ \gdef\thesection{\@Asbuk\c@section}}
+% 子粤滋盼 ".\@aftersepkern" 邢犹 蜗团伊
+\if@twoside
+ \def\ps@headings{%
+ \let\@oddfoot\@empty\let\@evenfoot\@empty
+ \def\@evenhead{\thepage\hfil\slshape\leftmark}%
+ \def\@oddhead{{\slshape\rightmark}\hfil\thepage}%
+ \let\@mkboth\markboth
+ \def\sectionmark##1{%
+ \markboth {\MakeUppercase{%
+ \ifnum \c@secnumdepth >\z@
+ \thesection\postsection\quad
+ \fi
+ ##1}}{}}%
+ \def\subsectionmark##1{%
+ \markright {%
+ \ifnum \c@secnumdepth >\@ne
+ \thesubsection\postsubsection\quad
+ \fi
+ ##1}}}
+\else
+ \def\ps@headings{%
+ \let\@oddfoot\@empty
+ \def\@oddhead{{\slshape\rightmark}\hfil\thepage}%
+ \let\@mkboth\markboth
+ \def\sectionmark##1{%
+ \markright {\MakeUppercase{%
+ \ifnum \c@secnumdepth >\m@ne
+ \thesection\postsection\quad
+ \fi
+ ##1}}}}
+\fi
+}{% not article
+\renewcommand\appendix{\par
+ \setcounter{chapter}{0}%
+ \setcounter{section}{0}%
+ \gdef\@chapapp{\appendixname}%
+ \gdef\thechapter{\@Asbuk\c@chapter}}
+\@ifundefined{abstractname}{}{\let\if@mainmatter\iftrue}% report
+% 淖 幸下盘 邢犹 韵匏 诹团闻钨 瘟 夏晌
+\if@twoside
+ \def\ps@headings{%
+ \let\@oddfoot\@empty\let\@evenfoot\@empty
+ \def\@evenhead{\thepage\hfil\slshape\leftmark}%
+ \def\@oddhead{{\slshape\rightmark}\hfil\thepage}%
+ \let\@mkboth\markboth
+ \def\chaptermark##1{%
+ \markboth {\MakeUppercase{%
+ \ifnum \c@secnumdepth >\m@ne
+ \if@mainmatter
+ \@chapapp\ \thechapter. %
+ \fi
+ \fi
+ ##1}}{}}%
+ \def\sectionmark##1{%
+ \markright {\MakeUppercase{%
+ \ifnum \c@secnumdepth >\z@
+ \thesection. %
+ \fi
+ ##1}}}}
+\else
+ \def\ps@headings{%
+ \let\@oddfoot\@empty
+ \def\@oddhead{{\slshape\rightmark}\hfil\thepage}%
+ \let\@mkboth\markboth
+ \def\chaptermark##1{%
+ \markright {\MakeUppercase{%
+ \ifnum \c@secnumdepth >\m@ne
+ \if@mainmatter
+ \@chapapp\ \thechapter. %
+ \fi
+ \fi
+ ##1}}}}
+\fi
+}
+
+% \cleardoublepage
+% 南铝咨 \ps@empty ( 诹夏蜗 诹团紊 \hbox{} 瘟 \null)
+\def\cleardoublepage{\clearpage\if@twoside \ifodd\c@page\else
+ {\null\ps@empty\newpage}\if@twocolumn{\null\ps@empty\newpage}\fi\fi\fi}
+
+\AtBeginDocument{\ifdim\hsize<\@cclv\p@\pretolerance\m@ne\fi}
+\endinput
diff --git a/macros/latex/contrib/t2/etc/rubibtex/README b/macros/latex/contrib/t2/etc/rubibtex/README
new file mode 100644
index 0000000000..26dbe3aae1
--- /dev/null
+++ b/macros/latex/contrib/t2/etc/rubibtex/README
@@ -0,0 +1,50 @@
+This is `rubibtex', a wrapper for `bibtex' which allows one to use
+Russian letters as item names in bibliography with BIBTEX. It is part
+of the T2 package.
+
+It is assumed that your rusification is based on a T2 package (for
+other rusifications this problem may be absent or may be solved
+differently).
+
+The discussed problem only arises when you are using Russian letters
+as item names (i.e., in the argument of \bibitem command). This could
+generally be avoided: simply name the reference keys of your books
+with Latin letters, --- these reference keys are purely internal LaTeX
+values, and do not appear in the DVI file. There are no problems with
+using Russian letters in book names, and in all other places which go
+to the DVI file. But it _may_ be convenient to use Russian reference
+keys in your BIBTEX database files.
+
+You will need:
+
+1) LaTeX setup based on a T2 package (in particular, the citehack.sty
+ file which allows one to use Russian letters as references)
+
+2) BIBTEX which does not have problems with 8-bit characters
+ (otherwise it is impossible to use such BIBTEX in _any_ rusified TeX
+ environment). Unfortunately, the default bibtex32.exe and bibtex.exe
+ in a emTeX distribution appear to have problems with 8-bit characters.
+ Try using BIBTEX binaries found at CTAN:biblio/bibtex/8-bit.
+
+3) SED binary. It is available on any UNIX box. For DOS you can find
+ it at
+
+ ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/v2gnu/sed118b.zip
+
+ Copy `sed.exe' to a directory contained in %PATH% environment
+ variable.
+
+4) The `rubibtex' script/batch file.
+
+If reference names in your BIB database use russian letters, then run
+`rubibtex' instead of `bibtex' (otherwise you can safely run bibtex).
+
+If you are using DOS, copy `rubibtex.sed' to `\emtex\data' directory,
+and copy `rubibtex.bat' to `\emtex\bin' directory.
+
+If you are using UNIX, copy the `rubibtex' shell script to
+e.g. `/usr/local/bin' directory.
+
+Note: we assume a cp866 encoding (of BIBTEX database files) for DOS
+and koi8-r for UNIX. Change the encoding of `rubibtex.sed' or
+`rubibtex' script otherwise.
diff --git a/macros/latex/contrib/t2/etc/rubibtex/rubibtex b/macros/latex/contrib/t2/etc/rubibtex/rubibtex
new file mode 100644
index 0000000000..3938157328
--- /dev/null
+++ b/macros/latex/contrib/t2/etc/rubibtex/rubibtex
@@ -0,0 +1,110 @@
+#!/bin/sh
+
+# rubibtex, based on the original version contained in the t2 bundle.
+# Thomas Esser, Public Domain.
+
+progname=rubibtex
+tmpdir=${TMPDIR-${TEMP-${TMP-/tmp}}}/$progname.$$
+job=$1
+backup="$tmpdir/orig.aux"
+
+case $job in
+ "")
+ echo "usage: $progname file" >&2
+ exit 1
+esac
+
+if test ! -f "$job.aux"; then
+ echo "$progname: file \`$job.aux' does not exist." >&2
+ exit 1
+fi
+
+trap '
+ rm -rf "$tmpdir"
+ exit 1
+' 1 2 3 7 13 15
+(umask 077; mkdir "$tmpdir") \
+ || { echo "$progname: could not create directory \`$tmpdir'" >&2; exit 1; }
+
+cat <"$job.aux" >"$backup" || {
+ echo "$progname: could not create backup of file \`$job.aux' as \`$backup'." >&2
+ rm -rf "$tmpdir"
+ exit 1
+}
+
+sed '
+ /^\\citation/ {
+ s/\\IeC {\\CYRA }/锟/g
+ s/\\IeC {\\CYRB }/锟/g
+ s/\\IeC {\\CYRV }/锟/g
+ s/\\IeC {\\CYRG }/锟/g
+ s/\\IeC {\\CYRD }/锟/g
+ s/\\IeC {\\CYRE }/锟/g
+ s/\\IeC {\\CYRYO }/锟/g
+ s/\\IeC {\\CYRZH }/锟/g
+ s/\\IeC {\\CYRZ }/锟/g
+ s/\\IeC {\\CYRI }/锟/g
+ s/\\IeC {\\CYRISHRT }/锟/g
+ s/\\IeC {\\CYRK }/锟/g
+ s/\\IeC {\\CYRL }/锟/g
+ s/\\IeC {\\CYRM }/锟/g
+ s/\\IeC {\\CYRN }/锟/g
+ s/\\IeC {\\CYRO }/锟/g
+ s/\\IeC {\\CYRP }/锟/g
+ s/\\IeC {\\CYRR }/锟/g
+ s/\\IeC {\\CYRS }/锟/g
+ s/\\IeC {\\CYRT }/锟/g
+ s/\\IeC {\\CYRU }/锟/g
+ s/\\IeC {\\CYRF }/锟/g
+ s/\\IeC {\\CYRH }/锟/g
+ s/\\IeC {\\CYRC }/锟/g
+ s/\\IeC {\\CYRCH }/锟/g
+ s/\\IeC {\\CYRSH }/锟/g
+ s/\\IeC {\\CYRSHCH }/锟/g
+ s/\\IeC {\\CYRHRDSN }/锟/g
+ s/\\IeC {\\CYRERY }/锟/g
+ s/\\IeC {\\CYRSFTSN }/锟/g
+ s/\\IeC {\\CYREREV }/锟/g
+ s/\\IeC {\\CYRYU }/锟/g
+ s/\\IeC {\\CYRYA }/锟/g
+ s/\\IeC {\\cyra }/锟/g
+ s/\\IeC {\\cyrb }/锟/g
+ s/\\IeC {\\cyrv }/锟/g
+ s/\\IeC {\\cyrg }/锟/g
+ s/\\IeC {\\cyrd }/锟/g
+ s/\\IeC {\\cyre }/锟/g
+ s/\\IeC {\\cyryo }/锟/g
+ s/\\IeC {\\cyrzh }/锟/g
+ s/\\IeC {\\cyrz }/锟/g
+ s/\\IeC {\\cyri }/锟/g
+ s/\\IeC {\\cyrishrt }/锟/g
+ s/\\IeC {\\cyrk }/锟/g
+ s/\\IeC {\\cyrl }/锟/g
+ s/\\IeC {\\cyrm }/锟/g
+ s/\\IeC {\\cyrn }/锟/g
+ s/\\IeC {\\cyro }/锟/g
+ s/\\IeC {\\cyrp }/锟/g
+ s/\\IeC {\\cyrr }/锟/g
+ s/\\IeC {\\cyrs }/锟/g
+ s/\\IeC {\\cyrt }/锟/g
+ s/\\IeC {\\cyru }/锟/g
+ s/\\IeC {\\cyrf }/锟/g
+ s/\\IeC {\\cyrh }/锟/g
+ s/\\IeC {\\cyrc }/锟/g
+ s/\\IeC {\\cyrch }/锟/g
+ s/\\IeC {\\cyrsh }/锟/g
+ s/\\IeC {\\cyrshch }/锟/g
+ s/\\IeC {\\cyrhrdsn }/锟/g
+ s/\\IeC {\\cyrery }/锟/g
+ s/\\IeC {\\cyrsftsn }/锟/g
+ s/\\IeC {\\cyrerev }/锟/g
+ s/\\IeC {\\cyryu }/锟/g
+ s/\\IeC {\\cyrya }/锟/g
+ }
+' <"$backup" >"$job.aux"
+
+bibtex "$job"
+
+cat "$backup" > "$job.aux"
+rm -rf "$tmpdir"
+exit 0
diff --git a/macros/latex/contrib/t2/etc/rubibtex/rubibtex.bat b/macros/latex/contrib/t2/etc/rubibtex/rubibtex.bat
new file mode 100644
index 0000000000..2f0be84cb4
--- /dev/null
+++ b/macros/latex/contrib/t2/etc/rubibtex/rubibtex.bat
@@ -0,0 +1,5 @@
+@echo off
+move %1.aux %TEMP%
+sed.exe -f %EMTEXDIR%\data\rubibtex.sed %TEMP%\%1.aux > %1.aux
+bibtex.exe -c %EMTEXDIR%\bibtex\csf\cp866rus.csf %1
+move %TEMP%\%1.aux .
diff --git a/macros/latex/contrib/t2/etc/rubibtex/rubibtex.old b/macros/latex/contrib/t2/etc/rubibtex/rubibtex.old
new file mode 100644
index 0000000000..8a7f617cde
--- /dev/null
+++ b/macros/latex/contrib/t2/etc/rubibtex/rubibtex.old
@@ -0,0 +1,80 @@
+#!/bin/sh
+
+TEMP=${TMPDIR-/tmp}
+
+mv -f $1.aux $TEMP
+
+sed '
+/^\\citation/ {
+s/\\IeC {\\CYRA }//g
+s/\\IeC {\\CYRB }//g
+s/\\IeC {\\CYRV }//g
+s/\\IeC {\\CYRG }//g
+s/\\IeC {\\CYRD }//g
+s/\\IeC {\\CYRE }//g
+s/\\IeC {\\CYRYO }//g
+s/\\IeC {\\CYRZH }//g
+s/\\IeC {\\CYRZ }//g
+s/\\IeC {\\CYRI }//g
+s/\\IeC {\\CYRISHRT }//g
+s/\\IeC {\\CYRK }//g
+s/\\IeC {\\CYRL }//g
+s/\\IeC {\\CYRM }//g
+s/\\IeC {\\CYRN }//g
+s/\\IeC {\\CYRO }//g
+s/\\IeC {\\CYRP }//g
+s/\\IeC {\\CYRR }//g
+s/\\IeC {\\CYRS }//g
+s/\\IeC {\\CYRT }//g
+s/\\IeC {\\CYRU }//g
+s/\\IeC {\\CYRF }//g
+s/\\IeC {\\CYRH }//g
+s/\\IeC {\\CYRC }//g
+s/\\IeC {\\CYRCH }//g
+s/\\IeC {\\CYRSH }//g
+s/\\IeC {\\CYRSHCH }//g
+s/\\IeC {\\CYRHRDSN }//g
+s/\\IeC {\\CYRERY }//g
+s/\\IeC {\\CYRSFTSN }//g
+s/\\IeC {\\CYREREV }//g
+s/\\IeC {\\CYRYU }//g
+s/\\IeC {\\CYRYA }//g
+s/\\IeC {\\cyra }//g
+s/\\IeC {\\cyrb }//g
+s/\\IeC {\\cyrv }//g
+s/\\IeC {\\cyrg }//g
+s/\\IeC {\\cyrd }//g
+s/\\IeC {\\cyre }//g
+s/\\IeC {\\cyryo }//g
+s/\\IeC {\\cyrzh }//g
+s/\\IeC {\\cyrz }//g
+s/\\IeC {\\cyri }//g
+s/\\IeC {\\cyrishrt }//g
+s/\\IeC {\\cyrk }//g
+s/\\IeC {\\cyrl }//g
+s/\\IeC {\\cyrm }//g
+s/\\IeC {\\cyrn }//g
+s/\\IeC {\\cyro }//g
+s/\\IeC {\\cyrp }//g
+s/\\IeC {\\cyrr }//g
+s/\\IeC {\\cyrs }//g
+s/\\IeC {\\cyrt }//g
+s/\\IeC {\\cyru }//g
+s/\\IeC {\\cyrf }//g
+s/\\IeC {\\cyrh }//g
+s/\\IeC {\\cyrc }//g
+s/\\IeC {\\cyrch }//g
+s/\\IeC {\\cyrsh }//g
+s/\\IeC {\\cyrshch }//g
+s/\\IeC {\\cyrhrdsn }//g
+s/\\IeC {\\cyrery }//g
+s/\\IeC {\\cyrsftsn }//g
+s/\\IeC {\\cyrerev }//g
+s/\\IeC {\\cyryu }//g
+s/\\IeC {\\cyrya }//g
+}
+' $TEMP/$1.aux > $1.aux
+
+bibtex $1
+
+mv -f $TEMP/$1.aux .
diff --git a/macros/latex/contrib/t2/etc/rubibtex/rubibtex.sed b/macros/latex/contrib/t2/etc/rubibtex/rubibtex.sed
new file mode 100644
index 0000000000..099f89a565
--- /dev/null
+++ b/macros/latex/contrib/t2/etc/rubibtex/rubibtex.sed
@@ -0,0 +1,68 @@
+/^\\citation/ {
+s/\\IeC {\\CYRA }//g
+s/\\IeC {\\CYRB }//g
+s/\\IeC {\\CYRV }//g
+s/\\IeC {\\CYRG }//g
+s/\\IeC {\\CYRD }//g
+s/\\IeC {\\CYRE }//g
+s/\\IeC {\\CYRYO }//g
+s/\\IeC {\\CYRZH }//g
+s/\\IeC {\\CYRZ }//g
+s/\\IeC {\\CYRI }//g
+s/\\IeC {\\CYRISHRT }//g
+s/\\IeC {\\CYRK }//g
+s/\\IeC {\\CYRL }//g
+s/\\IeC {\\CYRM }//g
+s/\\IeC {\\CYRN }//g
+s/\\IeC {\\CYRO }//g
+s/\\IeC {\\CYRP }//g
+s/\\IeC {\\CYRR }//g
+s/\\IeC {\\CYRS }//g
+s/\\IeC {\\CYRT }//g
+s/\\IeC {\\CYRU }//g
+s/\\IeC {\\CYRF }//g
+s/\\IeC {\\CYRH }//g
+s/\\IeC {\\CYRC }//g
+s/\\IeC {\\CYRCH }//g
+s/\\IeC {\\CYRSH }//g
+s/\\IeC {\\CYRSHCH }//g
+s/\\IeC {\\CYRHRDSN }//g
+s/\\IeC {\\CYRERY }//g
+s/\\IeC {\\CYRSFTSN }//g
+s/\\IeC {\\CYREREV }//g
+s/\\IeC {\\CYRYU }//g
+s/\\IeC {\\CYRYA }//g
+s/\\IeC {\\cyra }//g
+s/\\IeC {\\cyrb }//g
+s/\\IeC {\\cyrv }//g
+s/\\IeC {\\cyrg }//g
+s/\\IeC {\\cyrd }//g
+s/\\IeC {\\cyre }//g
+s/\\IeC {\\cyryo }//g
+s/\\IeC {\\cyrzh }//g
+s/\\IeC {\\cyrz }//g
+s/\\IeC {\\cyri }//g
+s/\\IeC {\\cyrishrt }//g
+s/\\IeC {\\cyrk }//g
+s/\\IeC {\\cyrl }//g
+s/\\IeC {\\cyrm }//g
+s/\\IeC {\\cyrn }//g
+s/\\IeC {\\cyro }//g
+s/\\IeC {\\cyrp }//g
+s/\\IeC {\\cyrr }//g
+s/\\IeC {\\cyrs }//g
+s/\\IeC {\\cyrt }//g
+s/\\IeC {\\cyru }//g
+s/\\IeC {\\cyrf }//g
+s/\\IeC {\\cyrh }//g
+s/\\IeC {\\cyrc }//g
+s/\\IeC {\\cyrch }//g
+s/\\IeC {\\cyrsh }//g
+s/\\IeC {\\cyrshch }//g
+s/\\IeC {\\cyrhrdsn }//g
+s/\\IeC {\\cyrery }//g
+s/\\IeC {\\cyrsftsn }//g
+s/\\IeC {\\cyrerev }//g
+s/\\IeC {\\cyryu }//g
+s/\\IeC {\\cyrya }//g
+}
diff --git a/macros/latex/contrib/t2/etc/ruinpenc b/macros/latex/contrib/t2/etc/ruinpenc
new file mode 100644
index 0000000000..fc1e4cb524
--- /dev/null
+++ b/macros/latex/contrib/t2/etc/ruinpenc
@@ -0,0 +1,67 @@
+#!/usr/bin/perl -p -i
+s/\\IeC {\\CYRA }//g;
+s/\\IeC {\\cyra }//g;
+s/\\IeC {\\CYRB }//g;
+s/\\IeC {\\cyrb }//g;
+s/\\IeC {\\CYRV }//g;
+s/\\IeC {\\cyrv }//g;
+s/\\IeC {\\CYRG }//g;
+s/\\IeC {\\cyrg }//g;
+s/\\IeC {\\CYRD }//g;
+s/\\IeC {\\cyrd }//g;
+s/\\IeC {\\CYRE }//g;
+s/\\IeC {\\cyre }//g;
+s/\\IeC {\\CYRYO }//g;
+s/\\IeC {\\cyryo }//g;
+s/\\IeC {\\CYRZH }//g;
+s/\\IeC {\\cyrzh }//g;
+s/\\IeC {\\CYRZ }//g;
+s/\\IeC {\\cyrz }//g;
+s/\\IeC {\\CYRI }//g;
+s/\\IeC {\\cyri }//g;
+s/\\IeC {\\CYRISHRT }//g;
+s/\\IeC {\\cyrishrt }//g;
+s/\\IeC {\\CYRK }//g;
+s/\\IeC {\\cyrk }//g;
+s/\\IeC {\\CYRL }//g;
+s/\\IeC {\\cyrl }//g;
+s/\\IeC {\\CYRM }//g;
+s/\\IeC {\\cyrm }//g;
+s/\\IeC {\\CYRN }//g;
+s/\\IeC {\\cyrn }//g;
+s/\\IeC {\\CYRO }//g;
+s/\\IeC {\\cyro }//g;
+s/\\IeC {\\CYRP }//g;
+s/\\IeC {\\cyrp }//g;
+s/\\IeC {\\CYRR }//g;
+s/\\IeC {\\cyrr }//g;
+s/\\IeC {\\CYRS }//g;
+s/\\IeC {\\cyrs }//g;
+s/\\IeC {\\CYRT }//g;
+s/\\IeC {\\cyrt }//g;
+s/\\IeC {\\CYRU }//g;
+s/\\IeC {\\cyru }//g;
+s/\\IeC {\\CYRF }//g;
+s/\\IeC {\\cyrf }//g;
+s/\\IeC {\\CYRH }//g;
+s/\\IeC {\\cyrh }//g;
+s/\\IeC {\\CYRC }//g;
+s/\\IeC {\\cyrc }//g;
+s/\\IeC {\\CYRCH }//g;
+s/\\IeC {\\cyrch }//g;
+s/\\IeC {\\CYRSH }//g;
+s/\\IeC {\\cyrsh }//g;
+s/\\IeC {\\CYRSHCH }//g;
+s/\\IeC {\\cyrshch }//g;
+s/\\IeC {\\CYRHRDSN }//g;
+s/\\IeC {\\cyrhrdsn }//g;
+s/\\IeC {\\CYRERY }//g;
+s/\\IeC {\\cyrery }//g;
+s/\\IeC {\\CYRSFTSN }//g;
+s/\\IeC {\\cyrsftsn }//g;
+s/\\IeC {\\CYREREV }//g;
+s/\\IeC {\\cyrerev }//g;
+s/\\IeC {\\CYRYU }//g;
+s/\\IeC {\\cyryu }//g;
+s/\\IeC {\\CYRYA }//g;
+s/\\IeC {\\cyrya }//g;
diff --git a/macros/latex/contrib/t2/etc/rumkidx/README b/macros/latex/contrib/t2/etc/rumkidx/README
new file mode 100644
index 0000000000..4adc40f214
--- /dev/null
+++ b/macros/latex/contrib/t2/etc/rumkidx/README
@@ -0,0 +1,44 @@
+This is `rumakeindex', a wrapper for `makeindex' which allows one to
+get properly sorted index when Russian letters are used in index
+entries. It is part of the T2 package.
+
+You will need:
+
+1) LaTeX setup based on a T2 package.
+
+2) MAKEINDEX utility which does not have problems with 8-bit characters.
+ mkidx32.exe in a emTeX distribution is Ok, as well as makeindex
+ from web2c distribution.
+
+3) SED binary. It is available on any UNIX box. For DOS you can find
+ it at
+
+ ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/v2gnu/sed118b.zip
+
+ Copy `sed.exe' to a directory contained in %PATH% environment
+ variable.
+
+ Under UNIX, the `tr' utility is also used. It is emulated via the
+ `y' SED command in the DOS scripts.
+
+4) The `rumakeindex' script (or batch file `rumkidxd.bat' under DOS,
+ or `rumkidxw.bat' under Windows).
+
+If you are using the T2 package and are making indices with russian
+letters, then run `rumakeindex' (or `rumkidxd.bat' under DOS, or
+`rumkidxw.bat' under Windows) instead of `makeindex' (or `mkidx32.exe'
+under DOS).
+
+If you are using emTeX under DOS, copy *.sed files to `\emtex\data'
+directory, and copy `*.bat' files to `\emtex\bin' directory.
+
+If you are using UNIX, copy the `rumakeindex' shell script to
+e.g. `/usr/local/bin' directory.
+
+Note: the encoding of generated .ind files is:
+
+ koi8-r for `rumakeindex' (UNIX)
+ cp866 for `rumkidxd.bat' (MS-DOS)
+ cp1251 for `rumkidxw.bat' (MS-Windows)
+
+If you need some other encoding, just change the encoding of scripts.
diff --git a/macros/latex/contrib/t2/etc/rumkidx/rumakeindex b/macros/latex/contrib/t2/etc/rumkidx/rumakeindex
new file mode 100644
index 0000000000..02598d3865
--- /dev/null
+++ b/macros/latex/contrib/t2/etc/rumkidx/rumakeindex
@@ -0,0 +1,77 @@
+#!/bin/sh
+
+BASE=`basename $1 .idx`
+IDX=$BASE.idx
+IND=$BASE.ind
+ILG=$BASE.ilg
+
+sed '
+/^\\indexentry{/ {
+s/\\IeC {\\CYRA }//g
+s/\\IeC {\\cyra }//g
+s/\\IeC {\\CYRB }//g
+s/\\IeC {\\cyrb }//g
+s/\\IeC {\\CYRV }//g
+s/\\IeC {\\cyrv }//g
+s/\\IeC {\\CYRG }//g
+s/\\IeC {\\cyrg }//g
+s/\\IeC {\\CYRD }//g
+s/\\IeC {\\cyrd }//g
+s/\\IeC {\\CYRE }//g
+s/\\IeC {\\cyre }//g
+s/\\IeC {\\CYRYO }//g
+s/\\IeC {\\cyryo }//g
+s/\\IeC {\\CYRZH }//g
+s/\\IeC {\\cyrzh }//g
+s/\\IeC {\\CYRZ }//g
+s/\\IeC {\\cyrz }//g
+s/\\IeC {\\CYRI }//g
+s/\\IeC {\\cyri }//g
+s/\\IeC {\\CYRISHRT }//g
+s/\\IeC {\\cyrishrt }//g
+s/\\IeC {\\CYRK }//g
+s/\\IeC {\\cyrk }//g
+s/\\IeC {\\CYRL }//g
+s/\\IeC {\\cyrl }//g
+s/\\IeC {\\CYRM }//g
+s/\\IeC {\\cyrm }//g
+s/\\IeC {\\CYRN }//g
+s/\\IeC {\\cyrn }//g
+s/\\IeC {\\CYRO }//g
+s/\\IeC {\\cyro }//g
+s/\\IeC {\\CYRP }//g
+s/\\IeC {\\cyrp }//g
+s/\\IeC {\\CYRR }//g
+s/\\IeC {\\cyrr }//g
+s/\\IeC {\\CYRS }//g
+s/\\IeC {\\cyrs }//g
+s/\\IeC {\\CYRT }//g
+s/\\IeC {\\cyrt }//g
+s/\\IeC {\\CYRU }//g
+s/\\IeC {\\cyru }//g
+s/\\IeC {\\CYRF }//g
+s/\\IeC {\\cyrf }//g
+s/\\IeC {\\CYRH }//g
+s/\\IeC {\\cyrh }//g
+s/\\IeC {\\CYRC }//g
+s/\\IeC {\\cyrc }//g
+s/\\IeC {\\CYRCH }//g
+s/\\IeC {\\cyrch }//g
+s/\\IeC {\\CYRSH }//g
+s/\\IeC {\\cyrsh }//g
+s/\\IeC {\\CYRSHCH }//g
+s/\\IeC {\\cyrshch }//g
+s/\\IeC {\\CYRHRDSN }//g
+s/\\IeC {\\cyrhrdsn }//g
+s/\\IeC {\\CYRERY }//g
+s/\\IeC {\\cyrery }//g
+s/\\IeC {\\CYRSFTSN }//g
+s/\\IeC {\\cyrsftsn }//g
+s/\\IeC {\\CYREREV }//g
+s/\\IeC {\\cyrerev }//g
+s/\\IeC {\\CYRYU }//g
+s/\\IeC {\\cyryu }//g
+s/\\IeC {\\CYRYA }//g
+s/\\IeC {\\cyrya }//g
+}' $IDX | makeindex -t $ILG | tr '究懒旅呐魄壬仕掏蜗醒矣哉肿刭谯茌捱噌忏溴骁栝觌祉铒瘃蝮趱鲼' \
+ '崃饴髯缜淠迮常鲋樯晔胨焯硗钗锵鹦蛞笥粼跽嫫枞忝啭嬴攸茑礼' > $IND
diff --git a/macros/latex/contrib/t2/etc/rumkidx/rumkidx1.sed b/macros/latex/contrib/t2/etc/rumkidx/rumkidx1.sed
new file mode 100644
index 0000000000..2c5d00a842
--- /dev/null
+++ b/macros/latex/contrib/t2/etc/rumkidx/rumkidx1.sed
@@ -0,0 +1,68 @@
+/^\\indexentry{/ {
+s/\\IeC {\\CYRA }//g
+s/\\IeC {\\cyra }//g
+s/\\IeC {\\CYRB }//g
+s/\\IeC {\\cyrb }//g
+s/\\IeC {\\CYRV }//g
+s/\\IeC {\\cyrv }//g
+s/\\IeC {\\CYRG }//g
+s/\\IeC {\\cyrg }//g
+s/\\IeC {\\CYRD }//g
+s/\\IeC {\\cyrd }//g
+s/\\IeC {\\CYRE }//g
+s/\\IeC {\\cyre }//g
+s/\\IeC {\\CYRYO }//g
+s/\\IeC {\\cyryo }//g
+s/\\IeC {\\CYRZH }//g
+s/\\IeC {\\cyrzh }//g
+s/\\IeC {\\CYRZ }//g
+s/\\IeC {\\cyrz }//g
+s/\\IeC {\\CYRI }//g
+s/\\IeC {\\cyri }//g
+s/\\IeC {\\CYRISHRT }//g
+s/\\IeC {\\cyrishrt }//g
+s/\\IeC {\\CYRK }//g
+s/\\IeC {\\cyrk }//g
+s/\\IeC {\\CYRL }//g
+s/\\IeC {\\cyrl }//g
+s/\\IeC {\\CYRM }//g
+s/\\IeC {\\cyrm }//g
+s/\\IeC {\\CYRN }//g
+s/\\IeC {\\cyrn }//g
+s/\\IeC {\\CYRO }//g
+s/\\IeC {\\cyro }//g
+s/\\IeC {\\CYRP }//g
+s/\\IeC {\\cyrp }//g
+s/\\IeC {\\CYRR }//g
+s/\\IeC {\\cyrr }//g
+s/\\IeC {\\CYRS }//g
+s/\\IeC {\\cyrs }//g
+s/\\IeC {\\CYRT }//g
+s/\\IeC {\\cyrt }//g
+s/\\IeC {\\CYRU }//g
+s/\\IeC {\\cyru }//g
+s/\\IeC {\\CYRF }//g
+s/\\IeC {\\cyrf }//g
+s/\\IeC {\\CYRH }//g
+s/\\IeC {\\cyrh }//g
+s/\\IeC {\\CYRC }//g
+s/\\IeC {\\cyrc }//g
+s/\\IeC {\\CYRCH }//g
+s/\\IeC {\\cyrch }//g
+s/\\IeC {\\CYRSH }//g
+s/\\IeC {\\cyrsh }//g
+s/\\IeC {\\CYRSHCH }//g
+s/\\IeC {\\cyrshch }//g
+s/\\IeC {\\CYRHRDSN }//g
+s/\\IeC {\\cyrhrdsn }//g
+s/\\IeC {\\CYRERY }//g
+s/\\IeC {\\cyrery }//g
+s/\\IeC {\\CYRSFTSN }//g
+s/\\IeC {\\cyrsftsn }//g
+s/\\IeC {\\CYREREV }//g
+s/\\IeC {\\cyrerev }//g
+s/\\IeC {\\CYRYU }//g
+s/\\IeC {\\cyryu }//g
+s/\\IeC {\\CYRYA }//g
+s/\\IeC {\\cyrya }//g
+}
diff --git a/macros/latex/contrib/t2/etc/rumkidx/rumkidx2.sed b/macros/latex/contrib/t2/etc/rumkidx/rumkidx2.sed
new file mode 100644
index 0000000000..7262921d80
--- /dev/null
+++ b/macros/latex/contrib/t2/etc/rumkidx/rumkidx2.sed
@@ -0,0 +1 @@
+y/究懒旅呐魄壬仕掏蜗醒矣哉肿刭谯茌捱噌忏溴骁栝觌祉铒瘃蝮趱鲼/爜ヰ駟▔⿰獘珜瑣瓗畯瘣鄳釖鈸銛鋾鍠鏃鐦铏闅隂霚鞚頌顭/
diff --git a/macros/latex/contrib/t2/etc/rumkidx/rumkidx3.sed b/macros/latex/contrib/t2/etc/rumkidx/rumkidx3.sed
new file mode 100644
index 0000000000..41653a663b
--- /dev/null
+++ b/macros/latex/contrib/t2/etc/rumkidx/rumkidx3.sed
@@ -0,0 +1 @@
+y/究懒旅呐魄壬仕掏蜗醒矣哉肿刭谯茌捱噌忏溴骁栝觌祉铒瘃蝮趱鲼/类玲骡勉匿佩ǜ奇晴辱砷赎穗天晚晤巷叙疡因芋贼挣嘱作伉蠃邡埯茳蔟撖/
diff --git a/macros/latex/contrib/t2/etc/rumkidx/rumkidxd.bat b/macros/latex/contrib/t2/etc/rumkidx/rumkidxd.bat
new file mode 100644
index 0000000000..0556b6ccaf
--- /dev/null
+++ b/macros/latex/contrib/t2/etc/rumkidx/rumkidxd.bat
@@ -0,0 +1,2 @@
+@echo off
+sed -f %EMTEXDIR%\data\rumkidx1.sed %1.idx | mkidx32 -t %1.ilg | sed -f %EMTEXDIR%\data\rumkidx2.sed > %1.ind
diff --git a/macros/latex/contrib/t2/etc/rumkidx/rumkidxw.bat b/macros/latex/contrib/t2/etc/rumkidx/rumkidxw.bat
new file mode 100644
index 0000000000..f62b6f96b8
--- /dev/null
+++ b/macros/latex/contrib/t2/etc/rumkidx/rumkidxw.bat
@@ -0,0 +1,2 @@
+@echo off
+sed -f %EMTEXDIR%\data\rumkidx1.sed %1.idx | mkidx32 -t %1.ilg | sed -f %EMTEXDIR%\data\rumkidx3.sed > %1.ind
diff --git a/macros/latex/contrib/t2/etc/t2filter.c b/macros/latex/contrib/t2/etc/t2filter.c
new file mode 100644
index 0000000000..6abee5994b
--- /dev/null
+++ b/macros/latex/contrib/t2/etc/t2filter.c
@@ -0,0 +1,51 @@
+/* A simple filter for translating TeX screen output from
+ * internal T2 encoding to koi8-r or cp866. Messages with
+ * overfull boxes will be readable, but context lines (in
+ * case of errors) will become unreadable. :-)
+ *
+ * Compile:
+ * cc -Wall -O2 -s -o t2filter t2filter.c
+ *
+ * Sample usage:
+ * latex filename.tex | t2filter
+ */
+
+#include <unistd.h>
+
+#define BUFSIZE 1024
+
+unsigned char xlt[] = {
+#ifdef MSDOS /* t2 -> cp866 */
+ 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
+ 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,
+ 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,
+ 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,
+ 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7,
+ 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf,
+ 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7,
+ 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef
+#else /* t2 -> koi8-r */
+ 0xe1, 0xe2, 0xf7, 0xe7, 0xe4, 0xe5, 0xf6, 0xfa,
+ 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, 0xf0,
+ 0xf2, 0xf3, 0xf4, 0xf5, 0xe6, 0xe8, 0xe3, 0xfe,
+ 0xfb, 0xfd, 0xff, 0xf9, 0xf8, 0xfc, 0xe0, 0xf1,
+ 0xc1, 0xc2, 0xd7, 0xc7, 0xc4, 0xc5, 0xd6, 0xda,
+ 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0,
+ 0xd2, 0xd3, 0xd4, 0xd5, 0xc6, 0xc8, 0xc3, 0xde,
+ 0xdb, 0xdd, 0xdf, 0xd9, 0xd8, 0xdc, 0xc0, 0xd1
+#endif
+};
+
+int main(void) {
+ unsigned char buf[BUFSIZE];
+ ssize_t n;
+ unsigned char *c;
+
+ for(;;) {
+ if (!(n=read(0,buf,BUFSIZE)))
+ return 0;
+ for (c=buf;c<buf+n;c++)
+ if (*c>=0xc0) *c=xlt[*c-0xc0];
+ write(1,buf,n);
+ }
+}
diff --git a/macros/latex/contrib/t2/etc/utf-8/test-utf8.tex b/macros/latex/contrib/t2/etc/utf-8/test-utf8.tex
new file mode 100644
index 0000000000..58aafd5786
--- /dev/null
+++ b/macros/latex/contrib/t2/etc/utf-8/test-utf8.tex
@@ -0,0 +1,28 @@
+\documentclass{article}
+
+\usepackage[utf-8]{inputenc}
+\usepackage[T2A,T1]{fontenc}
+
+\begin{document}
+
+Czech (膷esky) Dobr媒 den
+
+French (Fran莽ais) Bonjour, Salut
+
+German (Deutsch S眉d) Gr眉脽 Gott
+
+Polish Dzie艅 dobry, Hej
+
+\fontencoding{T2A}\selectfont
+
+Russian (袪褍褋褋泻懈泄) 袟写褉邪胁褋褌胁褍泄褌械!
+
+\fontencoding{T1}\selectfont
+
+Slovak Dobr媒 de艌
+
+Spanish (Espa帽ol) 隆Hola!
+
+Turkish (T眉rk莽e) Merhaba
+
+\end{document}
diff --git a/macros/latex/contrib/t2/etc/utf-8/utf-8.def b/macros/latex/contrib/t2/etc/utf-8/utf-8.def
new file mode 100644
index 0000000000..329b947e2a
--- /dev/null
+++ b/macros/latex/contrib/t2/etc/utf-8/utf-8.def
@@ -0,0 +1,68 @@
+% Copyright 2000 Vladimir Volovich <vvv@vsu.ru>
+\ProvidesFile{utf-8.def}[2000/08/19 v0.1 input encoding file for utf-8]
+
+\makeatletter
+\let\@inpenc@test\relax
+
+\count@192
+\loop
+ \bgroup
+ \uccode`\~\count@
+ \uppercase{%
+ \egroup
+ \def~##1{\csname U2\string~\string##1\endcsname}%
+ }
+\ifnum\count@<223\relax
+ \advance\count@\@ne
+\repeat
+
+\count@224
+\loop
+ \bgroup
+ \uccode`\~\count@
+ \uppercase{%
+ \egroup
+ \def~##1##2{\csname U3\string~\string##1\string##2\endcsname}%
+ }
+\ifnum\count@<239\relax
+ \advance\count@\@ne
+\repeat
+
+% FIXME: define U4, U5, U6
+
+\def\get@code#1#2;{\count@\if x\noexpand#1"\else#1\fi#2\relax}
+
+\def\UnicodeCharacter#1#2{%
+ \get@code#1;%
+ \ifnum\count@<"80\relax
+ \Error
+ \else\ifnum\count@<"800\relax
+ \@tempcnta\count@
+ \divide\count@64
+ \bgroup
+ \advance\count@192
+ \uccode`\~\count@
+ \uppercase{%
+ \egroup
+ \toks@{U2\string~}%
+ }%
+ \multiply\count@64
+ \advance\@tempcnta-\count@
+ \advance\@tempcnta"80
+ \bgroup
+ \uccode`\~\@tempcnta
+ \uppercase{%
+ \egroup
+ \toks@\expandafter{\the\toks@\string~}%
+ }%
+ \expandafter\expandafter\expandafter
+ \def\expandafter\csname\the\toks@\endcsname{#2}%
+ \else
+ \Error
+ \fi\fi
+}
+
+\@ifundefined{ver@utfcyr.def}{\input{utfcyr.def}}\relax
+\@ifundefined{ver@utflat.def}{\input{utflat.def}}\relax
+
+\makeatother
diff --git a/macros/latex/contrib/t2/etc/utf-8/utfcyr.def b/macros/latex/contrib/t2/etc/utf-8/utfcyr.def
new file mode 100644
index 0000000000..2e97931c06
--- /dev/null
+++ b/macros/latex/contrib/t2/etc/utf-8/utfcyr.def
@@ -0,0 +1,264 @@
+% Copyright 2000 Vladimir Volovich <vvv@vsu.ru>
+\ProvidesFile{utfcyr.def}[2000/08/19 v0.1 cyrillic definitions for utf-8]
+
+\UnicodeCharacter{x0300}{\`}
+\UnicodeCharacter{x0301}{\'}
+\UnicodeCharacter{x0302}{\^}
+\UnicodeCharacter{x0303}{\~}
+\UnicodeCharacter{x0304}{\=}
+\UnicodeCharacter{x0306}{\u}
+\UnicodeCharacter{x0307}{\.}
+\UnicodeCharacter{x0308}{\"}
+\UnicodeCharacter{x030A}{\r}
+\UnicodeCharacter{x030B}{\H}
+\UnicodeCharacter{x030C}{\v}
+\UnicodeCharacter{x030F}{\C}
+\UnicodeCharacter{x0311}{\f}
+\UnicodeCharacter{x0323}{\d}
+\UnicodeCharacter{x0327}{\c}
+\UnicodeCharacter{x0328}{\k}
+\UnicodeCharacter{x0331}{\b}
+\UnicodeCharacter{x0400}{\`\CYRE}
+\UnicodeCharacter{x0401}{\CYRYO}
+\UnicodeCharacter{x0402}{\CYRDJE}
+\UnicodeCharacter{x0403}{\'\CYRG}
+\UnicodeCharacter{x0404}{\CYRIE}
+\UnicodeCharacter{x0405}{\CYRDZE}
+\UnicodeCharacter{x0406}{\CYRII}
+\UnicodeCharacter{x0407}{\CYRYI}
+\UnicodeCharacter{x0408}{\CYRJE}
+\UnicodeCharacter{x0409}{\CYRLJE}
+\UnicodeCharacter{x040A}{\CYRNJE}
+\UnicodeCharacter{x040B}{\CYRTSHE}
+\UnicodeCharacter{x040C}{\'\CYRK}
+\UnicodeCharacter{x040D}{\`\CYRI}
+\UnicodeCharacter{x040E}{\CYRUSHRT}
+\UnicodeCharacter{x040F}{\CYRDZHE}
+\UnicodeCharacter{x0410}{\CYRA}
+\UnicodeCharacter{x0411}{\CYRB}
+\UnicodeCharacter{x0412}{\CYRV}
+\UnicodeCharacter{x0413}{\CYRG}
+\UnicodeCharacter{x0414}{\CYRD}
+\UnicodeCharacter{x0415}{\CYRE}
+\UnicodeCharacter{x0416}{\CYRZH}
+\UnicodeCharacter{x0417}{\CYRZ}
+\UnicodeCharacter{x0418}{\CYRI}
+\UnicodeCharacter{x0419}{\CYRISHRT}
+\UnicodeCharacter{x041A}{\CYRK}
+\UnicodeCharacter{x041B}{\CYRL}
+\UnicodeCharacter{x041C}{\CYRM}
+\UnicodeCharacter{x041D}{\CYRN}
+\UnicodeCharacter{x041E}{\CYRO}
+\UnicodeCharacter{x041F}{\CYRP}
+\UnicodeCharacter{x0420}{\CYRR}
+\UnicodeCharacter{x0421}{\CYRS}
+\UnicodeCharacter{x0422}{\CYRT}
+\UnicodeCharacter{x0423}{\CYRU}
+\UnicodeCharacter{x0424}{\CYRF}
+\UnicodeCharacter{x0425}{\CYRH}
+\UnicodeCharacter{x0426}{\CYRC}
+\UnicodeCharacter{x0427}{\CYRCH}
+\UnicodeCharacter{x0428}{\CYRSH}
+\UnicodeCharacter{x0429}{\CYRSHCH}
+\UnicodeCharacter{x042A}{\CYRHRDSN}
+\UnicodeCharacter{x042B}{\CYRERY}
+\UnicodeCharacter{x042C}{\CYRSFTSN}
+\UnicodeCharacter{x042D}{\CYREREV}
+\UnicodeCharacter{x042E}{\CYRYU}
+\UnicodeCharacter{x042F}{\CYRYA}
+\UnicodeCharacter{x0430}{\cyra}
+\UnicodeCharacter{x0431}{\cyrb}
+\UnicodeCharacter{x0432}{\cyrv}
+\UnicodeCharacter{x0433}{\cyrg}
+\UnicodeCharacter{x0434}{\cyrd}
+\UnicodeCharacter{x0435}{\cyre}
+\UnicodeCharacter{x0436}{\cyrzh}
+\UnicodeCharacter{x0437}{\cyrz}
+\UnicodeCharacter{x0438}{\cyri}
+\UnicodeCharacter{x0439}{\cyrishrt}
+\UnicodeCharacter{x043A}{\cyrk}
+\UnicodeCharacter{x043B}{\cyrl}
+\UnicodeCharacter{x043C}{\cyrm}
+\UnicodeCharacter{x043D}{\cyrn}
+\UnicodeCharacter{x043E}{\cyro}
+\UnicodeCharacter{x043F}{\cyrp}
+\UnicodeCharacter{x0440}{\cyrr}
+\UnicodeCharacter{x0441}{\cyrs}
+\UnicodeCharacter{x0442}{\cyrt}
+\UnicodeCharacter{x0443}{\cyru}
+\UnicodeCharacter{x0444}{\cyrf}
+\UnicodeCharacter{x0445}{\cyrh}
+\UnicodeCharacter{x0446}{\cyrc}
+\UnicodeCharacter{x0447}{\cyrch}
+\UnicodeCharacter{x0448}{\cyrsh}
+\UnicodeCharacter{x0449}{\cyrshch}
+\UnicodeCharacter{x044A}{\cyrhrdsn}
+\UnicodeCharacter{x044B}{\cyrery}
+\UnicodeCharacter{x044C}{\cyrsftsn}
+\UnicodeCharacter{x044D}{\cyrerev}
+\UnicodeCharacter{x044E}{\cyryu}
+\UnicodeCharacter{x044F}{\cyrya}
+\UnicodeCharacter{x0450}{\`\cyre}
+\UnicodeCharacter{x0451}{\cyryo}
+\UnicodeCharacter{x0452}{\cyrdje}
+\UnicodeCharacter{x0453}{\'\cyrg}
+\UnicodeCharacter{x0454}{\cyrie}
+\UnicodeCharacter{x0455}{\cyrdze}
+\UnicodeCharacter{x0456}{\cyrii}
+\UnicodeCharacter{x0457}{\cyryi}
+\UnicodeCharacter{x0458}{\cyrje}
+\UnicodeCharacter{x0459}{\cyrlje}
+\UnicodeCharacter{x045A}{\cyrnje}
+\UnicodeCharacter{x045B}{\cyrtshe}
+\UnicodeCharacter{x045C}{\'\cyrk}
+\UnicodeCharacter{x045D}{\`\cyri}
+\UnicodeCharacter{x045E}{\cyrushrt}
+\UnicodeCharacter{x045F}{\cyrdzhe}
+\UnicodeCharacter{x0460}{\CYROMEGA}
+\UnicodeCharacter{x0461}{\cyromega}
+\UnicodeCharacter{x0462}{\CYRYAT}
+\UnicodeCharacter{x0463}{\cyryat}
+\UnicodeCharacter{x0464}{\CYRIOTE}
+\UnicodeCharacter{x0465}{\cyriote}
+\UnicodeCharacter{x0466}{\CYRLYUS}
+\UnicodeCharacter{x0467}{\cyrlyus}
+\UnicodeCharacter{x0468}{\CYRIOTLYUS}
+\UnicodeCharacter{x0469}{\cyriotlyus}
+\UnicodeCharacter{x046A}{\CYRBYUS}
+\UnicodeCharacter{x046B}{\cyrbyus}
+\UnicodeCharacter{x046C}{\CYRIOTBYUS}
+\UnicodeCharacter{x046D}{\cyriotbyus}
+\UnicodeCharacter{x046E}{\CYRKSI}
+\UnicodeCharacter{x046F}{\cyrksi}
+\UnicodeCharacter{x0470}{\CYRPSI}
+\UnicodeCharacter{x0471}{\cyrpsi}
+\UnicodeCharacter{x0472}{\CYRFITA}
+\UnicodeCharacter{x0473}{\cyrfita}
+\UnicodeCharacter{x0474}{\CYRIZH}
+\UnicodeCharacter{x0475}{\cyrizh}
+\UnicodeCharacter{x0476}{\C\CYRIZH}
+\UnicodeCharacter{x0477}{\C\cyrizh}
+\UnicodeCharacter{x0478}{\CYRUK}
+\UnicodeCharacter{x0479}{\cyruk}
+\UnicodeCharacter{x047A}{\CYROMEGARND}
+\UnicodeCharacter{x047B}{\cyromegarnd}
+\UnicodeCharacter{x047C}{\CYROMEGATITLO}
+\UnicodeCharacter{x047D}{\cyromegatitlo}
+\UnicodeCharacter{x047E}{\CYROT}
+\UnicodeCharacter{x047F}{\cyrot}
+\UnicodeCharacter{x0480}{\CYRKOPPA}
+\UnicodeCharacter{x0481}{\cyrkoppa}
+\UnicodeCharacter{x0482}{\cyrthousands}
+\UnicodeCharacter{x0488}{\cyrhundredthousands}
+\UnicodeCharacter{x0489}{\cyrmillions}
+\UnicodeCharacter{x048C}{\CYRSEMISFTSN}
+\UnicodeCharacter{x048D}{\cyrsemisftsn}
+\UnicodeCharacter{x048E}{\CYRRTICK}
+\UnicodeCharacter{x048F}{\cyrrtick}
+\UnicodeCharacter{x0490}{\CYRGUP}
+\UnicodeCharacter{x0491}{\cyrgup}
+\UnicodeCharacter{x0492}{\CYRGHCRS}
+\UnicodeCharacter{x0493}{\cyrghcrs}
+\UnicodeCharacter{x0494}{\CYRGHK}
+\UnicodeCharacter{x0495}{\cyrghk}
+\UnicodeCharacter{x0496}{\CYRZHDSC}
+\UnicodeCharacter{x0497}{\cyrzhdsc}
+\UnicodeCharacter{x0498}{\CYRZDSC}
+\UnicodeCharacter{x0499}{\cyrzdsc}
+\UnicodeCharacter{x049A}{\CYRKDSC}
+\UnicodeCharacter{x049B}{\cyrkdsc}
+\UnicodeCharacter{x049C}{\CYRKVCRS}
+\UnicodeCharacter{x049D}{\cyrkvcrs}
+\UnicodeCharacter{x049E}{\CYRKHCRS}
+\UnicodeCharacter{x049F}{\cyrkhcrs}
+\UnicodeCharacter{x04A0}{\CYRKBEAK}
+\UnicodeCharacter{x04A1}{\cyrkbeak}
+\UnicodeCharacter{x04A2}{\CYRNDSC}
+\UnicodeCharacter{x04A3}{\cyrndsc}
+\UnicodeCharacter{x04A4}{\CYRNG}
+\UnicodeCharacter{x04A5}{\cyrng}
+\UnicodeCharacter{x04A6}{\CYRPHK}
+\UnicodeCharacter{x04A7}{\cyrphk}
+\UnicodeCharacter{x04A8}{\CYRABHHA}
+\UnicodeCharacter{x04A9}{\cyrabhha}
+\UnicodeCharacter{x04AA}{\CYRSDSC}
+\UnicodeCharacter{x04AB}{\cyrsdsc}
+\UnicodeCharacter{x04AC}{\CYRTDSC}
+\UnicodeCharacter{x04AD}{\cyrtdsc}
+\UnicodeCharacter{x04AE}{\CYRY}
+\UnicodeCharacter{x04AF}{\cyry}
+\UnicodeCharacter{x04B0}{\CYRYHCRS}
+\UnicodeCharacter{x04B1}{\cyryhcrs}
+\UnicodeCharacter{x04B2}{\CYRHDSC}
+\UnicodeCharacter{x04B3}{\cyrhdsc}
+\UnicodeCharacter{x04B4}{\CYRTETSE}
+\UnicodeCharacter{x04B5}{\cyrtetse}
+\UnicodeCharacter{x04B6}{\CYRCHRDSC}
+\UnicodeCharacter{x04B7}{\cyrchrdsc}
+\UnicodeCharacter{x04B8}{\CYRCHVCRS}
+\UnicodeCharacter{x04B9}{\cyrchvcrs}
+\UnicodeCharacter{x04BA}{\CYRSHHA}
+\UnicodeCharacter{x04BB}{\cyrshha}
+\UnicodeCharacter{x04BC}{\CYRABHCH}
+\UnicodeCharacter{x04BD}{\cyrabhch}
+\UnicodeCharacter{x04BE}{\CYRABHCHDSC}
+\UnicodeCharacter{x04BF}{\cyrabhchdsc}
+\UnicodeCharacter{x04C0}{\CYRpalochka}
+\UnicodeCharacter{x04C1}{\U\CYRZH}
+\UnicodeCharacter{x04C2}{\U\cyrzh}
+\UnicodeCharacter{x04C3}{\CYRKHK}
+\UnicodeCharacter{x04C4}{\cyrkhk}
+\UnicodeCharacter{x04C7}{\CYRNHK}
+\UnicodeCharacter{x04C8}{\cyrnhk}
+\UnicodeCharacter{x04CB}{\CYRCHLDSC}
+\UnicodeCharacter{x04CC}{\cyrchldsc}
+\UnicodeCharacter{x04D0}{\U\CYRA}
+\UnicodeCharacter{x04D1}{\U\cyra}
+\UnicodeCharacter{x04D2}{\"\CYRA}
+\UnicodeCharacter{x04D3}{\"\cyra}
+\UnicodeCharacter{x04D4}{\CYRAE}
+\UnicodeCharacter{x04D5}{\cyrae}
+\UnicodeCharacter{x04D6}{\U\CYRE}
+\UnicodeCharacter{x04D7}{\U\cyre}
+\UnicodeCharacter{x04D8}{\CYRSCHWA}
+\UnicodeCharacter{x04D9}{\cyrschwa}
+\UnicodeCharacter{x04DA}{\"\CYRSCHWA}
+\UnicodeCharacter{x04DB}{\"\cyrschwa}
+\UnicodeCharacter{x04DC}{\"\CYRZH}
+\UnicodeCharacter{x04DD}{\"\cyrzh}
+\UnicodeCharacter{x04DE}{\"\CYRZ}
+\UnicodeCharacter{x04DF}{\"\cyrz}
+\UnicodeCharacter{x04E0}{\CYRABHDZE}
+\UnicodeCharacter{x04E1}{\cyrabhdze}
+\UnicodeCharacter{x04E2}{\=\CYRI}
+\UnicodeCharacter{x04E3}{\=\cyri}
+\UnicodeCharacter{x04E4}{\"\CYRI}
+\UnicodeCharacter{x04E5}{\"\cyri}
+\UnicodeCharacter{x04E6}{\"\CYRO}
+\UnicodeCharacter{x04E7}{\"\cyro}
+\UnicodeCharacter{x04E8}{\CYROTLD}
+\UnicodeCharacter{x04E9}{\cyrotld}
+\UnicodeCharacter{x04EA}{\"\CYROTLD}
+\UnicodeCharacter{x04EB}{\"\cyrotld}
+\UnicodeCharacter{x04EC}{\"\CYREREV}
+\UnicodeCharacter{x04ED}{\"\cyrerev}
+\UnicodeCharacter{x04EE}{\=\CYRU}
+\UnicodeCharacter{x04EF}{\=\cyru}
+\UnicodeCharacter{x04F0}{\"\CYRU}
+\UnicodeCharacter{x04F1}{\"\cyru}
+\UnicodeCharacter{x04F2}{\H\CYRU}
+\UnicodeCharacter{x04F3}{\H\cyru}
+\UnicodeCharacter{x04F4}{\"\CYRCH}
+\UnicodeCharacter{x04F5}{\"\cyrch}
+\UnicodeCharacter{x04F8}{\"\CYRERY}
+\UnicodeCharacter{x04F9}{\"\cyrery}
+%\UnicodeCharacter{x2116}{\textnumero}
+%\UnicodeCharacter{x2329}{\cyrlangle}
+%\UnicodeCharacter{x232A}{\cyrrangle}
+%\UnicodeCharacter{xF6C4}{\cyrvarg}
+%\UnicodeCharacter{xF6C5}{\cyrvarb}
+%\UnicodeCharacter{xF6C6}{\cyrvard}
+%\UnicodeCharacter{xF6C7}{\cyrvarp}
+%\UnicodeCharacter{xF6C8}{\cyrvart}
+
+\endinput
diff --git a/macros/latex/contrib/t2/etc/utf-8/utflat.def b/macros/latex/contrib/t2/etc/utf-8/utflat.def
new file mode 100644
index 0000000000..3dfc1c55e9
--- /dev/null
+++ b/macros/latex/contrib/t2/etc/utf-8/utflat.def
@@ -0,0 +1,228 @@
+% Copyright 2000 Vladimir Volovich <vvv@vsu.ru>
+\ProvidesFile{utflat.def}[2000/08/19 v0.1 latin definitions for utf-8]
+
+\UnicodeCharacter{x00A0}{~}
+\UnicodeCharacter{x00A1}{\textexclamdown}
+\UnicodeCharacter{x00A2}{\textcent}
+\UnicodeCharacter{x00A3}{\textsterling}
+\UnicodeCharacter{x00A4}{\textcurrency}
+\UnicodeCharacter{x00A5}{\textyen}
+\UnicodeCharacter{x00A6}{\textbrokenbar}
+\UnicodeCharacter{x00A7}{\textsection}
+\UnicodeCharacter{x00A8}{\textasciidieresis}
+\UnicodeCharacter{x00A9}{\textcopyright}
+\UnicodeCharacter{x00AA}{\textordfeminine}
+\UnicodeCharacter{x00AB}{\guillemotleft}
+\UnicodeCharacter{x00AC}{\lnot}
+\UnicodeCharacter{x00AD}{\-}
+\UnicodeCharacter{x00AE}{\textregistered}
+\UnicodeCharacter{x00AF}{\textasciimacron}
+\UnicodeCharacter{x00B0}{\textdegree}
+\UnicodeCharacter{x00B1}{\pm}
+\UnicodeCharacter{x00B2}{{^2}}
+\UnicodeCharacter{x00B3}{{^3}}
+\UnicodeCharacter{x00B4}{\textasciiacute}
+\UnicodeCharacter{x00B5}{\mathrm{\mu}}
+\UnicodeCharacter{x00B6}{\textparagraph}
+\UnicodeCharacter{x00B7}{\cdot}
+\UnicodeCharacter{x00B8}{\c{}}
+\UnicodeCharacter{x00B9}{{^1}}
+\UnicodeCharacter{x00BA}{\textordmasculine}
+\UnicodeCharacter{x00BB}{\guillemotright}
+\UnicodeCharacter{x00BC}{\textonequarter}
+\UnicodeCharacter{x00BD}{\textonehalf}
+\UnicodeCharacter{x00BE}{\textthreequarters}
+\UnicodeCharacter{x00BF}{\textquestiondown}
+\UnicodeCharacter{x00C0}{\`{A}}
+\UnicodeCharacter{x00C1}{\'{A}}
+\UnicodeCharacter{x00C2}{\^{A}}
+\UnicodeCharacter{x00C3}{\~{A}}
+\UnicodeCharacter{x00C4}{\"{A}}
+\UnicodeCharacter{x00C5}{\AA}
+\UnicodeCharacter{x00C6}{\AE}
+\UnicodeCharacter{x00C7}{\c{C}}
+\UnicodeCharacter{x00C8}{\`{E}}
+\UnicodeCharacter{x00C9}{\'{E}}
+\UnicodeCharacter{x00CA}{\^{E}}
+\UnicodeCharacter{x00CB}{\"{E}}
+\UnicodeCharacter{x00CC}{\`{I}}
+\UnicodeCharacter{x00CD}{\'{I}}
+\UnicodeCharacter{x00CE}{\^{I}}
+\UnicodeCharacter{x00CF}{\"{I}}
+\UnicodeCharacter{x00D0}{\DH}
+\UnicodeCharacter{x00D1}{\~{N}}
+\UnicodeCharacter{x00D2}{\`{O}}
+\UnicodeCharacter{x00D3}{\'{O}}
+\UnicodeCharacter{x00D4}{\^{O}}
+\UnicodeCharacter{x00D5}{\~{O}}
+\UnicodeCharacter{x00D6}{\"{O}}
+\UnicodeCharacter{x00D7}{\texttimes}
+\UnicodeCharacter{x00D8}{\O}
+\UnicodeCharacter{x00D9}{\`{U}}
+\UnicodeCharacter{x00DA}{\'{U}}
+\UnicodeCharacter{x00DB}{\^{U}}
+\UnicodeCharacter{x00DC}{\"{U}}
+\UnicodeCharacter{x00DD}{\'{Y}}
+\UnicodeCharacter{x00DE}{\TH}
+\UnicodeCharacter{x00DF}{\ss}
+\UnicodeCharacter{x00E0}{\`{a}}
+\UnicodeCharacter{x00E1}{\'{a}}
+\UnicodeCharacter{x00E2}{\^{a}}
+\UnicodeCharacter{x00E3}{\~{a}}
+\UnicodeCharacter{x00E4}{\"{a}}
+\UnicodeCharacter{x00E5}{\aa}
+\UnicodeCharacter{x00E6}{\ae}
+\UnicodeCharacter{x00E7}{\c{c}}
+\UnicodeCharacter{x00E8}{\`{e}}
+\UnicodeCharacter{x00E9}{\'{e}}
+\UnicodeCharacter{x00EA}{\^{e}}
+\UnicodeCharacter{x00EB}{\"{e}}
+\UnicodeCharacter{x00EC}{\`{\i}}
+\UnicodeCharacter{x00ED}{\'{\i}}
+\UnicodeCharacter{x00EE}{\^{\i}}
+\UnicodeCharacter{x00EF}{\"{\i}}
+\UnicodeCharacter{x00F0}{\dh}
+\UnicodeCharacter{x00F1}{\~{n}}
+\UnicodeCharacter{x00F2}{\`{o}}
+\UnicodeCharacter{x00F3}{\'{o}}
+\UnicodeCharacter{x00F4}{\^{o}}
+\UnicodeCharacter{x00F5}{\~{o}}
+\UnicodeCharacter{x00F6}{\"{o}}
+\UnicodeCharacter{x00F7}{\div}
+\UnicodeCharacter{x00F8}{\o}
+\UnicodeCharacter{x00F9}{\`{u}}
+\UnicodeCharacter{x00FA}{\'{u}}
+\UnicodeCharacter{x00FB}{\^{u}}
+\UnicodeCharacter{x00FC}{\"{u}}
+\UnicodeCharacter{x00FD}{\'{y}}
+\UnicodeCharacter{x00FE}{\th}
+\UnicodeCharacter{x00FF}{\"{y}}
+\UnicodeCharacter{x0100}{\={A}}
+\UnicodeCharacter{x0101}{\={a}}
+\UnicodeCharacter{x0102}{\u{A}}
+\UnicodeCharacter{x0103}{\u{a}}
+\UnicodeCharacter{x0104}{\k{A}}
+\UnicodeCharacter{x0105}{\k{a}}
+\UnicodeCharacter{x0106}{\'{C}}
+\UnicodeCharacter{x0107}{\'{c}}
+\UnicodeCharacter{x0108}{\^{C}}
+\UnicodeCharacter{x0109}{\^{c}}
+\UnicodeCharacter{x010A}{\.{C}}
+\UnicodeCharacter{x010B}{\.{c}}
+\UnicodeCharacter{x010C}{\v{C}}
+\UnicodeCharacter{x010D}{\v{c}}
+\UnicodeCharacter{x010E}{\v{D}}
+\UnicodeCharacter{x010F}{\v{d}}
+\UnicodeCharacter{x0110}{\DJ}
+\UnicodeCharacter{x0111}{\dj}
+\UnicodeCharacter{x0112}{\={E}}
+\UnicodeCharacter{x0113}{\={e}}
+\UnicodeCharacter{x0114}{\u{E}}
+\UnicodeCharacter{x0115}{\u{e}}
+\UnicodeCharacter{x0116}{\.{E}}
+\UnicodeCharacter{x0117}{\.{e}}
+\UnicodeCharacter{x0118}{\k{E}}
+\UnicodeCharacter{x0119}{\k{e}}
+\UnicodeCharacter{x011A}{\v{E}}
+\UnicodeCharacter{x011B}{\v{e}}
+\UnicodeCharacter{x011C}{\^{G}}
+\UnicodeCharacter{x011D}{\^{g}}
+\UnicodeCharacter{x011E}{\u{G}}
+\UnicodeCharacter{x011F}{\u{g}}
+\UnicodeCharacter{x0120}{\.{G}}
+\UnicodeCharacter{x0121}{\.{g}}
+\UnicodeCharacter{x0122}{\c{G}}
+\UnicodeCharacter{x0123}{\c{g}}
+\UnicodeCharacter{x0124}{\^{H}}
+\UnicodeCharacter{x0125}{\^{h}}
+%\UnicodeCharacter{x0126}{}
+%\UnicodeCharacter{x0127}{}
+\UnicodeCharacter{x0128}{\~{I}}
+\UnicodeCharacter{x0129}{\~{\i}}
+\UnicodeCharacter{x012A}{\={I}}
+\UnicodeCharacter{x012B}{\={\i}}
+\UnicodeCharacter{x012C}{\u{I}}
+\UnicodeCharacter{x012D}{\u{\i}}
+\UnicodeCharacter{x012E}{\k{I}}
+\UnicodeCharacter{x012F}{\k{i}}
+\UnicodeCharacter{x0130}{\.{I}}
+\UnicodeCharacter{x0131}{\i}
+\UnicodeCharacter{x0132}{IJ}
+\UnicodeCharacter{x0133}{ij}
+\UnicodeCharacter{x0134}{\^{J}}
+\UnicodeCharacter{x0135}{\^{\j}}
+\UnicodeCharacter{x0136}{\c{K}}
+\UnicodeCharacter{x0137}{\c{k}}
+%\UnicodeCharacter{x0138}{}
+\UnicodeCharacter{x0139}{\'{L}}
+\UnicodeCharacter{x013A}{\'{l}}
+\UnicodeCharacter{x013B}{\c{L}}
+\UnicodeCharacter{x013C}{\c{l}}
+\UnicodeCharacter{x013D}{\v{L}}
+\UnicodeCharacter{x013E}{\v{l}}
+%\UnicodeCharacter{x013F}{}
+%\UnicodeCharacter{x0140}{}
+\UnicodeCharacter{x0141}{\L}
+\UnicodeCharacter{x0142}{\l}
+\UnicodeCharacter{x0143}{\'{N}}
+\UnicodeCharacter{x0144}{\'{n}}
+\UnicodeCharacter{x0145}{\c{N}}
+\UnicodeCharacter{x0146}{\c{n}}
+\UnicodeCharacter{x0147}{\v{N}}
+\UnicodeCharacter{x0148}{\v{n}}
+\UnicodeCharacter{x0149}{'n}
+\UnicodeCharacter{x014A}{\NG}
+\UnicodeCharacter{x014B}{\ng}
+\UnicodeCharacter{x014C}{\={O}}
+\UnicodeCharacter{x014D}{\={o}}
+\UnicodeCharacter{x014E}{\u{O}}
+\UnicodeCharacter{x014F}{\u{o}}
+\UnicodeCharacter{x0150}{\H{O}}
+\UnicodeCharacter{x0151}{\H{o}}
+\UnicodeCharacter{x0152}{\OE}
+\UnicodeCharacter{x0153}{\oe}
+\UnicodeCharacter{x0154}{\'{R}}
+\UnicodeCharacter{x0155}{\'{r}}
+\UnicodeCharacter{x0156}{\c{R}}
+\UnicodeCharacter{x0157}{\c{r}}
+\UnicodeCharacter{x0158}{\v{R}}
+\UnicodeCharacter{x0159}{\v{r}}
+\UnicodeCharacter{x015A}{\'{S}}
+\UnicodeCharacter{x015B}{\'{s}}
+\UnicodeCharacter{x015C}{\^{S}}
+\UnicodeCharacter{x015D}{\^{s}}
+\UnicodeCharacter{x015E}{\c{S}}
+\UnicodeCharacter{x015F}{\c{s}}
+\UnicodeCharacter{x0160}{\v{S}}
+\UnicodeCharacter{x0161}{\v{s}}
+\UnicodeCharacter{x0162}{\c{T}}
+\UnicodeCharacter{x0163}{\c{t}}
+\UnicodeCharacter{x0164}{\v{T}}
+\UnicodeCharacter{x0165}{\v{t}}
+%\UnicodeCharacter{x0166}{}
+%\UnicodeCharacter{x0167}{}
+\UnicodeCharacter{x0168}{\~{U}}
+\UnicodeCharacter{x0169}{\~{u}}
+\UnicodeCharacter{x016A}{\={U}}
+\UnicodeCharacter{x016B}{\={u}}
+\UnicodeCharacter{x016C}{\u{U}}
+\UnicodeCharacter{x016D}{\u{u}}
+\UnicodeCharacter{x016E}{\r{U}}
+\UnicodeCharacter{x016F}{\r{u}}
+\UnicodeCharacter{x0170}{\H{U}}
+\UnicodeCharacter{x0171}{\H{u}}
+\UnicodeCharacter{x0172}{\k{U}}
+\UnicodeCharacter{x0173}{\k{u}}
+\UnicodeCharacter{x0174}{\^{W}}
+\UnicodeCharacter{x0175}{\^{w}}
+\UnicodeCharacter{x0176}{\^{Y}}
+\UnicodeCharacter{x0177}{\^{y}}
+\UnicodeCharacter{x0178}{\"{Y}}
+\UnicodeCharacter{x0179}{\'{Z}}
+\UnicodeCharacter{x017A}{\'{z}}
+\UnicodeCharacter{x017B}{\.{Z}}
+\UnicodeCharacter{x017C}{\.{z}}
+\UnicodeCharacter{x017D}{\v{Z}}
+\UnicodeCharacter{x017E}{\v{z}}
+
+\endinput