texlive[44550] Master/texmf-dist: babel-ukrainian (10jun17)

commits+karl at tug.org commits+karl at tug.org
Sat Jun 10 23:33:34 CEST 2017


Revision: 44550
          http://tug.org/svn/texlive?view=revision&revision=44550
Author:   karl
Date:     2017-06-10 23:33:34 +0200 (Sat, 10 Jun 2017)
Log Message:
-----------
babel-ukrainian (10jun17)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/generic/babel-ukrainian/README.md
    trunk/Master/texmf-dist/doc/generic/babel-ukrainian/ukraineb.pdf
    trunk/Master/texmf-dist/source/generic/babel-ukrainian/ukraineb.dtx
    trunk/Master/texmf-dist/source/generic/babel-ukrainian/ukraineb.ins
    trunk/Master/texmf-dist/tex/generic/babel-ukrainian/ukraineb.ldf

Modified: trunk/Master/texmf-dist/doc/generic/babel-ukrainian/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/generic/babel-ukrainian/README.md	2017-06-10 11:11:24 UTC (rev 44549)
+++ trunk/Master/texmf-dist/doc/generic/babel-ukrainian/README.md	2017-06-10 21:33:34 UTC (rev 44550)
@@ -1,6 +1,6 @@
 ----------------------------------------------------------------
 
-Ukrainian language module for Babel, v1.3i
+Ukrainian language module for Babel, v1.4
 
 Released under the LaTeX Project Public License v1.3c or later.
 See http://www.latex-project.org/lppl.txt
@@ -81,9 +81,18 @@
 
 5. CHANGES
 
+2017-06-10 version 1.4
+
+    * For compatibility with older Ukrainian packages we leave definition of the \No macro
+    * Fix Ukrainian translation of babel unicode string \chaptername
+    * Macros \Asbuk and \asbuk are removed
+    * Cyrillic alphabetical enumeration is provided by \Alph and \alph macros when Ukrainian loaded
+    * Used babel's 3.9 (and later) macros for defining caption names and date for Unicode case
+
 2017-06-08 version 1.3i
 
-    * Corrections according to new standart
+    * Corrections according to alphabetical enumeration Ukrainian standart ДСТУ 3008:2015
+    * Some math macro from original russian.ldf was removed because of seldom usage
 
 2017-06-06 version 1.3h
 
@@ -90,6 +99,24 @@
     * Initial version
 
 Original source:  russianb.dtx,
-    2017-01-12 v1.3i Ukrainian support from the babel system.
+    2017-01-12 v1.3i 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        \~}
+%%
+

Modified: trunk/Master/texmf-dist/doc/generic/babel-ukrainian/ukraineb.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/source/generic/babel-ukrainian/ukraineb.dtx
===================================================================
--- trunk/Master/texmf-dist/source/generic/babel-ukrainian/ukraineb.dtx	2017-06-10 11:11:24 UTC (rev 44549)
+++ trunk/Master/texmf-dist/source/generic/babel-ukrainian/ukraineb.dtx	2017-06-10 21:33:34 UTC (rev 44550)
@@ -6,7 +6,7 @@
 %<*readme>
 ----------------------------------------------------------------
 
-Ukrainian language module for Babel, v1.3i
+Ukrainian language module for Babel, v1.4
 
 Released under the LaTeX Project Public License v1.3c or later.
 See http://www.latex-project.org/lppl.txt
@@ -90,16 +90,25 @@
 
 5. CHANGES
 
-2017-06-08 version 1.3i
+2017-06-10 version 1.4
 
-    * Corrections according to new standart
+    * For compatibility with older Ukrainian packages we leave definition of the \No macro
+    * Fix Ukrainian translation of babel unicode string \chaptername
+    * Macros \Asbuk and \asbuk are removed
+    * Cyrillic alphabetical enumeration is provided by \Alph and \alph macros when Ukrainian loaded
+    * Used babel's 3.9 (and later) macros for defining caption names and date for Unicode case 
     
+2017-06-08 version 1.3i
+    
+    * Corrections according to alphabetical enumeration Ukrainian standart ДСТУ 3008:2015
+    * Some math macro from original russian.ldf was removed because of seldom usage
+    
 2017-06-06 version 1.3h
 
     * Initial version
 
 Original source:  russianb.dtx,
-    2017-01-12 v1.3i Ukrainian support from the babel system.
+    2017-01-12 v1.3i Russian support from the babel system.
 
 ----------------------------------------------------------------
 %</readme>
@@ -173,8 +182,8 @@
 %</internal>
 %<*code>
 \NeedsTeXFormat{LaTeX2e}
-%\ProvidesLanguage{\jobname}[2017/06/08 1.3i Ukrainian support for the Babel system]
-\ProvidesLanguage{ukraineb}[2017/06/08 1.3i Ukrainian support for the Babel system]
+%\ProvidesLanguage{\jobname}[2017/06/10 1.4 Ukrainian support for the Babel system]
+\ProvidesLanguage{ukraineb}[2017/06/10 1.4 Ukrainian support for the Babel system]
 %</code>
 %<*driver>
 \documentclass[a4paper]{ltxdoc}
@@ -206,13 +215,9 @@
 \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
+    %% ukrainian 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
+    %% ukrainian 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}%
@@ -221,6 +226,7 @@
     %\DeclareTextSymbolDefault{\cyrie}{X2}
 \fi
 \usepackage[dvipsnames,usenames]{xcolor}
+\usepackage{colortbl}
     \definecolor{thered}  {rgb}{0.65,0.04,0.07}
     \definecolor{thegreen}{rgb}{0.06,0.44,0.08}
     \definecolor{thegrey} {gray}{0.8}
