diff options
author | Karl Berry <karl@freefriends.org> | 2017-06-13 21:01:20 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2017-06-13 21:01:20 +0000 |
commit | ab4c870dff9724b8ea31669dc8216c2f3c34a557 (patch) | |
tree | b66fde8fbfb8e4f03a55fae916843b155d2fc8bb /Master/texmf-dist/source/latex/datetime2-ukrainian/datetime2-ukrainian.dtx | |
parent | 88c0cf2d35d93d47dcc7e7ef7f7d3abcff56be8b (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.dtx | 865 |
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 |