summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/datetime2-ukrainian/datetime2-ukrainian.dtx
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2017-06-13 21:01:20 +0000
committerKarl Berry <karl@freefriends.org>2017-06-13 21:01:20 +0000
commitab4c870dff9724b8ea31669dc8216c2f3c34a557 (patch)
treeb66fde8fbfb8e4f03a55fae916843b155d2fc8bb /Master/texmf-dist/source/latex/datetime2-ukrainian/datetime2-ukrainian.dtx
parent88c0cf2d35d93d47dcc7e7ef7f7d3abcff56be8b (diff)
datetime2-ukrainian (13jun17)
git-svn-id: svn://tug.org/texlive/trunk@44588 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/datetime2-ukrainian/datetime2-ukrainian.dtx')
-rw-r--r--Master/texmf-dist/source/latex/datetime2-ukrainian/datetime2-ukrainian.dtx865
1 files changed, 730 insertions, 135 deletions
diff --git a/Master/texmf-dist/source/latex/datetime2-ukrainian/datetime2-ukrainian.dtx b/Master/texmf-dist/source/latex/datetime2-ukrainian/datetime2-ukrainian.dtx
index a867baee52c..436413b047f 100644
--- a/Master/texmf-dist/source/latex/datetime2-ukrainian/datetime2-ukrainian.dtx
+++ b/Master/texmf-dist/source/latex/datetime2-ukrainian/datetime2-ukrainian.dtx
@@ -1,46 +1,274 @@
+% \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>
-%\iffalse
-%<*package>
-%% \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 \~}
-%</package>
-%\fi
-% \iffalse
-% Doc-Source file to use with LaTeX2e
-% Copyright (C) 2015 Nicola Talbot, all rights reserved.
-% (New maintainer add relevant lines here.)
-% \fi
-% \iffalse
%<*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{alltt}
-\usepackage{graphicx}
\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={Nicola L.C. Talbot},
+ pdfauthor={Sergiy M. Ponomarenko},
pdftitle={datetime2.sty Ukrainian Module}]{hyperref}
-\newfontfamily\cyrillicfont{CMU Serif}
-\setmonofont{CMU Typewriter Text}
-
-\CheckSum{1139}
\renewcommand*{\usage}[1]{\hyperpage{#1}}
\renewcommand*{\main}[1]{\hyperpage{#1}}
@@ -58,50 +286,36 @@
\DocInput{datetime2-ukrainian.dtx}
\end{document}
%</driver>
-%\fi
+% \fi
+%
+%
+% \GetFileInfo{\jobname.dtx}
+%
+% \def\fileversion{1.2}
+% \def\filedate{2017/06/13}
+%
%
%\MakeShortVerb{"}
%
-%\title{Ukrainian Module for datetime2 Package}
-%\author{Nicola L. C. Talbot (inactive)\\ Sergiy M. Ponomarenko}
-%\date{2017-06-11 (v1.1)}
+%\title{\bfseries Ukrainian Module for datetime2 Package}
+%\author{Nicola L. C. Talbot \and Sergiy M. Ponomarenko}
+%\date{2017/06/13 (1.2)}
%\maketitle
-%
-%This module is currently unmaintained and may be subject to change.
-%If you want to volunteer to take over maintanance, contact me at
-%\url{http://www.dickimaw-books.com/contact.html}
+%\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}
+% 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{date}\meta{language}
+% \cs{DTMsetstyle}, but this may be changed by \cs{dateukrainian}
% depending on the value of the \opt{useregional} setting.
%\end{abstract}
%
-%I've copied the date style from \texttt{babel-ukrainian}'s \cs{today}.
-%
-%I don't know if these settings are correct as I can't speak Ukrainian.
-%In particular, I don't know if the "ukrainian" time style is
-%correct. Currently this just uses the "default" time style. Please
-%be aware that this may change. Whoever takes over maintanance
-%of this module may can change it as appropriate.
-%
-%The new maintainer should add the line:
-%\begin{verbatim}
-% The Current Maintainer of this work is Name.
-%\end{verbatim}
-%to the preamble part in \texttt{datetime2-ukrainian.ins} where Name
-%is the name of the maintainer(s) and replace
-%the `inactive' status to `maintained'.
-%
-%Currently there is only a regionless style.
-%
%\StopEventually{%
%\clearpage
%\phantomsection
@@ -109,21 +323,85 @@
%\PrintChanges
%\addcontentsline{toc}{section}{\indexname}%
%\PrintIndex}
-%\section{The Code}
+% \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.1}{2017-06-11}{Adding Ukrainian week days}
-%\changes{1.0}{2015-04-01}{Initial release}
+% 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/111 v1.1]
+\ProvidesDateTimeModule{ukrainian-utf8}[2017/06/13 1.2]
% \end{macrocode}
%\begin{macro}{\DTMukrainianordinal}
% \begin{macrocode}
@@ -142,11 +420,86 @@
% \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{macro}{\DTMukrainianmonthname}
-% Ukrainian month names.
% \begin{macrocode}
-\newcommand*{\DTMukrainianmonthname}[1]{%
+\newcommand*{\DTMukrainiangenitivemonthname}[1]{%
\ifcase#1
\or
січня%
@@ -177,10 +530,12 @@
% \end{macrocode}
%\end{macro}
%
-%\begin{macro}{\DTMukrainianMonthname}
-% As above but capitalize.
+%\begin{macro}{\DTMukrainiangenitiveMonthname}
+%
+% ======= Ukrainian Capitalized month names in genitive =======
+%
% \begin{macrocode}
-\newcommand*{\DTMukrainianMonthname}[1]{%
+\newcommand*{\DTMukrainiangenitiveMonthname}[1]{%
\ifcase#1
\or
Січня%
@@ -210,10 +565,18 @@
}
% \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{1.01}{2017-06-11}{Add abbreviated month names}
+%\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
@@ -247,7 +610,9 @@
%\end{macro}
%
%\begin{macro}{\DTMukrainianshortMonthname}
-% As above but start with a capital.
+%
+% ======= Abbreviated Ukrainian Capitalized short month names =======
+%
% \begin{macrocode}
\newcommand*{\DTMukrainianshortMonthname}[1]{%
\ifcase#1
@@ -280,8 +645,11 @@
% \end{macrocode}
%\end{macro}
%
+% \changes{v1.1}{2017/06/11}{Adding Ukrainian week days}
%\begin{macro}{\DTMukrainianweekdayname}
-% Ukrainian day of week names.
+%
+% ======= Ukrainian day of week names =======
+%
% \begin{macrocode}
\newcommand*{\DTMukrainianweekdayname}[1]{%
\ifcase#1
@@ -304,7 +672,9 @@
%\end{macro}
%
%\begin{macro}{\DTMukrainianWeekdayname}
-% As above but start with a capital.
+%
+% ======= Ukrainian Capitalized day of week names =======
+%
% \begin{macrocode}
\newcommand*{\DTMukrainianWeekdayname}[1]{%
\ifcase#1
@@ -327,8 +697,11 @@
%\end{macro}
%
%\begin{macro}{\DTMukrainianshortweekdayname}
-% Abbreviated Romanian day of week names.
-%\changes{1.01}{2017-06-11}{Add abbreviated day of week names}
+%
+%
+% ======= 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
@@ -351,7 +724,9 @@
%\end{macro}
%
%\begin{macro}{\DTMukrainianshortWeekdayname}
-% As above but start with a capital.
+%
+% ======= Abbreviated Ukrainian Capitalized day of week names =======
+%
% \begin{macrocode}
\newcommand*{\DTMukrainianshortWeekdayname}[1]{%
\ifcase#1
@@ -395,11 +770,11 @@
%\changes{1.0}{2015-04-01}{Initial release}
% Identify module
% \begin{macrocode}
-\ProvidesDateTimeModule{ukrainian-ascii}[2015/04/01 v1.0]
+\ProvidesDateTimeModule{ukrainian-ascii}[2017/06/13 1.2]
% \end{macrocode}
%
-%If abbreviated dates are supported, short month names should be
-%likewise provided.
+%I f abbreviated dates are supported, short month names should be
+% likewise provided.
%\begin{macro}{\DTMukrainianordinal}
% \begin{macrocode}
\newcommand*{\DTMukrainianordinal}[1]{%
@@ -417,10 +792,94 @@
% \end{macrocode}
%\end{macro}
%
-%\begin{macro}{\DTMukrainianmonthname}
-% Ukrainian month names.
+%\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*{\DTMukrainianmonthname}[1]{%
+\newcommand*{\DTMukrainiangenitivemonthname}[1]{%
\ifcase#1
\or
\protect\cyrs\protect\cyrii\protect\cyrch\protect\cyrn\protect\cyrya
@@ -461,10 +920,12 @@
% \end{macrocode}
%\end{macro}
%
-%\begin{macro}{\DTMukrainianMonthname}
-% As above but start with a capital.
+%\begin{macro}{\DTMukrainiangenitiveMonthname}
+%
+% ======= Ukrainian Capitalized month names in genitive =======
+%
% \begin{macrocode}
-\newcommand*{\DTMukrainianMonthname}[1]{%
+\newcommand*{\DTMukrainiangenitiveMonthname}[1]{%
\ifcase#1
\or
\protect\CYRS\protect\cyrii\protect\cyrch\protect\cyrn\protect\cyrya
@@ -505,9 +966,19 @@
% \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{1.01}{2017-06-11}{Add abbreviated month names}
+%
+% ======= Abbreviated Ukrainian month names =======
+%
+%\changes{v1.1}{2017/06/11}{Add abbreviated month names}
% \begin{macrocode}
\newcommand*{\DTMukrainianshortmonthname}[1]{%
\ifcase#1
@@ -542,7 +1013,9 @@
%\end{macro}
%
%\begin{macro}{\DTMukrainianshortMonthname}
-% As above but start with a capital.
+%
+% ======= Abbreviated Capitalized Ukrainian month names =======
+%
% \begin{macrocode}
\newcommand*{\DTMukrainianshortMonthname}[1]{%
\ifcase#1
@@ -577,7 +1050,9 @@
%\end{macro}
%
%\begin{macro}{\DTMukrainianweekdayname}
-% Ukrainian day of week names.
+%
+% ======= Ukrainian day of week names =======
+%
% \begin{macrocode}
\newcommand*{\DTMukrainianweekdayname}[1]{%
\ifcase#1
@@ -600,7 +1075,9 @@
%\end{macro}
%
%\begin{macro}{\DTMukrainianWeekdayname}
-% As above but start with a capital.
+%
+% ======= Ukrainian Capitalized day of week names =======
+%
% \begin{macrocode}
\newcommand*{\DTMukrainianWeekdayname}[1]{%
\ifcase#1
@@ -623,8 +1100,10 @@
%\end{macro}
%
%\begin{macro}{\DTMukrainianshortweekdayname}
-% Abbreviated Ukrainian day of week names.
-%\changes{1.01}{2017-06-11}{Add abbreviated day of week names}
+%
+% ======= 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
@@ -647,7 +1126,7 @@
%\end{macro}
%
%\begin{macro}{\DTMukrainianshortWeekdayname}
-% As above but start with a capital.
+% ======= Abbreviated Ukrainian Capitalized day of week names =======
% \begin{macrocode}
\newcommand*{\DTMukrainianshortWeekdayname}[1]{%
\ifcase#1
@@ -686,7 +1165,7 @@
%
% Identify Module
% \begin{macrocode}
-\ProvidesDateTimeModule{ukrainian}[2017/06/11 v1.1]
+\ProvidesDateTimeModule{ukrainian}[2017/06/13 1.2]
% \end{macrocode}
% Need to find out if XeTeX or LuaTeX are being used.
% \begin{macrocode}
@@ -717,6 +1196,17 @@
% "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}
@@ -725,10 +1215,22 @@
% \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}{\space}
+\newcommand*{\DTMukrainianmonthyearsep}{%
+ \DTMtexorpdfstring{\protect~}{\space}}
% \end{macrocode}
%\end{macro}
%
@@ -736,7 +1238,8 @@
% The separator between the date and time blocks in the full format
% (either text or numeric).
% \begin{macrocode}
-\newcommand*{\DTMukrainiandatetimesep}{\space}
+\newcommand*{\DTMukrainiandatetimesep}{%
+ \DTMtexorpdfstring{\protect~}{\space}}
% \end{macrocode}
%\end{macro}
%
@@ -744,7 +1247,8 @@
% The separator between the time and zone blocks in the full format
% (either text or numeric).
% \begin{macrocode}
-\newcommand*{\DTMukrainiantimezonesep}{\space}
+\newcommand*{\DTMukrainiantimezonesep}{%
+ \DTMtexorpdfstring{\protect~}{\space}}
% \end{macrocode}
%\end{macro}
%
@@ -762,20 +1266,46 @@
% \end{macrocode}
%\end{macro}
%
-%Provide keys that can be used in \cs{DTMlangsetup} to set these
-%separators.
+% 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}
%
-% TODO: provide a boolean key to switch between full and abbreviated
-% formats if appropriate. (I don't know how the date should be
-% abbreviated.)
%
% Define a boolean key that determines if the time zone mappings
% should be used.
@@ -807,32 +1337,28 @@
\DTMsetbool{ukrainian}{showyear}{true}
% \end{macrocode}
%
-% Define the "ukrainian" style. (TODO: implement day of week?)
% \begin{macrocode}
\DTMnewstyle
{ukrainian}% label
{% date style
\renewcommand*\DTMdisplaydate[4]{%
- \DTMifbool{ukrainian}{showdayofmonth}
- {\DTMukrainianordinal{##3}\DTMukrainiandaymonthsep}%
- {}%
- \DTMukrainianmonthname{##2}%
- \DTMifbool{ukrainian}{showyear}%
+ \ifDTMshowdow
+ \ifnum##4>-1
+ \DTMifbool{ukrainian}{abbr}%
+ {\DTMukrainianshortweekdayname{##4}}%
+ {\DTMukrainianweekdayname{##4}}%
+ \DTMukrainiandowdaysep
+ \fi
+ \fi
+ \DTMifbool{ukrainian}{showdayofmonth}%
{%
- \DTMukrainianmonthyearsep
- \DTMukrainianyear{##1}%
+ \DTMukrainianordinal{##3}%
+ \DTMukrainiandaymonthsep
}%
{}%
- }%
- \renewcommand*\DTMDisplaydate[4]{%
- \DTMifbool{ukrainian}{showdayofmonth}
- {%
- \DTMukrainianordinal{##3}\DTMukrainiandaymonthsep
- \DTMukrainianmonthname{##2}%
- }%
- {%
- \DTMukrainianMonthname{##2}%
- }%
+ \DTMifbool{ukrainian}{abbr}%
+ {\DTMukrainianshortmonthname{##2}}%
+ {\DTMukrainianmonthname{##2}}%
\DTMifbool{ukrainian}{showyear}%
{%
\DTMukrainianmonthyearsep
@@ -840,9 +1366,77 @@
}%
{}%
}%
+ \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 (use default)
- \DTMsettimestyle{default}%
+ {% time style (ignores seconds)
+ \renewcommand*\DTMdisplaytime[3]{%
+ \number##1
+ \DTMukrainiantimesep\DTMtwodigits{##2}%
+ }%
}%
{% zone style
\DTMresetzones
@@ -947,8 +1541,8 @@
% files).
% \begin{macrocode}
\newcommand*{\DTMukrainianzonemaps}{%
- \DTMdefzonemap{02}{00}{EET}%
- \DTMdefzonemap{03}{00}{EEST}%
+ \DTMdefzonemap{02}{00}{EET}% Східноєвропейський час
+ \DTMdefzonemap{03}{00}{EEST}% Східноєвропейський літній час
}
% \end{macrocode}
%\end{macro}
@@ -993,5 +1587,6 @@
%</datetime2-ukrainian.ldf>
% \end{macrocode}
%\fi
+%
+% \CheckSum{1642}
%\Finale
-\endinput