diff options
Diffstat (limited to 'macros/latex/contrib/datetime2-contrib/datetime2-ukrainian/datetime2-ukrainian.dtx')
-rw-r--r-- | macros/latex/contrib/datetime2-contrib/datetime2-ukrainian/datetime2-ukrainian.dtx | 1593 |
1 files changed, 1593 insertions, 0 deletions
diff --git a/macros/latex/contrib/datetime2-contrib/datetime2-ukrainian/datetime2-ukrainian.dtx b/macros/latex/contrib/datetime2-contrib/datetime2-ukrainian/datetime2-ukrainian.dtx new file mode 100644 index 0000000000..fb3b4dd870 --- /dev/null +++ b/macros/latex/contrib/datetime2-contrib/datetime2-ukrainian/datetime2-ukrainian.dtx @@ -0,0 +1,1593 @@ +% \iffalse meta-comment +% !TeX program = xelatex +%<*internal> +\iffalse +%</internal> +%<*readme> +---------------------------------------------------------------- + +Ukrainian Language Module for datetime2 Package + +Author: Nicola L. C. Talbot (inactive) +Current maintainer: Sergiy M. Ponomarenko <sergiy.ponomarenko@gmail.com>. + +Licence: LPPL + +Required Packages: tracklang + + +1. INSTALLATION + +xelatex datetime2-ukrainian.ins + +Move all *.ldf files to +TEXMF/tex/latex/datetime2-ukrainian/ + +2. USAGE + +2.1.1 PDFLATeX, LaTeX + + \documentclass{article} + \usepackage[ukrainian]{datetime2} + \begin{document} + \today + \end{document} + + \documentclass[ukrainian]{article} + \usepackage{babel} + \usepackage[useregional]{datetime2} + \begin{document} + \today + \end{document} + +2.1.2 Lua(Xe)LaTeX + + \documentclass{article} + \usepackage{polyglossia} + \setmainlanguage{ukrainian} + \usepackage[ukrainian]{datetime2} + \begin{document} + \today + \end{document} + +3. DOCUMENTATION + +See datetime2-ukrainian.pdf for more information. + +This material is subject to the LaTeX Project Public License. +See http://www.ctan.org/license/lppl1.3 for the details of that license. + +---------------------------------------------------------------- +%</readme> +%<*internal> +\fi +\def\nameofplainTeX{plain} +\ifx\fmtname\nameofplainTeX\else + \expandafter\begingroup +\fi +%</internal> +%<*install> +\input docstrip.tex +\keepsilent +\askforoverwritefalse +\preamble +---------------------------------------------------------------- + +This material is subject to the LaTeX Project Public License. +See http://www.ctan.org/license/lppl1.3 for the details of that +license. + +---------------------------------------------------------------- + +\endpreamble +\postamble + +---------------------------------------------------------------- + datetime2-ukrainian.dtx + Copyright 2015 Nicola Talbot + 2017 Sergiy M. Ponomarenko + + This work may be distributed and/or modified under the + conditions of the LaTeX Project Public License, either version 1.3 + of this license of (at your option) any later version. + The latest version of this license is in + http://www.latex-project.org/lppl.txt + and version 1.3 or later is part of all distributions of LaTeX + version 2005/12/01 or later. + + This work has the LPPL maintenance status `inactive'. + + + This work consists of the files datetime2-ukrainian.dtx + datetime2-ukrainian.ins + datetime2-ukrainian-utf8.ldf, + datetime2-ukrainian-ascii.ldf + datetime2-ukrainian.ldf. +---------------------------------------------------------------- + +\endpostamble + +\usedir{tex/latex/datetime2-ukrainian} +\askforoverwritefalse + +\generate +{% + \file + {datetime2-ukrainian-utf8.ldf}% + {% + \usepreamble\defaultpreamble + \usepostamble\defaultpostamble + \from{datetime2-ukrainian.dtx}{datetime2-ukrainian-utf8.ldf,package}% + }% +} + +\generate +{% + \file + {datetime2-ukrainian-ascii.ldf}% + {% + \usepreamble\defaultpreamble + \usepostamble\defaultpostamble + \from{datetime2-ukrainian.dtx}{datetime2-ukrainian-ascii.ldf,package}% + }% +} + +\generate +{% + \file + {datetime2-ukrainian.ldf}% + {% + \usepreamble\defaultpreamble + \usepostamble\defaultpostamble + \from{datetime2-ukrainian.dtx}{datetime2-ukrainian.ldf,package}% + }% +} +%</install> +%<install>\endbatchfile +%<*internal> +\usedir{source/latex/democls} +\generate{ + \file{\jobname.ins}{\from{\jobname.dtx}{install}} +} +\nopreamble\nopostamble +\usedir{doc/latex/democls} +\generate{ + \file{README.md}{\from{\jobname.dtx}{readme}} +} +\ifx\fmtname\nameofplainTeX + \expandafter\endbatchfile +\else + \expandafter\endgroup +\fi +%</internal> + +%<*driver> +\documentclass{ltxdoc} +%% +%% This document should be compiled by +%% XeLaTeX or LuaLaTex +%% +\usepackage[% + a4paper,% + footskip=1cm,% + headsep=0.3cm,% + top=2cm, + bottom=2cm, + left=6cm, + right=2cm, + ]{geometry} + +\usepackage{fontspec} +\defaultfontfeatures{Ligatures={TeX}} +\setmainfont{CMU Serif} +\setsansfont{CMU Sans Serif} +\setmonofont{CMU Typewriter Text} + +\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} +% ==================================== + +% -------------------------------------------------- +\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 + ,\Ukrainian,\cyrdash,\cdash + ,\cyr,\cyrillictext,\textcyrillic,\cyrillicencoding + ,\addto,\captionsukrainian,\dateukrainian,\noextrasukrainian,\extrasukrainian + ,\languageattribute + ,\ch,\sh,\tg,\ctg,\arctg,\arcctg\,\th,\cth,\cosec + ,\dq + ,\XeTeXinputencoding + ,\setmainlanguage + ,\setotherlanguage + } + ,keywordstyle=[0]\color{thered} + ,keywords=[1]{main,ukrainian,english,german,frenchb + ,shorthands,extrasenglish + ,stringprocess,afterextras + ,soft,empty,nobreak,hard + ,Renderer,Ligatures + ,T1,T2A,lutf8,utf8 + ,fontspec,babel,inputenc,fontenc,useregional + }, + 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 +% ==================================== +\usepackage{alltt} + + +\usepackage[colorlinks, + bookmarks, + hyperindex=false, + pdfauthor={Sergiy M. Ponomarenko}, + pdftitle={datetime2.sty Ukrainian Module}]{hyperref} + + +\renewcommand*{\usage}[1]{\hyperpage{#1}} +\renewcommand*{\main}[1]{\hyperpage{#1}} +\IndexPrologue{\section*{\indexname}\markboth{\indexname}{\indexname}} +\setcounter{IndexColumns}{2} + +\newcommand*{\sty}[1]{\textsf{#1}} +\newcommand*{\opt}[1]{\texttt{#1}\index{#1=\texttt{#1}|main}} + +\RecordChanges +\PageIndex +\CodelineNumbered + +\begin{document} +\DocInput{datetime2-ukrainian.dtx} +\end{document} +%</driver> +% \fi +% +% +% \GetFileInfo{\jobname.dtx} +% +% \def\fileversion{1.2a} +% \def\filedate{2018/04/15} +% +% +%\MakeShortVerb{"} +% +%\title{\bfseries Ukrainian Module for datetime2 Package} +%\author{Nicola L. C. Talbot \and Sergiy M. Ponomarenko} +%\date{2018/04/15 (1.2a)} +%\maketitle +%\tableofcontents +% +%\begin{abstract} +% This is the Ukrainian language module for the \sty{datetime2} +% package. If you want to use the settings in this module you must +% install it in addition to installing \sty{datetime2}. If you use +% \sty{babel} or \sty{polyglossia}, you will need this module to +% prevent them from redefining \cs{today}. The \sty{datetime2} +% \opt{useregional} setting must be set to "text" or "numeric" +% for the language styles to be set. +% Alternatively, you can set the style in the document using +% \cs{DTMsetstyle}, but this may be changed by \cs{dateukrainian} +% depending on the value of the \opt{useregional} setting. +%\end{abstract} +% +%\StopEventually{% +%\clearpage +%\phantomsection +%\addcontentsline{toc}{section}{Change History}% +%\PrintChanges +%\addcontentsline{toc}{section}{\indexname}% +%\PrintIndex} +% \section{Usage} +% +% \subsection{\LaTeX} +% +% When user's document is compiled with \texttt{latex.exe} or \texttt{pdflatex.exe}, +% recommended set of packages includes the \texttt{inputenc} and \texttt{fontenc} +% packages. +% +% +% \begin{verbatim} +% \usepackage[T1,T2A]{fontenc} +% \usepackage[utf8]{inputenc} +% \usepackage[english,ukrainian]{babel} +% \usepackage[useregional]{datetime2} +% \end{verbatim} +% +% +% +% \subsection{Lua(Xe)\LaTeX} +% +% \subsubsection{Usage with \texttt{babel}} +% +% To invoke Unicode mode, one needs to load the \texttt{fontspec} package instead +% of \texttt{inputenc} and \texttt{fontspec} 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 with \texttt{babel} package: +% \begin{verbatim} +% \usepackage{fontspec} +% \defaultfontfeatures{Renderer=Basic,Ligatures={TeX}} +% \setmainfont{CMU Serif} +% \setsansfont{CMU Sans Serif} +% \setmonofont{CMU Typewriter Text} +% \usepackage[english,ukrainian]{babel} +% \usepackage[useregional]{datetime2} +% \end{verbatim} +% +% Here |Renderer=Basic,Ligatures={TeX}| activates ligatures which are existed +% in \LaTeX. +% +% \subsubsection{Usage with \texttt{polyglossia}} +% +% \begin{verbatim} +% \usepackage{polyglossia} +% \defaultfontfeatures{Renderer=Basic,Ligatures={TeX}} +% \setmainlanguage{ukrainian} +% \setotherlanguage{english} +% \setmainfont{CMU Serif} +% \setsansfont{CMU Sans Serif} +% \setmonofont{CMU Typewriter Text} +% \usepackage[english,ukrainian]{babel} +% \usepackage[useregional]{datetime2} +% \end{verbatim} +% +% If ohe need use month name in nominative form, it sould be able to switch between +% the different cases using \cs{DTMlangsetup}. For example: +% \begin{verbatim} +% % Default is genitive +% \today +% \DTMlangsetup[ukrainian]{month=nominative} +% % Now \today in nominative +% \today +% \end{verbatim} +% +% For more information see documentation on \href{https://www.ctan.org/pkg/datetime2}{\texttt{datetime2}}. +%\section{Implementetion} +%\iffalse +% \begin{macrocode} +%<*datetime2-ukrainian-utf8.ldf> +% \end{macrocode} +%\fi +%\subsection{UTF-8} +% This file contains the settings that use UTF-8 characters. This +% file is loaded if XeLaTeX or LuaLaTeX are used. Please make sure +% your text editor is set to UTF-8 if you want to view this code. +% \changes{1.0}{2015-04-01}{Initial release} +% Identify module +% \begin{macrocode} +\ProvidesDateTimeModule{ukrainian-utf8}[2017/06/13 1.2] +% \end{macrocode} +%\begin{macro}{\DTMukrainianordinal} +% \begin{macrocode} +\newcommand*{\DTMukrainianordinal}[1]{% + \number#1 +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMukrainianyear} +% \begin{macrocode} +\newcommand*{\DTMukrainianyear}[1]{% + \number#1 + \DTMtexorpdfstring{\protect~}{\space}р.% +} +% \end{macrocode} +%\end{macro} +% +%\changes{1.2}{2017/06/13}{Add nominative month names (capitalize and common)} +% +%\begin{macro}{\DTMukrainiannominativemonthname} +% +% ======= Ukrainian month names in nominative ======= +% +% \begin{macrocode} +\newcommand*{\DTMukrainiannominativemonthname}[1]{% + \ifcase#1 + \or + січень% + \or + лютий% + \or + березень% + \or + квітень% + \or + травень% + \or + червень% + \or + липень% + \or + серпень% + \or + вересень% + \or + жовтень% + \or + листопад% + \or + грудень% + \fi +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMukrainiannominativeMonthname} +% +% ======= Ukrainian Capitalized month names in nominative ======= +% +% \begin{macrocode} +\newcommand*{\DTMukrainiannominativeMonthname}[1]{% + \ifcase#1 + \or + Січень% + \or + Лютий% + \or + Березень% + \or + Квітень% + \or + Травень% + \or + Червень% + \or + Липень% + \or + Серпень% + \or + Вересень% + \or + Жовтень% + \or + Листопад% + \or + Грудень% + \fi +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMukrainiangenitivemonthname} +% +% ======= Ukrainian month names in genitive ======= +% +% \begin{macrocode} +\newcommand*{\DTMukrainiangenitivemonthname}[1]{% + \ifcase#1 + \or + січня% + \or + лютого% + \or + березня% + \or + квітня% + \or + травня% + \or + червня% + \or + липня% + \or + серпня% + \or + вересня% + \or + жовтня% + \or + листопада% + \or + грудня% + \fi +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMukrainiangenitiveMonthname} +% +% ======= Ukrainian Capitalized month names in genitive ======= +% +% \begin{macrocode} +\newcommand*{\DTMukrainiangenitiveMonthname}[1]{% + \ifcase#1 + \or + Січня% + \or + Лютого% + \or + Березня% + \or + Квітня% + \or + Травня% + \or + Червня% + \or + Липня% + \or + Серпня% + \or + Вересня% + \or + Жовтня% + \or + Листопада% + \or + Грудня% + \fi +} +% \end{macrocode} +%\end{macro} +% \changes{1.2}{2017/06/13}{Set as default genitive form of month name} +% Now we set \cs{DTMukrainiangenitiveMonthname} and \cs{DTMukrainiangenitivemonthname} as default setting. +% \begin{macrocode} +\newcommand*{\DTMukrainianmonthname}{\DTMukrainiangenitivemonthname}% default +\newcommand*{\DTMukrainianMonthname}{\DTMukrainiangenitiveMonthname}% default +% \end{macrocode} +% +%\begin{macro}{\DTMukrainianshortmonthname}% +% +% ======= Abbreviated Ukrainian short month names ======= +% +%\changes{v1.1}{2017/06/11}{Add abbreviated month names} +% \begin{macrocode} +\newcommand*{\DTMukrainianshortmonthname}[1]{% + \ifcase#1 + \or + січ.% + \or + лют.% + \or + бер.% + \or + квіт.% + \or + трав% + \or + черв.% + \or + лип.% + \or + серп.% + \or + вер.% + \or + жовт.% + \or + листоп.% + \or + груд.% + \fi +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMukrainianshortMonthname} +% +% ======= Abbreviated Ukrainian Capitalized short month names ======= +% +% \begin{macrocode} +\newcommand*{\DTMukrainianshortMonthname}[1]{% + \ifcase#1 + \or + Січ.% + \or + Лют.% + \or + Бер.% + \or + Квіт.% + \or + Трав% + \or + Черв.% + \or + Лип.% + \or + Серп.% + \or + Вер.% + \or + Жовт.% + \or + Листоп.% + \or + Груд.% + \fi +} +% \end{macrocode} +%\end{macro} +% +% \changes{v1.1}{2017/06/11}{Adding Ukrainian week days} +%\begin{macro}{\DTMukrainianweekdayname} +% +% ======= Ukrainian day of week names ======= +% +% \begin{macrocode} +\newcommand*{\DTMukrainianweekdayname}[1]{% + \ifcase#1 + понеділок% + \or + вівторок% + \or + середа% + \or + четвер% + \or + п'ятниця% + \or + субота% + \or + неділя% + \fi +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMukrainianWeekdayname} +% +% ======= Ukrainian Capitalized day of week names ======= +% +% \begin{macrocode} +\newcommand*{\DTMukrainianWeekdayname}[1]{% + \ifcase#1 + Понеділок% + \or + Вівторок% + \or + Середа% + \or + Четвер% + \or + П'ятниця% + \or + Субота% + \or + Неділя% + \fi +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMukrainianshortweekdayname} +% +% +% ======= Abbreviated Ukrainian day of week names ======= +% +%\changes{v1.1}{2017/06/11}{Add abbreviated day of week names} +% \begin{macrocode} +\newcommand*{\DTMukrainianshortweekdayname}[1]{% + \ifcase#1 + пн.% + \or + вт.% + \or + ср.% + \or + чт% + \or + пт.% + \or + сб.% + \or + нд.% + \fi +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMukrainianshortWeekdayname} +% +% ======= Abbreviated Ukrainian Capitalized day of week names ======= +% +% \begin{macrocode} +\newcommand*{\DTMukrainianshortWeekdayname}[1]{% + \ifcase#1 + Пн.% + \or + Вт.% + \or + Ср.% + \or + Чт% + \or + Пт.% + \or + Сб.% + \or + Нд.% + \fi +} +% \end{macrocode} +%\end{macro} +% +% +%\iffalse +% \begin{macrocode} +%</datetime2-ukrainian-utf8.ldf> +% \end{macrocode} +%\fi +%\iffalse +% \begin{macrocode} +%<*datetime2-ukrainian-ascii.ldf> +% \end{macrocode} +%\fi +%\subsection{ASCII} +%This file contains the settings that use \LaTeX\ commands for +%non-ASCII characters. This should be input if neither XeLaTeX nor +%LuaLaTeX are used. Even if the user has loaded \sty{inputenc} with +%"utf8", this file should still be used not the +%\texttt{datetime2-ukrainian-utf8.ldf} file as the non-ASCII +%characters are made active in that situation and would need +%protecting against expansion. +%\changes{1.0}{2015-04-01}{Initial release} +% Identify module +% \begin{macrocode} +\ProvidesDateTimeModule{ukrainian-ascii}[2017/06/13 1.2] +% \end{macrocode} +% +%I f abbreviated dates are supported, short month names should be +% likewise provided. +%\begin{macro}{\DTMukrainianordinal} +% \begin{macrocode} +\newcommand*{\DTMukrainianordinal}[1]{% + \number#1 +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMukrainianyear} +% \begin{macrocode} +\newcommand*{\DTMukrainianyear}[1]{% + \number#1 + \DTMtexorpdfstring{\protect~}{\space}\protect\cyrr.% +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMukrainiannominativemonthname} +% +% +% ======= Ukrainian month names in nominative ======= +% +% +% \begin{macrocode} +\newcommand*{\DTMukrainiannominativemonthname}[1]{% + \ifcase#1 + \or + \protect\cyrs\protect\cyrii\protect\cyrch\protect\cyre\protect\cyrn\protect\cyrsftsn + \or + \protect\cyrl\protect\cyryu\protect\cyrt\protect\cyri\protect\cyrishrt + \or + \protect\cyrb\protect\cyre\protect\cyrr\protect\cyre\protect\cyrz + \protect\cyre\protect\cyrn\protect\cyrsftsn + \or + \protect\cyrk\protect\cyrv\protect\cyrii\protect\cyrt\protect\cyre\protect\cyrn\protect\cyrsftsn + \or + \protect\cyrt\protect\cyrr\protect\cyra\protect\cyrv\protect\cyre\protect\cyrn\protect\cyrsftsn + \or + \protect\cyrch\protect\cyre\protect\cyrr\protect\cyrv\protect\cyre\protect\cyrn\protect\cyrsftsn + \or + \protect\cyrl\protect\cyri\protect\cyrp\protect\cyre\protect\cyrn\protect\cyrsftsn + \or + \protect\cyrs\protect\cyre\protect\cyrr\protect\cyrp\protect\cyre\protect\cyrn\protect\cyrsftsn + \or + \protect\cyrv\protect\cyre\protect\cyrr\protect\cyre\protect\cyrs + \protect\cyre\protect\cyrn\protect\cyrsftsn + \or + \protect\cyrzh\protect\cyro\protect\cyrv\protect\cyrt\protect\cyre\protect\cyrn\protect\cyrsftsn + \or + \protect\cyrl\protect\cyri\protect\cyrs\protect\cyrt\protect\cyro + \protect\cyrp\protect\cyra\protect\cyrd + \or + \protect\cyrg\protect\cyrr\protect\cyru\protect\cyrd\protect\protect\cyre\protect\cyrn\protect\cyrsftsn + \fi +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMukrainiannominativeMonthname} +% +% +% ======= Ukrainian Capitalized month names in nominative ======= +% +% +% \begin{macrocode} +\newcommand*{\DTMukrainiannominativeMonthname}[1]{% + \ifcase#1 + \or + \protect\CYRS\protect\cyrii\protect\cyrch\protect\cyre\protect\cyrn\protect\cyrsftsn + \or + \protect\CYRL\protect\cyryu\protect\cyrt\protect\cyri\protect\cyrishrt + \or + \protect\CYRB\protect\cyre\protect\cyrr\protect\cyre\protect\cyrz + \protect\cyre\protect\cyrn\protect\cyrsftsn + \or + \protect\CYRK\protect\cyrv\protect\cyrii\protect\cyrt\protect\cyre\protect\cyrn\protect\cyrsftsn + \or + \protect\CYRT\protect\cyrr\protect\cyra\protect\cyrv\protect\cyre\protect\cyrn\protect\cyrsftsn + \or + \protect\CYRCH\protect\cyre\protect\cyrr\protect\cyrv\protect\cyre\protect\cyrn\protect\cyrsftsn + \or + \protect\CYRL\protect\cyri\protect\cyrp\protect\cyre\protect\cyrn\protect\cyrsftsn + \or + \protect\CYRS\protect\cyre\protect\cyrr\protect\cyrp\protect\cyre\protect\cyrn\protect\cyrsftsn + \or + \protect\CYRV\protect\cyre\protect\cyrr\protect\cyre\protect\cyrs + \protect\CYRE\protect\cyrn\protect\cyrsftsn + \or + \protect\CYRZH\protect\cyro\protect\cyrv\protect\cyrt\protect\cyre\protect\cyrn\protect\cyrsftsn + \or + \protect\CYRL\protect\cyri\protect\cyrs\protect\cyrt\protect\cyro + \protect\cyrp\protect\cyra\protect\cyrd + \or + \protect\CYRG\protect\cyrr\protect\cyru\protect\cyrd\protect\protect\cyre\protect\cyrn\protect\cyrsftsn + \fi +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMukrainiangenitivemonthname} +% +% ======= Ukrainian month names in genitive ======= +% +% \begin{macrocode} +\newcommand*{\DTMukrainiangenitivemonthname}[1]{% + \ifcase#1 + \or + \protect\cyrs\protect\cyrii\protect\cyrch\protect\cyrn\protect\cyrya + \or + \protect\cyrl\protect\cyryu\protect\cyrt\protect\cyro\protect\cyrg + \protect\cyro + \or + \protect\cyrb\protect\cyre\protect\cyrr\protect\cyre\protect\cyrz + \protect\cyrn\protect\cyrya + \or + \protect\cyrk\protect\cyrv\protect\cyrii\protect\cyrt\protect\cyrn + \protect\cyrya + \or + \protect\cyrt\protect\cyrr\protect\cyra\protect\cyrv\protect\cyrn + \protect\cyrya + \or + \protect\cyrch\protect\cyre\protect\cyrr\protect\cyrv\protect\cyrn + \protect\cyrya + \or + \protect\cyrl\protect\cyri\protect\cyrp\protect\cyrn\protect\cyrya + \or + \protect\cyrs\protect\cyre\protect\cyrr\protect\cyrp\protect\cyrn + \protect\cyrya + \or + \protect\cyrv\protect\cyre\protect\cyrr\protect\cyre\protect\cyrs + \protect\cyrn\protect\cyrya + \or + \protect\cyrzh\protect\cyro\protect\cyrv\protect\cyrt\protect\cyrn + \protect\cyrya + \or + \protect\cyrl\protect\cyri\protect\cyrs\protect\cyrt\protect\cyro + \protect\cyrp\protect\cyra\protect\cyrd\protect\cyra + \or + \protect\cyrg\protect\cyrr\protect\cyru\protect\cyrd\protect\cyrn + \protect\cyrya + \fi +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMukrainiangenitiveMonthname} +% +% ======= Ukrainian Capitalized month names in genitive ======= +% +% \begin{macrocode} +\newcommand*{\DTMukrainiangenitiveMonthname}[1]{% + \ifcase#1 + \or + \protect\CYRS\protect\cyrii\protect\cyrch\protect\cyrn\protect\cyrya + \or + \protect\CYRL\protect\cyryu\protect\cyrt\protect\cyro\protect\cyrg + \protect\cyro + \or + \protect\CYRB\protect\cyre\protect\cyrr\protect\cyre\protect\cyrz + \protect\cyrn\protect\cyrya + \or + \protect\CYRK\protect\cyrv\protect\cyrii\protect\cyrt\protect\cyrn + \protect\cyrya + \or + \protect\CYRT\protect\cyrr\protect\cyra\protect\cyrv\protect\cyrn + \protect\cyrya + \or + \protect\CYRCH\protect\cyre\protect\cyrr\protect\cyrv\protect\cyrn + \protect\cyrya + \or + \protect\CYRL\protect\cyri\protect\cyrp\protect\cyrn\protect\cyrya + \or + \protect\CYRS\protect\cyre\protect\cyrr\protect\cyrp\protect\cyrn + \protect\cyrya + \or + \protect\CYRV\protect\cyre\protect\cyrr\protect\cyre\protect\cyrs + \protect\cyrn\protect\cyrya + \or + \protect\CYRZH\protect\cyro\protect\cyrv\protect\cyrt\protect\cyrn + \protect\cyrya + \or + \protect\CYRL\protect\cyri\protect\cyrs\protect\cyrt\protect\cyro + \protect\cyrp\protect\cyra\protect\cyrd\protect\cyra + \or + \protect\CYRG\protect\cyrr\protect\cyru\protect\cyrd\protect\cyrn + \protect\cyrya + \fi +} +% \end{macrocode} +%\end{macro} +% +%\changes{1.2}{2017/06/13}{Set as default genitive form of month name} +% Now we set \cs{DTMukrainiangenitiveMonthname} and \cs{DTMukrainiangenitivemonthname} as default setting. +% \begin{macrocode} +\newcommand*{\DTMukrainianmonthname}{\DTMukrainiangenitivemonthname}% default +\newcommand*{\DTMukrainianMonthname}{\DTMukrainiangenitiveMonthname}% default +% \end{macrocode} +% +% +%\begin{macro}{\DTMukrainianshortmonthname} +% +% ======= Abbreviated Ukrainian month names ======= +% +%\changes{v1.1}{2017/06/11}{Add abbreviated month names} +% \begin{macrocode} +\newcommand*{\DTMukrainianshortmonthname}[1]{% + \ifcase#1 + \or + \protect\cyrs\protect\cyrii\protect\cyrch. + \or + \protect\cyrl\protect\cyryu\protect\cyrt. + \or + \protect\cyrb\protect\cyre\protect\cyrr. + \or + \protect\cyrk\protect\cyrv\protect\cyrii\protect\cyrt. + \or + \protect\cyrt\protect\cyrr\protect\cyra\protect\cyrv. + \or + \protect\cyrch\protect\cyre\protect\cyrr\protect\cyrv. + \or + \protect\cyrl\protect\cyri\protect\cyrp. + \or + \protect\cyrs\protect\cyre\protect\cyrr\protect\cyrp. + \or + \protect\cyrv\protect\cyre\protect\cyrr. + \or + \protect\cyrzh\protect\cyro\protect\cyrv\protect\cyrt. + \or + \protect\cyrl\protect\cyri\protect\cyrs\protect\cyrt\protect\cyro + \protect\cyrp. + \or + \protect\cyrg\protect\cyrr\protect\cyru\protect\cyrd. + \fi +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMukrainianshortMonthname} +% +% ======= Abbreviated Capitalized Ukrainian month names ======= +% +% \begin{macrocode} +\newcommand*{\DTMukrainianshortMonthname}[1]{% + \ifcase#1 + \or + \protect\CYRS\protect\cyrii\protect\cyrch. + \or + \protect\CYRL\protect\cyryu\protect\cyrt. + \or + \protect\CYRB\protect\cyre\protect\cyrr. + \or + \protect\CYRK\protect\cyrv\protect\cyrii\protect\cyrt. + \or + \protect\CYRT\protect\cyrr\protect\cyra\protect\cyrv. + \or + \protect\CYRCH\protect\cyre\protect\cyrr\protect\cyrv. + \or + \protect\CYRL\protect\cyri\protect\cyrp. + \or + \protect\CYRS\protect\cyre\protect\cyrr\protect\cyrp. + \or + \protect\CYRV\protect\cyre\protect\cyrr. + \or + \protect\CYRZH\protect\cyro\protect\cyrv\protect\cyrt. + \or + \protect\CYRL\protect\cyri\protect\cyrs\protect\cyrt\protect\cyro + \protect\cyrp. + \or + \protect\CYRG\protect\cyrr\protect\cyru\protect\cyrd. + \fi +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMukrainianweekdayname} +% +% ======= Ukrainian day of week names ======= +% +% \begin{macrocode} +\newcommand*{\DTMukrainianweekdayname}[1]{% + \ifcase#1 + \protect\cyrp\protect\cyro\protect\cyrn\protect\cyre\protect\cyrd\protect\cyrii\protect\cyrl\protect\cyro\protect\cyrk% + \or + \protect\cyrv\protect\cyrii\protect\cyrv\protect\cyrt\protect\cyro\protect\cyrr\protect\cyro\protect\cyrk% + \or + \protect\cyrs\protect\cyre\protect\cyrr\protect\cyre\protect\cyrd\protect\cyra% + \or + \protect\cyrch\protect\cyre\protect\cyrt\protect\cyrv\protect\cyre\protect\cyrr% + \or + \protect\cyrp'\protect\cyrya\protect\cyrt\protect\cyrn\protect\cyri\protect\cyrc\protect\cyrya% + \or + \protect\cyrs\protect\cyru\protect\cyrb\protect\cyro\protect\cyrt\protect\cyra% + \or + \protect\cyrn\protect\cyre\protect\cyrd\protect\cyrii\protect\cyrl\protect\cyrya% + \fi +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMukrainianWeekdayname} +% +% ======= Ukrainian Capitalized day of week names ======= +% +% \begin{macrocode} +\newcommand*{\DTMukrainianWeekdayname}[1]{% + \ifcase#1 + \protect\CYRP\protect\cyro\protect\cyrn\protect\cyre\protect\cyrd\protect\cyrii\protect\cyrl\protect\cyro\protect\cyrk% + \or + \protect\CYRV\protect\cyrii\protect\cyrv\protect\cyrt\protect\cyro\protect\cyrr\protect\cyro\protect\cyrk% + \or + \protect\CYRS\protect\cyre\protect\cyrr\protect\cyre\protect\cyrd\protect\cyra% + \or + \protect\CYRCH\protect\cyre\protect\cyrt\protect\cyrv\protect\cyre\protect\cyrr% + \or + \protect\CYRP'\protect\cyrya\protect\cyrt\protect\cyrn\protect\cyri\protect\cyrc\protect\cyrya% + \or + \protect\CYRS\protect\cyru\protect\cyrb\protect\cyro\protect\cyrt\protect\cyra% + \or + \protect\CYRN\protect\cyre\protect\cyrd\protect\cyrii\protect\cyrl\protect\cyrya% + \fi +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMukrainianshortweekdayname} +% +% ======= Abbreviated Ukrainian day of week names ======= +% +%\changes{v1.1}{2017/06/11}{Add abbreviated day of week names} +% \begin{macrocode} +\newcommand*{\DTMukrainianshortweekdayname}[1]{% + \ifcase#1 + \protect\cyrp\protect\cyrn.% + \or + \protect\cyrv\protect\cyrt.% + \or + \protect\cyrs\protect\cyrr.% + \or + \protect\cyrch\protect\cyrt% + \or + \protect\cyrp\protect\cyrt.% + \or + \protect\cyrs\protect\cyrb.% + \or + \protect\cyrn\protect\cyrd.% + \fi +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMukrainianshortWeekdayname} +% ======= Abbreviated Ukrainian Capitalized day of week names ======= +% \begin{macrocode} +\newcommand*{\DTMukrainianshortWeekdayname}[1]{% + \ifcase#1 + \protect\CYRP\protect\cyrn.% + \or + \protect\CYRV\protect\cyrt.% + \or + \protect\CYRS\protect\cyrr.% + \or + \protect\CYRCH\protect\cyrt.% + \or + \protect\CYRP\protect\cyrt.% + \or + \protect\CYRS\protect\cyrb.% + \or + \protect\CYRN\protect\cyrd.% + \fi +} +% \end{macrocode} +%\end{macro} +% +%\iffalse +% \begin{macrocode} +%</datetime2-ukrainian-ascii.ldf> +% \end{macrocode} +%\fi +% +%\subsection{Main Ukrainian Module (\texttt{datetime2-ukrainian.ldf})} +%\changes{1.0}{2015-04-01}{Initial release} +% +%\iffalse +% \begin{macrocode} +%<*datetime2-ukrainian.ldf> +% \end{macrocode} +%\fi +% +% Identify Module +% \begin{macrocode} +\ProvidesDateTimeModule{ukrainian}[2017/06/13 1.2] +% \end{macrocode} +% Need to find out if XeTeX or LuaTeX are being used. +% \begin{macrocode} +\RequirePackage{ifxetex,ifluatex} +% \end{macrocode} +% XeTeX and LuaTeX natively support UTF-8, so load +% \texttt{ukrainian-utf8} if either of those engines are used +% otherwise load \texttt{ukrainian-ascii}. +% \begin{macrocode} +\ifxetex + \RequireDateTimeModule{ukrainian-utf8} +\else + \ifluatex + \RequireDateTimeModule{ukrainian-utf8} + \else + \RequireDateTimeModule{ukrainian-ascii} + \fi +\fi +% \end{macrocode} +% +% Define the \texttt{ukrainian} style. +% The time style is the same as the "default" style +% provided by \sty{datetime2}. This may need correcting. For +% example, if a 12 hour style similar to the "englishampm" (from the +% "english-base" module) is required. +% +% Allow the user a way of configuring the "ukrainian" and +% "ukrainian-numeric" styles. This doesn't use the package wide +% separators such as +% \cs{dtm@datetimesep} in case other date formats are also required. +% +%\begin{macro}{\DTMukrainiandowdaysep} +% The separator between the day of week name and the day of month +% number for the text format. +%\changes{1.2}{2017/06/13}{Add support for showdow} +% \begin{macrocode} +\newcommand*{\DTMukrainiandowdaysep}{% + \DTMtexorpdfstring{\protect~}{\space}} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMukrainiandaymonthsep} +% The separator between the day and month for the text format. +% \begin{macrocode} +\newcommand*{\DTMukrainiandaymonthsep}{% + \DTMtexorpdfstring{\protect~}{\space}} +% \end{macrocode} +%\end{macro} +% +% \changes{1.2}{2017/06/13}{Added \cs{DTMukrainiannommonthyearsep}} +% +%\begin{macro}{\DTMukrainiannommonthyearsep} +% The separator between the month and year for the text format. +% \begin{macrocode} +\newcommand*{\DTMukrainiannommonthyearsep}{% + \DTMtexorpdfstring{\protect~}{\space}} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMukrainianmonthyearsep} +% The separator between the month and year for the text format. +% \changes{1.2}{2017/06/13}{Fixed: spacebar in tableofcontents was} +% \begin{macrocode} +\newcommand*{\DTMukrainianmonthyearsep}{% + \DTMtexorpdfstring{\protect~}{\space}} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMukrainiandatetimesep} +% The separator between the date and time blocks in the full format +% (either text or numeric). +% \begin{macrocode} +\newcommand*{\DTMukrainiandatetimesep}{% + \DTMtexorpdfstring{\protect~}{\space}} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMukrainiantimezonesep} +% The separator between the time and zone blocks in the full format +% (either text or numeric). +% \begin{macrocode} +\newcommand*{\DTMukrainiantimezonesep}{% + \DTMtexorpdfstring{\protect~}{\space}} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMukrainiandatesep} +% The separator for the numeric date format. +% \begin{macrocode} +\newcommand*{\DTMukrainiandatesep}{.} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMukrainiantimesep} +% The separator for the numeric time format. +% \begin{macrocode} +\newcommand*{\DTMukrainiantimesep}{:} +% \end{macrocode} +%\end{macro} +% +% Provide keys that can be used in \cs{DTMlangsetup} to set these +% separators. +% \changes{1.2}{2017/06/13}{Added key dowdaysep} +% \begin{macrocode} +\DTMdefkey{ukrainian}{dowdaysep}{\renewcommand*{\DTMukrainiandowdaysep}{#1}} +\DTMdefkey{ukrainian}{daymonthsep}{\renewcommand*{\DTMukrainiandaymonthsep}{#1}} +\DTMdefkey{ukrainian}{monthyearsep}{\renewcommand*{\DTMukrainianmonthyearsep}{#1}} +\DTMdefkey{ukrainian}{nommonthyearsep}{\renewcommand*{\DTMukrainiannommonthyearsep}{#1}} +\DTMdefkey{ukrainian}{datetimesep}{\renewcommand*{\DTMukrainiandatetimesep}{#1}} +\DTMdefkey{ukrainian}{timezonesep}{\renewcommand*{\DTMukrainiantimezonesep}{#1}} +\DTMdefkey{ukrainian}{datesep}{\renewcommand*{\DTMukrainiandatesep}{#1}} +\DTMdefkey{ukrainian}{timesep}{\renewcommand*{\DTMukrainiantimesep}{#1}} +% \end{macrocode} +% \changes{1.2}{2017/06/13}{Added genitive and nominative keys} +% The block that defines the module options for using genitive or nominative case of month name: +% +% \begin{macrocode} +\DTMdefchoicekey{ukrainian}{month}[\val\nr]{genitive,nominative}{% + \ifcase\nr\relax + \renewcommand*\DTMukrainianmonthname{\DTMukrainiangenitivemonthname}% + \renewcommand*\DTMukrainianMonthname{\DTMukrainiangenitiveMonthname}% + \or + \renewcommand*\DTMukrainianmonthname{\DTMukrainiannominativemonthname}% + \renewcommand*\DTMukrainianMonthname{\DTMukrainiannominativeMonthname}% + \fi +} +% \end{macrocode} +% +% \changes{1.2}{2017/06/13}{Define a boolean key that can switch between full and abbreviated +% formats for the month and day of week names in the text format} +% Define a boolean key that can switch between full and abbreviated +% formats for the month and day of week names in the text format. +% \begin{macrocode} +\DTMdefboolkey{ukrainian}{abbr}[true]{} +% \end{macrocode} +% The default is the full name. +% \begin{macrocode} +\DTMsetbool{ukrainian}{abbr}{false} +% \end{macrocode} +% +% +% Define a boolean key that determines if the time zone mappings +% should be used. +% \begin{macrocode} +\DTMdefboolkey{ukrainian}{mapzone}[true]{} +% \end{macrocode} +% The default is to use mappings. +% \begin{macrocode} +\DTMsetbool{ukrainian}{mapzone}{true} +% \end{macrocode} +% +% Define a boolean key that determines if the day of month should be +% displayed. +% \begin{macrocode} +\DTMdefboolkey{ukrainian}{showdayofmonth}[true]{} +% \end{macrocode} +% The default is to show the day of month. +% \begin{macrocode} +\DTMsetbool{ukrainian}{showdayofmonth}{true} +% \end{macrocode} +% +% Define a boolean key that determines if the year should be +% displayed. +% \begin{macrocode} +\DTMdefboolkey{ukrainian}{showyear}[true]{} +% \end{macrocode} +% The default is to show the year. +% \begin{macrocode} +\DTMsetbool{ukrainian}{showyear}{true} +% \end{macrocode} +% +% \begin{macrocode} +\DTMnewstyle + {ukrainian}% label + {% date style + \renewcommand*\DTMdisplaydate[4]{% + \ifDTMshowdow + \ifnum##4>-1 + \DTMifbool{ukrainian}{abbr}% + {\DTMukrainianshortweekdayname{##4}}% + {\DTMukrainianweekdayname{##4}}% + \DTMukrainiandowdaysep + \fi + \fi + \DTMifbool{ukrainian}{showdayofmonth}% + {% + \DTMukrainianordinal{##3}% + \DTMukrainiandaymonthsep + }% + {}% + \DTMifbool{ukrainian}{abbr}% + {\DTMukrainianshortmonthname{##2}}% + {\DTMukrainianmonthname{##2}}% + \DTMifbool{ukrainian}{showyear}% + {% + \DTMukrainianmonthyearsep + \DTMukrainianyear{##1}% + }% + {}% + }% + \renewcommand*\DTMDisplaydate[4]{% + \ifDTMshowdow + \ifnum##4>-1 + \DTMifbool{ukrainian}{abbr}% + {\DTMukrainianshortWeekdayname{##4}}% + {\DTMukrainianWeekdayname{##4}}% + \DTMukrainiandowdaysep + \DTMifbool{ukrainian}{showdayofmonth}% + {% + \DTMukrainianordinal{##3}% + \DTMukrainiandaymonthsep + }% + {}% + \DTMifbool{ukrainian}{abbr}% + {\DTMukrainianshortmonthname{##2}}% + {\DTMukrainianmonthname{##2}}% + \DTMifbool{ukrainian}{showyear}% + {% + \DTMukrainianmonthyearsep + \DTMukrainianyear{##1}% + }% + {}% + \else + \DTMifbool{ukrainian}{showdayofmonth} + {% + \DTMukrainianordinal{##3}% + \DTMukrainiandaymonthsep + \DTMifbool{ukrainian}{abbr}% + {\DTMukrainianshortMonthname{##2}}% + {\DTMukrainianMonthname{##2}}% + }% + {% + \DTMifbool{ukrainian}{abbr}% + {\DTMukrainianshortMonthname{##2}}% + {\DTMukrainianMonthname{##2}}% + }% + \DTMifbool{ukrainian}{showyear}% + {% + \DTMukrainianmonthyearsep + \DTMukrainianyear{##1}% + }% + {}% + \fi + \else + \DTMifbool{ukrainian}{showdayofmonth} + {% + \DTMukrainianordinal{##3}% + \DTMukrainiandaymonthsep + \DTMifbool{ukrainian}{abbr}% + {\DTMukrainianshortMonthname{##2}}% + {\DTMukrainianMonthname{##2}}% + }% + {% + \DTMifbool{ukrainian}{abbr}% + {\DTMukrainianshortMonthname{##2}}% + {\DTMukrainianMonthname{##2}}% + }% + \DTMifbool{ukrainian}{showyear}% + {% + \DTMukrainianmonthyearsep + \DTMukrainianyear{##1}% + }% + {}% + \fi + }% + }% + {% time style (ignores seconds) + \renewcommand*\DTMdisplaytime[3]{% + \number##1 + \DTMukrainiantimesep\DTMtwodigits{##2}% + }% + }% + {% zone style + \DTMresetzones + \DTMukrainianzonemaps + \renewcommand*{\DTMdisplayzone}[2]{% + \DTMifbool{ukrainian}{mapzone}% + {\DTMusezonemapordefault{##1}{##2}}% + {% + \ifnum##1<0\else+\fi\DTMtwodigits{##1}% + \ifDTMshowzoneminutes\DTMukrainiantimesep\DTMtwodigits{##2}\fi + }% + }% + }% + {% full style + \renewcommand*{\DTMdisplay}[9]{% + \ifDTMshowdate + \DTMdisplaydate{##1}{##2}{##3}{##4}% + \DTMukrainiandatetimesep + \fi + \DTMdisplaytime{##5}{##6}{##7}% + \ifDTMshowzone + \DTMukrainiantimezonesep + \DTMdisplayzone{##8}{##9}% + \fi + }% + \renewcommand*{\DTMDisplay}[9]{% + \ifDTMshowdate + \DTMDisplaydate{##1}{##2}{##3}{##4}% + \DTMukrainiandatetimesep + \fi + \DTMdisplaytime{##5}{##6}{##7}% + \ifDTMshowzone + \DTMukrainiantimezonesep + \DTMdisplayzone{##8}{##9}% + \fi + }% + }% +% \end{macrocode} +% +% Define numeric style. +% \begin{macrocode} +\DTMnewstyle + {ukrainian-numeric}% label + {% date style + \renewcommand*\DTMdisplaydate[4]{% + \DTMifbool{ukrainian}{showdayofmonth}% + {% + \number##3 % space intended + \DTMukrainiandatesep + }% + {}% + \number##2 % space intended + \DTMifbool{ukrainian}{showyear}% + {% + \DTMukrainiandatesep + \number##1 % space intended + }% + {}% + }% + \renewcommand*{\DTMDisplaydate}[4]{\DTMdisplaydate{##1}{##2}{##3}{##4}}% + }% + {% time style + \renewcommand*\DTMdisplaytime[3]{% + \number##1 + \DTMukrainiantimesep\DTMtwodigits{##2}% + \ifDTMshowseconds\DTMukrainiantimesep\DTMtwodigits{##3}\fi + }% + }% + {% zone style + \DTMresetzones + \DTMukrainianzonemaps + \renewcommand*{\DTMdisplayzone}[2]{% + \DTMifbool{ukrainian}{mapzone}% + {\DTMusezonemapordefault{##1}{##2}}% + {% + \ifnum##1<0\else+\fi\DTMtwodigits{##1}% + \ifDTMshowzoneminutes\DTMukrainiantimesep\DTMtwodigits{##2}\fi + }% + }% + }% + {% full style + \renewcommand*{\DTMdisplay}[9]{% + \ifDTMshowdate + \DTMdisplaydate{##1}{##2}{##3}{##4}% + \DTMukrainiandatetimesep + \fi + \DTMdisplaytime{##5}{##6}{##7}% + \ifDTMshowzone + \DTMukrainiantimezonesep + \DTMdisplayzone{##8}{##9}% + \fi + }% + \renewcommand*{\DTMDisplay}{\DTMdisplay}% + } +% \end{macrocode} +% +%\begin{macro}{\DTMukrainianzonemaps} +% The time zone mappings are set through this command, which can be +% redefined if extra mappings are required or mappings need to be +% removed. These may need translating (in which case the definitions +% might need to be moved to the \texttt{utf8} and \texttt{ascii} ldf +% files). +% \begin{macrocode} +\newcommand*{\DTMukrainianzonemaps}{% + \DTMdefzonemap{02}{00}{EET}% Східноєвропейський час + \DTMdefzonemap{03}{00}{EEST}% Східноєвропейський літній час +} +% \end{macrocode} +%\end{macro} + +% Switch style according to the \opt{useregional} setting. +% \begin{macrocode} +\DTMifcaseregional +{}% do nothing +{\DTMsetstyle{ukrainian}}% +{\DTMsetstyle{ukrainian-numeric}}% +% \end{macrocode} +% +% Redefine \cs{dateukrainian} (or \cs{date}\meta{dialect}) to prevent +% \sty{babel} from resetting \cs{today}. (For this to work, +% \sty{babel} must already have been loaded if it's required.) +% \begin{macrocode} +\ifcsundef{date\CurrentTrackedDialect} +{% + \ifundef\dateukrainian + {% do nothing + }% + {% + \def\dateukrainian{% + \DTMifcaseregional + {}% do nothing + {\DTMsetstyle{ukrainian}}% + {\DTMsetstyle{ukrainian-numeric}}% + }% + }% +}% +{% + \csdef{date\CurrentTrackedDialect}{% + \DTMifcaseregional + {}% do nothing + {\DTMsetstyle{ukrainian}}% + {\DTMsetstyle{ukrainian-numeric}}% + }% +}% +% \end{macrocode} +%\iffalse +% \begin{macrocode} +%</datetime2-ukrainian.ldf> +% \end{macrocode} +%\fi +% +% \CheckSum{1642} +%\Finale |