@@ -257,7 +263,7 @@
 \newcommand*\file[1]{\texttt{#1}}
 \newcommand*\cls[1]{\texttt{#1}}
 \newcommand*\pkg[1]{\texttt{#1}}
-% ====================================
+% --------------------------------------------------
 \IfFileExists{listings.sty}{
   \usepackage{listings}
   \lstset{
@@ -276,9 +282,8 @@
      ,\cyr,\cyrillictext,\textcyrillic,\cyrillicencoding
      ,\addto,\captionsukrainian,\dateukrainian,\noextrasukrainian,\extrasukrainian
      ,\languageattribute
-     ,\Asbuk,\asbuk,\ch,\sh,\tg,\ctg,\arctg,\arcctg\,\th,\cth,\cosec
-     ,\nod3,\nsk,\prog,\NSF\,\NSK,\Prog
-     ,\dq,\Proj,\nsd,\NSD,\nsk,\NSK,\Prob,\Variance
+     ,\ch,\sh,\tg,\ctg,\arctg,\arcctg\,\th,\cth,\cosec
+     ,\dq
      ,\XeTeXinputencoding
     }
     ,keywordstyle=[0]\color{thered}
@@ -287,7 +292,6 @@
      ,stringprocess,afterextras
      ,soft,empty,nobreak,hard
      ,Renderer,Ligatures
-     ,modern,ancient
      ,T1,T2A,lutf8,utf8
      ,fontspec,babel,inputenc,fontenc
      },
@@ -373,7 +377,7 @@
 %
 % Generally, the user may choose between different available 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,
+% and theirs Postscript versions such as \texttt{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 has Cyrillic script, e.g. Computer
 % Modern Unicode, Linux Libertine, and many other system fonts that came with
@@ -384,10 +388,10 @@
 % 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
+% Since earlier versions \babel{} did not
 % support Xe\LaTeX\ (at least for some languages including Ukrainian), the
 % \pkg{polyglossia} package was generally recommended in the past for
-% use with Xe\LaTeX\ as a replacement for \pkg{babel}. Nowadays, \pkg{babel}
+% use with Xe\LaTeX\ as a replacement for \babel. Nowadays, \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.
@@ -397,7 +401,7 @@
 %
 % 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,
+% packages. They should be loaded before \babel, for example,
 % \begin{verbatim}
 %    \usepackage[T1,T2A]{fontenc}
 %    \usepackage[utf8]{inputenc}
@@ -405,7 +409,7 @@
 %\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.
+% the \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),
@@ -434,7 +438,7 @@
 %\usepackage[english,ukrainian]{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 is a selected font encoding,
+% \pkg{luainputenc} and \babel{} should know what is a selected font encoding,
 % the \pkg{fontenc} package should be loaded first. 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.
@@ -470,7 +474,7 @@
 % Here |Renderer=Basic,Ligatures={TeX}| activates ligatures which are existed
 % in \LaTeX.
 %
-% Recall that the language enlisted last in the list of options of the \pkg{babel}
+% Recall that the language enlisted last in the list of options of the \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
@@ -537,10 +541,8 @@
 %      special macros enlisted in table \ref{tab:ukrainian-quote}.
 % \end{enumerate}
 %
-% Since Ukrainian has its own numbering system, \file{\jobname.ldf} adds macros
-% |\asbuk|\marg{counter} and |\Asbuk|\marg{counter} for formatting numbers appropriately the alphabetic
-% sequence in the Ukrainian alphabet. Additional commands are provided
-% to typeset quotes:
+% 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\
@@ -588,22 +590,22 @@
 %   |\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. \\
+%            equivalent to |\babelhyphen{soft}| in \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. \\
+%            equivalent to |\babelhyphen{empty}| in \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. \\
+%            equivalent to |\babelhyphen*{nobreak}| in \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. \\
+%            equivalent to |\babelhyphen{hard}| in \babel{} 3.9. \\
 %   |\babelhyphen{nobreak}|
 %   & \verb="|= & Disables ligature at this position;
-%            equivalent to |\babelhyphen{nobreak}| (??) in \pkg{babel} 3.9.
+%            equivalent to |\babelhyphen{nobreak}| (??) in \babel{} 3.9.
 %                                                                  \\[0.5em]
 %   |\cyrdash|  &        & Row Cyrillic emdash (does not care
 %       spaces around).                                            \\
@@ -689,6 +691,15 @@
 %\fi
 %
 %    \section{Implementation}
+% \changes{1.4}{2017/06/10}{For compatibility with older Ukrainian packages we leave definition of the \cs{No} macro}
+% \changes{1.4}{2017/06/09}{Fix Ukrainian translation of babel unicode string \cs{chaptername}}
+% \changes{1.4}{2017/06/09}{Macros \cs{Asbuk} and \cs{asbuk} are removed}
+% \changes{1.4}{2017/06/09}{Cyrillic alphabetical enumeration is provided by \cs{Alph} and \cs{alph} macros when Ukrainian loaded}
+% \changes{1.4}{2017/06/09}{Used babel's 3.9 (and later) macros for defining caption names and date for Unicode case}
+% \changes{1.3i}{2017/06/08}{Corrections according to alphabetical enumeration Ukrainian standart ДСТУ 3008:2015}
+% \changes{1.3i}{2017/06/08}{Some math macro from original russian.ldf was removed because of seldom usage}
+% \changes{1.3h}{2017/06/06}{Initial version}
+%
 %    \subsection{Initial setup}
 %
 %    The macro |\LdfInit| performs a couple of standard checks that
@@ -744,7 +755,7 @@
 %    \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,
+%    \babel. In the latter case or if these packages are not loaded at all,
 %    \file{ukraineb.ldf} ignores their effect and tries to provide some
 %    reasonable settings. In particular, \texttt{T2A} will be selected for
 %    Ukrainian language if \LaTeX\ is running but \texttt{EU1} in case of
@@ -754,11 +765,11 @@
 %    In Unicode mode, the package \pkg{fontspec} should be loaded instead of
 %    \pkg{fontenc} to make font preparation; \pkg{fontspec} loads the package
 %    \pkg{xunicode} which sets current encoding (kept in |\cf at encoding|) to
-%    \texttt{EU1} for Xe\LaTeX\ and \texttt{EU2} for Lua\LaTeX, and the \pkg{babel}
-%    package sets the macro |\latinencoding| to |\cf at encoding|. Since \pkg{babel} scan
+%    \texttt{EU1} for Xe\LaTeX\ and \texttt{EU2} for Lua\LaTeX, and the \babel{}
+%    package sets the macro |\latinencoding| to |\cf at encoding|. Since \babel{} scan
 %    for value |\cf at encoding| within |\AtBeginDocument|, |\latinencoding| will
 %    be set to either \texttt{EU1} for Xe\LaTeX\ or \texttt{EU2} for Lua\LaTeX\
-%    no matter which of the packages, \pkg{babel} or \pkg{fontspec} is loaded first.
+%    no matter which of the packages, \babel{} or \pkg{fontspec} is loaded first.
 %
 %
 %  \Describe\cyrillicencoding{}
@@ -787,7 +798,7 @@
 %
 %
 %    We parse the |\cdp at list| containing encodings known to \LaTeX\
-%    in the order they were loaded by the time when \pkg{babel} is loaded.
+%    in the order they were loaded by the time when \babel{} is loaded.
 %    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
@@ -872,7 +883,7 @@
 %    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.
+%    break some assumptions embedded into \babel's.
 %    For example, the |\iflanguage| macro will fail.
 %
 %    Second, |\cyrillictext| does
@@ -887,7 +898,7 @@
 %    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 |\Ukrainian| or the
-%    command |\foreignlanguage| defined in the \pkg{babel} core; their
+%    command |\foreignlanguage| defined in the \babel{} core; their
 %    functionality is similar to |\selectlanguage{ukrainian}| but they did not
 %    switch caption names, dates and shorthands.
 %
@@ -959,7 +970,7 @@
 %    font encoding is used, selecting one of the Cyrillic input encodings.
 %    We do not assume any default input encoding, so
 %    the \pkg{inputenc} package should be  explicitly called by
-%    |\usepackage{inputenc}| \emph{before} \pkg{babel}.
+%    |\usepackage{inputenc}| \emph{before} \babel.
 %    Note however that default font encoding \texttt{T2A} fits
 %    well enough to Ukrainian version of Windows ANSI encoding which is almost
 %    equivalent to \texttt{cp1251}.
@@ -1153,7 +1164,7 @@
 %
 %   Now we define additional macros used to reset current language to
 %   Ukrainian and back
-%   to some original state. The package \pkg{babel} based on the assumption
+%   to some original state. The package \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.
@@ -1169,54 +1180,55 @@
 %    activates Cyrillic encoding. It could be dropped if we would be sure
 %    that Ukrainian captions are called only if current language is Ukrainian.
 %    However, the macros such as |\Ukrainian| do not conform to strict rules
-%    of the package \pkg{babel} as explained in the above.
+%    of the package \babel{} as explained in the above.
 %
-%    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.
+%    We now use \babel{}'s  3.9 |\Set<macro>| macro for defining caption names as well
+%    as date. If Unicode engine is running, Cyrillic letters are typed
+%    in by their Unicode code-points.
 %
 %    \begin{macrocode}
+  %
+  % ---------------------- Caption Names ---------------------------
+  %
 \if at ukr@uni at ode
-  %\captionsukrainian
-  \addto\captionsukrainian{%
-    \def\prefacename{Вступ}%   [babel]
-    \def\refname{Література}% [only article]
-    \def\abstractname{Анотація}%    [only article, report]
-    \def\bibname{Бібліоґрафія}%        [only book, report]
-    \def\chaptername{Глава}%         [only book, report]
-    \def\appendixname{Додаток}%
-    \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}
-  }%
+\PackageInfo{bulgarian.ldf}{Executing the 3.9 or latter}
+\StartBabelCommands*{ukrainian}{captions}[unicode, fontenc=EU1 EU2, charset=utf8]
+    \SetString\prefacename{Вступ}%   [babel]
+    \SetString\refname{Література}% [only article]
+    \SetString\abstractname{Анотація}%    [only article, report]
+    \SetString\bibname{Бібліоґрафія}%        [only book, report]
+    \SetString\chaptername{Розділ}%         [only book, report]
+    \SetString\appendixname{Додаток}%
+    \SetString\contentsname{Зміст}%
+    \SetString\tocname{\contentsname}%
+    \SetString\listfigurename{Перелік ілюстрацій}%
+    \SetString\listtablename{Перелік таблиць}%
+    \SetString\indexname{Предметний покажчик}%
+    \SetString\authorname{Іменний покажчик}%
+    \SetString\figurename{Рис.}%
+    \SetString\tablename{Таблиця}%
+    \SetString\partname{Частина}%
+    \SetString\enclname{вкл.}%
+    \SetString\ccname{вих.}%
+    \SetString\headtoname{вх.}%
+    \SetString\pagename{с.}%               [letter]
+    \SetString\seename{див.}%
+    \SetString\alsoname{див.\ також}%
+    \SetString\proofname{Доведення}%  [amsthm]
+    \SetString\glossaryname{Словник термінів}%
+    \SetString\acronymname{Абревіатури}%  [glossaries] {Acronyms}
+    \SetString\lstlistingname{Лістинг}%    [listings]  (the environment) {Listing}
+    \SetString\lstlistlistingname{Лістинги}% [listings]  (the "List of") {Listings}
+    \SetString\nomname{Позначення}
+    \SetString\notesname{Нотатки}%         [endnotes] {Notes}
 %    \end{macrocode}
 %    Additional definitions for the package \pkg{nomencl}:
 %    \begin{macrocode}
-  %% =========================================
-  %% nomencl
-  \ifdefined\nomname
+  %
+  % ------------------------- nomencl ------------------------------
+  %
+  \ifdefined\nomname%
     \addto\captionsukrainian{%
-        \def\nomname{Позначення}%
         \def\eqdeclaration#1{, див.\nobreakspace(#1)}%
         \def\pagedeclaration#1{, стор.\nobreakspace#1}%
     }%
@@ -1224,94 +1236,90 @@
 %    \end{macrocode}
 %    Additional captions for the \cls{revtex} class.
 %    \begin{macrocode}
-  %% =========================================
-  %% RevTeX4 & RevTeX4-1
-  %%\@ifclassloaded{revtex4-1}
-  %%{<true code>}
-  %%{<false coode>}%
+  %
+  % ------------------- RevTeX4 & RevTeX4-1 ------------------------
+  %
   %\@ifclassloaded{revtex4-1}
-  %{%
+  %{<true code>}
+  %{<false coode>}%
+  %
   \ifnum\@ifclassloaded{revtex4}{1}{\@ifclassloaded{revtex4-1}{1}{0}}>0
-    \addto\captionsukrainian{%
-    \def\lofname{\listfigurename}
-    \def\lotname{\listtablename}
-    \def\figuresname{Рисунки}%{Figures}%
-    \def\tablesname{Таблиці}%{Tables}%
-    \def\appendixesname{Додатки}%{Appendixes}%
-    \def\acknowledgmentsname{Подяки}%{Acknowledgments}
-    \def\andname{та}%{and}
-    \def\@pacs at name{PACS коди: }%{PACS numbers: }%
-    \def\@keys at name{Ключові слова: }%{Keywords: }%
-    \def\Dated at name{Дата: }%{Dated: }%
-    \def\Received at name{Отримано }%{Received }%
-    \def\Revised at name{Виправлена версія }%{Revised }%
-    \def\Accepted at name{Прийнято }%{Accepted }%
-    \def\Published at name{Опубліковано }%{Published }%
-    }%
+    \SetString\lofname{\listfigurename}
+    \SetString\lotname{\listtablename}
+    \SetString\figuresname{Рисунки}
+    \SetString\tablesname{Таблиці}
+    \SetString\appendixesname{Додатки}
+    \SetString\acknowledgmentsname{Подяки}
+    \SetString\andname{та}%{and}
+    \SetString\@pacs at name{PACS коди: }
+    \SetString\@keys at name{Ключові слова: }
+    \SetString\Dated at name{Дата: }
+    \SetString\Received at name{Отримано }
+    \SetString\Revised at name{Виправлена версія }
+    \SetString\Accepted at name{Прийнято }
+    \SetString\Published at name{Опубліковано }
   %}{}%
   \fi
-%    \end{macrocode}
-%    \begin{macrocode}
+  \EndBabelCommands
 \else
-%\captionsukrainian
-\addto\captionsukrainian{%
-  \def\prefacename{{\cyr\CYRV\cyrs\cyrt\cyru\cyrp}}%
-  \def\refname{%
+\StartBabelCommands*{ukrainian}{captions}
+  \SetString\prefacename{{\cyr\CYRV\cyrs\cyrt\cyru\cyrp}}%
+  \SetString\refname{%
     {\cyr\CYRL\cyrii\cyrt\cyre\cyrr\cyra\cyrt\cyru\cyrr\cyra}}%
-  \def\abstractname{%
+  \SetString\abstractname{%
     {\cyr\CYRA\cyrn\cyro\cyrt\cyra\cyrc\cyrii\cyrya}}%
-  \def\bibname{%
+  \SetString\bibname{%
     {\cyr\CYRB\cyrii\cyrb\cyrl\cyrii\cyro\cyrgup\cyrr\cyra\cyrf\cyrii\cyrya}}%
-  \def\chaptername{{\cyr\CYRR\cyro\cyrz\cyrd\cyrii\cyrl}}%
-  \def\appendixname{{\cyr\CYRD\cyro\cyrd\cyra\cyrt\cyro\cyrk}}%
-  \def\contentsname{{\cyr\CYRZ\cyrm\cyrii\cyrs\cyrt}}%
-  \let\tocname=\contentsname
-  \def\listfigurename{{\cyr\CYRP\cyre\cyrr\cyre\cyrl\cyrii\cyrk
-         \ \cyrii\cyrl\cyryu\cyrs\cyrt\cyrr\cyra\cyrc\cyrii\cyrishrt}}%
-  \def\listtablename{{\cyr\CYRP\cyre\cyrr\cyre\cyrl\cyrii\cyrk
-         \ \cyrt\cyra\cyrb\cyrl\cyri\cyrc\cyrsftsn}}%
-  \def\indexname{{\cyr\CYRP\cyrr\cyre\cyrd\cyrm\cyre\cyrt\cyrn\cyri\cyrishrt
-  \ \cyrp\cyro\cyrk\cyra\cyrzh\cyrch\cyri\cyrk}}%
-  \def\authorname{{\cyr\CYRII\cyrm\cyre\cyrn\cyrn\cyri\cyrishrt
-         \ \cyrp\cyro\cyrk\cyra\cyrzh\cyrch\cyri\cyrk}}%
-  \def\figurename{{\cyr\CYRR\cyri\cyrs.}}%
-  \def\tablename{{\cyr\CYRT\cyra\cyrb\cyrl.}}%
-  \def\partname{{\cyr\CYRCH\cyra\cyrs\cyrt\cyri\cyrn\cyra}}%
-  \def\enclname{{\cyr\cyrv\cyrk\cyrl\cyra\cyrd\cyrk\cyra}}%
-  \def\ccname{{\cyr\cyrk\cyro\cyrp\cyrii\cyrya}}%
-  \def\headtoname{{\cyr\cyrv\cyrh.}}%
-  \def\pagename{{\cyr\cyrs.}}%
-  \def\seename{{\cyr\cyrd\cyri\cyrv.}}%
-  \def\alsoname{{\cyr\cyrd\cyri\cyrv.\ \cyrt\cyra\cyrk\cyro\cyrzh}}
-  \def\proofname{{\cyr\CYRD\cyro\cyrv\cyre\cyrd\cyre\cyrn\cyrn\cyrya}}%
-  \def\glossaryname{{\cyr\CYRS\cyrl\cyro\cyrv\cyrn\cyri\cyrk\ %
-                   \cyrt\cyre\cyrr\cyrm\cyrii\cyrn\cyrii\cyrv}}%
-  \def\nomname{\CYRP\cyro\cyrz\cyrn\cyra\cyrch\cyre\cyrn\cyrn\cyrya}%
-  \def\notesname{\CYRN\cyro\cyrt\cyra\cyrt\cyrk\cyri}%
-  }%
-  %% =========================================
-  %% RevTeX4 & RevTeX4-1
+  \SetString\chaptername{{\cyr\CYRR\cyro\cyrz\cyrd\cyrii\cyrl}}%
+  \SetString\appendixname{{\cyr\CYRD\cyro\cyrd\cyra\cyrt\cyro\cyrk}}%
+  \SetString\contentsname{{\cyr\CYRZ\cyrm\cyrii\cyrs\cyrt}}%
+  \SetString\tocname{\contentsname}
+  \SetString\listfigurename{{\cyr\CYRP\cyre\cyrr\cyre\cyrl\cyrii\cyrk
+          \ \cyrii\cyrl\cyryu\cyrs\cyrt\cyrr\cyra\cyrc\cyrii\cyrishrt}}%
+  \SetString\listtablename{{\cyr\CYRP\cyre\cyrr\cyre\cyrl\cyrii\cyrk
+          \ \cyrt\cyra\cyrb\cyrl\cyri\cyrc\cyrsftsn}}%
+  \SetString\indexname{{\cyr\CYRP\cyrr\cyre\cyrd\cyrm\cyre\cyrt\cyrn\cyri\cyrishrt
+		  \ \cyrp\cyro\cyrk\cyra\cyrzh\cyrch\cyri\cyrk}}%
+  \SetString\authorname{{\cyr\CYRII\cyrm\cyre\cyrn\cyrn\cyri\cyrishrt
+          \ \cyrp\cyro\cyrk\cyra\cyrzh\cyrch\cyri\cyrk}}%
+  \SetString\figurename{{\cyr\CYRR\cyri\cyrs.}}%
+  \SetString\tablename{{\cyr\CYRT\cyra\cyrb\cyrl.}}%
+  \SetString\partname{{\cyr\CYRCH\cyra\cyrs\cyrt\cyri\cyrn\cyra}}%
+  \SetString\enclname{{\cyr\cyrv\cyrk\cyrl\cyra\cyrd\cyrk\cyra}}%
+  \SetString\ccname{{\cyr\cyrk\cyro\cyrp\cyrii\cyrya}}%
+  \SetString\headtoname{{\cyr\cyrv\cyrh.}}%
+  \SetString\pagename{{\cyr\cyrs.}}%
+  \SetString\seename{{\cyr\cyrd\cyri\cyrv.}}%
+  \SetString\alsoname{{\cyr\cyrd\cyri\cyrv.\ \cyrt\cyra\cyrk\cyro\cyrzh}}
+  \SetString\proofname{{\cyr\CYRD\cyro\cyrv\cyre\cyrd\cyre\cyrn\cyrn\cyrya}}%
+  \SetString\glossaryname{{\cyr\CYRS\cyrl\cyro\cyrv\cyrn\cyri\cyrk
+		  \ \cyrt\cyre\cyrr\cyrm\cyrii\cyrn\cyrii\cyrv}}%
+  \SetString\nomname{\CYRP\cyro\cyrz\cyrn\cyra\cyrch\cyre\cyrn\cyrn\cyrya}%
+  \SetString\notesname{\CYRN\cyro\cyrt\cyra\cyrt\cyrk\cyri}%
+  %
+  % ------------------- RevTeX4 & RevTeX4-1 ------------------------
+  %
   \ifnum \@ifclassloaded{revtex4}{1}{\@ifclassloaded{revtex4-1}{1}{0}}>0
-    \addto\captionsukrainian{%
-    \def\lofname{\listfigurename}
-    \def\lotname{\listtablename}
-    \def\figuresname{\CYRR\cyri\cyrs\cyru\cyrn\cyrk\cyri}%{Figures}%
-    \def\tablesname{\CYRT\cyra\cyrb\cyrl\cyri\cyrc\cyrii}%{Tables}%
-    \def\appendixesname{\CYRD\cyro\cyrd\cyra\cyrt\cyrk\cyri}%{Appendixes}%
-    \def\acknowledgmentsname{\CYRP\cyro\cyrd\cyrya\cyrk\cyri}%{Acknowledgments}
-    \def\andname{\cyrt\cyra}%{and}
-    \def\@pacs at name{PACS \cyrk\cyro\cyrd\cyri: }%{PACS numbers: }%
-    \def\@keys at name{\CYRK\cyrl\cyryu\cyrch\cyro\cyrv\cyrii
-    \ \cyrs\cyrl\cyro\cyrv\cyra: }%{Keywords: }%
-    \def\Dated at name{\CYRD\cyra\cyrt\cyra: }%{Dated: }%
-    \def\Received at name{\CYRO\cyrt\cyrr\cyri\cyrm\cyra\cyrn\cyro }%{Received }%
-    \def\Revised at name{\CYRV\cyri\cyrp\cyrr\cyra\cyrv\cyrl\cyre\cyrn\cyro }%{Revised }%
-    \def\Accepted at name{\CYRP\cyrr\cyri\cyrishrt\cyrn\cyrya\cyrt\cyro }%{Accepted }%
-    \def\Published at name{\CYRO\cyrp\cyru\cyrb\cyrl\cyrii\cyrk\cyro\cyrv\cyra\cyrn\cyro }%{Published }%
-    }%
+    \SetString\lofname{\listfigurename}
+    \SetString\lotname{\listtablename}
+    \SetString\figuresname{\CYRR\cyri\cyrs\cyru\cyrn\cyrk\cyri}
+    \SetString\tablesname{\CYRT\cyra\cyrb\cyrl\cyri\cyrc\cyrii}
+    \SetString\appendixesname{\CYRD\cyro\cyrd\cyra\cyrt\cyrk\cyri}
+    \SetString\acknowledgmentsname{\CYRP\cyro\cyrd\cyrya\cyrk\cyri}
+    \SetString\andname{\cyrt\cyra}%{and}
+    \SetString\@pacs at name{PACS \cyrk\cyro\cyrd\cyri: }
+    \SetString\@keys at name{\CYRK\cyrl\cyryu\cyrch\cyro\cyrv\cyrii
+	    \ \cyrs\cyrl\cyro\cyrv\cyra: }
+    \SetString\Dated at name{\CYRD\cyra\cyrt\cyra: }
+    \SetString\Received at name{\CYRO\cyrt\cyrr\cyri\cyrm\cyra\cyrn\cyro }
+    \SetString\Revised at name{\CYRV\cyri\cyrp\cyrr\cyra\cyrv\cyrl\cyre\cyrn\cyro }
+    \SetString\Accepted at name{\CYRP\cyrr\cyri\cyrishrt\cyrn\cyrya\cyrt\cyro }%
+    \SetString\Published at name{\CYRO\cyrp\cyru\cyrb\cyrl\cyrii\cyrk\cyro\cyrv\cyra\cyrn\cyro }
   \fi
+  \EndBabelCommands
 \fi
 %    \end{macrocode}
+%
 %    \subsubsection{Date in Ukrainian}
 %
 % \Describe\dateukrainian{}
@@ -1318,39 +1326,41 @@
 %    The macro |\dateukrainian| is used to reset the macro |\today| in Ukrainian.
 %
 %    \begin{macrocode}
+  %
+  % ---------------------- Date ---------------------------
+  %
 \if at ukr@uni at ode
-  \addto\dateukrainian{%
-   \def\today{\number\day~\ifcase\month\or
-    січня\or
-    лютого\or
-    березня\or
-    квітня\or
-    травня\or
-    червня\or
-    липня\or
-    серпня\or
-    вересня\or
-    жовтня\or
-    листопада\or
-    грудня\fi
-    \space \number\year~р.}}
+\PackageInfo{bulgarian.ldf}{Executing the post 3.9 branch for dates}
+\StartBabelCommands*{ukrainian}{date}[unicode, fontenc=EU1 EU2, charset=utf8]
+	\SetStringLoop{month#1name}{%
+		січня,лютого,березня,квітня,травня,червня,%
+		липня,серпня,вересня,жовтня,листопада,грудня}
+	
+	\SetStringLoop{weekday#1name}{%
+		понеділок,вівторок,середа,четвер,п'ятниця,субота,неділя}
+	
+	\SetString\abbgyear{р.}
 \else
-\def\dateukrainian{%
-  \def\today{\number\day~\ifcase\month\or
-    \cyrs\cyrii\cyrch\cyrn\cyrya\or
-    \cyrl\cyryu\cyrt\cyro\cyrg\cyro\or
-    \cyrb\cyre\cyrr\cyre\cyrz\cyrn\cyrya\or
-    \cyrk\cyrv\cyrii\cyrt\cyrn\cyrya\or
-    \cyrt\cyrr\cyra\cyrv\cyrn\cyrya\or
-    \cyrch\cyre\cyrr\cyrv\cyrn\cyrya\or
-    \cyrl\cyri\cyrp\cyrn\cyrya\or
-    \cyrs\cyre\cyrr\cyrp\cyrn\cyrya\or
-    \cyrv\cyre\cyrr\cyre\cyrs\cyrn\cyrya\or
-    \cyrzh\cyro\cyrv\cyrt\cyrn\cyrya\or
-    \cyrl\cyri\cyrs\cyrt\cyro\cyrp\cyra\cyrd\cyra\or
-    \cyrg\cyrr\cyru\cyrd\cyrn\cyrya\fi
-    \space\number\year~\cyrr.}}
+\StartBabelCommands*{ukrainian}{date}
+	\SetStringLoop{month#1name}{%
+		\cyrs\cyrii\cyrch\cyrn\cyrya,%
+		\cyrl\cyryu\cyrt\cyro\cyrg\cyro,%
+		\cyrb\cyre\cyrr\cyre\cyrz\cyrn\cyrya,%
+		\cyrk\cyrv\cyrii\cyrt\cyrn\cyrya,%
+		\cyrt\cyrr\cyra\cyrv\cyrn\cyrya,%
+		\cyrch\cyre\cyrr\cyrv\cyrn\cyrya,%
+		\cyrl\cyri\cyrp\cyrn\cyrya,%
+		\cyrs\cyre\cyrr\cyrp\cyrn\cyrya,%
+		\cyrv\cyre\cyrr\cyre\cyrs\cyrn\cyrya,%
+		\cyrzh\cyro\cyrv\cyrt\cyrn\cyrya,%
+		\cyrl\cyri\cyrs\cyrt\cyro\cyrp\cyra\cyrd\cyra,%
+		\cyrg\cyrr\cyru\cyrd\cyrn\cyrya%
+		}%
+		\SetString\abbgyear{\cyrr.}
 \fi
+\SetString\today{\number\day\,\csname month\romannumeral\month name\endcsname\space
+	\number\year\,\abbgyear}
+\EndBabelCommands
 %    \end{macrocode}
 %
 %    \subsubsection{Hyphenation patterns}
@@ -1376,7 +1386,7 @@
 %    |\extrasukrainian|.
 %
 %
-%    First, we instruct \pkg{babel} to switch font encoding using earlier
+%    First, we instruct \babel{} to switch font encoding using earlier
 %    defined macros |\cyrillictext| and |\latintext|.
 %
 %    \begin{macrocode}
@@ -1401,100 +1411,103 @@
 \addto\noextrasukrainian{\bbl at nonfrenchspacing}
 %    \end{macrocode}
 %
-%    \subsection{Alphabetic counters}
+%    \subsection{Alphabetic enumerations}
 %
+%    The traditional alphabetical enumerations in Ukrainan texts use the
+%    Cyrillic alphabet (bar several letters). In principle, enumerations are
+%    a matter for class and style designers but the same can be said also
+%    about things, other than enumerations, such as names of sections and
+%    bibliography lists.
 %
-%    Macro |\@alph| and |\@Alph| did not reseted.
+%    The alphabet is not the only difference, differences also in the labels format.
+%    According to Cyrillic typesetting tradition and also with ДСТУ 3008:2015,
+%    label format should be with one right parenthesis and the top level enumerate should be 
+%    alphabetical, but we believe that this is not necessary
+%    for including such changes  in \file{\jobname.ldf}, for this purpose you can simply redefine
+%    required counters in preamle by common \LaTeX way.
 %
-%    \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}
+%\begin{verbatim}
+%\def\theenumi{\alph{enumi}}
+%\def\labelenumi{\theenumi)}
 %
-%    We add new enumeration style for Ukrainian manuscripts with
-%    Cyrillic letters.
+%\def\theenumii{\alph{enumii}}
+%\def\labelenumii{\theenumii)}
+%\end{verbatim}
+
 %
-%  \Describe\Asbuk{}
-%     Macro |\Asbuk| which works like |\Alph|, but produces
-%    (uppercase) Cyrillic letters instead of Latin ones. The letters Ґ, Є, З, І, Ї, Й, О, Ч, Ь,  
-%    are skipped for such enumeration (see\href{http://www.uintei.kiev.ua/readarticle.php?article_id=151}{ДСТУ 3008:2015}).
+%    Nevertheless, the Ukrainian \babel{} by default turns on alphabetical enumeration 
+%    with Cyrillic letters. This means that enumerated lists that would be labelled with
+%    Latin letters in Latin scripts are labelled with Cyrillic ones instead.
 %
-%    \begin{macrocode}
-\def\Asbuk#1{\expandafter\ukrainian at Alph\csname c@#1\endcsname}
-\if at ukr@uni at ode
-  \def\ukrainian at 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 Я\else\@ctrerr\fi}
-\else
-  \def\ukrainian at Alph#1{\ifcase#1\or
-    \CYRA\or\CYRB\or\CYRV\or\CYRG\or\CYRD\or\CYRE\or\CYRZH\or
-    \CYRI\or\CYRK\or\CYRL\or\CYRM\or\CYRN\or\CYRP\or\CYRR\or
-    \CYRS\or\CYRT\or\CYRU\or\CYRF\or\CYRH\or\CYRC\or\CYRSH\or
-    \CYRSHCH\or\CYRYU\or\CYRYA\else\@ctrerr\fi}
-\fi
-%    \end{macrocode}
+%  \Describe\Alph{}
+%     Starting from this virsion, we remove an macro |\Asbuk| 
+%    (also it lowercase counterpart |\asbuk|). Now we redefine the macro |\Alph|, 
+%    which is now produces (uppercase) Cyrillic letters instead of Latin ones 
+%    when Ukrainian is switched on. 
 %
-%  \Describe\asbuk{}
-%    The macro |\asbuk| is similar to |\alph|; it produces lowercase
-%    Cyrillic letters. The lowercase letters ґ, є, з, і, ї, й, о, ч, ь,  
-%    are also skipped such enumeration (see \href{http://www.uintei.kiev.ua/readarticle.php?article_id=151}{ДСТУ 3008:2015}).
+%    The letters Ґ, Є, З, І, Ї, Й, О, Ч, Ь, are skipped for such enumeration (see \href{http://www.uintei.kiev.ua/readarticle.php?article_id=151}{ДСТУ 3008:2015}).
 %
 %    \begin{macrocode}
-\def\asbuk#1{\expandafter\ukrainian at alph\csname c@#1\endcsname}
-\if at ukr@uni at ode
-  \def\ukrainian at 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 я\else\@ctrerr\fi}
-\else
-  \def\ukrainian at alph#1{\ifcase#1\or
-    \cyra\or\cyrb\or\cyrv\or\cyrg\or\cyrd\or\cyre\or\cyrzh\or
-    \cyri\or\cyrk\or\cyrl\or\cyrm\or\cyrn\or\cyrp\or\cyrr\or
-    \cyrs\or\cyrt\or\cyru\or\cyrf\or\cyrh\or\cyrc\or\cyrsh\or
-    \cyrshch\or\cyryu\or\cyrya\else\@ctrerr\fi}
-\fi
+\addto\extrasukrainian{
 %    \end{macrocode}
+%    When Ukrainian swithsed off, the previous meaning of |\@Alph| will be restored
+%    \begin{macrocode}
+\babel at save{\@Alph} 
+	\if at ukr@uni at ode
+	  \def\@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 Я\else\@ctrerr\fi}
+	\else
+	  \def\@Alph#1{\ifcase#1\or
+	    \CYRA\or\CYRB\or\CYRV\or\CYRG\or\CYRD\or\CYRE\or\CYRZH\or
+	    \CYRI\or\CYRK\or\CYRL\or\CYRM\or\CYRN\or\CYRP\or\CYRR\or
+	    \CYRS\or\CYRT\or\CYRU\or\CYRF\or\CYRH\or\CYRC\or\CYRSH\or
+	    \CYRSHCH\or\CYRYU\or\CYRYA\else\@ctrerr\fi}
+	\fi
+}
+%    \end{macrocode}
+%  \Describe\alph{}
+%    Now the macro |\alph| produces lowercase Cyrillic letters. 
 %
-%    Babel 3.9 has introduced a notion of a language attribute.
-%    An \Lopt{ancient} attribute changes default behavior, which
-%    uses modern Ukrainian spelling, an activates an alternative set of
-%    captions and date macros suitable for typesetting ancient
-%    Slavonic and Church books.
+%   The lowercase letters ґ, є, з, і, ї, й, о, ч, ь, are also skipped such enumeration (see \href{http://www.uintei.kiev.ua/readarticle.php?article_id=151}{ДСТУ 3008:2015}).
 %    \begin{macrocode}
-\bbl at declare@ttribute{ukrainian}{ancient}{%
- \PackageInfo{babel}{ukrainian attribute set to ancient}%
- \let\captionsukrainian=\captionsukrainian at ancient
- \let\dateukrainian=\dateukrainian at ancient
+\addto\extrasukrainian{
+%    \end{macrocode}
+%    When Ukrainian swithsed off, the previous meaning of |\@alph| will be restored
+%    \begin{macrocode}
+\babel at save{\@alph}
+	\if at ukr@uni at ode
+	  \def\@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 я\else\@ctrerr\fi}
+	\else
+	  \def\@alph#1{\ifcase#1\or
+	    \cyra\or\cyrb\or\cyrv\or\cyrg\or\cyrd\or\cyre\or\cyrzh\or
+	    \cyri\or\cyrk\or\cyrl\or\cyrm\or\cyrn\or\cyrp\or\cyrr\or
+	    \cyrs\or\cyrt\or\cyru\or\cyrf\or\cyrh\or\cyrc\or\cyrsh\or
+	    \cyrshch\or\cyryu\or\cyrya\else\@ctrerr\fi}
+	\fi
 }
 %    \end{macrocode}
-%
+% 
 %    \subsection{Cyrillic math}
 %
-%    For compatibility with older Ukrainian packages we could define the |\No|
+%    For compatibility with older Ukrainian packages we leave definition of the |\No|
 %    macro. However the Ukrainian number sign is now superseded with |\textnumero|.
-%    Moreover, it can be found on the keyboard. Therefore we discard |\No|.
+%    Moreover, it can be found on the keyboard.
 %    \begin{macrocode}
-%\DeclareRobustCommand{\No}{%
-%   \ifmmode{\nfss at text{\textnumero}}\else\textnumero\fi}
+\DeclareRobustCommand{\No}{%
+   \ifmmode{\nfss at text{\textnumero}}\else\textnumero\fi}
 %    \end{macrocode}
 %
 %
-%    The macros |\cyrmath..| are not supported any more. They
+%    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
+%    |\cyrmath...| it is advised to use corresponding |\text...| commands; they
 %    do work in math mode.
 %    \begin{macrocode}
 %\RequirePackage{textmath}
@@ -1566,8 +1579,164 @@
 \ldf at finish{ukrainian}
 %    \end{macrocode}
 %
+%
 %\iffalse
 %</code>
 %\fi
-% \CheckSum{1377}
+% \CheckSum{1266}
 %\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
+%
+% А\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
+% Ш\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
+% у\or
+% ф\or
+% х\or
+% ц\or
+% ч\or
+% ш\or
+% щ\or
+% ю\or
+% я\or
+% ь\or
+
+%\let\CYRA=А
+%\let\CYRB=Б
+%\let\CYRV=В
+%\let\CYRG=Г
+%\let\CYRGUP=Ґ
+%\let\CYRD=Д
+%\let\CYRE=Е
+%\let\CYRIE=Є
+%\let\CYRZH=Ж
+%\let\CYRZ=З
+%\let\CYRI=И
+%\let\CYRII=I
+%\let\CYRYI=Ї
+%\let\CYRISHRT=Й
+%\let\CYRK=К
+%\let\CYRL=Л
+%\let\CYRM=М
+%\let\CYRN=Н
+%\let\CYRO=О
+%\let\CYRP=П
+%\let\CYRR=Р
+%\let\CYRS=С
+%\let\CYRT=Т
+%\let\CYRU=У
+%\let\CYRF=Ф
+%\let\CYRH=Х
+%\let\CYRC=Ц
+%\let\CYRCH=Ч
+%\let\CYRSH=Ш
+%\let\CYRSHCH=Щ
+%\let\CYRYU=Ю
+%\let\CYRYA=Я
+%\let\CYRSFTSN=Ь
+%
+%\let\cyra=а
+%\let\cyrb=б
+%\let\cyrv=в
+%\let\cyrg=г
+%\let\cyrgup=ґ
+%\let\cyrd=д
+%\let\cyre=е
+%\let\cyrie=є
+%\let\cyrzh=ж
+%\let\cyrz=з
+%\let\cyri=и
+%\let\cyrii=i
+%\let\cyryi=ї
+%\let\cyrishrt=й
+%\let\cyrk=к
+%\let\cyrl=л
+%\let\cyrm=м
+%\let\cyrn=н
+%\let\cyro=о
+%\let\cyrp=п
+%\let\cyrr=р
+%\let\cyrs=с
+%\let\cyrt=т
+%\let\cyru=у
+%\let\cyrf=ф
+%\let\cyrh=х
+%\let\cyrc=ц
+%\let\cyrch=ч
+%\let\cyrsh=ш
+%\let\cyrshch=щ
+%\let\cyryu=ю
+%\let\cyrya=я
+%\let\cyrsftsn=ь
\ No newline at end of file

Modified: trunk/Master/texmf-dist/source/generic/babel-ukrainian/ukraineb.ins
===================================================================
--- trunk/Master/texmf-dist/source/generic/babel-ukrainian/ukraineb.ins	2017-06-10 11:11:24 UTC (rev 44549)
+++ trunk/Master/texmf-dist/source/generic/babel-ukrainian/ukraineb.ins	2017-06-10 21:33:34 UTC (rev 44550)
@@ -54,6 +54,24 @@
   \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        \~}
+%%
+
 %% ----------------------------------------------------------------
 %% Copyright 2017 Sergiy М. Ponomarenko
 %% Copyright 2011-2017 Igor A. Kotelnikov.

Modified: trunk/Master/texmf-dist/tex/generic/babel-ukrainian/ukraineb.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel-ukrainian/ukraineb.ldf	2017-06-10 11:11:24 UTC (rev 44549)
+++ trunk/Master/texmf-dist/tex/generic/babel-ukrainian/ukraineb.ldf	2017-06-10 21:33:34 UTC (rev 44550)
@@ -12,7 +12,7 @@
 %% See http://www.latex-project.org/lppl.txt
 %% ----------------------------------------------------------------
 \NeedsTeXFormat{LaTeX2e}
-\ProvidesLanguage{ukraineb}[2017/06/08 1.3i Ukrainian support for the Babel system]
+\ProvidesLanguage{ukraineb}[2017/06/10 1.4 Ukrainian support for the Babel system]
 \LdfInit{ukrainian}{captionsukrainian}
 \ifdefined\if at ukr@uni at ode
   \PackageError{babel}{if at ukr@uni at ode already defined.\MessageBreak
@@ -139,163 +139,166 @@
 \ProvideTextCommandDefault{\cyrdash}{\iflanguage{ukrainian}%
     {\hbox to.8em{--\hss--}}{\textemdash}}
 \declare at shorthand{ukrainian}{",}{\nobreak\hskip.2em\ignorespaces}
+  %
+  % ---------------------- Caption Names ---------------------------
+  %
 \if at ukr@uni at ode
-  %\captionsukrainian
-  \addto\captionsukrainian{%
-    \def\prefacename{Вступ}%   [babel]
-    \def\refname{Література}% [only article]
-    \def\abstractname{Анотація}%    [only article, report]
-    \def\bibname{Бібліоґрафія}%        [only book, report]
-    \def\chaptername{Глава}%         [only book, report]
-    \def\appendixname{Додаток}%
-    \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
+\PackageInfo{bulgarian.ldf}{Executing the 3.9 or latter}
+\StartBabelCommands*{ukrainian}{captions}[unicode, fontenc=EU1 EU2, charset=utf8]
+    \SetString\prefacename{Вступ}%   [babel]
+    \SetString\refname{Література}% [only article]
+    \SetString\abstractname{Анотація}%    [only article, report]
+    \SetString\bibname{Бібліоґрафія}%        [only book, report]
+    \SetString\chaptername{Розділ}%         [only book, report]
+    \SetString\appendixname{Додаток}%
+    \SetString\contentsname{Зміст}%
+    \SetString\tocname{\contentsname}%
+    \SetString\listfigurename{Перелік ілюстрацій}%
+    \SetString\listtablename{Перелік таблиць}%
+    \SetString\indexname{Предметний покажчик}%
+    \SetString\authorname{Іменний покажчик}%
+    \SetString\figurename{Рис.}%
+    \SetString\tablename{Таблиця}%
+    \SetString\partname{Частина}%
+    \SetString\enclname{вкл.}%
+    \SetString\ccname{вих.}%
+    \SetString\headtoname{вх.}%
+    \SetString\pagename{с.}%               [letter]
+    \SetString\seename{див.}%
+    \SetString\alsoname{див.\ також}%
+    \SetString\proofname{Доведення}%  [amsthm]
+    \SetString\glossaryname{Словник термінів}%
+    \SetString\acronymname{Абревіатури}%  [glossaries] {Acronyms}
+    \SetString\lstlistingname{Лістинг}%    [listings]  (the environment) {Listing}
+    \SetString\lstlistlistingname{Лістинги}% [listings]  (the "List of") {Listings}
+    \SetString\nomname{Позначення}
+    \SetString\notesname{Нотатки}%         [endnotes] {Notes}
+  %
+  % ------------------------- nomencl ------------------------------
+  %
+  \ifdefined\nomname%
     \addto\captionsukrainian{%
-        \def\nomname{Позначення}%
         \def\eqdeclaration#1{, див.\nobreakspace(#1)}%
         \def\pagedeclaration#1{, стор.\nobreakspace#1}%
     }%
   \fi
-  %% =========================================
-  %% RevTeX4 & RevTeX4-1
-  %%\@ifclassloaded{revtex4-1}
-  %%{<true code>}
-  %%{<false coode>}%
+  %
+  % ------------------- RevTeX4 & RevTeX4-1 ------------------------
+  %
   %\@ifclassloaded{revtex4-1}
-  %{%
+  %{<true code>}
+  %{<false coode>}%
+  %
   \ifnum\@ifclassloaded{revtex4}{1}{\@ifclassloaded{revtex4-1}{1}{0}}>0
-    \addto\captionsukrainian{%
-    \def\lofname{\listfigurename}
-    \def\lotname{\listtablename}
-    \def\figuresname{Рисунки}%{Figures}%
-    \def\tablesname{Таблиці}%{Tables}%
-    \def\appendixesname{Додатки}%{Appendixes}%
-    \def\acknowledgmentsname{Подяки}%{Acknowledgments}
-    \def\andname{та}%{and}
-    \def\@pacs at name{PACS коди: }%{PACS numbers: }%
-    \def\@keys at name{Ключові слова: }%{Keywords: }%
-    \def\Dated at name{Дата: }%{Dated: }%
-    \def\Received at name{Отримано }%{Received }%
-    \def\Revised at name{Виправлена версія }%{Revised }%
-    \def\Accepted at name{Прийнято }%{Accepted }%
-    \def\Published at name{Опубліковано }%{Published }%
-    }%
+    \SetString\lofname{\listfigurename}
+    \SetString\lotname{\listtablename}
+    \SetString\figuresname{Рисунки}
+    \SetString\tablesname{Таблиці}
+    \SetString\appendixesname{Додатки}
+    \SetString\acknowledgmentsname{Подяки}
+    \SetString\andname{та}%{and}
+    \SetString\@pacs at name{PACS коди: }
+    \SetString\@keys at name{Ключові слова: }
+    \SetString\Dated at name{Дата: }
+    \SetString\Received at name{Отримано }
+    \SetString\Revised at name{Виправлена версія }
+    \SetString\Accepted at name{Прийнято }
+    \SetString\Published at name{Опубліковано }
   %}{}%
   \fi
+  \EndBabelCommands
 \else
-\addto\captionsukrainian{%
-  \def\prefacename{{\cyr\CYRV\cyrs\cyrt\cyru\cyrp}}%
-  \def\refname{%
+\StartBabelCommands*{ukrainian}{captions}
+  \SetString\prefacename{{\cyr\CYRV\cyrs\cyrt\cyru\cyrp}}%
+  \SetString\refname{%
     {\cyr\CYRL\cyrii\cyrt\cyre\cyrr\cyra\cyrt\cyru\cyrr\cyra}}%
-  \def\abstractname{%
+  \SetString\abstractname{%
     {\cyr\CYRA\cyrn\cyro\cyrt\cyra\cyrc\cyrii\cyrya}}%
-  \def\bibname{%
+  \SetString\bibname{%
     {\cyr\CYRB\cyrii\cyrb\cyrl\cyrii\cyro\cyrgup\cyrr\cyra\cyrf\cyrii\cyrya}}%
-  \def\chaptername{{\cyr\CYRR\cyro\cyrz\cyrd\cyrii\cyrl}}%
-  \def\appendixname{{\cyr\CYRD\cyro\cyrd\cyra\cyrt\cyro\cyrk}}%
-  \def\contentsname{{\cyr\CYRZ\cyrm\cyrii\cyrs\cyrt}}%
-  \let\tocname=\contentsname
-  \def\listfigurename{{\cyr\CYRP\cyre\cyrr\cyre\cyrl\cyrii\cyrk
-         \ \cyrii\cyrl\cyryu\cyrs\cyrt\cyrr\cyra\cyrc\cyrii\cyrishrt}}%
-  \def\listtablename{{\cyr\CYRP\cyre\cyrr\cyre\cyrl\cyrii\cyrk
-         \ \cyrt\cyra\cyrb\cyrl\cyri\cyrc\cyrsftsn}}%
-  \def\indexname{{\cyr\CYRP\cyrr\cyre\cyrd\cyrm\cyre\cyrt\cyrn\cyri\cyrishrt
+  \SetString\chaptername{{\cyr\CYRR\cyro\cyrz\cyrd\cyrii\cyrl}}%
+  \SetString\appendixname{{\cyr\CYRD\cyro\cyrd\cyra\cyrt\cyro\cyrk}}%
+  \SetString\contentsname{{\cyr\CYRZ\cyrm\cyrii\cyrs\cyrt}}%
+  \SetString\tocname{\contentsname}
+  \SetString\listfigurename{{\cyr\CYRP\cyre\cyrr\cyre\cyrl\cyrii\cyrk
+          \ \cyrii\cyrl\cyryu\cyrs\cyrt\cyrr\cyra\cyrc\cyrii\cyrishrt}}%
+  \SetString\listtablename{{\cyr\CYRP\cyre\cyrr\cyre\cyrl\cyrii\cyrk
+          \ \cyrt\cyra\cyrb\cyrl\cyri\cyrc\cyrsftsn}}%
+  \SetString\indexname{{\cyr\CYRP\cyrr\cyre\cyrd\cyrm\cyre\cyrt\cyrn\cyri\cyrishrt
   \ \cyrp\cyro\cyrk\cyra\cyrzh\cyrch\cyri\cyrk}}%
-  \def\authorname{{\cyr\CYRII\cyrm\cyre\cyrn\cyrn\cyri\cyrishrt
-         \ \cyrp\cyro\cyrk\cyra\cyrzh\cyrch\cyri\cyrk}}%
-  \def\figurename{{\cyr\CYRR\cyri\cyrs.}}%
-  \def\tablename{{\cyr\CYRT\cyra\cyrb\cyrl.}}%
-  \def\partname{{\cyr\CYRCH\cyra\cyrs\cyrt\cyri\cyrn\cyra}}%
-  \def\enclname{{\cyr\cyrv\cyrk\cyrl\cyra\cyrd\cyrk\cyra}}%
-  \def\ccname{{\cyr\cyrk\cyro\cyrp\cyrii\cyrya}}%
-  \def\headtoname{{\cyr\cyrv\cyrh.}}%
-  \def\pagename{{\cyr\cyrs.}}%
-  \def\seename{{\cyr\cyrd\cyri\cyrv.}}%
-  \def\alsoname{{\cyr\cyrd\cyri\cyrv.\ \cyrt\cyra\cyrk\cyro\cyrzh}}
-  \def\proofname{{\cyr\CYRD\cyro\cyrv\cyre\cyrd\cyre\cyrn\cyrn\cyrya}}%
-  \def\glossaryname{{\cyr\CYRS\cyrl\cyro\cyrv\cyrn\cyri\cyrk\ %
-                   \cyrt\cyre\cyrr\cyrm\cyrii\cyrn\cyrii\cyrv}}%
-  \def\nomname{\CYRP\cyro\cyrz\cyrn\cyra\cyrch\cyre\cyrn\cyrn\cyrya}%
-  \def\notesname{\CYRN\cyro\cyrt\cyra\cyrt\cyrk\cyri}%
-  }%
-  %% =========================================
-  %% RevTeX4 & RevTeX4-1
+  \SetString\authorname{{\cyr\CYRII\cyrm\cyre\cyrn\cyrn\cyri\cyrishrt
+          \ \cyrp\cyro\cyrk\cyra\cyrzh\cyrch\cyri\cyrk}}%
+  \SetString\figurename{{\cyr\CYRR\cyri\cyrs.}}%
+  \SetString\tablename{{\cyr\CYRT\cyra\cyrb\cyrl.}}%
+  \SetString\partname{{\cyr\CYRCH\cyra\cyrs\cyrt\cyri\cyrn\cyra}}%
+  \SetString\enclname{{\cyr\cyrv\cyrk\cyrl\cyra\cyrd\cyrk\cyra}}%
+  \SetString\ccname{{\cyr\cyrk\cyro\cyrp\cyrii\cyrya}}%
+  \SetString\headtoname{{\cyr\cyrv\cyrh.}}%
+  \SetString\pagename{{\cyr\cyrs.}}%
+  \SetString\seename{{\cyr\cyrd\cyri\cyrv.}}%
+  \SetString\alsoname{{\cyr\cyrd\cyri\cyrv.\ \cyrt\cyra\cyrk\cyro\cyrzh}}
+  \SetString\proofname{{\cyr\CYRD\cyro\cyrv\cyre\cyrd\cyre\cyrn\cyrn\cyrya}}%
+  \SetString\glossaryname{{\cyr\CYRS\cyrl\cyro\cyrv\cyrn\cyri\cyrk
+  \ \cyrt\cyre\cyrr\cyrm\cyrii\cyrn\cyrii\cyrv}}%
+  \SetString\nomname{\CYRP\cyro\cyrz\cyrn\cyra\cyrch\cyre\cyrn\cyrn\cyrya}%
+  \SetString\notesname{\CYRN\cyro\cyrt\cyra\cyrt\cyrk\cyri}%
+  %
+  % ------------------- RevTeX4 & RevTeX4-1 ------------------------
+  %
   \ifnum \@ifclassloaded{revtex4}{1}{\@ifclassloaded{revtex4-1}{1}{0}}>0
-    \addto\captionsukrainian{%
-    \def\lofname{\listfigurename}
-    \def\lotname{\listtablename}
-    \def\figuresname{\CYRR\cyri\cyrs\cyru\cyrn\cyrk\cyri}%{Figures}%
-    \def\tablesname{\CYRT\cyra\cyrb\cyrl\cyri\cyrc\cyrii}%{Tables}%
-    \def\appendixesname{\CYRD\cyro\cyrd\cyra\cyrt\cyrk\cyri}%{Appendixes}%
-    \def\acknowledgmentsname{\CYRP\cyro\cyrd\cyrya\cyrk\cyri}%{Acknowledgments}
-    \def\andname{\cyrt\cyra}%{and}
-    \def\@pacs at name{PACS \cyrk\cyro\cyrd\cyri: }%{PACS numbers: }%
-    \def\@keys at name{\CYRK\cyrl\cyryu\cyrch\cyro\cyrv\cyrii
-    \ \cyrs\cyrl\cyro\cyrv\cyra: }%{Keywords: }%
-    \def\Dated at name{\CYRD\cyra\cyrt\cyra: }%{Dated: }%
-    \def\Received at name{\CYRO\cyrt\cyrr\cyri\cyrm\cyra\cyrn\cyro }%{Received }%
-    \def\Revised at name{\CYRV\cyri\cyrp\cyrr\cyra\cyrv\cyrl\cyre\cyrn\cyro }%{Revised }%
-    \def\Accepted at name{\CYRP\cyrr\cyri\cyrishrt\cyrn\cyrya\cyrt\cyro }%{Accepted }%
-    \def\Published at name{\CYRO\cyrp\cyru\cyrb\cyrl\cyrii\cyrk\cyro\cyrv\cyra\cyrn\cyro }%{Published }%
-    }%
+    \SetString\lofname{\listfigurename}
+    \SetString\lotname{\listtablename}
+    \SetString\figuresname{\CYRR\cyri\cyrs\cyru\cyrn\cyrk\cyri}
+    \SetString\tablesname{\CYRT\cyra\cyrb\cyrl\cyri\cyrc\cyrii}
+    \SetString\appendixesname{\CYRD\cyro\cyrd\cyra\cyrt\cyrk\cyri}
+    \SetString\acknowledgmentsname{\CYRP\cyro\cyrd\cyrya\cyrk\cyri}
+    \SetString\andname{\cyrt\cyra}%{and}
+    \SetString\@pacs at name{PACS \cyrk\cyro\cyrd\cyri: }
+    \SetString\@keys at name{\CYRK\cyrl\cyryu\cyrch\cyro\cyrv\cyrii
+    \ \cyrs\cyrl\cyro\cyrv\cyra: }
+    \SetString\Dated at name{\CYRD\cyra\cyrt\cyra: }
+    \SetString\Received at name{\CYRO\cyrt\cyrr\cyri\cyrm\cyra\cyrn\cyro }
+    \SetString\Revised at name{\CYRV\cyri\cyrp\cyrr\cyra\cyrv\cyrl\cyre\cyrn\cyro }
+    \SetString\Accepted at name{\CYRP\cyrr\cyri\cyrishrt\cyrn\cyrya\cyrt\cyro }%
+    \SetString\Published at name{\CYRO\cyrp\cyru\cyrb\cyrl\cyrii\cyrk\cyro\cyrv\cyra\cyrn\cyro }
   \fi
+  \EndBabelCommands
 \fi
+  %
+  % ---------------------- Date ---------------------------
+  %
 \if at ukr@uni at ode
-  \addto\dateukrainian{%
-   \def\today{\number\day~\ifcase\month\or
-    січня\or
-    лютого\or
-    березня\or
-    квітня\or
-    травня\or
-    червня\or
-    липня\or
-    серпня\or
-    вересня\or
-    жовтня\or
-    листопада\or
-    грудня\fi
-    \space \number\year~р.}}
+\PackageInfo{bulgarian.ldf}{Executing the post 3.9 branch for dates}
+\StartBabelCommands*{ukrainian}{date}[unicode, fontenc=EU1 EU2, charset=utf8]
+\SetStringLoop{month#1name}{%
+січня,лютого,березня,квітня,травня,червня,%
+липня,серпня,вересня,жовтня,листопада,грудня}
+
+\SetStringLoop{weekday#1name}{%
+понеділок,вівторок,середа,четвер,п'ятниця,субота,неділя}
+
+\SetString\abbgyear{р.}
 \else
-\def\dateukrainian{%
-  \def\today{\number\day~\ifcase\month\or
-    \cyrs\cyrii\cyrch\cyrn\cyrya\or
-    \cyrl\cyryu\cyrt\cyro\cyrg\cyro\or
-    \cyrb\cyre\cyrr\cyre\cyrz\cyrn\cyrya\or
-    \cyrk\cyrv\cyrii\cyrt\cyrn\cyrya\or
-    \cyrt\cyrr\cyra\cyrv\cyrn\cyrya\or
-    \cyrch\cyre\cyrr\cyrv\cyrn\cyrya\or
-    \cyrl\cyri\cyrp\cyrn\cyrya\or
-    \cyrs\cyre\cyrr\cyrp\cyrn\cyrya\or
-    \cyrv\cyre\cyrr\cyre\cyrs\cyrn\cyrya\or
-    \cyrzh\cyro\cyrv\cyrt\cyrn\cyrya\or
-    \cyrl\cyri\cyrs\cyrt\cyro\cyrp\cyra\cyrd\cyra\or
-    \cyrg\cyrr\cyru\cyrd\cyrn\cyrya\fi
-    \space\number\year~\cyrr.}}
+\StartBabelCommands*{ukrainian}{date}
+\SetStringLoop{month#1name}{%
+\cyrs\cyrii\cyrch\cyrn\cyrya,%
+\cyrl\cyryu\cyrt\cyro\cyrg\cyro,%
+\cyrb\cyre\cyrr\cyre\cyrz\cyrn\cyrya,%
+\cyrk\cyrv\cyrii\cyrt\cyrn\cyrya,%
+\cyrt\cyrr\cyra\cyrv\cyrn\cyrya,%
+\cyrch\cyre\cyrr\cyrv\cyrn\cyrya,%
+\cyrl\cyri\cyrp\cyrn\cyrya,%
+\cyrs\cyre\cyrr\cyrp\cyrn\cyrya,%
+\cyrv\cyre\cyrr\cyre\cyrs\cyrn\cyrya,%
+\cyrzh\cyro\cyrv\cyrt\cyrn\cyrya,%
+\cyrl\cyri\cyrs\cyrt\cyro\cyrp\cyra\cyrd\cyra,%
+\cyrg\cyrr\cyru\cyrd\cyrn\cyrya%
+}%
+\SetString\abbgyear{\cyrr.}
 \fi
+\SetString\today{\number\day\,\csname month\romannumeral\month name\endcsname\space
+\number\year\,\abbgyear}
+\EndBabelCommands
 \providehyphenmins{\CurrentOption}{\tw@\tw@}
 \providehyphenmins{ukrainian}{\tw@\tw@}
 \addto\extrasukrainian{\cyrillictext}
@@ -305,39 +308,41 @@
 \addto\noextrasukrainian{\bbl at deactivate{"}}
 \addto\extrasukrainian{\bbl at frenchspacing}
 \addto\noextrasukrainian{\bbl at nonfrenchspacing}
-\def\Asbuk#1{\expandafter\ukrainian at Alph\csname c@#1\endcsname}
+
+\addto\extrasukrainian{
+\babel at save{\@Alph}
 \if at ukr@uni at ode
-  \def\ukrainian at Alph#1{\ifcase#1\or
+  \def\@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 Я\else\@ctrerr\fi}
 \else
-  \def\ukrainian at Alph#1{\ifcase#1\or
+  \def\@Alph#1{\ifcase#1\or
     \CYRA\or\CYRB\or\CYRV\or\CYRG\or\CYRD\or\CYRE\or\CYRZH\or
     \CYRI\or\CYRK\or\CYRL\or\CYRM\or\CYRN\or\CYRP\or\CYRR\or
     \CYRS\or\CYRT\or\CYRU\or\CYRF\or\CYRH\or\CYRC\or\CYRSH\or
     \CYRSHCH\or\CYRYU\or\CYRYA\else\@ctrerr\fi}
 \fi
-\def\asbuk#1{\expandafter\ukrainian at alph\csname c@#1\endcsname}
+}
+\addto\extrasukrainian{
+\babel at save{\@alph}
 \if at ukr@uni at ode
-  \def\ukrainian at alph#1{\ifcase#1\or
+  \def\@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 я\else\@ctrerr\fi}
 \else
-  \def\ukrainian at alph#1{\ifcase#1\or
+  \def\@alph#1{\ifcase#1\or
     \cyra\or\cyrb\or\cyrv\or\cyrg\or\cyrd\or\cyre\or\cyrzh\or
     \cyri\or\cyrk\or\cyrl\or\cyrm\or\cyrn\or\cyrp\or\cyrr\or
     \cyrs\or\cyrt\or\cyru\or\cyrf\or\cyrh\or\cyrc\or\cyrsh\or
     \cyrshch\or\cyryu\or\cyrya\else\@ctrerr\fi}
 \fi
-\bbl at declare@ttribute{ukrainian}{ancient}{%
- \PackageInfo{babel}{ukrainian attribute set to ancient}%
- \let\captionsukrainian=\captionsukrainian at ancient
- \let\dateukrainian=\dateukrainian at ancient
 }
+\DeclareRobustCommand{\No}{%
+   \ifmmode{\nfss at text{\textnumero}}\else\textnumero\fi}
 \def\sh{\mathop{\operator at font sh}\nolimits}
 \def\ch{\mathop{\operator at font ch}\nolimits}
 \def\tg{\mathop{\operator at font tg}\nolimits}
@@ -353,6 +358,24 @@
 \def\cth{\mathop{\operator at font cth}\nolimits}
 \def\cosec{\mathop{\operator at font cosec}\nolimits}
 \ldf at finish{ukrainian}
+%%
+%% \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        \~}
+%%
+
 %% ----------------------------------------------------------------
 %% Copyright 2017 Sergiy М. Ponomarenko
 %% Copyright 2011-2017 Igor A. Kotelnikov.



More information about the tex-live-commits mailing list