summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/babel-contrib/russian
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/babel-contrib/russian
Initial commit
Diffstat (limited to 'macros/latex/contrib/babel-contrib/russian')
-rw-r--r--macros/latex/contrib/babel-contrib/russian/README269
-rw-r--r--macros/latex/contrib/babel-contrib/russian/russianb.dtx2235
-rw-r--r--macros/latex/contrib/babel-contrib/russian/russianb.ins166
-rw-r--r--macros/latex/contrib/babel-contrib/russian/russianb.ldf684
-rw-r--r--macros/latex/contrib/babel-contrib/russian/russianb.pdfbin0 -> 136621 bytes
5 files changed, 3354 insertions, 0 deletions
diff --git a/macros/latex/contrib/babel-contrib/russian/README b/macros/latex/contrib/babel-contrib/russian/README
new file mode 100644
index 0000000000..f0b392a357
--- /dev/null
+++ b/macros/latex/contrib/babel-contrib/russian/README
@@ -0,0 +1,269 @@
+----------------------------------------------------------------
+
+Russian language module for Babel, v1.3j
+
+Released under the LaTeX Project Public License v1.3c or later.
+See http://www.latex-project.org/lppl.txt
+
+The package provides support for use of Babel in documents written in Russian
+(in both traditional and ancient forms). The support is adapted for use both
+under legacy TEX engines, and under X∃TEX and LuaTEX.
+
+The Current Maintainer is Igor A. Kotelnikov <kia999 at mail dot ru>.
+
+1. INSTALLATION
+
+- unpack babel-russian.zip
+- run "xelatex.exe russianb.dtx" (recommended)
+ or "pdflatex.exe russianb.dtx";
+ run "tex.exe russianb.dtx"
+ or "tex.exe russianb.ins", if you don't need documentation
+- move "russianb.ldf" to <textmf>/tex/generic/babel/contrib/
+- move "russianb.pdf" and README to <textmf>/doc/latex/russian-babel/
+- update filename base (see documentation for your TeX system)
+
+2. USAGE
+
+Russian language definition file can be used both with legacy 8-bit engines
+(such as latex.exe or pdflatex.exe) and Unicode compilers (xelatex.exe or
+lualatex.exe). The Unicode engines can be ran either in Unicode mode or 8-bit
+compatibility mode, which emulates the legacy engines. The two modes differ by
+a set of packages loaded in the preamble of a source TeX file. It is important
+to keep recommended order of the packages loaded, especially when running
+Unicode engines in a compatibility 8-bit mode.
+
+In the examples below, it is assumed that a source file has utf8 input encoding.
+
+2.1. 8-bit mode
+
+2.1.1 PDFLATeX, LaTeX
+
+ \usepackage[T1,T2A]{fontenc}
+ \usepackage[utf8]{inputenc}
+ \usepackage[english,russian]{babel}
+
+2.1.2 LuaLaTeX
+
+ \usepackage[T1,T2A]{fontenc}
+ \usepackage[lutf8]{luainputenc}
+ \usepackage[english,russian]{babel}
+
+2.1.3 XeLaTeX
+
+ \XeTeXinputencoding "bytes"
+ \usepackage[utf8]{inputenc}
+ \usepackage[T2A]{fontenc}
+ \usepackage[english,russian]{babel}
+
+2.2 Unicode mode, LuaLaTeX or XeLaTeX
+
+ \usepackage{fontspec}
+ \defaultfontfeatures{Ligatures={TeX}}
+ \setmainfont{CMU Serif}
+ \setsansfont{CMU Sans Serif}
+ \setmonofont{CMU Typewriter Text}
+ \usepackage[english,russian]{babel}
+
+Instead of the Computer Modern Unicode (CMU) fonts loaded in this example,
+you may try any True Type or Open Type font installed on your computer provided
+that that font came with Russian letters.
+
+2.3 Typesetting ancient book
+
+ \usepackage[english,russian]{babel}
+ \languageattribute{russian}{ancient}
+or
+ \usepackage[english,russian.ancient]{babel}
+
+Using Unicode mode is strongly recommended for typesetting ancient texts.
+Be sure to take X2 or OT2 font encodings when running 8-bit engine such
+as latex or pdflatex.
+
+3. DOCUMENTATION
+
+See russianb.pdf for more information.
+
+4. KNOWN PROBLEMS
+
+Before switching from a legacy 8-bit engine (tex, pdftex) to an Unicode
+engine (xetex, luatex) and vise versa delete all .aux, .toc, .lot, .lof
+files as they might have stored incompatible internal encodings.
+
+T2* font encodings do not have legacy Cyrillic letters `yat', which is
+hard-coded in ancient caption names. Be sure to use an Unicode engine
+or borrow `\cyryat` and `\CYRYAT` commands from X2 font encoding when setting
+the language attribute to "ancient", for example:
+
+ \usepackage[X2,T2A]{fontenc}
+ \usepackage[utf8]{inputenc}
+ \DeclareUnicodeCharacter{0462}{\CYRYAT}
+ \DeclareTextSymbolDefault{\CYRYAT}{X2}
+ \DeclareUnicodeCharacter{0463}{\cyryat}
+ \DeclareTextSymbolDefault{\cyryat}{X2}
+ \usepackage[english,russian.ancient]{babel}
+
+Consult your font documentation for other ancient glyphs which
+might be absent.
+
+5. CHANGES
+
+2017-08-08 version 1.3j
+
+ * TU encoding is set as default for X∃TeX and LuaTeX.
+
+ * \cyrdash now always prints dash 20% shorter than emdash.
+
+2017-01-12 version 1.3i
+
+ * Bug fixed in \NOD, \NOK and similar log-functions (thanks to V. Vlasov).
+
+2016-02-18 version 1.3h
+
+ * Bugs fixed in captions for revtex4 and revtex4-1 classes.
+
+ * \cyrdash is now faked using \ProvideTextCommandDefault rather
+ than \def.
+
+2015-05-01 version 1.3g
+
+ * Added support for revtex4 and revtex4-1 classes.
+
+2014-10-21 version 1.3f
+
+ * A documentation file russianb.pdf can now be generated by
+ running pdflatex.exe over russianb.dtx although xelatex.exe
+ is still recommended.
+
+ * russianb.ins was missed in version 1.3e.
+
+2014-10-14 version 1.3e
+
+ * Generating all stuff from single dtx file.
+
+2014-10-02 version 1.3d
+
+ * Bug fix in \Proj.
+
+2014-06-02 version 1.3c
+
+ * Bug fix in \daterussian.
+
+2013-04-06 version 1.3b
+
+ * Added support for the packages \pkg{listing}, \pkg{nomencl}, and
+ \pkg{nomentbl}.
+
+2013-04-18 version 1.3a
+
+ * Added the language attribute 'ancient' for typesetting old
+ Slavonic and Church books.
+
+2013-04-08 version 1.3
+
+ * Updated for babel 3.9.
+ * \Alph and \alph commands are not redefined any more by russianb.ldf.
+
+2012-06-02 version 1.2a
+
+ * russian/russianb.dtx, v1.2a : Indentation of 1st paragraph removed;
+ use the indentfirst package to automatically indent first paragraph
+ after sectioning commands.
+
+2011-10-20 version 1.2 Igor A. Kotelnikov <kia999 at mail dot ru>
+
+ * Added support for LuaTeX and XeTeX;
+ added translation for Glossary; removed \Rus, \English,
+ \Eng, \cyrmath.., \latinencoding, \latintext;
+ \Russian is now an alias for \selectlanguage{russian}.
+
+Original source: russianb.dtx,
+ 2008/03/21 v1.1r Russian support from the babel system.
+
+----------------------------------------------------------------
+
+%%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+
+%% Nonunicode Cyrillic Letters
+%% \CYRA=А
+%% \CYRB=Б
+%% \CYRV=В
+%% \CYRG=Г
+%% \CYRGUP=Ґ
+%% \CYRD=Д
+%% \CYRE=Е
+%% \CYRIE=Є
+%% \CYRZH=Ж
+%% \CYRZ=З
+%% \CYRI=И
+%% \CYRII=I
+%% \CYRYI=Ї
+%% \CYRISHRT=Й
+%% \CYRK=К
+%% \CYRL=Л
+%% \CYRM=М
+%% \CYRN=Н
+%% \CYRO=О
+%% \CYRP=П
+%% \CYRR=Р
+%% \CYRS=С
+%% \CYRT=Т
+%% \CYRU=У
+%% \CYRF=Ф
+%% \CYRH=Х
+%% \CYRC=Ц
+%% \CYRCH=Ч
+%% \CYRSH=Ш
+%% \CYRSHCH=Щ
+%% \CYRYU=Ю
+%% \CYRYA=Я
+%% \CYRSFTSN=Ь
+%%
+%% \cyra=а
+%% \cyrb=б
+%% \cyrv=в
+%% \cyrg=г
+%% \cyrgup=ґ
+%% \cyrd=д
+%% \cyre=е
+%% \cyrie=є
+%% \cyrzh=ж
+%% \cyrz=з
+%% \cyri=и
+%% \cyrii=i
+%% \cyryi=ї
+%% \cyrishrt=й
+%% \cyrk=к
+%% \cyrl=л
+%% \cyrm=м
+%% \cyrn=н
+%% \cyro=о
+%% \cyrp=п
+%% \cyrr=р
+%% \cyrs=с
+%% \cyrt=т
+%% \cyru=у
+%% \cyrf=ф
+%% \cyrh=х
+%% \cyrc=ц
+%% \cyrch=ч
+%% \cyrsh=ш
+%% \cyrshch=щ
+%% \cyryu=ю
+%% \cyrya=я
+%% \cyrsftsn=ь
diff --git a/macros/latex/contrib/babel-contrib/russian/russianb.dtx b/macros/latex/contrib/babel-contrib/russian/russianb.dtx
new file mode 100644
index 0000000000..b843e43bd2
--- /dev/null
+++ b/macros/latex/contrib/babel-contrib/russian/russianb.dtx
@@ -0,0 +1,2235 @@
+% \iffalse meta-comment
+% !TEX program = xeLaTeX
+% !Mode:: TEX:DTX:UNIX:UTF-8:US:RU
+%<*internal>
+\iffalse
+%</internal>
+%<*readme>
+----------------------------------------------------------------
+
+Russian language module for Babel, v1.3j
+
+Released under the LaTeX Project Public License v1.3c or later.
+See http://www.latex-project.org/lppl.txt
+
+The package provides support for use of Babel in documents written in Russian
+(in both traditional and ancient forms). The support is adapted for use both
+under legacy TEX engines, and under X∃TEX and LuaTEX.
+
+The Current Maintainer is Igor A. Kotelnikov <kia999 at mail dot ru>.
+
+
+1. INSTALLATION
+
+- unpack babel-russian.zip
+- run "xelatex.exe russianb.dtx" (recommended)
+ or "pdflatex.exe russianb.dtx";
+ run "tex.exe russianb.dtx"
+ or "tex.exe russianb.ins", if you don't need documentation
+- move "russianb.ldf" to <textmf>/tex/generic/babel/contrib/
+- move "russianb.pdf" and README to <textmf>/doc/latex/russian-babel/
+- update filename base (see documentation for your TeX system)
+
+
+2. USAGE
+
+Russian language definition file can be used both with legacy 8-bit engines
+(such as latex.exe or pdflatex.exe) and Unicode compilers (xelatex.exe or
+lualatex.exe). The Unicode engines can be ran either in Unicode mode or 8-bit
+compatibility mode, which emulates the legacy engines. The two modes differ by
+a set of packages loaded in the preamble of a source TeX file. It is important
+to keep recommended order of the packages loaded, especially when running
+Unicode engines in a compatibility 8-bit mode.
+
+In the examples below, it is assumed that a source file has utf8 input encoding.
+
+2.1. 8-bit mode
+
+2.1.1 PDFLATeX, LaTeX
+
+ \usepackage[T1,T2A]{fontenc}
+ \usepackage[utf8]{inputenc}
+ \usepackage[english,russian]{babel}
+
+2.1.2 LuaLaTeX
+
+ \usepackage[T1,T2A]{fontenc}
+ \usepackage[lutf8]{luainputenc}
+ \usepackage[english,russian]{babel}
+
+2.1.3 XeLaTeX
+
+ \XeTeXinputencoding "bytes"
+ \usepackage[utf8]{inputenc}
+ \usepackage[T2A]{fontenc}
+ \usepackage[english,russian]{babel}
+
+2.2 Unicode mode, LuaLaTeX or XeLaTeX
+
+ \usepackage{fontspec}
+ \defaultfontfeatures{Ligatures={TeX}}
+ \setmainfont{CMU Serif}
+ \setsansfont{CMU Sans Serif}
+ \setmonofont{CMU Typewriter Text}
+ \usepackage[english,russian]{babel}
+
+Instead of the Computer Modern Unicode (CMU) fonts loaded in this example,
+you may try any True Type or Open Type font installed on your computer provided
+that that font came with Russian letters.
+
+2.3 Typesetting ancient book
+
+ \usepackage[english,russian]{babel}
+ \languageattribute{russian}{ancient}
+or
+ \usepackage[english,russian.ancient]{babel}
+
+Using Unicode mode is strongly recommended for typesetting ancient texts.
+Be sure to take X2 or OT2 font encodings when running 8-bit engine such
+as latex or pdflatex.
+
+
+3. DOCUMENTATION
+
+See russianb.pdf for more information.
+
+
+4. KNOWN PROBLEMS
+
+Before switching from a legacy 8-bit engine (tex, pdftex) to an Unicode
+engine (xetex, luatex) and vise versa delete all .aux, .toc, .lot, .lof
+files as they might have stored incompatible internal encodings.
+
+T2* font encodings do not have legacy Cyrillic letters `yat', which is
+hard-coded in ancient caption names. Be sure to use an Unicode engine
+or borrow `\cyryat` and `\CYRYAT` commands from X2 font encoding when setting
+the language attribute to "ancient", for example:
+
+ \usepackage[X2,T2A]{fontenc}
+ \usepackage[utf8]{inputenc}
+ \DeclareUnicodeCharacter{0462}{\CYRYAT}
+ \DeclareTextSymbolDefault{\CYRYAT}{X2}
+ \DeclareUnicodeCharacter{0463}{\cyryat}
+ \DeclareTextSymbolDefault{\cyryat}{X2}
+ \usepackage[english,russian.ancient]{babel}
+
+Consult your font documentation for other ancient glyphs which
+might be absent.
+
+
+5. CHANGES
+
+2017-08-08 version 1.3j
+
+ * TU encoding is set as default for X∃TeX and LuaTeX.
+
+ * \cyrdash now always prints dash 20% shorter than emdash.
+
+
+2017-01-12 version 1.3i
+
+ * Bug fixed in \NOD, \NOK and similar log-functions (thanks to V. Vlasov).
+
+2016-02-18 version 1.3h
+
+ * Bugs fixed in captions for revtex4 and revtex4-1 classes.
+
+ * \cyrdash is now faked using \ProvideTextCommandDefault rather
+ than \def.
+
+2015-05-01 version 1.3g
+
+ * Added support for revtex4 and revtex4-1 classes.
+
+2014-10-21 version 1.3f
+
+ * A documentation file russianb.pdf can now be generated by
+ running pdflatex.exe over russianb.dtx although xelatex.exe
+ is still recommended.
+
+ * russianb.ins was missed in version 1.3e.
+
+2014-10-14 version 1.3e
+
+ * Generating all stuff from single dtx file.
+
+2014-10-02 version 1.3d
+
+ * Bug fix in \Proj.
+
+2014-06-02 version 1.3c
+
+ * Bug fix in \daterussian.
+
+2013-04-06 version 1.3b
+
+ * Added support for the packages \pkg{listing}, \pkg{nomencl}, and
+ \pkg{nomentbl}.
+
+2013-04-18 version 1.3a
+
+ * Added the language attribute 'ancient' for typesetting old
+ Slavonic and Church books.
+
+2013-04-08 version 1.3
+
+ * Updated for babel 3.9.
+ * \Alph and \alph commands are not redefined any more by russianb.ldf.
+
+2012-06-02 version 1.2a
+
+ * russian/russianb.dtx, v1.2a : Indentation of 1st paragraph removed;
+ use the indentfirst package to automatically indent first paragraph
+ after sectioning commands.
+
+2011-10-20 version 1.2 Igor A. Kotelnikov <kia999 at mail dot ru>
+
+ * Added support for LuaTeX and XeTeX;
+ added translation for Glossary; removed \Rus, \English,
+ \Eng, \cyrmath.., \latinencoding, \latintext;
+ \Russian is now an alias for \selectlanguage{russian}.
+
+Original source: russianb.dtx,
+ 2008/03/21 v1.1r Russian support from the babel system.
+
+----------------------------------------------------------------
+%</readme>
+%<*internal>
+\fi
+\def\nameofplainTeX{plain}
+\ifx\fmtname\nameofplainTeX\else
+ \expandafter\begingroup
+\fi
+%</internal>
+%<*install>
+\input docstrip.tex
+\keepsilent
+\askforoverwritefalse
+\preamble
+----------------------------------------------------------------
+Russian Language Support for the Babel package
+E-mail: kia999@mail.ru
+Released under the LaTeX Project Public License v1.3c or later
+See http://www.latex-project.org/lppl.txt
+----------------------------------------------------------------
+\endpreamble
+\postamble
+----------------------------------------------------------------
+Copyright 2011-2017 Igor A. Kotelnikov.
+Copyright 1995-2008 Olga Lapko.
+Copyright 1989-2012 Johannes L. Braams.
+
+This file is a part of the Russian-Babel package.
+
+It may be distributed and/or modified under the
+conditions of the LaTeX Project Public License (LPPL), either
+version 1.3c of this license or (at your option) any later
+version. The latest version of this license is in the file:
+
+ http://www.latex-project.org/lppl.txt
+
+The package is "maintained" (as per LPPL maintenance status) by
+Igor A. Kotelnikov.
+
+The package consists of the file russianb.dtx
+and the derived files russianb.ins,
+ russianb.ldf,
+ russianb.pdf,
+ README.
+----------------------------------------------------------------
+\endpostamble
+\usedir{tex/generic/babel/contrib}
+\generate{
+ \file{\jobname.ldf}{\from{\jobname.dtx}{code}}
+}
+%</install>
+%<install>\endbatchfile
+%<*internal>
+\usedir{source/latex/babel-russian}
+\generate{
+ \file{\jobname.ins}{\from{\jobname.dtx}{install}}
+}
+\nopreamble\nopostamble
+\usedir{doc/latex/babel-russian}
+\generate{
+ \file{README.}{\from{\jobname.dtx}{readme}}
+}
+\ifx\fmtname\nameofplainTeX
+ \expandafter\endbatchfile
+\else
+ \expandafter\endgroup
+\fi
+%</internal>
+%<*code>
+\NeedsTeXFormat{LaTeX2e}
+%\ProvidesFile{russianb.ldf}[2017/08/08 1.3j Russian support for the Babel system]
+%</code>
+%<*driver>
+\documentclass[a4paper]{ltxdoc}
+%%
+%% This document should be compiled by
+%% XeLaTeX or LuaLaTex since some cyrillic
+%% glyphs are absent in T2* encodings used
+%% by LaTeX.
+%%
+\usepackage{ifxetex,ifluatex}
+\ifnum 0\ifxetex 1\fi\ifluatex 1\fi>0
+ \usepackage{fontspec}
+ \defaultfontfeatures{Ligatures={TeX}}
+ \setmainfont{CMU Serif}
+ \setsansfont{CMU Sans Serif}
+ \setmonofont{CMU Typewriter Text}
+ %\setmonofont[Scale=MatchLowercase]{Courier New}
+ %\setmonofont[Scale=MatchUppercase]{Courier New}
+ %\setmonofont{Courier New}
+\else
+ \usepackage[X2,T2A]{fontenc}
+ \usepackage[utf8]{inputenc}
+ \DeclareUnicodeCharacter{0462}{\CYRYAT}
+ \DeclareTextSymbolDefault{\CYRYAT}{X2}
+ \DeclareUnicodeCharacter{0463}{\cyryat}
+ \DeclareTextSymbolDefault{\cyryat}{X2}
+ %% serbian letter, looks as a ligature IE, not defined anywhare
+ %\DeclareUnicodeCharacter{0464}{\CYRESHRT} % no surch cmd in X2
+ %% serbian letter, looks as a ligature ie, not defined anywhare
+ %\DeclareUnicodeCharacter{0465}{\cyreshrt} % no surch cmd in X2
+ %% therefor, we substitute it with є (#0454, \cyrie)
+ \DeclareUnicodeCharacter{0464}{\CYRIE}%
+ %\DeclareTextSymbolDefault{\CYRIE}{X2}
+ \DeclareUnicodeCharacter{0465}{\cyrie}%
+ %\DeclareTextSymbolDefault{\cyrie}{X2}
+\fi
+\usepackage[russian.ancient,main=english]{babel}
+%\languageattribute{russian}{ancient}
+\usepackage[dvipsnames,usenames]{xcolor}
+ \definecolor{thered} {rgb}{0.65,0.04,0.07}
+ \definecolor{thegreen}{rgb}{0.06,0.44,0.08}
+ \definecolor{thegrey} {gray}{0.8}
+ \definecolor{theshade}{rgb}{1,1,0.97}
+ \definecolor{theframe}{gray}{0.6}
+ \definecolor{theblue}{cmyk}{1.00, 0.50, 0.00, 0.40}
+%\usepackage[numbered]{hypdoc}
+\usepackage[colorlinks=true
+ ,linkcolor=violet %theblue %
+ ,filecolor=purple %thegreen%
+ ,citecolor=teal %thegreen%
+]{hyperref}
+% ====================================
+\newcommand*\TeXhax{\TeX hax}
+\newcommand*\babel{\textsf{babel}}
+\newcommand*\Babel{\textsf{Babel}}
+\newcommand*\xetex{\textsf{xetex}}
+\newcommand*\luatex{\textsf{luatex}}
+\providecommand*\m[1]{\mbox{$\langle$\normalfont\itshape#1\/$\rangle$}}
+\newcommand*\langlist{%
+ \meta{language}\texttt{,}\meta{language}\texttt{,}...}
+\newcommand*\langvar{\m{lang}}
+\newcommand*\note[1]{}
+\newcommand*\Lopt[1]{\textsf{#1}}
+\newcommand*\Lenv[1]{\textsf{#1}}
+\newcommand*\menv[1]{\char`\{#1\char`\}}
+\newcommand*\Eenv[1]{%
+ \quad\ldots\quad
+ \texttt{\color{thered}\string\end\menv{#1}}}
+\newcommand*\file[1]{\texttt{#1}}
+\newcommand*\cls[1]{\texttt{#1}}
+\newcommand*\pkg[1]{\texttt{#1}}
+% ====================================
+\IfFileExists{listings.sty}{
+ \usepackage{listings}
+ \lstset{
+ gobble=1,
+ columns=flexible,
+ keepspaces,
+ basicstyle=\MacroFont,
+ keywords=[0]{\selectlanguage,\foreignlanguage
+ ,\babelhyphen,\babelhyphenation
+ ,\lefthyphenmin,\righthyphenmin
+ ,\StartBabelCommands,\SetString,\EndBabelCommands,\shorthandoff,\shorthandon
+ ,\languageshorthands,\useshorthands,\defineshorthand
+ ,\AddBabelHook,\SetStringLoop,\SetCase,\AfterBabelLanguage
+ ,\defaultfontfeatures,\setmainfont,\setsansfont,\setmonofont
+ ,\Russian,\cyrdash,\cdash
+ ,\cyr,\cyrillictext,\textcyrillic,\cyrillicencoding
+ ,\addto,\captionsrussian,\daterussian,\noextrasrussian,\extrasrussian
+ ,\languageattribute
+ ,\glqq,\grqq,\guillemotleft,\guillemotright
+ ,\Asbuk,\asbuk,\ch,\sh,\tg,\ctg,\arctg,\arcctg\,\th,\cth,\cosec
+ ,\nod3,\nok,\prog,\NOF\,\NOK,\Prog
+ ,\dq,\Proj,\nod,\NOD,\nok,\NOK,\Prob,\Variance
+ ,\XeTeXinputencoding
+ }
+ ,keywordstyle=[0]\color{thered}
+ ,keywords=[1]{main,russian,english,german,frenchb
+ ,shorthands,extrasenglish
+ ,stringprocess,afterextras
+ ,soft,empty,nobreak,hard
+ ,Renderer,Ligatures
+ ,modern,ancient
+ ,T1,T2A,lutf8,utf8
+ ,fontspec,babel,inputenc,fontenc
+ },
+ keywordstyle=[1]\color{thegreen},
+ comment=[l]\%,
+ commentstyle=\color{thegrey}\itshape,
+ alsoother={0123456789_},
+ frame=single,
+ backgroundcolor=\color{theshade},
+ rulecolor=\color{theframe},
+ framerule=\fboxrule,
+ }
+ \let\verbatim\relax
+ \lstnewenvironment{verbatim}[1][]{\lstset{##1}}{}
+ \AtBeginDocument{%
+ \DeleteShortVerb{\|}%
+ \lstMakeShortInline|%
+ }
+}{}
+\def\PrintDescribeMacro#1{%
+ \strut\MacroFont\color{thered}\normalsize\string#1}
+\def\Describe#1{%
+ \par\penalty-500\vskip3ex\noindent
+ \DescribeMacro{#1}\args}
+\def\DescribeOther{\vskip-5.8ex\Describe}
+\makeatletter
+\def\args#1{%
+ \def\bbl@tempa{#1}%
+ \ifx\bbl@tempa\@empty\else#1\vskip1ex\fi\ignorespaces}
+\makeatother
+% ====================================
+\EnableCrossrefs
+%\DisableCrossrefs % Say \DisableCrossrefs if index is ready
+\CodelineIndex % Index code by line number
+\RecordChanges % Gather update information
+%\PageIndex % Index code by page number
+% ====================================
+\begin{document}
+ \DocInput{\jobname.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \DoNotIndex{\cyra,\cyrb,\cyrv,\cyrg,\cyrd,\cyre}
+% \DoNotIndex{\CYRP,\cyrii,\cyrr,\cyre,\cyro,\CYRU,\cyrk,\cyrl,\CYRS,\cyrs|}
+% \DoNotIndex{\cyrt,\cyri,\cyrz,\CYRT,\cyrm}
+% \DoNotIndex{\cyr,\cyrc,\CYRD,\cyrery,\cyrh,\CYRK,\CYRM,\CYRN,\cyrn}
+% \DoNotIndex{\cyrp,\cyrs,\cyrshch,\cyru,\CYRV,\cyrya}
+% \DoNotIndex{\CYRA,\CYRB,\cyrch,\CYRE,\CYREREV,\CYRF,\cyrf,\CYRI,\cyrishrt}
+% \DoNotIndex{\CYRO,\CYRR,\cyrsftsn,\CYRYA,\cyryu,\cyrzh}
+% \DoNotIndex{\CYRCH, \CYRG, \CYRL, \CYRZH}
+% \DoNotIndex{\z@skip,\z@}
+% \DoNotIndex{\|,\~,\ ,\,}
+%
+
+%\GetFileInfo{russianb.dtx}
+%\GetFileInfo{russianb.ldf}
+%
+% \title{The Russian Language\\
+% in the \babel\ system\\[0.5em]
+% \large Version \fileversion}
+%
+% \author{Igor A. Kotelnikov\footnote{E-mail: \href{mailto:kia999@mail.ru}{kia999 at mail dot ru}.}}
+%
+% \date{Released \filedate}
+%
+% \maketitle
+%
+% {\small\tableofcontents}
+%
+%
+% \section{The Russian Language Definition File}
+%
+% The file \file{\filename}\footnote{The file described in this document
+% has the version number \fileversion\ and was last revised on \filedate.}
+% is the source file for the Russian Language Definition file
+% \file{russianb.ldf} to be loaded by the \babel\ package with
+% the option \Lopt{russian}. It was derived by Igor A.
+% Kotelnikov from the original version of \file{\filename}, first
+% released by Olga Lapko and Johannes Braams and then
+% adapted to the T2* and X2 Cyrillic encodings
+% by Vladimir Volovich and Werner Lemberg.
+%
+% Starting the version 1.2, \file{russianb.ldf} is designed to work both with
+% legacy non-unicode (8-bit) and new Unicode encodings of the source document
+% files (input encodings) and of the font files (font encodings). This is
+% achieved by excluding (bypassing) the |\cyr...| macros, which map every letter
+% in a source file with given input encoding to a corresponding code point in a
+% font file with a given font encoding when running modern engines, such as
+% Lua\LaTeX\ or Xe\LaTeX, in native Unicode mode instead of legacy engines, such
+% as \LaTeX\ or PDF\LaTeX, or Unicode engines in a compatibility (8-bit) mode. A
+% few obsolete and controversial macros has been eliminated in first public
+% release of version 1.2 of \file{russianb.ldf}.
+%
+% The version 1.3 of \file{russianb.ldf} has been adapted to new features
+% introduced in the version 3.9 of the \pkg{babel} package. In particular, the
+% language attribute \Lopt{ancient} has been introduced to support typesetting
+% ancient and Church Slavonic books.
+%
+% \section{Usage}
+%
+% Typesetting Russian texts implies that a special input and output
+% encodings should be used. Input encodings are those which are used in source
+% (\file{.tex}) file. Output encoding is also known as the font encoding. It is
+% implemented within the font files.
+%
+% Generally, the user may choose between different Cyrillic
+% encodings. The current support for Cyrillic uses LH family of MetaFont fonts
+% and theirs Postscript versions such as CM-super. Lua\LaTeX\ and Xe\LaTeX,
+% being the Unicode-based succeeders of \LaTeX, allow also for any Open Type
+% (OTF) and True Type (TTF) fonts which have Cyrillic script, e.g. Computer
+% Modern Unicode, Linux Libertine, and many other system fonts that came with
+% Linux, Mac and Windows operating systems.
+%
+% With the advent of Unicode, \LaTeX\ community are moving towards eliminating
+% all existing encodings in favor of Unicode, but nowadays one should take
+% care when switching from \LaTeX\ to Lua\LaTeX\ or Xe\LaTeX\ since
+% different packages should be loaded for those compilers.
+%
+% Since earlier versions \pkg{babel} did not
+% support Xe\LaTeX\ (at least for some languages including Russian), the
+% \pkg{polyglossia} package was generally recommended in the past for
+% use with Xe\LaTeX\ as a replacement for \pkg{babel}. Nowadays, \pkg{babel}
+% can be used with any engines, including \LaTeX, PDF\LaTeX, Lua\LaTeX, and
+% Xe\LaTeX. Nevertheless some troubles may occur with some languages which
+% have no promptly updated \file{.ldf} files.
+%
+%
+% \subsection{\LaTeX}
+%
+% When user's document is compiled with \file{latex.exe} or \file{pdflatex.exe},
+% recommended set of packages includes the \pkg{inputenc} and \pkg{fontenc}
+% packages. They should be loaded before \pkg{babel}, for example,
+% \begin{verbatim}
+% \usepackage[T1,T2A]{fontenc}
+% \usepackage[utf8]{inputenc}
+% \usepackage[english,russian]{babel}
+%\end{verbatim}
+% Some variations in the order of loading the packages are allowed in this case
+% but it is better to follow one and the same convention at all circumstances:
+% the \pkg{babel} package should go last, and \pkg{fontenc} must be the first.
+%
+% Input encoding should be declared as option to the \pkg{inputenc}
+% package. Known Cyrillic encodings include \texttt{cp866} (MS DOS),
+% \texttt{cp1251} (Windows), \texttt{koi8-u} (UNIX) and their variants.
+% Nowadays, this list is appended with \texttt{utf8} input encoding.
+%
+% Output encodings (also known as font encodings) are declared as options to
+% the \pkg{fontenc} package. Known Cyrillic encodings are \texttt{T2A},
+% \texttt{T2B}, \texttt{T2C}, \texttt{LCY}, and \texttt{X2};
+% \texttt{LWN} is excluded from Russian support starting version 1.2 of
+% \file{\filename} since \texttt{LWN} is excluded from the \pkg{cyrillic}
+% bundle of related files.
+%
+%
+% \subsection{Lua\LaTeX}
+%
+% If Unicode fonts are not available, Lua\LaTeX\ can run in compatibility
+% (8-bit) mode to use same font as \LaTeX\ does. However the package
+% \pkg{inputenc} does not work with Lua\LaTeX\ and should be substituted with
+% \pkg{luainputenc}. Source file is to be converted to \texttt{UTF8}
+% (Unicode-8) encoding; it is the only input encoding accepted by
+% Lua\LaTeX. The 8-bit mode is invoked by the following sequence of packages:
+%\begin{verbatim}
+%\usepackage[T1,T2A]{fontenc}
+%\usepackage[lutf8]{luainputenc}
+%\usepackage[english,russian]{babel}
+%\end{verbatim}
+% The order of the packages is crucial for Lua\LaTeX\ in 8-bit mode. Since both
+% \pkg{luainputenc} and \pkg{babel} should know what font encoding is selected,
+% the \pkg{fontenc} package should be loaded first. Legacy input encoding
+% management for Lua\TeX\ is needed only for compatibility with old documents.
+% For new documents, using UTF-8 encoding and Unicode fonts is strongly
+% recommended. \emph{You've been warned!} See
+% \href{http://tex.stackexchange.com/questions/31709/can-one-instruct-lualatex-to-use-t2a-encoded-fonts}%
+% {tex.stackexchange.com/questions/31709/can-one-instruct-lualatex-to-use-t2a-encoded-fonts}.
+%
+%
+% To invoke Unicode mode, one needs to load the \pkg{fontspec} package instead
+% of \pkg{luainputenc} and \pkg{fontenc} and explicitly indicate which True Type
+% or Open Type fonts should be used for romanic, sans-serif and monospaced types.
+% The following example shows how to load Computer Modern Unicode (CMU) fonts,
+% which is a part of all modern \LaTeX\ distributions:
+%\begin{verbatim}
+%\usepackage{fontspec}
+% \defaultfontfeatures{Renderer=Basic,Ligatures={TeX}}
+% \setmainfont{CMU Serif}
+% \setsansfont{CMU Sans Serif}
+% \setmonofont{CMU Typewriter Text}
+%\usepackage[english,russian]{babel}
+%\end{verbatim}
+% The |\defaultfontfeatures| declares default font features for subsequent
+% |\setmainfont| (which sets romanic fonts), |\setsansfont| (sans-serif) and
+% |\setmonofont| (monospaced font). Font features can be set up on per font
+% bases; for example
+% \begin{verbatim}
+% \usepackage{fontspec}
+% \setmainfont[Renderer=Basic,Ligatures={TeX}]{CMU Serif}
+% \setsansfont[Renderer=Basic,Ligatures={TeX,Historic}]{CMU Sans Serif}
+% \setmonofont{CMU Typewriter Text}
+% \usepackage[english,russian]{babel}
+%\end{verbatim}
+% Here |Renderer=Basic,Ligatures={TeX}| activates ligatures available in \LaTeX.
+%
+% Recall that the language enlisted last in the list of options of the \pkg{babel}
+% package is assumed to be the main language of the document, which is also active
+% language right after |\begin{document}|. As of version 3.9, the main language
+% can be set as a value of the |main| option as follows
+%\begin{verbatim}
+% \usepackage{fontspec}
+% \usepackage[english,main=russian,german]{babel}
+%\end{verbatim}
+% %\unskip
+%
+%
+%
+% \subsection{Xe\LaTeX}
+%
+% In Xe\LaTeX, there is also a special mode for 8-bit compatibility.
+% One can use |\XeTeXinputencoding| to change the input encoding
+% temporarily, and the \texttt{"bytes"} encoding makes Xe\LaTeX\ to work
+% like a 8-bit \LaTeX\ engine:
+% \begin{verbatim}
+% \XeTeXinputencoding "bytes"
+% \usepackage[utf8]{inputenc}
+% \usepackage[T2A]{fontenc}
+% \usepackage[english,russian]{babel}
+%\end{verbatim}
+% \unskip
+% Xe\TeX\ can use a different input encoding but it always uses the Unicode
+% internally, so that |\XeTeXinputencoding| performs a conversion of the input
+% stream into Unicode;
+% see \href{http://tex.stackexchange.com/questions/36188/do-xetex-and-luatex-always-use-unicode}
+% {tex.stackexchange.com/questions/36188/do-xetex-and-luatex-always-use-unicode}.
+%
+%
+% Unicode mode is set up same way as for Lua\LaTeX, however the option
+% |Renderer=Basic| can be dropped:
+%\begin{verbatim}
+% \usepackage{fontspec}
+% \defaultfontfeatures{Ligatures={TeX}}
+% \setmainfont{CMU Serif}
+% \setsansfont{CMU Sans Serif}
+% \setmonofont{CMU Typewriter Text}
+% \usepackage[english,russian]{babel}
+%\end{verbatim}
+% %\unskip
+%
+%
+% \subsection{Modern and Ancient spelling}
+% \label{ssec:speeling}
+%
+% By default, a modern spelling is enabled. For Church Slavonic and other old books
+% ancient spelling can be enabled by setting the attribute to \Lopt{ancient}. To set
+% an attribute, put the |\languageattribute| macro within a document preamble after
+% \babel, for example,
+%\begin{verbatim}
+% \usepackage[english,russian]{babel}
+% \languageattribute{russian}{ancient}
+%\end{verbatim}
+% Setting the \Lopt{ancient} attribute changes the built-in strings (caption names)
+% and a date format. For example, the bibliography will be entitled as
+% `\textcyrillic{Литература}' by default and as `\textcyrillic{Библіографія}' if the
+% Russian language attribute is set to \Lopt{ancient}.
+% Same result can be achieved using a modifier as follows:
+%\begin{verbatim}
+%\usepackage[english,russian.ancient]{babel}
+%\end{verbatim}
+% Using a modifier in a package option is often better. A modifier is set after
+% the language name, and is prefixed with a dot (only when the language is set
+% as package option – neither global options nor the main key accept them).
+%
+%
+%\section{User's commands}
+%
+% In a multilingual document, some typographic rules are language
+% dependent and should apply to the whole document.
+%
+%^^AAs of version~1.2, \file{russianb.ldf} behaves differently
+%^^Aaccording to \babel's \emph{main language} defined as the \emph{last}
+%^^Aoption. When Russian is
+%^^A|babel|'s main language, it adjusts global layout of the document
+%^^Aaccording to typographical conventions of Russian language. Namely,
+%^^A\file{russianb.ldf} makes the following changes to global layout even
+%^^Ain the parts where Russian is not current language:
+%^^A\begin{enumerate}
+%^^A\item
+%^^A the first paragraph of any section becomes indented (\LaTeX{} only).
+%^^A (this is obsolete statement starting from version 1.2a)
+%^^A\end{enumerate}
+%
+% Regarding local typography, the macro |\selectlanguage{russian}|
+% switches to the Russian language, with the following effects:
+% \begin{enumerate}
+% \item Russian hyphenation patterns are made active;
+% \item |\today| prints the date in Russian;
+% \item the caption names are translated into Russian;
+% \item emdash typed by the ligature |---| might be 20\% shorter when Russian
+% is the current language; the result depends on the current encoding; |---|
+% always produce long emdash in Lua\TeX\ and Xe\TeX\ since these engines
+% use same encodings for all languages;
+% \item emdash typed by the ligature |"---| in Russian is 20\% shorter, however
+% the ligature |"---| might not be defined in other languges; a
+% shorter emdash (i.e. |\cyrdash|) can be typeset in any language using
+% special macros enlisted in table \ref{tab:russian-quote}.
+% \end{enumerate}
+%
+% By default, a modern spelling is used for built-it strings (caption names) and
+% the date. The spelling can be reverted to ancient by setting the language
+% attribute to \Lopt{ancient} in the document preamble as discussed in
+% Sec.~\ref{ssec:speeling}.
+%
+% Since Russian has its own numbering system, \file{russianb.ldf} adds macros
+% |\asbuk|\marg{counter} and |\Asbuk|\marg{counter} for formatting numbers appropriately the alphabetic
+% sequence in the Russian alphabet. Additional commands are provided
+% to typeset quotes:
+% \begin{enumerate}
+% \item French quotation marks can be entered using the commands
+% |\guillemotleft| and |\guillemotright| which work in \LaTeXe\
+% and Plain\TeX.
+% \item German quotation marks can be entered using the commands
+% |\glqq| and |\grqq| which work in \LaTeXe\ and Plain\TeX.
+% \end{enumerate}
+%
+% The macro |\Russian| is now defined as an alias for
+% |\selectlanguage{russian}|, and its ``opponent'' |\English|, existed
+% in \file{russianb.ldf} prior to version 1.2 has been removed since the Russian
+% language definition file is wrong place for definition of macros which
+% switch to a distinct other language.
+%
+% The macro |\textcyrillic|\marg{text} is intended to typeset small chunks of text
+% in Russian; it is essentially an alias for |\foreignlanguage{russian}|\marg{text}.
+%
+%
+% \subsection{Active character}
+%
+% Table~\ref{tab:russian-quote} shows macros and active string which can be
+% used to typeset various dashes and quotes.
+% In the Russian language, the character |"| is made active. It can be
+% considered as second escape character in addition to |\|. Some dashes and
+% all quotes can be typed using both active character |"| and ordinary
+% macros as indicated in the table. However, some shorthanded hyphenations
+% have no macro counterpart.
+%
+% \begin{table}[ht]\centering
+% \caption{Extra definitions made
+% by \file{russianb.ldf}}\label{tab:russian-quote}
+% \medskip
+% \begin{tabular}{llp{7cm}}
+% \hline\hline\\[-0.5em]
+% |\glqq| & |"`| &
+% German opening double quote (looks like ,\kern-0.08em,). \\
+% |\grqq| & |"'| &
+% German closing double quote (looks like ``). \\
+% |\guillemotleft| & |"<| &
+% French opening double quote (looks like $<\!\!<$). \\
+% |\guillemotright| & |">| &
+% French closing double quote (looks like $>\!\!>$). \\
+% |\dq| & &
+% Original quotes character (|"|). \\[0.5em]
+% |\babelhyphen{soft}|
+% & |"-| & Optional (soft) hyphen sign, similar to |\-| but allows
+% hyphenation in the rest of the word;
+% equivalent to |\babelhyphen{soft}| in \pkg{babel} 3.9. \\
+% |\babelhyphen{empty}|
+% & |""| & Similar to |"-| but prints no hyphen sign
+% (used for compound words with hyphen, e.g. |x-""y|);
+% equivalent to |\babelhyphen{empty}| in \pkg{babel} 3.9. \\
+% |\babelhyphen*{nobreak}|
+% & |"~| & Compound word mark without a breakpoint, prints hyphen
+% prohibiting hyphenation at the point;
+% equivalent to |\babelhyphen*{nobreak}| in \pkg{babel} 3.9. \\
+% |\babelhyphen{hard}|
+% & |"=| & A compound word mark with a breakpoint, prints hyphen
+% allowing hyphenation in the composing words.
+% equivalent to |\babelhyphen{hard}| in \pkg{babel} 3.9. \\
+% |\babelhyphen{nobreak}|
+% & \verb="|= & Disables ligature at this position;
+% equivalent to |\babelhyphen{nobreak}| (??) in \pkg{babel} 3.9.
+% \\[0.5em]
+% |\cyrdash| & & Row Cyrillic emdash (does not care
+% spaces around). \\
+% |\cdash---| & |"---| &
+% Cyrillic emdash in plain text. \\
+% |\cdash--~| & |"--~| &
+% Cyrillic emdash in compound names
+% (as in |Mendeleev"--~Klapeiron|). \\
+% |\cdash--*| & |"--*| &
+% Cyrillic emdash for denoting direct speech. \\
+% & |",| & Thin space
+% (allows further hyphenation as in |D.",Mendeleev|). \\[0.5em]
+% \hline\hline
+% \end{tabular}
+% \end{table}
+% Note that the standard soft hyphen |\-| is equivalent to |\babelhyphen*{soft}|.
+%
+% \medskip
+%
+% The quotation marks traditionally used in Russian were borrowed from
+% other languages (e.g., French and German) so they keep their original
+% names.
+%
+% The French quotes are also available as ligatures `|<<|' and `|>>|' in
+% 8-bit Cyrillic font encodings (\texttt{LCY}, \texttt{X2}, \texttt{T2*})
+% and in Unicode encoding (\texttt{TU}) as `|<|' and `|>|' characters in 7-bit
+% Cyrillic font encodings (\texttt{OT2} and \texttt{LWN}).
+%
+% In Unicode encoding \texttt{TU} cyrdashes and quotes
+% can be typed as single character if your text editor allows
+% inserting characters which absent of standard keyboard. This method works
+% as well for 8-bit fonts encoded according to \texttt{T2A} if source file
+% is encoded with \texttt{cp1251} or {utf8}.
+%
+% By default, active double quote is switched on. It can be switched off
+% any time using |\shorthandoff{"}| and the switched on again using
+% |\shorthandon{"}|. The aliases |\mdqoff| and |\mdqon| for these two macros
+% has been removed from \file{russianb.ldf} starting from version 1.3 in favour of
+% the macros |\shorthandon| and |\shorthandoff| provided in the \pkg{babel} core.
+%
+%
+% \subsection{Math commands}
+%
+% \file{\filename} defines few macros than can be used independently
+% of current language. These are 9 macros to be used in math mode to type
+% the names of trigonometric functions common for Russian documents:
+% |\sh|, |\ch|, |\tg|, |\ctg|, |\arctg|, |\arcctg|, |\th|, |\cth|, and
+% |\cosec|. Cyrillic letters in math mode can be typed with the aid of
+% text commands such as |\textbf|, |\textsf|, |\textit|, |\texttt|, e.t.c.
+%
+% The macros |\Prob|, |\Variance|, |\NOD|, |\nod|, |\NOK|, |\nok|, |\Proj|
+% print some rare Russian mathematical symbols.
+%
+%
+% \section{\TeX{}nical details}
+%
+% The packages \pkg{inputenc} and \pkg{luainputenc}
+% make Cyrillic letters active so that a compiler converts them into
+% corresponding |\cyr...| macro at compilation time.
+% For example, Russian letter `a' matches
+% macro |\cyra|, and capital Russian letter `A' matches |\CYRA|. The
+% package \pkg{fontenc} then matches every macro |\cyr...| to corresponding
+% glyph in a font file depending on a declared font encoding.
+%
+% Nowadays, Unicode makes |\cyr...| macros outdated since both source
+% file and font file are encoded consistently. These macros
+% should therefore be removed because mixing them with Unicode characters
+% breaks sorting mechanism of such utilities as \file{bibtex} and
+% \file{makeindex}. For the sake of backward compatibility, |\cyr...| are
+% still kept for \LaTeX, but they are bypassed if Lua\LaTeX\ or Xe\LaTeX\
+% are detected.
+%
+% Some inconsistences of prior versions of \file{\filename} was also
+% overcame in the version 1.2. Those users who used |\selectlanguage| macro,
+% defined in the core \pkg{babel} system, to switch between
+% different languages should not worry. However, the macros
+% |\Russian|, |\Englsih| and their aliases |\Rus|, |\cyr|,
+% |\Eng| are modified or removed as they did not
+% conform the mechanism of language switching encoded into the
+% core of \pkg{babel} and therefore can mess it.
+%
+%
+% \section{Known problems}
+%
+% Before switching from a legacy 8-bit engine (tex, pdftex) to an Unicode
+% engine (xetex, luatex) and vise versa delete all |.aux|, |.toc|, |.lot|,
+% |.lof| files as they might have stored incompatible internal encodings.
+%
+% T2* font encodings do not have old Slavonic letter `yat' (Ѣ, ѣ), which is
+% hard-coded in ancient caption names. Be sure to use an Unicode engine
+% or borrow |\cyryat| and |\CYRYAT| commands from X2 font encoding when setting
+% the language attribute to ``ancient'', for example:
+%
+%\begin{verbatim}
+%\usepackage[X2,T2A]{fontenc}
+%\usepackage[utf8]{inputenc}
+%\DeclareUnicodeCharacter{0462}{\CYRYAT}
+%\DeclareTextSymbolDefault{\CYRYAT}{X2}
+%\DeclareUnicodeCharacter{0463}{\cyryat}
+%\DeclareTextSymbolDefault{\cyryat}{X2}
+%\usepackage[english,russian.ancient]{babel}
+%\end{verbatim}
+%
+% None of Cyrillic font encoding has `iotated E' (Ѥ, ѥ). When running legacy
+% engines you are advised to substitute it with |\CYRIE|, |\cyrie| (Є, є):
+%
+%\begin{verbatim}
+%\DeclareUnicodeCharacter{0464}{\CYRIE}
+%\DeclareUnicodeCharacter{0465}{\cyrie}
+%\end{verbatim}
+%
+% The dash might change its length after switching the current language
+% with |\selectlanguage|. Legacy engines (\texttt{latex.exe},
+% \texttt{pdflatex.exe}) take the dash symbol (---) from same code
+% point 22 of a font file but from different fonts for Cyrillic and Latin
+% languages. Cyrillic fonts take care that Cyrillic dash is 20\% shorter than
+% Latin one. Unicode engines (\texttt{xelatex.exe}, \texttt{lualatex.exe})
+% take the dash from the code point x2022, but may substitute the font dash
+% with fake symbol which is shorter. See discussion at
+% \href{https://tex.stackexchange.com/questions/294178/what-about-cyrdash-in-eu1-and-eu2-encodings}
+% {https://tex.stackexchange.com/questions/294178/what-about-cyrdash-in-eu1-and-eu2-encodings}.
+%
+%
+% \StopEventually{
+% \IndexPrologue{\section{Index}
+% Numbers written in dark blue refer to the page where the corresponding
+% entry is described; numbers in black roman refer to the code lines where
+% the entry is used.
+% }
+% \GlossaryPrologue{\section{Change History}}
+% \PrintChanges
+% \PrintIndex
+% }
+%
+%\iffalse
+%<*code>
+%\fi
+%
+%
+% \section{Implementation}
+%
+% \changes{1.3h}{2016/02/18}{\cs{cyrdash} is redefined}
+% \changes{1.3h}{2016/02/18}{Bugs fixed in captions for revtex4 and revtex4-1}
+% \changes{1.3g}{2015/05/01}{Added support for revtex4 and revtex4-1 classes}
+% \changes{1.3f}{2014/10/21}{Update documentation for generating by pdflatex.exe}
+% \changes{1.3e}{2014/10/14}{Update documentation}
+% \changes{1.3d}{2014/10/02}{Fix bug in \cs{Proj}}
+% \changes{1.3c}{2014/06/02}{Fix bug in \cs{daterussian}}
+% \changes{1.3b}{2013/04/06}{Renamed to russianb to work with babel 3.9}
+% \changes{1.2b}{2013/01/08}{Renamed to russianu to work with babel-beta 3.9}
+% \changes{1.2a}{2012/06/06}{Indentation of 1st paragraph removed}
+% \changes{1.1c}{1996/07/11}{Replaced \cs{undefined} with
+% \cs{@undefined} and \cs{empty} with \cs{@empty} for consistency
+% with \LaTeX}
+% \changes{1.1d}{1996/10/10}{Moved the definition of
+% \cs{atcatcode} right to the beginning.}
+% \changes{1.1k}{1999/08/19}{replaced all \cs{penalty}\cs{@M}
+% with \cs{nobreak}}
+% \changes{1.1f}{1998/06/26}{%
+% Added definitions of Cyrillic emdash stuff and thinspace}
+% \changes{1.1f}{1998/06/26}{%
+% Added definitions of Cyrillic emdash stuff and thinspace}
+%
+%
+% \subsection{Initial setup}
+%
+% The macro |\LdfInit| performs a couple of standard checks that
+% must be made at the beginning of a language definition file,
+% such as checking the category code of the \texttt{@}-sign, preventing
+% the \file{.ldf} file from being processed twice, etc.
+%
+% \changes{1.1d}{1996/11/03}{Now use \cs{LdfInit} to perform
+% initial checks}
+% \changes{1.1e}{1996/12/29}{Added closing brace to second
+% argument of \cs{LdfInit}}
+% \begin{macrocode}
+\ProvidesLanguage{russian}
+ [2017/08/12 1.3j Russian support for the Babel system]
+\LdfInit{russian}{captionsrussian}
+% \end{macrocode}
+%
+% First, we check if Lua\LaTeX\ or Xe\LaTeX\ is running. If so, we set
+% boolean key |\if@uni@ode| to true. It will be used to eliminate |\cyr...|
+% commands, which were introduced in \LaTeX2e\ to handle various
+% Cyrillic input encoding. With the advent of Unicode \LaTeX\ is
+% moving to universal input encoding, so we consider these |\cyr...|
+% commands as obsolete. They are preserved though for backward
+% compatibility in case if \LaTeX\ or PDF\LaTeX\ are running.
+%
+% We don't load the \pkg{ifluatex} or \pkg{ifxetex} package because
+% |\RequirePackage| is not allowed at the stage of processing options
+% (note that babel loads this file right when it processes its own options)
+% but we borrow code from these packages.
+%
+% \changes{1.2}{2011/10/20}{Check for LuaTeX}
+% \begin{macrocode}
+\ifdefined\if@uni@ode
+ \PackageError{babel}{if@uni@ode already defined.\MessageBreak
+ Please contact author of russianb.ldf}
+ \relax
+\fi
+\newif\if@uni@ode
+\ifdefined\luatexversion \@uni@odetrue \else
+\ifdefined\XeTeXrevision \@uni@odetrue \fi\fi
+% \end{macrocode}
+%
+% Check if hyphenation patterns for the Russian language have been
+% loaded in \file{language.dat}. Namely, we check for the existence of
+% |\l@russian|. If it is not defined, we declare Russian as dialect
+% for the default language number 0 which almost for sure is English.
+%
+% \begin{macrocode}
+\ifx\l@russian\@undefined
+ \@nopatterns{Russian}
+ \adddialect\l@russian0
+\fi
+% \end{macrocode}
+% Now |\l@russian| is always defined.
+%
+% \subsection{Output encoding}
+%
+% We need to know font encoding that is supposed to be
+% active at the end of the \babel\ package. Default font encoding, set by
+% \LaTeX\ core, is \texttt{OT1}. This can be changed by the \pkg{fontenc}
+% package in case of \LaTeX\ and by \pkg{fontspec} package in case of
+% Lua\LaTeX. It matters weather these packages are loaded before of after
+% \pkg{babel}. In the latter case or if these packages are not loaded at all,
+% \file{russianb.ldf} ignores their effect and tries to provide some
+% reasonable settings. In particular, \texttt{T2A} will be selected for
+% Russian language if \LaTeX\ is running but \texttt{TU} in case of
+% Xe\LaTeX\ or Lua\LaTeX.
+%
+% \begin{macro}{\latinencoding}
+% \changes{1.2}{2011/10/20}{Removed \cs{latinencoding}}
+%
+% The macro |\latinencoding| keeps the name of Latin encoding. It is
+% defined in \file{babel.def} and is wrapped into |\AtBeginDocument| to allow
+% for late loading \pkg{fontenc}. Therefore it does not matter
+% whether \pkg{babel} is loaded before or after the \pkg{fontenc}.
+% As of version 1.2, definition of |\latinencoding| was removed from
+% \file{russianb.ldf} since it is overruled in \file{babel.def}.
+% For example, after
+%\begin{verbatim}
+%\usepackage[T1,T2A]{fontenc}
+%\usepackage[english,russian]{babel}
+%\end{verbatim}%
+% as well as after
+%\begin{verbatim}
+%\usepackage[english,russian]{babel}
+%\usepackage[T1,T2A]{fontenc}
+%\end{verbatim}%
+% |\latinencoding| will be set to \texttt{T1}.
+% After
+%\begin{verbatim}
+%\usepackage[english,russian]{babel}
+%\end{verbatim}%
+% |\latinencoding| will be \texttt{OT1}.
+%
+% In Unicode mode, the package \pkg{fontspec} should be loaded instead of
+% \pkg{fontenc} to make font preparation; \pkg{fontspec} sets current encoding
+% (kept in |\cf@encoding|) to \texttt{TU}, and the \pkg{babel} package sets the
+% macro |\latinencoding| to |\cf@encoding|. Since \pkg{babel} scan for value
+% |\cf@encoding| within |\AtBeginDocument|, |\latinencoding| will
+% be set to \texttt{TU} for Xe\LaTeX\ or Lua\LaTeX\ no matter which of the
+% packages, \pkg{babel} or \pkg{fontspec} is loaded first.
+%
+% \end{macro}
+%
+% \Describe\cyrillicencoding{}
+% There is a limited list of encodings appropriate for Cyrillic text. We
+% will look which of them is declared and keep its name in the macro
+% |\cyrillicencoding|.
+% Correct (but obsolete and now deleted) 7-bit Cyrillic encoding is
+% \texttt{LWN}.
+% Correct 8-bit Cyrillic encodings are
+% \texttt{T2A} (default for 8-bit compilers), \texttt{T2B}, \texttt{T2C},
+% \texttt{LCY} and \texttt{X2}.
+% Correct utf8 encodings are
+% \texttt{TU} (default for Xe\LaTeX\ and Lua\LaTeX),
+% \texttt{EU1} (obsolete, formerly used for Xe\LaTeX),
+% \texttt{EU2} (obsolete, formerly used for Lua\LaTeX).
+%
+% In 8-bit (\LaTeX) mode, user may choose between different non-unicode Cyrillic
+% encodings---e.g., \texttt{X2} or \texttt{LCY}.\@ If user wants
+% to use another font encoding rather than default (\texttt{T2A}),
+% he has to load the corresponding file \emph{before} \file{babel.sty}.
+%
+% Remember that for the Russian language, the \texttt{T2A} encoding is
+% better than \texttt{X2}, because \texttt{X2} does not contain Latin
+% letters, and users should be very careful to switch the language
+% every time they want to typeset a Latin word inside a Russian phrase
+% or vice versa.
+%
+% We parse the |\cdp@list| containing encodings known to \LaTeX\
+% in the order they have been loaded by the time \pkg{babel} is called.
+% We set the |\cyrillicencoding| to the \emph{last} loaded encoding in the
+% list of supported Cyrillic encodings: \texttt{OT2}, \texttt{LCY},
+% \texttt{X2}, \texttt{T2C}, \texttt{T2B}, \texttt{T2A}. In Unicode mode,
+% |\cyrillicencoding| is set to \texttt{TU} by \pkg{fontspec}. Nevertheless
+% here we provide similar definitions; 8-bit encodings are kept for Unicode
+% compilers (Lua\LaTeX\ and Xe\LaTeX) since they can run in compatibility
+% (8-bit) mode.
+%
+% \changes{1.2}{2011/10/20}{EU1 and EU2 encodings added}
+% \changes{1.3j}{2017/08/07}{TU encoding added}
+% \begin{macrocode}
+\def\@setcyrillicencoding{%
+ \def\sce@a##1##2{%
+ \edef\sce@b{##1}%
+ \edef\sce@c{##2}%
+ \ifx\sce@b\sce@c
+ \let\cyrillicencoding\sce@c
+ \fi}%
+ \def\cdp@elt##1##2##3##4{%
+ \sce@a{##1}{OT2}%
+ \sce@a{##1}{LCY}%
+ \sce@a{##1}{X2}%
+ \sce@a{##1}{T2C}%
+ \sce@a{##1}{T2B}%
+ \sce@a{##1}{T2A}%
+ \if@uni@ode
+ %\sce@a{##1}{EU1}%
+ %\sce@a{##1}{EU2}%
+ \sce@a{##1}{TU}%
+ \fi}%
+ \cdp@list
+}
+\ifx\cyrillicencoding\undefined
+ \@setcyrillicencoding
+\fi
+\@onlypreamble\@setcyrillicencoding
+\@onlypreamble\sce@a
+\@onlypreamble\sce@b
+\@onlypreamble\sce@c
+% \end{macrocode}
+% The last lines are to free the memory occupied by the macros
+% |\@setcyrillicencoding| and |\sce@x| that are useless in the document.
+% The contents of |\@begindocumenthook| is cleared automatically.
+%
+% If |\cyrillicencoding| is still undefined, we issue warning and provide
+% reasonable default value for |\cyrillicencoding|. We then load default
+% encoding definitions; we use the lowercase names (i.e.,
+% \texttt{lcyenc.def} instead of \texttt{LCYenc.def}) when we do that.
+%
+% \changes{1.2}{2011/10/20}{Removed test for present of
+% encoding files}
+% \begin{macrocode}
+\ifx\cyrillicencoding\undefined
+ \if@uni@ode
+ %\ifdefined\XeTeXrevision
+ % \edef\cyrillicencoding{EU1}
+ %\else\ifdefined\luatexversion
+ % \edef\cyrillicencoding{EU2}
+ %\fi\fi
+ \edef\cyrillicencoding{TU}
+ \else
+ \edef\cyrillicencoding{T2A}
+ \fi
+ \PackageWarning{babel}%
+ {No Cyrillic font encoding has been loaded so far.\MessageBreak
+ A font encoding should be declared before babel.\MessageBreak
+ Default `\cyrillicencoding' encoding will be loaded
+ }%
+ \lowercase\expandafter{\expandafter\input\cyrillicencoding enc.def\relax}%
+% \end{macrocode}
+% As a final wisdom, we repeat |\@setcyrillicencoding| at |\begin{document}|
+% time. We could not avoid previous call to |\@setcyrillicencoding| since
+% compiler scan \file{.aux} file before it executes delayed code, and
+% \file{.aux} may contain |\set@langauge{russian}|; the latter rises an
+% error if |\cyrillicencoding| would not be defined by that time.
+% \begin{macrocode}
+ \AtBeginDocument{\@setcyrillicencoding}
+\fi
+% \end{macrocode}
+%
+% \Describe\Russian{}
+% For the sake of backward compatibility we keep the macro |\Russian|
+% but redefine its meaning; now |\Russian| is simply an alias for
+% |\selectlanguage{russian}|.
+% \begin{macrocode}
+\DeclareRobustCommand{\Russian}{\selectlanguage{\russian}}
+% \end{macrocode}
+%
+% \Describe\cyrillictext{}
+% \DescribeOther\cyr{}
+% We define |\cyrillictext| and its alias |\cyr| but remove another alias
+% |\Rus|; these macros are intended for use within \texttt{babel} macros and
+% do not perform complete switch of the language.
+%
+% In particular, they to do no switch captions and the name of current
+% language stored in the macro |\languagename|. This inconsistency might
+% break some assumptions embedded into \pkg{babel}'s.
+% For example, the |\iflanguage| macro will fail.
+%
+% Second, |\cyrillictext| does
+% not activate shorthands, so that |"<|, |">|, |"`|, |"'|,
+% |"---|, e.t.c. will not work.
+%
+% And third, |\cyrillictext| does not write its trace
+% to \file{.aux} file, which might result in wrong typesetting of
+% table of content, list of table and list of figures in multilingual
+% documents.
+%
+% Due to any of these reasons the use of the declaration |\cyrillictext| and
+% its aliases in ordinary text is strongly discouraged. Instead of the
+% declaration |\cyrillictext| it is recommended to use |\Russian| or the
+% command |\foreignlanguage| defined in the \pkg{babel} core; their
+% functionality is similar to |\selectlanguage{russian}| but they did not
+% switch caption names, dates and shorthands.
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\cyrillictext}{%
+ \fontencoding\cyrillicencoding\selectfont
+ \let\encodingdefault\cyrillicencoding
+ \expandafter\set@hyphenmins\russianhyphenmins
+ \language\l@russian}%
+\let\cyr\cyrillictext
+% \end{macrocode}
+%
+% Since version v.1.2, the |\English| macro and its alias |\Eng| were removed
+% as a reasonable place for defining these macros would be \file{englishb.ldf}.
+% Note also that these macros are absent from \file{russianb.ldf}'s counterpart
+% of the package \pkg{polyglossia}, analog of \pkg{babel} for Xe\LaTeX.
+%
+% \changes{1.2}{2011/10/20}{Removed \cs{English} and \cs{Eng} macros}
+% \begin{macrocode}
+%%\DeclareRobustCommand{\English}{%
+%% \fontencoding\latinencoding\selectfont
+%% \let\encodingdefault\latinencoding
+%% \expandafter\set@hyphenmins\englishhyphenmins
+%% \language\l@english}%
+%%\let\Eng\English
+% \end{macrocode}
+% The macro |\cyrillictext| switches current (e.g., Latin) font encoding
+% to a Cyrillic font encoding stored in |\cyrillicencoding|. The macro
+% |\latintext| switches back. This method assumes that main font
+% encoding is a Latin one. But, in fact, the latter assumption does not matter
+% if any other language is switched on using same method, i.e.
+% if corresponding \file{.ldf} file defines required macros to switch that
+% language on from same standard (Latin) state.
+% Since |\latintext| is defined by the core of babel we do not repeat its
+% definition here.
+%
+% \changes{1.1o}{2003/10/12}{\cs{latintext} is already
+% defined by the core of babel}
+% \changes{1.2}{2011/10/20}{\cs{lat} removed}
+% \begin{macrocode}
+%%\DeclareRobustCommand{\latintext}{%
+%% \fontencoding{\latinencoding}\selectfont
+%% \def\encodingdefault{\latinencoding}}
+%%\let\lat\latintext
+% \end{macrocode}
+%
+% \Describe\textcyrillic{\marg{text}}
+% The macro |\textcyrillic| takes an argument which is then typeset using the
+% |\cyrillictext| declaration.
+% \changes{1.1o}{2003/10/12}{\cs{textlatin} already defined
+% by the core of babel}
+% \begin{macrocode}
+\DeclareTextFontCommand{\textcyrillic}{\cyrillictext}
+% \end{macrocode}
+%
+%
+% \textsc{Next chunk of code should be moved to \texttt{X2enc.def},
+% \texttt{X2enc.dfu}, if needed.}
+%
+% Since the \texttt{X2} encoding does not contain Latin letters, we
+% should make some redefinitions of \LaTeX\ macros which implicitly
+% produce Latin letters. Unfortunately, the commands |\AA| and |\aa| are not
+% encoding dependent in \LaTeX\ (unlike e.g., |\oe| or |\DH|). They are defined
+% as |\r{A}| and |\r{a}|. This leads to unpredictable results when the font
+% encoding does not contain the Latin letters `A' and `a' (like \texttt{X2}).
+% \begin{macrocode}
+%%\expandafter\ifx\csname T@X2\endcsname\relax\else
+%% \DeclareTextSymbolDefault{\AA}{OT1}
+%% \DeclareTextSymbolDefault{\aa}{OT1}
+%% \DeclareTextCommand{\aa}{OT1}{\r a}
+%% \DeclareTextCommand{\AA}{OT1}{\r A}
+%%\fi
+% \end{macrocode}
+%
+%
+% \subsection{Input encoding}
+%
+% We do not assume any default input encoding of the source file,
+% so the \pkg{inputenc} package should be explicitly loaded by
+% |\usepackage[...]{inputenc}| \emph{before} \pkg{babel}.
+% Note that default font encoding \texttt{T2A} for legacy 8-bit latex
+% engines fits well enough to Russian version of Windows ANSI encoding which
+% is almost equivalent to \texttt{cp1251} input encoding.
+%
+% \textsc{Should we wrap this chunk into AtBeginDocument? Note also that
+% \pkg{inputenc} has its own check whether it is correctly called. Also,
+% it is difficult to imagine that TU encoding is not declared in case of
+% unicode engines. Hence, we remove this check in babel starting since
+% version 1.3j.}
+%
+% \changes{1.1l}{1999/08/27}{Made not using inputenc a
+% warning instead of an error}
+% \changes{1.2}{2011/10/11}{Added EU1 and EU2 encodings}
+% \changes{1.2}{2011/10/11}{Removed LWN encoding}
+% \changes{1.3j}{2017/08/08}{Removed check if inputenc is loaded}
+% \begin{macrocode}
+%%\@ifpackageloaded{inputenc}{%
+%%% \if@uni@ode
+%%% \PackageWarning{babel}{inputenc should not be used with LuaTeX or XeTeX}
+%%% \fi
+%% \ifdefined\luatexversion
+%% \PackageWarning{babel}{inputenc should not be used with LuaTeX}
+%% \fi}{%
+%% %\def\reserved@a{LWN}%
+%% %\ifx\reserved@a\cyrillicencoding\else
+%% \def\reserved@a{OT2}%
+%% \ifx\reserved@a\cyrillicencoding\else
+%% \def\reserved@a{TU}%
+%% \ifx\reserved@a\cyrillicencoding\else
+%% \PackageWarning{babel}%
+%% {No input encoding specified for Russian language}
+%% \fi\fi
+%% %\fi
+%%}
+% \end{macrocode}
+%
+%
+% \subsection{Shorthands}
+%
+% The double quote character \texttt{"} is declared to be active in
+% Russian language.
+%
+% \changes{1.1a}{1995/03/07}{Use the new mechanism for dealing
+% with active characters}
+% \begin{macrocode}
+\initiate@active@char{"}
+% \end{macrocode}
+%
+% \changes{1.1f}{1998/06/26}{Added switch for
+% doublequote shorthands}
+% \changes{1.3}{2013/01/10}{Removed switch for
+% doublequote shorthands}
+%
+% \begin{macro}{\mdqon}
+% \begin{macro}{\mdqoff}
+% Obsolete: Active double quote can be both activated and deactivated at any time
+% using the macros |\mdqon| and |\mdqoff|.
+% \begin{macrocode}
+%%\def\mdqon{\bbl@activate{"}}
+%%\def\mdqoff{\bbl@deactivate{"}}
+% \end{macrocode}
+% Initial activation state is set in section \ref{sss:extra}.
+% \end{macro}
+% \end{macro}
+%
+% \Describe\dq{}
+% The active character |"| is used as indicated in
+% table~\ref{tab:russian-quote}. We save the original double quote
+% character in the |\dq| macro to keep it available.
+% The math accent |\"| can now be typed as `|"|'.
+%
+% \begin{macrocode}
+\begingroup \catcode`\"12
+\def\reserved@a{\endgroup
+ \def\@SS{\mathchar"7019 }
+ \def\dq{"}}
+\reserved@a
+% \end{macrocode}
+%
+% \subsubsection{Quotes}
+%
+% We set |"`| and |"'| as shorthands for |\quotedblbase| and
+% |\textquotedblleft|, respectively. Prior to ver.1.2, these shorthands
+% were defined through German quotes |\glqq| and |\grqq|, which in their turn
+% are defined in \pkg{babel.def} via |\quotedblbase| and |\textquotedblleft|,
+% respectively. It occurred, that old definition caused errors in Unicode
+% mode if \pkg{fontspec} is loaded.
+%
+% Prior to version 1.2, the shorthands |"<| and |">| had been
+% declared to be equivalents for the French quotes |\flqq| and |\frqq|,
+% respectively. They are defined in \pkg{babel.def} via |\guillemotleft| and
+% |\guillemotright|. However, |\flqq| and |\guillemotleft| (and their right
+% counterparts) are typeset differently if current encoding is not
+% \texttt{T1}. Therefore, since v.1.2, we define |"<| and |">| directly
+% through |\guillemotleft| and |\guillemotright|.
+%
+% \begin{macrocode}
+\declare@shorthand{russian}{"`}{\quotedblbase}
+\declare@shorthand{russian}{"'}{\textquotedblleft}
+\declare@shorthand{russian}{"<}{\guillemotleft}
+\declare@shorthand{russian}{">}{\guillemotright}
+% \end{macrocode}
+%
+% Next set of shorthands is intended for variations of standard macro |\-|
+% which indicates explicitly breakpoint for hyphenation in a word. Meaning
+% of these shorthands is explained in table~\ref{tab:russian-quote}.
+%
+% \begin{macrocode}
+\declare@shorthand{russian}{""}{\hskip\z@skip}
+\declare@shorthand{russian}{"~}{\textormath{\leavevmode\hbox{-}}{-}}
+\declare@shorthand{russian}{"=}{\nobreak-\hskip\z@skip}
+\declare@shorthand{russian}{"|}{%
+ \textormath{\nobreak\discretionary{-}{}{\kern.03em}\allowhyphens}{}}
+% \end{macrocode}
+%
+% \subsubsection{Emdash, endash and hyphenation sign}
+%
+% To distinguish between |"-| and |"---| we must check whether the next token
+% after |-| is a hyphen character.
+% If it is, we output an emdash, otherwise a hyphen sign. Therefor
+% \TeX\ looks for the next token after the first `|-|', writes
+% its meaning to |\russian@sh@next| and finally call for |\russian@sh@tmp|.
+% \begin{macrocode}
+\declare@shorthand{russian}{"-}{%
+ \def\russian@sh@tmp{%
+ \if\russian@sh@next-\expandafter\russian@sh@emdash
+ \else\expandafter\russian@sh@hyphen\fi}%
+ \futurelet\russian@sh@next\russian@sh@tmp}
+% \end{macrocode}
+% Two macros |\russian@sh@hyphen| and |\russian@sh@emdash| called by
+% |\russian@sh@tmp| are defined below. The second of
+% them has two parameters since it must gobble next two hyphen signs.
+% \begin{macrocode}
+\def\russian@sh@hyphen{\nobreak\-\bbl@allowhyphens}
+\def\russian@sh@emdash#1#2{\cdash-#1#2}
+% \end{macrocode}
+%
+% \Describe\cdash{}
+% In its turn, |\russian@sh@emdash| simply calls for |\cdash| which has
+% rich use. It analyses 3rd of 3 characters and calls for one of few
+% predefined macros |\@Acdash|, |\@Bcdash|, |\@Ccdash|.
+% \begin{macrocode}
+\def\cdash#1#2#3{\def\tempx@{#3}%
+\def\tempa@{-}\def\tempb@{~}\def\tempc@{*}%
+ \ifx\tempx@\tempa@\@Acdash\else
+ \ifx\tempx@\tempb@\@Bcdash\else
+ \ifx\tempx@\tempc@\@Ccdash\else
+ \errmessage{Wrong usage of cdash}\fi\fi\fi}
+% \end{macrocode}
+%
+% All these 3 internal macros call for |\cyrdash|, which type Cyrillic
+% emdash, but put different spaces around the dash.
+%
+% |\@Acdash| is invoked by |"---|. It types Cyrillic emdash to be used
+% inside a text and puts an unbreakable thin space before the dash if a
+% \textit{space} is placed before |"---| in the source file;
+% can be used after display maths formulae, formatted lists, enumerations, etc.
+% \begin{macrocode}
+\def\@Acdash{\ifdim\lastskip>\z@\unskip\nobreak\hskip.2em\fi
+ \cyrdash\hskip.2em\ignorespaces}%
+% \end{macrocode}
+%
+% |\@Bcdash| is invoked by |"--~|. It types Cyrillic emdash in compound
+% names (like Mendeleev--Klapeiron); requires no space characters around and
+% adds extra space after the dash.
+% \begin{macrocode}
+\def\@Bcdash{\leavevmode\ifdim\lastskip>\z@\unskip\fi
+ \nobreak\cyrdash\penalty\exhyphenpenalty\hskip\z@skip\ignorespaces}%
+% \end{macrocode}
+%
+% |\@Ccdash| is invoked by |"--*|. It denotes direct speech and adds small
+% space after the dash.
+% \begin{macrocode}
+\def\@Ccdash{\leavevmode
+ \nobreak\cyrdash\nobreak\hskip.35em\ignorespaces}%
+% \end{macrocode}
+%
+% \changes{1.1f}{1998/06/26}{%
+% Add macro for thin space between initials}
+%
+% Finally, we define a shorthand thin space to be placed between initials
+% as in |D.",Mendeleev|. When used instead of |\,| as in |D.\,Mendeleev|
+% it allows hyphenation in the next word.
+%
+% \begin{macrocode}
+\declare@shorthand{russian}{",}{\nobreak\hskip.2em\ignorespaces}
+% \end{macrocode}
+%
+%
+% \Describe\cyrdash{}
+% The |\cyrdash| macro is defined in Cyrillic font encodings (LCY, T2*, OT2,
+% and |X2|) by means of |\DeclareTextSymbol|. In T2* encodings |\cyrdash|
+% refers to same code point 22 as |\textemdash| does so that these two macros
+% are equivalent. However the dash at the code point 22 have different length
+% in different fonts. The dash in Cyrillic fonts LH is 20\% shorter as
+% compared to Latin fonts such as CM (Computer Modern). As a result, the dash
+% typed by the ligature |---| or its variations mentioned in Table
+% \ref{tab:russian-quote} might change its length after |\selectlanguage|.
+%
+% The |\cyrdash| macro is not available in Latin encodings such as T1. Therefor
+% an explicit or implicit call for |\cyrdash| when current language is English
+% causes an error. For such a case, we provide a fake default. A standard check
+% such as |\ifx\cyrdash\undefined ...\fi| fails to detect absent definitions
+% for Latin encodings since the |\cyrdash| macro is in fact defined. Therefor
+% we use the |\ProvideTextCommandDefault| method:
+% \changes{1.3j}{2017/08/08}{Default for \cs{cyrdash} is provided}
+% \begin{macrocode}
+\PackageInfo{babel}{Default for \string\cyrdash\space is provided}
+%%\ProvideTextCommandDefault{\cyrdash}{\iflanguage{russian}%
+%% {\hbox to.8em{--\hss--}}{\textemdash}}
+\ProvideTextCommandDefault{\cyrdash}{\hbox to.8em{--\hss--}}
+% \end{macrocode}%
+%
+% The |\cyrdash| macro is not defined in the Unicode encoding TU. The fake
+% definition given above cope with this case.
+%
+%
+% \subsection{Switching to/from Russian}
+%
+% Now we define additional macros used to reset current language to
+% Russian and back
+% to some original state. The package \pkg{babel} based on the assumption
+% that original state is characterized by a Latin encoding. Previously,
+% for back reset the macro |\OriginalTeX| was used, but now use |\latintext|
+% for the same purpose.
+%
+%
+% \subsubsection{Caption names}
+%
+% First, we define Russian equivalents for Russian caption names.
+%
+% \Describe\captionsrussian{}
+% The macro |\captionsrussian| defines caption names used in the
+% four standard document classes provided with \LaTeX. The macro |\cyr|
+% activates Cyrillic encoding. It could be dropped if we would be sure
+% that Russian captions are called only if current language is Russian.
+% However, the macros such as |\Russian| do not conform to strict rules
+% of the package \pkg{babel} as explained in the above.
+%
+% As of version v.1.2 we eliminate |\cyr...| macros from caption names
+% if Unicode engine is running. In the latter case, Cyrillic letters are typed
+% in by their Unicode code-points, the |^^^^abcd| notation is not used
+% since it causes error at compilation time in case if \LaTeX\ is running
+% and \texttt{utf8} input encoding is not declared.
+%
+% \changes{1.2}{2011/10/20}{Unicode code-points added for LuaLaTeX}
+% \begin{macrocode}
+\if@uni@ode
+ %\captionsrussian@modern
+ \addto\captionsrussian{%
+ \def\prefacename{Предисловие}% [babel]
+ \def\refname{Список литературы}% [only article]
+ \def\abstractname{Аннотация}% [only article, report]
+ \def\bibname{Литература}% [only book, report]
+ \def\chaptername{Глава}% [only book, report]
+ \def\appendixname{Приложение}%
+% \end{macrocode}
+% Note that two names for the Table of Contents can be used in Russian
+% publications. For books (and reports) the second variant is
+% appropriate, but for proceedings the first variant is preferred:
+% \begin{macrocode}
+ \@ifundefined{thechapter}
+ {\def\contentsname{Содержание}}%
+ {\def\contentsname{Оглавление}}%
+ \let\tocname=\contentsname
+ \def\listfigurename{Список иллюстраций}%
+ \def\listtablename{Список таблиц}%
+ \def\indexname{Предметный указатель}%
+ \def\authorname{Именной указатель}%
+ \def\figurename{Рис.}%
+ \def\tablename{Таблица}%
+ \def\partname{Часть}%
+ \def\enclname{вкл.}%
+ \def\ccname{исх.}%
+ \def\headtoname{вх.}%
+ \def\pagename{с.}% [letter]
+ \def\seename{см.}%
+ \def\alsoname{см.\ также}%
+ \def\proofname{Доказательство}% [amsthm]
+ \def\glossaryname{Словарь терминов}%
+ \def\acronymname{Аббревиатуры}% [glossaries] {Acronyms}
+ \def\lstlistingname{Листинг}% [listings] (the environment) {Listing}
+ \def\lstlistlistingname{Листинги}% [listings] (the "List of") {Listings}
+ \def\notesname{Заметки}% [endnotes] {Notes}
+ }%
+% \end{macrocode}
+% Additional definitions for the package \pkg{nomencl}:
+% \begin{macrocode}
+ %% =========================================
+ %% nomencl
+ \ifdefined\nomname
+ \addto\captionsrussian{%
+ \def\nomname{Обозначения}%
+ \def\eqdeclaration#1{, см.\nobreakspace(#1)}%
+ \def\pagedeclaration#1{, стр.\nobreakspace#1}%
+ }%
+ \fi
+% \end{macrocode}
+% Additional captions for the \cls{revtex} class.
+% \begin{macrocode}
+ %% =========================================
+ %% RevTeX4 & RevTeX4-1
+ %%\@ifclassloaded{revtex4-1}
+ %%{<true code>}
+ %%{<false coode>}%
+ %\@ifclassloaded{revtex4-1}
+ %{%
+ \ifnum\@ifclassloaded{revtex4}{1}{\@ifclassloaded{revtex4-1}{1}{0}}>0
+ \addto\captionsrussian{%
+ \def\lofname{\listfigurename}
+ \def\lotname{\listtablename}
+ \def\figuresname{Рисунки}%{Figures}%
+ \def\tablesname{Таблицы}%{Tables}%
+ \def\appendixesname{Приложения}%{Appendixes}%
+ \def\acknowledgmentsname{Благодарности}%{Acknowledgments}
+ \def\andname{и}%{and}
+ \def\@pacs@name{PACS коды: }%{PACS numbers: }%
+ \def\@keys@name{Ключевые слова: }%{Keywords: }%
+ \def\Dated@name{Дата: }%{Dated: }%
+ \def\Received@name{Получено }%{Received }%
+ \def\Revised@name{Исправленная версия }%{Revised }%
+ \def\Accepted@name{Принято }%{Accepted }%
+ \def\Published@name{Опубликовано }%{Published }%
+ }%
+ %}{}%
+ \fi
+% \end{macrocode}
+%
+% \changes{1.3h}{2016/02/18}{Revtex captions fixed}
+% Now we proceed to the ancient version in Unicode encoding.
+% \begin{macrocode}
+ \addto\captionsrussian@ancient{%
+ \def\prefacename{Предисловіе}%
+ \def\refname{Примѣчанія}%
+ \def\abstractname{Аннотація}%
+ \def\bibname{Библіографія}%
+ \def\chaptername{Глава}%
+ \def\appendixname{Приложеніе}%
+ \@ifundefined{thechapter}
+ {\def\contentsname{Содержаніе}}%
+ {\def\contentsname{Оглавленіе}}%
+ \let\tocname=\contentsname
+ \def\listfigurename{Списокъ иллюстрацій}%
+ \def\listtablename{Списокъ таблицъ}%
+ \def\indexname{Предмѣтный указатель}%
+ \def\authorname{Именной указатель}%
+ \def\figurename{Рис.}%
+ \def\tablename{Таблица}%
+ \def\partname{Часть}%
+ \def\enclname{вкл.}%
+ \def\ccname{исх.}%
+ \def\headtoname{вх.}%
+ \def\pagename{с.}%
+ \def\seename{см.}%
+ \def\alsoname{см.~также}%
+ \def\proofname{Доказательство}%
+ \def\glossaryname{Словарь терминов}%
+ \def\acronymname{Аббревиатуры}%
+ \def\lstlistingname{Листинг}%
+ \def\lstlistlistingname{Листинги}%
+ %\ifdefined\nomname
+ % see http://old_russian.academic.ru/8433/%D0%BE%D0%B1%D1%8A%CB%AB%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D1%A5
+ \def\nomname{Обозначенія}%{Объавлениѥ}% <-- #0465
+ %\fi
+ \def\notesname{Заметки}%
+ }
+ %% =========================================
+ %% RevTeX4 & RevTeX4-1
+ %\@ifclassloaded{revtex4-1}
+ %{%
+ \ifnum\@ifclassloaded{revtex4}{1}{\@ifclassloaded{revtex4-1}{1}{0}}>0
+ \addto\captionsrussian@ancient{%
+ \def\lofname{\listfigurename}
+ \def\lotname{\listtablename}
+ \def\figuresname{Рисунки}%{Figures}%
+ \def\tablesname{Таблицы}%{Tables}%
+ \def\appendixesname{Приложения}%{Appendixes}%
+ \def\acknowledgmentsname{Благодарности}%{Acknowledgments}
+ \def\andname{и}%{and}
+ \def\@pacs@name{PACS коды: }%{PACS numbers: }%
+ \def\@keys@name{Ключевые слова: }%{Keywords: }%
+ \def\Dated@name{Дата: }%{Dated: }%
+ \def\Received@name{Получено }%{Received }%
+ \def\Revised@name{Исправленная версия }%{Revised }%
+ \def\Accepted@name{Принято }%{Accepted }%
+ \def\Published@name{Опубликовано }%{Published }%
+ }%
+ %}{}%
+ \fi
+ %% =========================================
+\else
+ %\def\captionsrussian@modern{%
+ \addto\captionsrussian{%
+ \def\prefacename{%
+ {\cyr\CYRP\cyrr\cyre\cyrd\cyri\cyrs\cyrl\cyro\cyrv\cyri\cyre}}%
+ \def\refname{%
+ {\cyr\CYRS\cyrp\cyri\cyrs\cyro\cyrk\
+ \cyrl\cyri\cyrt\cyre\cyrr\cyra\cyrt\cyru\cyrr\cyrery}}%
+ \def\abstractname{%
+ {\cyr\CYRA\cyrn\cyrn\cyro\cyrt\cyra\cyrc\cyri\cyrya}}%
+ \def\bibname{%
+ {\cyr\CYRL\cyri\cyrt\cyre\cyrr\cyra\cyrt\cyru\cyrr\cyra}}%
+ \def\chaptername{{\cyr\CYRG\cyrl\cyra\cyrv\cyra}}%
+ \def\appendixname{%
+ {\cyr\CYRP\cyrr\cyri\cyrl\cyro\cyrzh\cyre\cyrn\cyri\cyre}}%
+ \@ifundefined{thechapter}%
+ {\def\contentsname{%
+ {\cyr\CYRS\cyro\cyrd\cyre\cyrr\cyrzh\cyra\cyrn\cyri\cyre}}}%
+ {\def\contentsname{%
+ {\cyr\CYRO\cyrg\cyrl\cyra\cyrv\cyrl\cyre\cyrn\cyri\cyre}}}%
+ \let\tocname=\contentsname
+ \def\listfigurename{%
+ {\cyr\CYRS\cyrp\cyri\cyrs\cyro\cyrk
+ \ \cyri\cyrl\cyrl\cyryu\cyrs\cyrt\cyrr\cyra\cyrc\cyri\cyrishrt}}%
+ \def\listtablename{%
+ {\cyr\CYRS\cyrp\cyri\cyrs\cyro\cyrk
+ \ \cyrt\cyra\cyrb\cyrl\cyri\cyrc}}%
+ \def\indexname{%
+ {\cyr\CYRP\cyrr\cyre\cyrd\cyrm\cyre\cyrt\cyrn\cyrery\cyrishrt
+ \ \cyru\cyrk\cyra\cyrz\cyra\cyrt\cyre\cyrl\cyrsftsn}}%
+ \def\authorname{%
+ {\cyr\CYRI\cyrm\cyre\cyrn\cyrn\cyro\cyrishrt
+ \ \cyru\cyrk\cyra\cyrz\cyra\cyrt\cyre\cyrl\cyrsftsn}}%
+ \def\figurename{{\cyr\CYRR\cyri\cyrs.}}%
+ \def\tablename{{\cyr\CYRT\cyra\cyrb\cyrl\cyri\cyrc\cyra}}%
+ \def\partname{{\cyr\CYRCH\cyra\cyrs\cyrt\cyrsftsn}}%
+ \def\enclname{{\cyr\cyrv\cyrk\cyrl.}}%
+ \def\ccname{{\cyr\cyri\cyrs\cyrh.}}%
+ \def\headtoname{{\cyr\cyrv\cyrh.}}%
+ \def\pagename{{\cyr\cyrs.}}%
+ \def\seename{{\cyr\cyrs\cyrm.}}%
+ \def\alsoname{{\cyr\cyrs\cyrm.\ \cyrt\cyra\cyrk\cyrzh\cyre}}%
+ \def\proofname{{\cyr\CYRD\cyro\cyrk\cyra\cyrz\cyra\cyrt
+ \cyre\cyrl\cyrsftsn\cyrs\cyrt\cyrv\cyro}}%
+ \def\glossaryname{{\cyr\CYRS\cyrl\cyro\cyrv\cyra\cyrr\cyrsftsn\
+ \cyrt\cyre\cyrr\cyrm\cyri\cyrn\cyro\cyrv}}%
+ \def\acronymname{\CYRA\cyrb\cyrb\cyrr\cyre\cyrv\cyri\cyra\cyrt\cyru\cyrr\cyrery}%
+ \def\lstlistingname{\CYRL\cyri\cyrs\cyrt\cyri\cyrn\cyrg}%
+ \def\lstlistlistingname{\CYRL\cyri\cyrs\cyrt\cyri\cyrn\cyrg\cyri}%
+ \def\nomname{\CYRO\cyrb\cyro\cyrz\cyrn\cyra\cyrch\cyre\cyrn\cyri\cyrya}%
+ \def\notesname{\CYRZ\cyra\cyrm\cyre\cyrt\cyrk\cyri}%
+ }%
+ %% =========================================
+ %% RevTeX4 & RevTeX4-1
+ \ifnum \@ifclassloaded{revtex4}{1}{\@ifclassloaded{revtex4-1}{1}{0}}>0
+ \addto\captionsrussian{%
+ \def\lofname{\listfigurename}
+ \def\lotname{\listtablename}
+ \def\figuresname{\CYRR\cyri\cyrs\cyru\cyrn\cyrk\cyri}%{Figures}%
+ \def\tablesname{\CYRT\cyra\cyrb\cyrl\cyri\cyrc\cyrery}%{Tables}%
+ \def\appendixesname{\CYRP\cyrr\cyri\cyrl\cyro\cyrzh\cyre\cyrn\cyri\cyrya}%{Appendixes}%
+ \def\acknowledgmentsname{\CYRB\cyrl\cyra\cyrg\cyro\cyrd\cyra\cyrr\cyrn\cyro\cyrs\cyrt\cyri}%{Acknowledgments}
+ \def\andname{\cyri}%{and}
+ \def\@pacs@name{PACS \cyrk\cyro\cyrd\cyrery: }%{PACS numbers: }%
+ \def\@keys@name{\CYRK\cyrl\cyryu\cyrch\cyre\cyrv\cyrery\cyre \cyrs\cyrl\cyro\cyrv\cyra: }%{Keywords: }%
+ \def\Dated@name{\CYRD\cyra\cyrt\cyra: }%{Dated: }%
+ \def\Received@name{\CYRP\cyro\cyrl\cyru\cyrch\cyre\cyrn\cyro }%{Received }%
+ \def\Revised@name{\CYRI\cyrs\cyrp\cyrr\cyra\cyrv\cyrl\cyre\cyrn\cyrn\cyra\cyrya \cyrv\cyre\cyrr\cyrs\cyri\cyrya }%{Revised }%
+ \def\Accepted@name{\CYRP\cyrr\cyri\cyrn\cyrya\cyrt\cyro }%{Accepted }%
+ \def\Published@name{\CYRO\cyrp\cyru\cyrb\cyrl\cyri\cyrk\cyro\cyrv\cyra\cyrn\cyro }%{Published }%
+ }%
+ \fi
+ %% =========================================
+ \addto\captionsrussian@ancient{%
+ \def\prefacename{%
+ {\cyr\CYRP\cyrr\cyre\cyrd\cyri\cyrs\cyrl\cyro\cyrv\cyrii\cyre}}%
+ \def\refname{%
+ {\cyr\CYRP\cyrr\cyri\cyrm\cyryat\cyrch\cyra\cyrn\cyrii\cyrya}}% <-- Примѣчанія, нет \cyryat в кодировке T2*
+ \def\abstractname{%
+ {\cyr\CYRA\cyrn\cyrn\cyro\cyrt\cyra\cyrc\cyrii\cyrya}}%
+ \def\bibname{%
+ {\cyr\CYRB\cyri\cyrb\cyrl\cyrii\cyro\cyrg\cyrr\cyra\cyrf\cyrii\cyrya}}% <-- Библіографія
+ \def\chaptername{{\cyr\CYRG\cyrl\cyra\cyrv\cyra}}%
+ \def\appendixname{%
+ {\cyr\CYRP\cyrr\cyri\cyrl\cyro\cyrzh\cyre\cyrn\cyrii\cyre}}%
+ \@ifundefined{thechapter}%
+ {\def\contentsname{%
+ {\cyr\CYRS\cyro\cyrd\cyre\cyrr\cyrzh\cyra\cyrn\cyrii\cyre}}}%
+ {\def\contentsname{%
+ {\cyr\CYRO\cyrg\cyrl\cyra\cyrv\cyrl\cyre\cyrn\cyrii\cyre}}}%
+ \let\tocname=\contentsname
+ % Списокъ иллюстрацій
+ \def\listfigurename{%
+ {\cyr\CYRS\cyrp\cyri\cyrs\cyro\cyrk\cyrhrdsn\
+ \cyri\cyrl\cyrl\cyryu\cyrs\cyrt\cyrr\cyra\cyrc\cyrii\cyrishrt}}
+ % Списокъ таблицъ
+ \def\listtablename{%
+ {\cyr\CYRS\cyrp\cyri\cyrs\cyro\cyrk\cyrhrdsn\
+ \cyrt\cyra\cyrb\cyrl\cyri\cyrc\cyrhrdsn}}%
+ % Предмѣтный указатель, ѣ (\cyryat) in X2 encoding only
+ \def\indexname{%
+ {\cyr\CYRP\cyrr\cyre\cyrd\cyrm\cyryat\cyrt\cyrn\cyrery\cyrishrt\space
+ \cyru\cyrk\cyra\cyrz\cyra\cyrt\cyre\cyrl\cyrsftsn}}%
+ \def\authorname{%
+ {\cyr\CYRI\cyrm\cyre\cyrn\cyrn\cyro\cyrishrt\
+ \cyru\cyrk\cyra\cyrz\cyra\cyrt\cyre\cyrl\cyrsftsn}}%
+ \def\figurename{{\cyr\CYRR\cyri\cyrs.}}%
+ \def\tablename{{\cyr\CYRT\cyra\cyrb\cyrl\cyri\cyrc\cyra}}%
+ \def\partname{{\cyr\CYRCH\cyra\cyrs\cyrt\cyrsftsn}}%
+ \def\enclname{{\cyr\cyrv\cyrk\cyrl.}}%
+ \def\ccname{{\cyr\cyri\cyrs\cyrh.}}%
+ \def\headtoname{{\cyr\cyrv\cyrh.}}%
+ \def\pagename{{\cyr\cyrs.}}%
+ \def\seename{{\cyr\cyrs\cyrm.}}%
+ \def\alsoname{{\cyr\cyrs\cyrm.\ \cyrt\cyra\cyrk\cyrzh\cyre}}%
+ \def\proofname{{\cyr\CYRD\cyro\cyrk\cyra\cyrz\cyra\cyrt
+ \cyre\cyrl\cyrsftsn\cyrs\cyrt\cyrv\cyro}}%
+ \def\glossaryname{{\cyr\CYRS\cyrl\cyro\cyrv\cyra\cyrr\cyrsftsn\
+ \cyrt\cyre\cyrr\cyrm\cyri\cyrn\cyro\cyrv}}% <-- Needs translation
+ \def\acronymname{\CYRA\cyrb\cyrb\cyrr\cyre\cyrv\cyri\cyra\cyrt\cyru\cyrr\cyrery}%
+ \def\lstlistingname{\CYRL\cyri\cyrs\cyrt\cyri\cyrn\cyrg}%
+ \def\lstlistlistingname{\CYRL\cyri\cyrs\cyrt\cyri\cyrn\cyrg\cyri}%
+ \def\nomname{\CYRO\cyrb\cyro\cyrz\cyrn\cyra\cyrch\cyre\cyrn\cyrii\cyrya}%
+ \def\notesname{\CYRZ\cyra\cyrm\cyre\cyrt\cyrk\cyri}%
+ }%
+ %% =========================================
+ %% RevTeX4 & RevTeX4-1
+ \ifnum \@ifclassloaded{revtex4}{1}{\@ifclassloaded{revtex4-1}{1}{0}}>0
+ \addto\captionsrussian@ancient{%
+ \def\lofname{\listfigurename}
+ \def\lotname{\listtablename}
+ \def\figuresname{\CYRR\cyri\cyrs\cyru\cyrn\cyrk\cyri}%{Figures}%
+ \def\tablesname{\CYRT\cyra\cyrb\cyrl\cyri\cyrc\cyrery}%{Tables}%
+ \def\appendixesname{\CYRP\cyrr\cyri\cyrl\cyro\cyrzh\cyre\cyrn\cyri\cyrya}%{Appendixes}%
+ \def\acknowledgmentsname{\CYRB\cyrl\cyra\cyrg\cyro\cyrd\cyra\cyrr\cyrn\cyro\cyrs\cyrt\cyri}%{Acknowledgments}
+ \def\andname{\cyri}%{and}
+ \def\@pacs@name{PACS \cyrk\cyro\cyrd\cyrery: }%{PACS numbers: }%
+ \def\@keys@name{\CYRK\cyrl\cyryu\cyrch\cyre\cyrv\cyrery\cyre \cyrs\cyrl\cyro\cyrv\cyra: }%{Keywords: }%
+ \def\Dated@name{\CYRD\cyra\cyrt\cyra: }%{Dated: }%
+ \def\Received@name{\CYRP\cyro\cyrl\cyru\cyrch\cyre\cyrn\cyro }%{Received }%
+ \def\Revised@name{\CYRI\cyrs\cyrp\cyrr\cyra\cyrv\cyrl\cyre\cyrn\cyrn\cyra\cyrya \cyrv\cyre\cyrr\cyrs\cyri\cyrya }%{Revised }%
+ \def\Accepted@name{\CYRP\cyrr\cyri\cyrn\cyrya\cyrt\cyro }%{Accepted }%
+ \def\Published@name{\CYRO\cyrp\cyru\cyrb\cyrl\cyri\cyrk\cyro\cyrv\cyra\cyrn\cyro }%{Published }%
+ }%
+ \fi
+ %% =========================================
+\fi
+% \end{macrocode}
+%
+% \subsubsection{Date in Russian}
+%
+% \Describe\daterussian{}
+% The macro |\daterussian| is used to reset the macro |\today| in Russian.
+%
+% \changes{1.2}{2011/10/20}{Unicode code-points added for LuaLaTeX}
+% \begin{macrocode}
+\if@uni@ode
+ \addto\daterussian{%
+ \def\today{\number\day~\ifcase\month\or
+ января\or
+ февраля\or
+ марта\or
+ апреля\or
+ мая\or
+ июня\or
+ июля\or
+ августа\or
+ сентября\or
+ октября\or
+ ноября\or
+ декабря\fi
+ \space \number\year~г.}}
+ \def\daterussian@ancient{%
+ \def\today{\number\day~\ifcase\month\or%
+ января\or
+ февраля\or
+ марта\or
+ апреля\or
+ мая\or
+ іюня\or
+ іюля\or
+ августа\or
+ сентября\or
+ октября\or
+ ноября\or
+ декабря\fi%
+ \space \number\year~г.}}
+\else
+ \def\daterussian{%
+ \def\today{\number\day~\ifcase\month\or
+ \cyrya\cyrn\cyrv\cyra\cyrr\cyrya\or
+ \cyrf\cyre\cyrv\cyrr\cyra\cyrl\cyrya\or
+ \cyrm\cyra\cyrr\cyrt\cyra\or
+ \cyra\cyrp\cyrr\cyre\cyrl\cyrya\or
+ \cyrm\cyra\cyrya\or
+ \cyri\cyryu\cyrn\cyrya\or
+ \cyri\cyryu\cyrl\cyrya\or
+ \cyra\cyrv\cyrg\cyru\cyrs\cyrt\cyra\or
+ \cyrs\cyre\cyrn\cyrt\cyrya\cyrb\cyrr\cyrya\or
+ \cyro\cyrk\cyrt\cyrya\cyrb\cyrr\cyrya\or
+ \cyrn\cyro\cyrya\cyrb\cyrr\cyrya\or
+ \cyrd\cyre\cyrk\cyra\cyrb\cyrr\cyrya\fi
+ \space \number\year~\cyrg.}}
+ \def\daterussian@ancient{%
+ \def\today{\number\day~\ifcase\month\or
+ \cyrya\cyrn\cyrv\cyra\cyrr\cyrya\or
+ \cyrf\cyre\cyrv\cyrr\cyra\cyrl\cyrya\or
+ \cyrm\cyra\cyrr\cyrt\cyra\or
+ \cyra\cyrp\cyrr\cyre\cyrl\cyrya\or
+ \cyrm\cyra\cyrya\or
+ \cyrii\cyryu\cyrn\cyrya\or
+ \cyrii\cyryu\cyrl\cyrya\or
+ \cyra\cyrv\cyrg\cyru\cyrs\cyrt\cyra\or
+ \cyrs\cyre\cyrn\cyrt\cyrya\cyrb\cyrr\cyrya\or
+ \cyro\cyrk\cyrt\cyrya\cyrb\cyrr\cyrya\or
+ \cyrn\cyro\cyrya\cyrb\cyrr\cyrya\or
+ \cyrd\cyre\cyrk\cyra\cyrb\cyrr\cyrya\fi
+ \space \number\year~\cyrg.}}
+\fi
+% \end{macrocode}
+%
+% \subsubsection{Hyphenation patterns}
+%
+% Russian hyphenation patterns are automatically activated every time
+% Russian language is selected via |\selectlanguage|, |\foreignlanguage|
+% or equivalent command. But we need to declare values of
+% |\lefthyphenmin| and |\righthyphenmin|; both are set to~2.
+%
+% As of v.1.2 we removed a definition for |\englishhyphenmins|. It is
+% not deal of \file{russianb.ldf}.
+%
+% \changes{1.1a}{1995/07/04}{use \cs{russianhyphenmins} to
+% store the correct values}
+% \changes{1.1m}{2000/09/22}{Now use \cs{providehyphenmins} to
+% provide a default value}
+% \changes{1.2}{2011/10/20}{\cs{englishhyphenmins} is removed}
+% \begin{macrocode}
+\providehyphenmins{\CurrentOption}{\tw@\tw@}
+\providehyphenmins{russian}{\tw@\tw@}
+% \end{macrocode}
+%
+% \subsubsection{Extra definitions}
+% \label{sss:extra}
+%
+% \Describe\extrasrussian{}
+% \DescribeOther\noextrasrussian{}
+% The macro |\extrasrussian| performs extra definitions in addition to
+% resetting the caption names and date.
+% The macro |\noextrasrussian| is used to cancel the actions of
+% |\extrasrussian|.
+%
+% \changes{1.1b}{1996/02/20}{Added switch to \texttt{LWN}
+% encoding}
+%
+% First, we instruct \pkg{babel} to switch font encoding using earlier
+% defined macros |\cyrillictext| and |\latintext|.
+%
+% \begin{macrocode}
+\addto\extrasrussian{\cyrillictext}
+\addto\noextrasrussian{\latintext}
+% \end{macrocode}
+%
+% Second, we specify that the Russian group of shorthands should be used.
+%
+% \begin{macrocode}
+\addto\extrasrussian{\languageshorthands{russian}}
+\addto\extrasrussian{\bbl@activate{"}}
+\addto\noextrasrussian{\bbl@deactivate{"}}
+% \end{macrocode}
+%
+% Now the action |\extrasrussian| has to execute is to make sure that the
+% command |\frenchspacing| is in effect. If this is not the case the
+% execution of |\noextrasrussian| will switch it off again.
+%
+% \begin{macrocode}
+\addto\extrasrussian{\bbl@frenchspacing}
+\addto\noextrasrussian{\bbl@nonfrenchspacing}
+% \end{macrocode}
+%
+%
+% \subsection{Alphabetic counters}
+%
+% Do we need to reset |\@alph| and |\@Alph|? They are used in the
+% \LaTeX\ core to define the macros |\alph| and |\Alph|, respectively, which
+% type a counter with a corresponding letter of Latin alphabet.
+% We just want to make sure that correct |\latinencoding| is used instead of
+% |\latinencoding| to typeset the counter. Starting from v.1.2 we do not
+% reset these macros since all Cyrillic encoding but \texttt{X2} do have
+% Latin letters. When using the \texttt{X2} encoding user must himself
+% take care about selecting correct encoding when he switches his keyboard.
+% Our decision is motivated as follows. If selected Cyrillic font is visually
+% different from Latin font, the macro |\@alph| and |\@Alph| will produce
+% visually different output from surrounding text if they are used with
+% Russian text, which is completely legitimate.
+%
+% Notice for commented code:\\
+% We put |\latinencoding| in braces to avoid problems with
+% |\@alph| inside minipages (e.g., footnotes inside minipages) where
+% |\@alph| is expanded and we get for example `|\fontencoding OT1|'
+% (|\fontencoding| is robust).
+%
+% Note added on 2013/03/22: |{\fontencoding{\latinencoding}\selectfont|
+% rises an error with recent version of \pkg{microtype} package after the
+% |\appendix| declaration (which resets |\thechapter| to |\@Alph\c@chapter}|).
+% Most languages do not reset |\@alph| and |\@Alph| macros and only
+% \pkg{ukrainian} and \pkg{bulgarian} add |\fontencoding| to |\@alph| and
+% |\@Alph|.
+%
+% Since v.1.3 we do not reset |\@alph| and |\@Alph| here.
+% Resetting |\fontencoding| in |\@alph| and |\@Alph| causes an error
+% if the package |smartref| is loaded and a |\sref| occurs after the
+% |\appendix| declaration which resets |\thechapter| to |\@Alph\c@chapter|.
+% \changes{1.3}{2013/03/22}{Removed \cs{@alph} and \cs{@Alph}}
+%
+% \begin{macrocode}
+%\def\@alph#1{{\fontencoding{\latinencoding}\selectfont
+% \ifcase#1\or
+% a\or b\or c\or d\or e\or f\or g\or h\or
+% i\or j\or k\or l\or m\or n\or o\or p\or
+% q\or r\or s\or t\or u\or v\or w\or x\or
+% y\or z\else\@ctrerr\fi}}%
+%\def\@Alph#1{{\fontencoding{\latinencoding}\selectfont
+% \ifcase#1\or
+% A\or B\or C\or D\or E\or F\or G\or H\or
+% I\or J\or K\or L\or M\or N\or O\or P\or
+% Q\or R\or S\or T\or U\or V\or W\or X\or
+% Y\or Z\else\@ctrerr\fi}}%
+% \end{macrocode}
+%
+% We add new enumeration style for Russian manuscripts with
+% Cyrillic letters.
+%
+% \Describe\Asbuk{}
+% We begin by defining |\Asbuk| which works like |\Alph|, but produces
+% (uppercase) Cyrillic letters instead of Latin ones. The letters YO,
+% ISHRT, HRDSN, ERY, and SFTSN are skipped, as usual for such
+% enumeration.
+%
+% \begin{macrocode}
+\def\Asbuk#1{\expandafter\russian@Alph\csname c@#1\endcsname}
+\if@uni@ode
+ \def\russian@Alph#1{\ifcase#1\or
+ А\or Б\or В\or Г\or Д\or Е\or Ж\or
+ З\or И\or К\or Л\or М\or Н\or О\or
+ П\or Р\or С\or Т\or У\or Ф\or Х\or
+ Ц\or Ч\or Ш\or Щ\or Э\or Ю\or Я\else\@ctrerr\fi}
+\else
+ \def\russian@Alph#1{\ifcase#1\or
+ \CYRA\or\CYRB\or\CYRV\or\CYRG\or\CYRD\or\CYRE\or\CYRZH\or
+ \CYRZ\or\CYRI\or\CYRK\or\CYRL\or\CYRM\or\CYRN\or\CYRO\or
+ \CYRP\or\CYRR\or\CYRS\or\CYRT\or\CYRU\or\CYRF\or\CYRH\or
+ \CYRC\or\CYRCH\or\CYRSH\or\CYRSHCH\or\CYREREV\or\CYRYU\or
+ \CYRYA\else\@ctrerr\fi}
+\fi
+% \end{macrocode}
+%
+% \Describe\asbuk{}
+% The macro |\asbuk| is similar to |\alph|; it produces lowercase
+% Russian letters.
+%
+% \begin{macrocode}
+\def\asbuk#1{\expandafter\russian@alph\csname c@#1\endcsname}
+\if@uni@ode
+ \def\russian@alph#1{\ifcase#1\or
+ а\or б\or в\or г\or д\or е\or ж\or
+ з\or и\or к\or л\or м\or н\or о\or
+ п\or р\or с\or т\or у\or ф\or х\or
+ ц\or ч\or ш\or щ\or э\or ю\or я\else\@ctrerr\fi}
+\else
+ \def\russian@alph#1{\ifcase#1\or
+ \cyra\or\cyrb\or\cyrv\or\cyrg\or\cyrd\or\cyre\or\cyrzh\or
+ \cyrz\or\cyri\or\cyrk\or\cyrl\or\cyrm\or\cyrn\or\cyro\or
+ \cyrp\or\cyrr\or\cyrs\or\cyrt\or\cyru\or\cyrf\or\cyrh\or
+ \cyrc\or\cyrch\or\cyrsh\or\cyrshch\or\cyrerev\or\cyryu\or
+ \cyrya\else\@ctrerr\fi}
+\fi
+% \end{macrocode}
+%
+% Babel 3.9 has introduced a notion of a language attribute.
+% An \Lopt{ancient} attribute changes default behavior, which
+% uses modern Russian spelling, an activates an alternative set of
+% captions and date macros suitable for typesetting ancient
+% Slavonic and Church books.
+% \begin{macrocode}
+\bbl@declare@ttribute{russian}{ancient}{%
+ \PackageInfo{babel}{Russian attribute set to ancient}%
+ \let\captionsrussian=\captionsrussian@ancient
+ \let\daterussian=\daterussian@ancient
+}
+% \end{macrocode}
+% We don't want for long internal macros to waste memory. So we declare
+% them to be usable within the preamble only.
+% \begin{macrocode}
+\@onlypreamble\captionsrussian@ancient
+\@onlypreamble\daterussian@ancient
+% \end{macrocode}
+%
+% \subsection{Cyrillic math}
+%
+% For compatibility with older Russian packages we could define the |\No|
+% macro. However the Russian number sign is now superseded with |\textnumero|.
+% Moreover, it can be found on the keyboard. Therefore we discard |\No|
+% since v.1.2.
+% \begin{macrocode}
+%\DeclareRobustCommand{\No}{%
+% \ifmmode{\nfss@text{\textnumero}}\else\textnumero\fi}
+% \end{macrocode}
+%
+%
+% As of version 1.2 the macros |\cyrmath..| are not supported any more. They
+% requires package \pkg{textmath} which is not available now. Instead of
+% |\cyrmath..| it is advised to use corresponding |\text..| commands; they
+% do work in math mode.
+% \begin{macrocode}
+%\RequirePackage{textmath}
+% \@ifundefined{sym\cyrillicencoding letters}{}{%
+% \SetSymbolFont{\cyrillicencoding letters}{bold}\cyrillicencoding
+% \rmdefault\bfdefault\updefault
+% \DeclareSymbolFontAlphabet\cyrmathrm{\cyrillicencoding letters}
+% \end{macrocode}
+% And we need few commands to switch to different variants.
+% \begin{macrocode}
+%\DeclareMathAlphabet\cyrmathbf\cyrillicencoding
+% \rmdefault\bfdefault\updefault
+%\DeclareMathAlphabet\cyrmathsf\cyrillicencoding
+% \sfdefault\mddefault\updefault
+%\DeclareMathAlphabet\cyrmathit\cyrillicencoding
+% \rmdefault\mddefault\itdefault
+%\DeclareMathAlphabet\cyrmathtt\cyrillicencoding
+% \ttdefault\mddefault\updefault
+%
+%\SetMathAlphabet\cyrmathsf{bold}\cyrillicencoding
+% \sfdefault\bfdefault\updefault
+%\SetMathAlphabet\cyrmathit{bold}\cyrillicencoding
+% \rmdefault\bfdefault\itdefault
+%}
+% \end{macrocode}
+%
+% \Describe\sh{}
+% \DescribeOther\ch{}%
+% \DescribeOther\tg{}%
+% \DescribeOther\ctg{}%
+% \DescribeOther\arctg{}%
+% \DescribeOther\arcctg{}%
+% \DescribeOther\th{}%
+% \DescribeOther\cth{}%
+% \DescribeOther\cosec{}%
+% We also define few math operator names according to Russian typesetting
+% traditions. Some math functions in Russian math books have names
+% different from English writings. For example, \texttt{sinh} in
+% Russian is called \texttt{sh}. Special consideration needs the
+% macro |\th| that conflicts with the text symbol |\th|
+% defined in Latin~1 encoding:
+%
+% \changes{1.2}{2004/05/21}{Change definition of \cs{th}
+% only for this language}
+% \begin{macrocode}
+\def\sh{\mathop{\operator@font sh}\nolimits}
+\def\ch{\mathop{\operator@font ch}\nolimits}
+\def\tg{\mathop{\operator@font tg}\nolimits}
+\def\ctg{\mathop{\operator@font ctg}\nolimits}
+\def\arctg{\mathop{\operator@font arctg}\nolimits}
+\def\arcctg{\mathop{\operator@font arcctg}\nolimits}
+\addto\extrasrussian{%
+ \babel@save{\th}%
+ \let\ltx@th\th
+ \def\th{\textormath{\ltx@th}%
+ {\mathop{\operator@font th}\nolimits}}%
+ }
+\def\cth{\mathop{\operator@font cth}\nolimits}
+\def\cosec{\mathop{\operator@font cosec}\nolimits}
+% \end{macrocode}
+%
+% \Describe\Prob{}%
+% \DescribeOther\Variance{}%
+% \DescribeOther\nod{}%
+% \DescribeOther\nok{}%
+% \DescribeOther\NOD{}%
+% \DescribeOther\NOK{}%
+% \DescribeOther\Proj{}%
+% Finally, we define some rare Russian mathematical symbols:
+% \changes{1.3i}{2017/01/04}{\cs{NOD} and similar log-functions fixed}
+% \begin{macrocode}
+\def\Prob{\mathop{\kern\z@\mathsf{P}}\nolimits}
+\def\Variance{\mathop{\kern\z@\mathsf{D}}\nolimits}
+\if@uni@ode
+ \def\nod{\mathop{\mathrm{н.о.д.}}\nolimits}
+ \def\nok{\mathop{\mathrm{н.о.к.}}\nolimits}
+ \def\NOD{\mathop{\mathrm{НОД}}\nolimits}
+ \def\NOK{\mathop{\mathrm{НОК}}\nolimits}
+ \def\Proj{\mathop{\mathrm{Пр}}\nolimits}
+\else
+% \def\nod{\mathop{\cyrmathrm{\cyrn.\cyro.\cyrd.}}\nolimits}
+% \def\nok{\mathop{\cyrmathrm{\cyrn.\cyro.\cyrk.}}\nolimits}
+% \def\NOD{\mathop{\cyrmathrm{\CYRN\CYRO\CYRD}}\nolimits}
+% \def\NOK{\mathop{\cyrmathrm{\CYRN\CYRO\CYRK}}\nolimits}
+% \def\Proj{\mathop{\cyrmathrm{\CYRP\cyrr}}\nolimits}
+ \def\nod{\mathop{\textnormal{\cyrn.\cyro.\cyrd.}}\nolimits}
+ \def\nok{\mathop{\textnormal{\cyrn.\cyro.\cyrk.}}\nolimits}
+ \def\NOD{\mathop{\textnormal{\CYRN\CYRO\CYRD}}\nolimits}
+ \def\NOK{\mathop{\textnormal{\CYRN\CYRO\CYRK}}\nolimits}
+ \def\Proj{\mathop{\textnormal{\CYRP\cyrr}}\nolimits}
+\fi
+% \end{macrocode}
+%
+% \subsection{Final settings}
+%
+% The macro |\ldf@finish| does work needed
+% at the end of each \file{.ldf} file. This
+% includes resetting the category code of the \texttt{@}-sign,
+% loading a local configuration file, and preparing the language
+% to be activated at |\begin{document}| time.
+%
+% \changes{1.1d}{1996/11/03}{Now use \cs{ldf@finish} to wrap
+% up}
+% \begin{macrocode}
+\ldf@finish{russian}
+% \end{macrocode}
+%\iffalse
+%</code>
+%\fi
+%\CheckSum{2327}
+%\Finale
+%
+%%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+%\endinput
+
+%% Nonunicode Cyrillic Letters
+%% \CYRA=А
+%% \CYRB=Б
+%% \CYRV=В
+%% \CYRG=Г
+%% \CYRGUP=Ґ
+%% \CYRD=Д
+%% \CYRE=Е
+%% \CYRIE=Є
+%% \CYRZH=Ж
+%% \CYRZ=З
+%% \CYRI=И
+%% \CYRII=I
+%% \CYRYI=Ї
+%% \CYRISHRT=Й
+%% \CYRK=К
+%% \CYRL=Л
+%% \CYRM=М
+%% \CYRN=Н
+%% \CYRO=О
+%% \CYRP=П
+%% \CYRR=Р
+%% \CYRS=С
+%% \CYRT=Т
+%% \CYRU=У
+%% \CYRF=Ф
+%% \CYRH=Х
+%% \CYRC=Ц
+%% \CYRCH=Ч
+%% \CYRSH=Ш
+%% \CYRSHCH=Щ
+%% \CYRYU=Ю
+%% \CYRYA=Я
+%% \CYRSFTSN=Ь
+%%
+%% \cyra=а
+%% \cyrb=б
+%% \cyrv=в
+%% \cyrg=г
+%% \cyrgup=ґ
+%% \cyrd=д
+%% \cyre=е
+%% \cyrie=є
+%% \cyrzh=ж
+%% \cyrz=з
+%% \cyri=и
+%% \cyrii=i
+%% \cyryi=ї
+%% \cyrishrt=й
+%% \cyrk=к
+%% \cyrl=л
+%% \cyrm=м
+%% \cyrn=н
+%% \cyro=о
+%% \cyrp=п
+%% \cyrr=р
+%% \cyrs=с
+%% \cyrt=т
+%% \cyru=у
+%% \cyrf=ф
+%% \cyrh=х
+%% \cyrc=ц
+%% \cyrch=ч
+%% \cyrsh=ш
+%% \cyrshch=щ
+%% \cyryu=ю
+%% \cyrya=я
+%% \cyrsftsn=ь
diff --git a/macros/latex/contrib/babel-contrib/russian/russianb.ins b/macros/latex/contrib/babel-contrib/russian/russianb.ins
new file mode 100644
index 0000000000..1d77461d26
--- /dev/null
+++ b/macros/latex/contrib/babel-contrib/russian/russianb.ins
@@ -0,0 +1,166 @@
+%%
+%% This is file `russianb.ins',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% russianb.dtx (with options: `install')
+%% ----------------------------------------------------------------
+%% Russian Language Support for the Babel package
+%% E-mail: kia999@mail.ru
+%% Released under the LaTeX Project Public License v1.3c or later
+%% See http://www.latex-project.org/lppl.txt
+%% ----------------------------------------------------------------
+\input docstrip.tex
+\keepsilent
+\askforoverwritefalse
+\preamble
+----------------------------------------------------------------
+Russian Language Support for the Babel package
+E-mail: kia999@mail.ru
+Released under the LaTeX Project Public License v1.3c or later
+See http://www.latex-project.org/lppl.txt
+----------------------------------------------------------------
+\endpreamble
+\postamble
+----------------------------------------------------------------
+Copyright 2011-2017 Igor A. Kotelnikov.
+Copyright 1995-2008 Olga Lapko.
+Copyright 1989-2012 Johannes L. Braams.
+
+This file is a part of the Russian-Babel package.
+
+It may be distributed and/or modified under the
+conditions of the LaTeX Project Public License (LPPL), either
+version 1.3c of this license or (at your option) any later
+version. The latest version of this license is in the file:
+
+ http://www.latex-project.org/lppl.txt
+
+The package is "maintained" (as per LPPL maintenance status) by
+Igor A. Kotelnikov.
+
+The package consists of the file russianb.dtx
+and the derived files russianb.ins,
+ russianb.ldf,
+ russianb.pdf,
+ README.
+----------------------------------------------------------------
+\endpostamble
+\usedir{tex/generic/babel/contrib}
+\generate{
+ \file{\jobname.ldf}{\from{\jobname.dtx}{code}}
+}
+\endbatchfile
+
+%%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+
+%% Nonunicode Cyrillic Letters
+%% \CYRA=А
+%% \CYRB=Б
+%% \CYRV=В
+%% \CYRG=Г
+%% \CYRGUP=Ґ
+%% \CYRD=Д
+%% \CYRE=Е
+%% \CYRIE=Є
+%% \CYRZH=Ж
+%% \CYRZ=З
+%% \CYRI=И
+%% \CYRII=I
+%% \CYRYI=Ї
+%% \CYRISHRT=Й
+%% \CYRK=К
+%% \CYRL=Л
+%% \CYRM=М
+%% \CYRN=Н
+%% \CYRO=О
+%% \CYRP=П
+%% \CYRR=Р
+%% \CYRS=С
+%% \CYRT=Т
+%% \CYRU=У
+%% \CYRF=Ф
+%% \CYRH=Х
+%% \CYRC=Ц
+%% \CYRCH=Ч
+%% \CYRSH=Ш
+%% \CYRSHCH=Щ
+%% \CYRYU=Ю
+%% \CYRYA=Я
+%% \CYRSFTSN=Ь
+%%
+%% \cyra=а
+%% \cyrb=б
+%% \cyrv=в
+%% \cyrg=г
+%% \cyrgup=ґ
+%% \cyrd=д
+%% \cyre=е
+%% \cyrie=є
+%% \cyrzh=ж
+%% \cyrz=з
+%% \cyri=и
+%% \cyrii=i
+%% \cyryi=ї
+%% \cyrishrt=й
+%% \cyrk=к
+%% \cyrl=л
+%% \cyrm=м
+%% \cyrn=н
+%% \cyro=о
+%% \cyrp=п
+%% \cyrr=р
+%% \cyrs=с
+%% \cyrt=т
+%% \cyru=у
+%% \cyrf=ф
+%% \cyrh=х
+%% \cyrc=ц
+%% \cyrch=ч
+%% \cyrsh=ш
+%% \cyrshch=щ
+%% \cyryu=ю
+%% \cyrya=я
+%% \cyrsftsn=ь
+%% ----------------------------------------------------------------
+%% Copyright 2011-2017 Igor A. Kotelnikov.
+%% Copyright 1995-2008 Olga Lapko.
+%% Copyright 1989-2012 Johannes L. Braams.
+%%
+%% This file is a part of the Russian-Babel package.
+%%
+%% It may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License (LPPL), either
+%% version 1.3c of this license or (at your option) any later
+%% version. The latest version of this license is in the file:
+%%
+%% http://www.latex-project.org/lppl.txt
+%%
+%% The package is "maintained" (as per LPPL maintenance status) by
+%% Igor A. Kotelnikov.
+%%
+%% The package consists of the file russianb.dtx
+%% and the derived files russianb.ins,
+%% russianb.ldf,
+%% russianb.pdf,
+%% README.
+%% ----------------------------------------------------------------
+%%
+%% End of file `russianb.ins'.
diff --git a/macros/latex/contrib/babel-contrib/russian/russianb.ldf b/macros/latex/contrib/babel-contrib/russian/russianb.ldf
new file mode 100644
index 0000000000..8c64872334
--- /dev/null
+++ b/macros/latex/contrib/babel-contrib/russian/russianb.ldf
@@ -0,0 +1,684 @@
+%%
+%% This is file `russianb.ldf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% russianb.dtx (with options: `code')
+%% ----------------------------------------------------------------
+%% Russian Language Support for the Babel package
+%% E-mail: kia999@mail.ru
+%% Released under the LaTeX Project Public License v1.3c or later
+%% See http://www.latex-project.org/lppl.txt
+%% ----------------------------------------------------------------
+\NeedsTeXFormat{LaTeX2e}
+
+\ProvidesLanguage{russian}
+ [2017/08/12 1.3j Russian support for the Babel system]
+\LdfInit{russian}{captionsrussian}
+\ifdefined\if@uni@ode
+ \PackageError{babel}{if@uni@ode already defined.\MessageBreak
+ Please contact author of russianb.ldf}
+ \relax
+\fi
+\newif\if@uni@ode
+\ifdefined\luatexversion \@uni@odetrue \else
+\ifdefined\XeTeXrevision \@uni@odetrue \fi\fi
+\ifx\l@russian\@undefined
+ \@nopatterns{Russian}
+ \adddialect\l@russian0
+\fi
+\def\@setcyrillicencoding{%
+ \def\sce@a##1##2{%
+ \edef\sce@b{##1}%
+ \edef\sce@c{##2}%
+ \ifx\sce@b\sce@c
+ \let\cyrillicencoding\sce@c
+ \fi}%
+ \def\cdp@elt##1##2##3##4{%
+ \sce@a{##1}{OT2}%
+ \sce@a{##1}{LCY}%
+ \sce@a{##1}{X2}%
+ \sce@a{##1}{T2C}%
+ \sce@a{##1}{T2B}%
+ \sce@a{##1}{T2A}%
+ \if@uni@ode
+ %\sce@a{##1}{EU1}%
+ %\sce@a{##1}{EU2}%
+ \sce@a{##1}{TU}%
+ \fi}%
+ \cdp@list
+}
+\ifx\cyrillicencoding\undefined
+ \@setcyrillicencoding
+\fi
+\@onlypreamble\@setcyrillicencoding
+\@onlypreamble\sce@a
+\@onlypreamble\sce@b
+\@onlypreamble\sce@c
+\ifx\cyrillicencoding\undefined
+ \if@uni@ode
+ %\ifdefined\XeTeXrevision
+ % \edef\cyrillicencoding{EU1}
+ %\else\ifdefined\luatexversion
+ % \edef\cyrillicencoding{EU2}
+ %\fi\fi
+ \edef\cyrillicencoding{TU}
+ \else
+ \edef\cyrillicencoding{T2A}
+ \fi
+ \PackageWarning{babel}%
+ {No Cyrillic font encoding has been loaded so far.\MessageBreak
+ A font encoding should be declared before babel.\MessageBreak
+ Default `\cyrillicencoding' encoding will be loaded
+ }%
+ \lowercase\expandafter{\expandafter\input\cyrillicencoding enc.def\relax}%
+ \AtBeginDocument{\@setcyrillicencoding}
+\fi
+\DeclareRobustCommand{\Russian}{\selectlanguage{\russian}}
+\DeclareRobustCommand{\cyrillictext}{%
+ \fontencoding\cyrillicencoding\selectfont
+ \let\encodingdefault\cyrillicencoding
+ \expandafter\set@hyphenmins\russianhyphenmins
+ \language\l@russian}%
+\let\cyr\cyrillictext
+%%\DeclareRobustCommand{\English}{%
+%% \fontencoding\latinencoding\selectfont
+%% \let\encodingdefault\latinencoding
+%% \expandafter\set@hyphenmins\englishhyphenmins
+%% \language\l@english}%
+%%\let\Eng\English
+%%\DeclareRobustCommand{\latintext}{%
+%% \fontencoding{\latinencoding}\selectfont
+%% \def\encodingdefault{\latinencoding}}
+%%\let\lat\latintext
+\DeclareTextFontCommand{\textcyrillic}{\cyrillictext}
+%%\expandafter\ifx\csname T@X2\endcsname\relax\else
+%% \DeclareTextSymbolDefault{\AA}{OT1}
+%% \DeclareTextSymbolDefault{\aa}{OT1}
+%% \DeclareTextCommand{\aa}{OT1}{\r a}
+%% \DeclareTextCommand{\AA}{OT1}{\r A}
+%%\fi
+%%\@ifpackageloaded{inputenc}{%
+%%% \if@uni@ode
+%%% \PackageWarning{babel}{inputenc should not be used with LuaTeX or XeTeX}
+%%% \fi
+%% \ifdefined\luatexversion
+%% \PackageWarning{babel}{inputenc should not be used with LuaTeX}
+%% \fi}{%
+%% %\def\reserved@a{LWN}%
+%% %\ifx\reserved@a\cyrillicencoding\else
+%% \def\reserved@a{OT2}%
+%% \ifx\reserved@a\cyrillicencoding\else
+%% \def\reserved@a{TU}%
+%% \ifx\reserved@a\cyrillicencoding\else
+%% \PackageWarning{babel}%
+%% {No input encoding specified for Russian language}
+%% \fi\fi
+%% %\fi
+%%}
+\initiate@active@char{"}
+%%\def\mdqon{\bbl@activate{"}}
+%%\def\mdqoff{\bbl@deactivate{"}}
+\begingroup \catcode`\"12
+\def\reserved@a{\endgroup
+ \def\@SS{\mathchar"7019 }
+ \def\dq{"}}
+\reserved@a
+\declare@shorthand{russian}{"`}{\quotedblbase}
+\declare@shorthand{russian}{"'}{\textquotedblleft}
+\declare@shorthand{russian}{"<}{\guillemotleft}
+\declare@shorthand{russian}{">}{\guillemotright}
+\declare@shorthand{russian}{""}{\hskip\z@skip}
+\declare@shorthand{russian}{"~}{\textormath{\leavevmode\hbox{-}}{-}}
+\declare@shorthand{russian}{"=}{\nobreak-\hskip\z@skip}
+\declare@shorthand{russian}{"|}{%
+ \textormath{\nobreak\discretionary{-}{}{\kern.03em}\allowhyphens}{}}
+\declare@shorthand{russian}{"-}{%
+ \def\russian@sh@tmp{%
+ \if\russian@sh@next-\expandafter\russian@sh@emdash
+ \else\expandafter\russian@sh@hyphen\fi}%
+ \futurelet\russian@sh@next\russian@sh@tmp}
+\def\russian@sh@hyphen{\nobreak\-\bbl@allowhyphens}
+\def\russian@sh@emdash#1#2{\cdash-#1#2}
+\def\cdash#1#2#3{\def\tempx@{#3}%
+\def\tempa@{-}\def\tempb@{~}\def\tempc@{*}%
+ \ifx\tempx@\tempa@\@Acdash\else
+ \ifx\tempx@\tempb@\@Bcdash\else
+ \ifx\tempx@\tempc@\@Ccdash\else
+ \errmessage{Wrong usage of cdash}\fi\fi\fi}
+\def\@Acdash{\ifdim\lastskip>\z@\unskip\nobreak\hskip.2em\fi
+ \cyrdash\hskip.2em\ignorespaces}%
+\def\@Bcdash{\leavevmode\ifdim\lastskip>\z@\unskip\fi
+ \nobreak\cyrdash\penalty\exhyphenpenalty\hskip\z@skip\ignorespaces}%
+\def\@Ccdash{\leavevmode
+ \nobreak\cyrdash\nobreak\hskip.35em\ignorespaces}%
+\declare@shorthand{russian}{",}{\nobreak\hskip.2em\ignorespaces}
+\PackageInfo{babel}{Default for \string\cyrdash\space is provided}
+%%\ProvideTextCommandDefault{\cyrdash}{\iflanguage{russian}%
+%% {\hbox to.8em{--\hss--}}{\textemdash}}
+\ProvideTextCommandDefault{\cyrdash}{\hbox to.8em{--\hss--}}
+\if@uni@ode
+ %\captionsrussian@modern
+ \addto\captionsrussian{%
+ \def\prefacename{Предисловие}% [babel]
+ \def\refname{Список литературы}% [only article]
+ \def\abstractname{Аннотация}% [only article, report]
+ \def\bibname{Литература}% [only book, report]
+ \def\chaptername{Глава}% [only book, report]
+ \def\appendixname{Приложение}%
+ \@ifundefined{thechapter}
+ {\def\contentsname{Содержание}}%
+ {\def\contentsname{Оглавление}}%
+ \let\tocname=\contentsname
+ \def\listfigurename{Список иллюстраций}%
+ \def\listtablename{Список таблиц}%
+ \def\indexname{Предметный указатель}%
+ \def\authorname{Именной указатель}%
+ \def\figurename{Рис.}%
+ \def\tablename{Таблица}%
+ \def\partname{Часть}%
+ \def\enclname{вкл.}%
+ \def\ccname{исх.}%
+ \def\headtoname{вх.}%
+ \def\pagename{с.}% [letter]
+ \def\seename{см.}%
+ \def\alsoname{см.\ также}%
+ \def\proofname{Доказательство}% [amsthm]
+ \def\glossaryname{Словарь терминов}%
+ \def\acronymname{Аббревиатуры}% [glossaries] {Acronyms}
+ \def\lstlistingname{Листинг}% [listings] (the environment) {Listing}
+ \def\lstlistlistingname{Листинги}% [listings] (the "List of") {Listings}
+ \def\notesname{Заметки}% [endnotes] {Notes}
+ }%
+ %% =========================================
+ %% nomencl
+ \ifdefined\nomname
+ \addto\captionsrussian{%
+ \def\nomname{Обозначения}%
+ \def\eqdeclaration#1{, см.\nobreakspace(#1)}%
+ \def\pagedeclaration#1{, стр.\nobreakspace#1}%
+ }%
+ \fi
+ %% =========================================
+ %% RevTeX4 & RevTeX4-1
+ %%\@ifclassloaded{revtex4-1}
+ %%{<true code>}
+ %%{<false coode>}%
+ %\@ifclassloaded{revtex4-1}
+ %{%
+ \ifnum\@ifclassloaded{revtex4}{1}{\@ifclassloaded{revtex4-1}{1}{0}}>0
+ \addto\captionsrussian{%
+ \def\lofname{\listfigurename}
+ \def\lotname{\listtablename}
+ \def\figuresname{Рисунки}%{Figures}%
+ \def\tablesname{Таблицы}%{Tables}%
+ \def\appendixesname{Приложения}%{Appendixes}%
+ \def\acknowledgmentsname{Благодарности}%{Acknowledgments}
+ \def\andname{и}%{and}
+ \def\@pacs@name{PACS коды: }%{PACS numbers: }%
+ \def\@keys@name{Ключевые слова: }%{Keywords: }%
+ \def\Dated@name{Дата: }%{Dated: }%
+ \def\Received@name{Получено }%{Received }%
+ \def\Revised@name{Исправленная версия }%{Revised }%
+ \def\Accepted@name{Принято }%{Accepted }%
+ \def\Published@name{Опубликовано }%{Published }%
+ }%
+ %}{}%
+ \fi
+ \addto\captionsrussian@ancient{%
+ \def\prefacename{Предисловіе}%
+ \def\refname{Примѣчанія}%
+ \def\abstractname{Аннотація}%
+ \def\bibname{Библіографія}%
+ \def\chaptername{Глава}%
+ \def\appendixname{Приложеніе}%
+ \@ifundefined{thechapter}
+ {\def\contentsname{Содержаніе}}%
+ {\def\contentsname{Оглавленіе}}%
+ \let\tocname=\contentsname
+ \def\listfigurename{Списокъ иллюстрацій}%
+ \def\listtablename{Списокъ таблицъ}%
+ \def\indexname{Предмѣтный указатель}%
+ \def\authorname{Именной указатель}%
+ \def\figurename{Рис.}%
+ \def\tablename{Таблица}%
+ \def\partname{Часть}%
+ \def\enclname{вкл.}%
+ \def\ccname{исх.}%
+ \def\headtoname{вх.}%
+ \def\pagename{с.}%
+ \def\seename{см.}%
+ \def\alsoname{см.~также}%
+ \def\proofname{Доказательство}%
+ \def\glossaryname{Словарь терминов}%
+ \def\acronymname{Аббревиатуры}%
+ \def\lstlistingname{Листинг}%
+ \def\lstlistlistingname{Листинги}%
+ %\ifdefined\nomname
+ % see http://old_russian.academic.ru/8433/%D0%BE%D0%B1%D1%8A%CB%AB%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D1%A5
+ \def\nomname{Обозначенія}%{Объавлениѥ}% <-- #0465
+ %\fi
+ \def\notesname{Заметки}%
+ }
+ %% =========================================
+ %% RevTeX4 & RevTeX4-1
+ %\@ifclassloaded{revtex4-1}
+ %{%
+ \ifnum\@ifclassloaded{revtex4}{1}{\@ifclassloaded{revtex4-1}{1}{0}}>0
+ \addto\captionsrussian@ancient{%
+ \def\lofname{\listfigurename}
+ \def\lotname{\listtablename}
+ \def\figuresname{Рисунки}%{Figures}%
+ \def\tablesname{Таблицы}%{Tables}%
+ \def\appendixesname{Приложения}%{Appendixes}%
+ \def\acknowledgmentsname{Благодарности}%{Acknowledgments}
+ \def\andname{и}%{and}
+ \def\@pacs@name{PACS коды: }%{PACS numbers: }%
+ \def\@keys@name{Ключевые слова: }%{Keywords: }%
+ \def\Dated@name{Дата: }%{Dated: }%
+ \def\Received@name{Получено }%{Received }%
+ \def\Revised@name{Исправленная версия }%{Revised }%
+ \def\Accepted@name{Принято }%{Accepted }%
+ \def\Published@name{Опубликовано }%{Published }%
+ }%
+ %}{}%
+ \fi
+ %% =========================================
+\else
+ %\def\captionsrussian@modern{%
+ \addto\captionsrussian{%
+ \def\prefacename{%
+ {\cyr\CYRP\cyrr\cyre\cyrd\cyri\cyrs\cyrl\cyro\cyrv\cyri\cyre}}%
+ \def\refname{%
+ {\cyr\CYRS\cyrp\cyri\cyrs\cyro\cyrk\
+ \cyrl\cyri\cyrt\cyre\cyrr\cyra\cyrt\cyru\cyrr\cyrery}}%
+ \def\abstractname{%
+ {\cyr\CYRA\cyrn\cyrn\cyro\cyrt\cyra\cyrc\cyri\cyrya}}%
+ \def\bibname{%
+ {\cyr\CYRL\cyri\cyrt\cyre\cyrr\cyra\cyrt\cyru\cyrr\cyra}}%
+ \def\chaptername{{\cyr\CYRG\cyrl\cyra\cyrv\cyra}}%
+ \def\appendixname{%
+ {\cyr\CYRP\cyrr\cyri\cyrl\cyro\cyrzh\cyre\cyrn\cyri\cyre}}%
+ \@ifundefined{thechapter}%
+ {\def\contentsname{%
+ {\cyr\CYRS\cyro\cyrd\cyre\cyrr\cyrzh\cyra\cyrn\cyri\cyre}}}%
+ {\def\contentsname{%
+ {\cyr\CYRO\cyrg\cyrl\cyra\cyrv\cyrl\cyre\cyrn\cyri\cyre}}}%
+ \let\tocname=\contentsname
+ \def\listfigurename{%
+ {\cyr\CYRS\cyrp\cyri\cyrs\cyro\cyrk
+ \ \cyri\cyrl\cyrl\cyryu\cyrs\cyrt\cyrr\cyra\cyrc\cyri\cyrishrt}}%
+ \def\listtablename{%
+ {\cyr\CYRS\cyrp\cyri\cyrs\cyro\cyrk
+ \ \cyrt\cyra\cyrb\cyrl\cyri\cyrc}}%
+ \def\indexname{%
+ {\cyr\CYRP\cyrr\cyre\cyrd\cyrm\cyre\cyrt\cyrn\cyrery\cyrishrt
+ \ \cyru\cyrk\cyra\cyrz\cyra\cyrt\cyre\cyrl\cyrsftsn}}%
+ \def\authorname{%
+ {\cyr\CYRI\cyrm\cyre\cyrn\cyrn\cyro\cyrishrt
+ \ \cyru\cyrk\cyra\cyrz\cyra\cyrt\cyre\cyrl\cyrsftsn}}%
+ \def\figurename{{\cyr\CYRR\cyri\cyrs.}}%
+ \def\tablename{{\cyr\CYRT\cyra\cyrb\cyrl\cyri\cyrc\cyra}}%
+ \def\partname{{\cyr\CYRCH\cyra\cyrs\cyrt\cyrsftsn}}%
+ \def\enclname{{\cyr\cyrv\cyrk\cyrl.}}%
+ \def\ccname{{\cyr\cyri\cyrs\cyrh.}}%
+ \def\headtoname{{\cyr\cyrv\cyrh.}}%
+ \def\pagename{{\cyr\cyrs.}}%
+ \def\seename{{\cyr\cyrs\cyrm.}}%
+ \def\alsoname{{\cyr\cyrs\cyrm.\ \cyrt\cyra\cyrk\cyrzh\cyre}}%
+ \def\proofname{{\cyr\CYRD\cyro\cyrk\cyra\cyrz\cyra\cyrt
+ \cyre\cyrl\cyrsftsn\cyrs\cyrt\cyrv\cyro}}%
+ \def\glossaryname{{\cyr\CYRS\cyrl\cyro\cyrv\cyra\cyrr\cyrsftsn\
+ \cyrt\cyre\cyrr\cyrm\cyri\cyrn\cyro\cyrv}}%
+ \def\acronymname{\CYRA\cyrb\cyrb\cyrr\cyre\cyrv\cyri\cyra\cyrt\cyru\cyrr\cyrery}%
+ \def\lstlistingname{\CYRL\cyri\cyrs\cyrt\cyri\cyrn\cyrg}%
+ \def\lstlistlistingname{\CYRL\cyri\cyrs\cyrt\cyri\cyrn\cyrg\cyri}%
+ \def\nomname{\CYRO\cyrb\cyro\cyrz\cyrn\cyra\cyrch\cyre\cyrn\cyri\cyrya}%
+ \def\notesname{\CYRZ\cyra\cyrm\cyre\cyrt\cyrk\cyri}%
+ }%
+ %% =========================================
+ %% RevTeX4 & RevTeX4-1
+ \ifnum \@ifclassloaded{revtex4}{1}{\@ifclassloaded{revtex4-1}{1}{0}}>0
+ \addto\captionsrussian{%
+ \def\lofname{\listfigurename}
+ \def\lotname{\listtablename}
+ \def\figuresname{\CYRR\cyri\cyrs\cyru\cyrn\cyrk\cyri}%{Figures}%
+ \def\tablesname{\CYRT\cyra\cyrb\cyrl\cyri\cyrc\cyrery}%{Tables}%
+ \def\appendixesname{\CYRP\cyrr\cyri\cyrl\cyro\cyrzh\cyre\cyrn\cyri\cyrya}%{Appendixes}%
+ \def\acknowledgmentsname{\CYRB\cyrl\cyra\cyrg\cyro\cyrd\cyra\cyrr\cyrn\cyro\cyrs\cyrt\cyri}%{Acknowledgments}
+ \def\andname{\cyri}%{and}
+ \def\@pacs@name{PACS \cyrk\cyro\cyrd\cyrery: }%{PACS numbers: }%
+ \def\@keys@name{\CYRK\cyrl\cyryu\cyrch\cyre\cyrv\cyrery\cyre \cyrs\cyrl\cyro\cyrv\cyra: }%{Keywords: }%
+ \def\Dated@name{\CYRD\cyra\cyrt\cyra: }%{Dated: }%
+ \def\Received@name{\CYRP\cyro\cyrl\cyru\cyrch\cyre\cyrn\cyro }%{Received }%
+ \def\Revised@name{\CYRI\cyrs\cyrp\cyrr\cyra\cyrv\cyrl\cyre\cyrn\cyrn\cyra\cyrya \cyrv\cyre\cyrr\cyrs\cyri\cyrya }%{Revised }%
+ \def\Accepted@name{\CYRP\cyrr\cyri\cyrn\cyrya\cyrt\cyro }%{Accepted }%
+ \def\Published@name{\CYRO\cyrp\cyru\cyrb\cyrl\cyri\cyrk\cyro\cyrv\cyra\cyrn\cyro }%{Published }%
+ }%
+ \fi
+ %% =========================================
+ \addto\captionsrussian@ancient{%
+ \def\prefacename{%
+ {\cyr\CYRP\cyrr\cyre\cyrd\cyri\cyrs\cyrl\cyro\cyrv\cyrii\cyre}}%
+ \def\refname{%
+ {\cyr\CYRP\cyrr\cyri\cyrm\cyryat\cyrch\cyra\cyrn\cyrii\cyrya}}% <-- Примѣчанія, нет \cyryat в кодировке T2*
+ \def\abstractname{%
+ {\cyr\CYRA\cyrn\cyrn\cyro\cyrt\cyra\cyrc\cyrii\cyrya}}%
+ \def\bibname{%
+ {\cyr\CYRB\cyri\cyrb\cyrl\cyrii\cyro\cyrg\cyrr\cyra\cyrf\cyrii\cyrya}}% <-- Библіографія
+ \def\chaptername{{\cyr\CYRG\cyrl\cyra\cyrv\cyra}}%
+ \def\appendixname{%
+ {\cyr\CYRP\cyrr\cyri\cyrl\cyro\cyrzh\cyre\cyrn\cyrii\cyre}}%
+ \@ifundefined{thechapter}%
+ {\def\contentsname{%
+ {\cyr\CYRS\cyro\cyrd\cyre\cyrr\cyrzh\cyra\cyrn\cyrii\cyre}}}%
+ {\def\contentsname{%
+ {\cyr\CYRO\cyrg\cyrl\cyra\cyrv\cyrl\cyre\cyrn\cyrii\cyre}}}%
+ \let\tocname=\contentsname
+ % Списокъ иллюстрацій
+ \def\listfigurename{%
+ {\cyr\CYRS\cyrp\cyri\cyrs\cyro\cyrk\cyrhrdsn\
+ \cyri\cyrl\cyrl\cyryu\cyrs\cyrt\cyrr\cyra\cyrc\cyrii\cyrishrt}}
+ % Списокъ таблицъ
+ \def\listtablename{%
+ {\cyr\CYRS\cyrp\cyri\cyrs\cyro\cyrk\cyrhrdsn\
+ \cyrt\cyra\cyrb\cyrl\cyri\cyrc\cyrhrdsn}}%
+ % Предмѣтный указатель, ѣ (\cyryat) in X2 encoding only
+ \def\indexname{%
+ {\cyr\CYRP\cyrr\cyre\cyrd\cyrm\cyryat\cyrt\cyrn\cyrery\cyrishrt\space
+ \cyru\cyrk\cyra\cyrz\cyra\cyrt\cyre\cyrl\cyrsftsn}}%
+ \def\authorname{%
+ {\cyr\CYRI\cyrm\cyre\cyrn\cyrn\cyro\cyrishrt\
+ \cyru\cyrk\cyra\cyrz\cyra\cyrt\cyre\cyrl\cyrsftsn}}%
+ \def\figurename{{\cyr\CYRR\cyri\cyrs.}}%
+ \def\tablename{{\cyr\CYRT\cyra\cyrb\cyrl\cyri\cyrc\cyra}}%
+ \def\partname{{\cyr\CYRCH\cyra\cyrs\cyrt\cyrsftsn}}%
+ \def\enclname{{\cyr\cyrv\cyrk\cyrl.}}%
+ \def\ccname{{\cyr\cyri\cyrs\cyrh.}}%
+ \def\headtoname{{\cyr\cyrv\cyrh.}}%
+ \def\pagename{{\cyr\cyrs.}}%
+ \def\seename{{\cyr\cyrs\cyrm.}}%
+ \def\alsoname{{\cyr\cyrs\cyrm.\ \cyrt\cyra\cyrk\cyrzh\cyre}}%
+ \def\proofname{{\cyr\CYRD\cyro\cyrk\cyra\cyrz\cyra\cyrt
+ \cyre\cyrl\cyrsftsn\cyrs\cyrt\cyrv\cyro}}%
+ \def\glossaryname{{\cyr\CYRS\cyrl\cyro\cyrv\cyra\cyrr\cyrsftsn\
+ \cyrt\cyre\cyrr\cyrm\cyri\cyrn\cyro\cyrv}}% <-- Needs translation
+ \def\acronymname{\CYRA\cyrb\cyrb\cyrr\cyre\cyrv\cyri\cyra\cyrt\cyru\cyrr\cyrery}%
+ \def\lstlistingname{\CYRL\cyri\cyrs\cyrt\cyri\cyrn\cyrg}%
+ \def\lstlistlistingname{\CYRL\cyri\cyrs\cyrt\cyri\cyrn\cyrg\cyri}%
+ \def\nomname{\CYRO\cyrb\cyro\cyrz\cyrn\cyra\cyrch\cyre\cyrn\cyrii\cyrya}%
+ \def\notesname{\CYRZ\cyra\cyrm\cyre\cyrt\cyrk\cyri}%
+ }%
+ %% =========================================
+ %% RevTeX4 & RevTeX4-1
+ \ifnum \@ifclassloaded{revtex4}{1}{\@ifclassloaded{revtex4-1}{1}{0}}>0
+ \addto\captionsrussian@ancient{%
+ \def\lofname{\listfigurename}
+ \def\lotname{\listtablename}
+ \def\figuresname{\CYRR\cyri\cyrs\cyru\cyrn\cyrk\cyri}%{Figures}%
+ \def\tablesname{\CYRT\cyra\cyrb\cyrl\cyri\cyrc\cyrery}%{Tables}%
+ \def\appendixesname{\CYRP\cyrr\cyri\cyrl\cyro\cyrzh\cyre\cyrn\cyri\cyrya}%{Appendixes}%
+ \def\acknowledgmentsname{\CYRB\cyrl\cyra\cyrg\cyro\cyrd\cyra\cyrr\cyrn\cyro\cyrs\cyrt\cyri}%{Acknowledgments}
+ \def\andname{\cyri}%{and}
+ \def\@pacs@name{PACS \cyrk\cyro\cyrd\cyrery: }%{PACS numbers: }%
+ \def\@keys@name{\CYRK\cyrl\cyryu\cyrch\cyre\cyrv\cyrery\cyre \cyrs\cyrl\cyro\cyrv\cyra: }%{Keywords: }%
+ \def\Dated@name{\CYRD\cyra\cyrt\cyra: }%{Dated: }%
+ \def\Received@name{\CYRP\cyro\cyrl\cyru\cyrch\cyre\cyrn\cyro }%{Received }%
+ \def\Revised@name{\CYRI\cyrs\cyrp\cyrr\cyra\cyrv\cyrl\cyre\cyrn\cyrn\cyra\cyrya \cyrv\cyre\cyrr\cyrs\cyri\cyrya }%{Revised }%
+ \def\Accepted@name{\CYRP\cyrr\cyri\cyrn\cyrya\cyrt\cyro }%{Accepted }%
+ \def\Published@name{\CYRO\cyrp\cyru\cyrb\cyrl\cyri\cyrk\cyro\cyrv\cyra\cyrn\cyro }%{Published }%
+ }%
+ \fi
+ %% =========================================
+\fi
+\if@uni@ode
+ \addto\daterussian{%
+ \def\today{\number\day~\ifcase\month\or
+ января\or
+ февраля\or
+ марта\or
+ апреля\or
+ мая\or
+ июня\or
+ июля\or
+ августа\or
+ сентября\or
+ октября\or
+ ноября\or
+ декабря\fi
+ \space \number\year~г.}}
+ \def\daterussian@ancient{%
+ \def\today{\number\day~\ifcase\month\or%
+ января\or
+ февраля\or
+ марта\or
+ апреля\or
+ мая\or
+ іюня\or
+ іюля\or
+ августа\or
+ сентября\or
+ октября\or
+ ноября\or
+ декабря\fi%
+ \space \number\year~г.}}
+\else
+ \def\daterussian{%
+ \def\today{\number\day~\ifcase\month\or
+ \cyrya\cyrn\cyrv\cyra\cyrr\cyrya\or
+ \cyrf\cyre\cyrv\cyrr\cyra\cyrl\cyrya\or
+ \cyrm\cyra\cyrr\cyrt\cyra\or
+ \cyra\cyrp\cyrr\cyre\cyrl\cyrya\or
+ \cyrm\cyra\cyrya\or
+ \cyri\cyryu\cyrn\cyrya\or
+ \cyri\cyryu\cyrl\cyrya\or
+ \cyra\cyrv\cyrg\cyru\cyrs\cyrt\cyra\or
+ \cyrs\cyre\cyrn\cyrt\cyrya\cyrb\cyrr\cyrya\or
+ \cyro\cyrk\cyrt\cyrya\cyrb\cyrr\cyrya\or
+ \cyrn\cyro\cyrya\cyrb\cyrr\cyrya\or
+ \cyrd\cyre\cyrk\cyra\cyrb\cyrr\cyrya\fi
+ \space \number\year~\cyrg.}}
+ \def\daterussian@ancient{%
+ \def\today{\number\day~\ifcase\month\or
+ \cyrya\cyrn\cyrv\cyra\cyrr\cyrya\or
+ \cyrf\cyre\cyrv\cyrr\cyra\cyrl\cyrya\or
+ \cyrm\cyra\cyrr\cyrt\cyra\or
+ \cyra\cyrp\cyrr\cyre\cyrl\cyrya\or
+ \cyrm\cyra\cyrya\or
+ \cyrii\cyryu\cyrn\cyrya\or
+ \cyrii\cyryu\cyrl\cyrya\or
+ \cyra\cyrv\cyrg\cyru\cyrs\cyrt\cyra\or
+ \cyrs\cyre\cyrn\cyrt\cyrya\cyrb\cyrr\cyrya\or
+ \cyro\cyrk\cyrt\cyrya\cyrb\cyrr\cyrya\or
+ \cyrn\cyro\cyrya\cyrb\cyrr\cyrya\or
+ \cyrd\cyre\cyrk\cyra\cyrb\cyrr\cyrya\fi
+ \space \number\year~\cyrg.}}
+\fi
+\providehyphenmins{\CurrentOption}{\tw@\tw@}
+\providehyphenmins{russian}{\tw@\tw@}
+\addto\extrasrussian{\cyrillictext}
+\addto\noextrasrussian{\latintext}
+\addto\extrasrussian{\languageshorthands{russian}}
+\addto\extrasrussian{\bbl@activate{"}}
+\addto\noextrasrussian{\bbl@deactivate{"}}
+\addto\extrasrussian{\bbl@frenchspacing}
+\addto\noextrasrussian{\bbl@nonfrenchspacing}
+\def\Asbuk#1{\expandafter\russian@Alph\csname c@#1\endcsname}
+\if@uni@ode
+ \def\russian@Alph#1{\ifcase#1\or
+ А\or Б\or В\or Г\or Д\or Е\or Ж\or
+ З\or И\or К\or Л\or М\or Н\or О\or
+ П\or Р\or С\or Т\or У\or Ф\or Х\or
+ Ц\or Ч\or Ш\or Щ\or Э\or Ю\or Я\else\@ctrerr\fi}
+\else
+ \def\russian@Alph#1{\ifcase#1\or
+ \CYRA\or\CYRB\or\CYRV\or\CYRG\or\CYRD\or\CYRE\or\CYRZH\or
+ \CYRZ\or\CYRI\or\CYRK\or\CYRL\or\CYRM\or\CYRN\or\CYRO\or
+ \CYRP\or\CYRR\or\CYRS\or\CYRT\or\CYRU\or\CYRF\or\CYRH\or
+ \CYRC\or\CYRCH\or\CYRSH\or\CYRSHCH\or\CYREREV\or\CYRYU\or
+ \CYRYA\else\@ctrerr\fi}
+\fi
+\def\asbuk#1{\expandafter\russian@alph\csname c@#1\endcsname}
+\if@uni@ode
+ \def\russian@alph#1{\ifcase#1\or
+ а\or б\or в\or г\or д\or е\or ж\or
+ з\or и\or к\or л\or м\or н\or о\or
+ п\or р\or с\or т\or у\or ф\or х\or
+ ц\or ч\or ш\or щ\or э\or ю\or я\else\@ctrerr\fi}
+\else
+ \def\russian@alph#1{\ifcase#1\or
+ \cyra\or\cyrb\or\cyrv\or\cyrg\or\cyrd\or\cyre\or\cyrzh\or
+ \cyrz\or\cyri\or\cyrk\or\cyrl\or\cyrm\or\cyrn\or\cyro\or
+ \cyrp\or\cyrr\or\cyrs\or\cyrt\or\cyru\or\cyrf\or\cyrh\or
+ \cyrc\or\cyrch\or\cyrsh\or\cyrshch\or\cyrerev\or\cyryu\or
+ \cyrya\else\@ctrerr\fi}
+\fi
+\bbl@declare@ttribute{russian}{ancient}{%
+ \PackageInfo{babel}{Russian attribute set to ancient}%
+ \let\captionsrussian=\captionsrussian@ancient
+ \let\daterussian=\daterussian@ancient
+}
+\@onlypreamble\captionsrussian@ancient
+\@onlypreamble\daterussian@ancient
+\def\sh{\mathop{\operator@font sh}\nolimits}
+\def\ch{\mathop{\operator@font ch}\nolimits}
+\def\tg{\mathop{\operator@font tg}\nolimits}
+\def\ctg{\mathop{\operator@font ctg}\nolimits}
+\def\arctg{\mathop{\operator@font arctg}\nolimits}
+\def\arcctg{\mathop{\operator@font arcctg}\nolimits}
+\addto\extrasrussian{%
+ \babel@save{\th}%
+ \let\ltx@th\th
+ \def\th{\textormath{\ltx@th}%
+ {\mathop{\operator@font th}\nolimits}}%
+ }
+\def\cth{\mathop{\operator@font cth}\nolimits}
+\def\cosec{\mathop{\operator@font cosec}\nolimits}
+\def\Prob{\mathop{\kern\z@\mathsf{P}}\nolimits}
+\def\Variance{\mathop{\kern\z@\mathsf{D}}\nolimits}
+\if@uni@ode
+ \def\nod{\mathop{\mathrm{н.о.д.}}\nolimits}
+ \def\nok{\mathop{\mathrm{н.о.к.}}\nolimits}
+ \def\NOD{\mathop{\mathrm{НОД}}\nolimits}
+ \def\NOK{\mathop{\mathrm{НОК}}\nolimits}
+ \def\Proj{\mathop{\mathrm{Пр}}\nolimits}
+\else
+ \def\nod{\mathop{\textnormal{\cyrn.\cyro.\cyrd.}}\nolimits}
+ \def\nok{\mathop{\textnormal{\cyrn.\cyro.\cyrk.}}\nolimits}
+ \def\NOD{\mathop{\textnormal{\CYRN\CYRO\CYRD}}\nolimits}
+ \def\NOK{\mathop{\textnormal{\CYRN\CYRO\CYRK}}\nolimits}
+ \def\Proj{\mathop{\textnormal{\CYRP\cyrr}}\nolimits}
+\fi
+\ldf@finish{russian}
+%%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+
+%% Nonunicode Cyrillic Letters
+%% \CYRA=А
+%% \CYRB=Б
+%% \CYRV=В
+%% \CYRG=Г
+%% \CYRGUP=Ґ
+%% \CYRD=Д
+%% \CYRE=Е
+%% \CYRIE=Є
+%% \CYRZH=Ж
+%% \CYRZ=З
+%% \CYRI=И
+%% \CYRII=I
+%% \CYRYI=Ї
+%% \CYRISHRT=Й
+%% \CYRK=К
+%% \CYRL=Л
+%% \CYRM=М
+%% \CYRN=Н
+%% \CYRO=О
+%% \CYRP=П
+%% \CYRR=Р
+%% \CYRS=С
+%% \CYRT=Т
+%% \CYRU=У
+%% \CYRF=Ф
+%% \CYRH=Х
+%% \CYRC=Ц
+%% \CYRCH=Ч
+%% \CYRSH=Ш
+%% \CYRSHCH=Щ
+%% \CYRYU=Ю
+%% \CYRYA=Я
+%% \CYRSFTSN=Ь
+%%
+%% \cyra=а
+%% \cyrb=б
+%% \cyrv=в
+%% \cyrg=г
+%% \cyrgup=ґ
+%% \cyrd=д
+%% \cyre=е
+%% \cyrie=є
+%% \cyrzh=ж
+%% \cyrz=з
+%% \cyri=и
+%% \cyrii=i
+%% \cyryi=ї
+%% \cyrishrt=й
+%% \cyrk=к
+%% \cyrl=л
+%% \cyrm=м
+%% \cyrn=н
+%% \cyro=о
+%% \cyrp=п
+%% \cyrr=р
+%% \cyrs=с
+%% \cyrt=т
+%% \cyru=у
+%% \cyrf=ф
+%% \cyrh=х
+%% \cyrc=ц
+%% \cyrch=ч
+%% \cyrsh=ш
+%% \cyrshch=щ
+%% \cyryu=ю
+%% \cyrya=я
+%% \cyrsftsn=ь
+%% ----------------------------------------------------------------
+%% Copyright 2011-2017 Igor A. Kotelnikov.
+%% Copyright 1995-2008 Olga Lapko.
+%% Copyright 1989-2012 Johannes L. Braams.
+%%
+%% This file is a part of the Russian-Babel package.
+%%
+%% It may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License (LPPL), either
+%% version 1.3c of this license or (at your option) any later
+%% version. The latest version of this license is in the file:
+%%
+%% http://www.latex-project.org/lppl.txt
+%%
+%% The package is "maintained" (as per LPPL maintenance status) by
+%% Igor A. Kotelnikov.
+%%
+%% The package consists of the file russianb.dtx
+%% and the derived files russianb.ins,
+%% russianb.ldf,
+%% russianb.pdf,
+%% README.
+%% ----------------------------------------------------------------
+%%
+%% End of file `russianb.ldf'.
diff --git a/macros/latex/contrib/babel-contrib/russian/russianb.pdf b/macros/latex/contrib/babel-contrib/russian/russianb.pdf
new file mode 100644
index 0000000000..32025a01ef
--- /dev/null
+++ b/macros/latex/contrib/babel-contrib/russian/russianb.pdf
Binary files differ