diff options
author | Karl Berry <karl@freefriends.org> | 2019-11-08 21:40:42 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2019-11-08 21:40:42 +0000 |
commit | 69e924ee6c8d31ad1ad84dfe14dd724fe50553df (patch) | |
tree | b372d481d5f427c625dcfd6c1973586e76b25649 /Master | |
parent | bfcf758cb4ba89da72962112f6f71036abd8a1ee (diff) |
datetime2-serbian (8nov19)
git-svn-id: svn://tug.org/texlive/trunk@52695 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
20 files changed, 10890 insertions, 1038 deletions
diff --git a/Master/texmf-dist/doc/latex/datetime2-serbian/README b/Master/texmf-dist/doc/latex/datetime2-serbian/README deleted file mode 100644 index 7f39f59f56c..00000000000 --- a/Master/texmf-dist/doc/latex/datetime2-serbian/README +++ /dev/null @@ -1,57 +0,0 @@ -Serbian Language Module for datetime2 Package - -Author: Nicola L. C. Talbot (inactive) - -Licence: LPPL - -Required Packages: datetime2, tracklang - -This module is unmaintained. If you want to volunteer to take over -the maintenance contact me at www.dickimaw-books.com/contact.html - -Example usage: - -\documentclass{article} -\usepackage[serbian]{datetime2} -\begin{document} -\today -\end{document} - -\documentclass[serbian]{article} -\usepackage{babel} -\usepackage[useregional]{datetime2} -\begin{document} -\today -\end{document} - -\documentclass{article} -\usepackage{polyglossia} -\setmainlanguage{serbian} -\usepackage[serbian]{datetime2} -\begin{document} -\today -\end{document} - -INSTALLATION -============ - -xelatex datetime2-serbian.ins - -Move all *.ldf files to -TEXMF/tex/latex/datetime2-contrib/datetime2-serbian/ - -Documentation: - -xelatex datetime2-serbian.dtx -makeindex -s gind.ist datetime2-serbian.idx -makeindex -s gglo.ist -o datetime2-serbian.gls datetime2-serbian.glo -xelatex datetime2-serbian.dtx -xelatex datetime2-serbian.dtx - -Move datetime2-serbian.pdf and README to -TEXMF/doc/latex/datetime2-contrib/datetime2-serbian/ - -This material is subject to the LaTeX Project Public License. -See http://www.ctan.org/license/lppl1.3 for the details of that -license. - diff --git a/Master/texmf-dist/doc/latex/datetime2-serbian/README.md b/Master/texmf-dist/doc/latex/datetime2-serbian/README.md new file mode 100644 index 00000000000..cacfff42e5e --- /dev/null +++ b/Master/texmf-dist/doc/latex/datetime2-serbian/README.md @@ -0,0 +1,96 @@ +Serbian Language Module for datetime2 CTAN Package +================================================== + +**Current maintainer:** Andrej Radović + +**Authors:** Andrej Radović (r.andrej@gmail.com), Nicola L. C. Talbot +(inactive) + +**Licence:** LPPL + +**Required Packages:** `datetime2`, `tracklang` + +Styles +------ + +This module provides the following styles: + +### Latin: +* serbian - regionless style +* sr-Latn - Serbian, Serbia +* sr-Latn-RS - Serbian, Serbia +* sr-Latn-ME - Serbian, Montenegro +* sr-Latn-BA - Serbian, Bosnia and Herzegovina + +### Cyrillic +* serbianc - regionless style +* sr-Cyrl - Serbian, Serbia +* sr-Cyrl-RS - Serbian, Serbia +* sr-Cyrl-ME - Serbian, Montenegro +* sr-Cyrl-BA - Serbian, Bosnia and Herzegovina + +Notes: +------ + +The regional settings still don't work, but `serbian` and `serbianc` work just +fine. +The package is still in development. + +Example usage: +-------------- + +### Generic w/ `babel` + \documentclass{article} + \usepackage[serbian]{datetime2} + \begin{document} + \today + \end{document} + +### Generic w/ `babel` + + \documentclass[serbian]{article} + \usepackage{babel} + \usepackage[useregional]{datetime2} + \begin{document} + \today + \end{document} + +### Generic w/ `polyglossia` + + \documentclass{article} + \usepackage{polyglossia} + \setmainlanguage{serbian} + \usepackage[serbian]{datetime2} + \begin{document} + \today + \end{document} + + +Installation +------------ + +Extract the language definition files first: + +Run LuaLaTeX over the file `datetime2-serbian.ins`: + + lualatex datetime2-serbian.ins + +Move all `*.ldf` files to + + TEXMF/tex/latex/datetime2-contrib/datetime2-serbian/ + + Then, you can compile the documentation yourself by executing + + lualatex datetime2-serbian.dtx + makeindex -s ginddt2s.ist datetime2-serbian.idx + makeindex -s gglodt2s.ist -o datetime2-serbian.gls datetime2-serbian.glo + lualatex datetime2-serbian.dtx + lualatex datetime2-serbian.dtx + +or just use the precompiled documentation shipped with the source files. +In both cases, copy the files `datetime2-serbian.pdf` and `README.md` to +`TEXMF/doc/latex/datetime2-contrib/datetime2-serbian/`. + +This material is subject to the LaTeX Project Public License. +See http://www.ctan.org/license/lppl1.3 for the details of that +license. diff --git a/Master/texmf-dist/doc/latex/datetime2-serbian/datetime2-serbian.pdf b/Master/texmf-dist/doc/latex/datetime2-serbian/datetime2-serbian.pdf Binary files differindex 090f1a93537..3f1b8c27683 100644 --- a/Master/texmf-dist/doc/latex/datetime2-serbian/datetime2-serbian.pdf +++ b/Master/texmf-dist/doc/latex/datetime2-serbian/datetime2-serbian.pdf diff --git a/Master/texmf-dist/source/latex/datetime2-serbian/datetime2-serbian.dtx b/Master/texmf-dist/source/latex/datetime2-serbian/datetime2-serbian.dtx index cd0c173e291..8409c539c22 100644 --- a/Master/texmf-dist/source/latex/datetime2-serbian/datetime2-serbian.dtx +++ b/Master/texmf-dist/source/latex/datetime2-serbian/datetime2-serbian.dtx @@ -20,38 +20,128 @@ % \iffalse % Doc-Source file to use with LaTeX2e % Copyright (C) 2019 Nicola Talbot, all rights reserved. -% (New maintainer add relevant lines here.) +% Copyright (C) 2019 Andrej Radović, all rights reserved. % \fi % \iffalse %<*driver> -\documentclass{ltxdoc} +\documentclass[11pt]{ltxdoc} + \usepackage{alltt} +\usepackage{hologo} \usepackage{graphicx} +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} \usepackage{fontspec} +\usepackage{multicol} +\usepackage[dvipsnames]{xcolor} +\usepackage[english]{babel} \usepackage[colorlinks, - bookmarks, - hyperindex=false, - pdfauthor={Nicola L.C. Talbot}, - pdftitle={datetime2.sty Serbian Module}]{hyperref} +%draft, % hyperref's draft mode - disable all hypertext +% TOC settings +% +bookmarks, +linktocpage=true, % make page number, not text, be link on TOC +% +% link colors and other settings +pageanchor=true,% give every page an anchor in its top left corner +% necessary for many other options +plainpages=false,% don't force Arabic anchor naming +breaklinks=true,% allow breaking links over lines +colorlinks=true,% enable link coloring +urlcolor=Maroon,% url colors +linkcolor=MidnightBlue,% color for normal, internal links +citecolor=PineGreen,% bibliographical citation color +%frenchlinks=true % use small caps instead of color for links +%pdfborder={1 0 0},% the color of boxes around links if colorlinks is +% not used +% +% PDF settings +% +unicode=true, % set PDF metadata to be unicode +pdfpagemode=UseNone, % don't open either bookmark or thumbnail sidebar +% alternately, UseOutlines shows bookmark sidebar +pdfstartview=FitV, % scale the PDF to fit the height on first open +bookmarksnumbered=true,% include section number in bookmarks +bookmarksopen=true,% expand bookmark tree in PDF viewer to a level +bookmarksopenlevel=1,% this is the level +hypertexnames=true, % guessable link names +pdfhighlight=/O,% links are outlined when selected, not /I for inverted +% +% PDF metadata +% +pdftitle={datetime2.sty Serbian Module} +pdfauthor={Andrej Radović}, +pdfcreator={xdvipdfmx},% +pdfproducer={lualatex},% +hyperindex=false% +]{hyperref} +\usepackage{textcase} + +\usepackage{enumitem} +\newlist{optdescription}{description}{1} +\setlist[optdescription]{% + align=right, + labelindent=!, + leftmargin=0pt, + font=\small\normalfont\ttfamily} -\setmainfont{Liberation Serif} -\setmonofont{Liberation Mono} -\newfontfamily\cyrillicfont{Liberation Serif} +\usepackage{acronym} +\renewcommand{\acsfont}[1]{{\scshape{#1}}} +\renewcommand*{\aclabelfont}[1]{{\acsfont{#1}}} -\CheckSum{615} + +%%\CheckSum{692} \renewcommand*{\usage}[1]{\hyperpage{#1}} \renewcommand*{\main}[1]{\hyperpage{#1}} \IndexPrologue{\section*{\indexname}\markboth{\indexname}{\indexname}} \setcounter{IndexColumns}{2} +\setcounter{GlossaryColumns}{2} +\setlength{\columnsep}{2em} +\let\GlossaryParms\IndexParms% +\newcommand*{\indexitemst}[1]{{\bfseries\sffamily\normalsize{#1}}} -\newcommand*{\sty}[1]{\textsf{#1}} +\newcommand*{\sty}[1]{{\textsf{#1}}} \newcommand*{\opt}[1]{\texttt{#1}\index{#1=\texttt{#1}|main}} +\newcommand*{\subsubsectionopt}[1]{\subsubsection{#1}\index{#1=\texttt{#1}|main}} +\newcommand*{\itemopt}[1]{\item[#1]\index{#1=\texttt{#1}|main}} + +\usepackage[final,tracking=true, protrusion=true, expansion=true]{microtype} -\RecordChanges -\PageIndex -\CodelineNumbered +\usepackage[drafting=false, +tocaligned=false, +dottedtoc=false, +eulerchapternumbers=false, +linedheaders=false, +floatperchapter=false, +eulermath=false, +beramono=false, +palatino=false, +style=arsclassica, +nochapters=true% +]{classicthesis} + +\pagestyle{plain} +\cfoot[\small\pagemark]{}% use a small centered page number in the footer +\ofoot[]{}% clear the outer footer + +\usepackage[%showframe, +top=3.25cm,bottom=3cm]{geometry} + +\defaultfontfeatures{Ligatures=TeX, Scale=MatchLowercase} +\setmainfont{XCharter}[Numbers=OldStyle] +\setmonofont{Inconsolata LGC} +\setsansfont{Fira Sans Book}[% + Numbers=OldStyle, + ItalicFont = {Fira Sans Book Italic}, + BoldFont = {Fira Sans SemiBold}, + BoldItalicFont = {Fira Sans SemiBold Italic}] +\newfontfamily\cyrillicfont{XCharter} + +\RecordChanges% +\PageIndex% +\CodelineNumbered% \begin{document} \DocInput{datetime2-serbian.dtx} @@ -61,408 +151,1372 @@ % %\MakeShortVerb{"} % -%\title{Serbian Module for datetime2 Package} -%\author{Nicola L. C. Talbot (inactive)} -%\date{2019-09-14 (v1.1)} +%\changes{2.0}{2019-11-07}{% +% Restyled the documentation. +%} +% +% +%\title{{\rmfamily\normalfont\spacedallcaps{% +% Serbian Module for datetime\liningnums{2} Package}}\\% +% {\large\url{https://gitlab.com/andrejr/datetime2-serbian}}} +%\author{% +% \spacedlowsmallcaps{Andrej Radović}\\ +% \url{r.andrej@gmail.com} +% \and +% \spacedlowsmallcaps{Nicola L. C. Talbot} \\ +% \spacedlowsmallcaps{(inactive)} +%} +%\date{{\sffamily\scshape 2019-11-07 (v2.0)}} %\maketitle % -%This module is currently unmaintained and may be subject to change. -%If you want to volunteer to take over maintenance, contact me at -%\url{http://www.dickimaw-books.com/contact.html} +% \renewcommand{\abstractname}{\normalfont\normalsize\spacedlowsmallcaps{Abstract}} +% % %\begin{abstract} +%\noindent %This is the Serbian 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} -% depending on the value of the \opt{useregional} setting. +% \opt{useregional} setting must be on (\texttt{text} or +% \texttt{numeric}) for the language styles to be set. +% Alternatively, you can set them in the document using +% \cs{DTMsetstyle}, but without the \opt{useregional} setting on the +% style will be changed by \cs{date}\meta{language}. %\end{abstract} % -%I've copied the date style from \texttt{babel-serbian}'s \cs{today}. +%\changes{2.0}{2019-11-07}{% +% Added a proper introduction. +%} +% +% \noindent +% As of version 2.0, there is support for both Ekavian and Ijekavian +% pronunciation in both Latin and Cyrillic, regions (Serbia, Bosnia and +% Herzegovina, Montenegro), numeric format variants (Roman month ordinals, +% optional leading zeros). +% The package provides two regionless styles, "serbian" (Latin) and "serbianc" +% (Cyrillic), as well as regional styles (explained in \autoref{sub:regions}). +% +% Neither month nor day of week abbreviations are supported. +% These aren't often used within dates in Serbian. % -%I don't know if these settings are correct as I can't speak Serbian. -%In particular, I don't know if the "serbian" 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. +% Currently, there are problems invoking regional styles, but I'm working on +% fixing those. +% Regionless styles are fully functional and you may load them as "serbian" and +% "serbianc". % -%The new maintainer should add the line: +% \bigskip +% +% {\itshape +% \noindent +% The package is generated from (Jinja2) templates by a Python script before +% it's uploaded to CTAN, so don't try to send patches to files you find there. +% All development is done on Gitlab +% (\url{https://gitlab.com/andrejr/datetime2-serbian}). +% +% If you're developing other datetime2 localization modules (or +% localization modules in general), the way the package is generated might be +% of interest to you. +% I actually tried writing the package by hand, but it was way too tedious. +% Generating most of the package from templates seems like the best way to do +% it. +% Along the way, I also wrote a small utility for generating \acsu{ascii} -- +% \acsu{licr} strings from utf-8 strings, and it can be found here: +% \url{https://gitlab.com/andrejr/utf8_to_licr}. +% I might publish it to CTAN if there is interest. +% } +% +% \tableofcontents +% +% \section{The Documentation} +% +%\changes{2.0}{2019-11-07}{% +% Added installation guide. +%} +% +% \subsection{Installation} +% Extract the language definition files first: +% \begin{enumerate} +% \item +% Run \hologo{LuaLaTeX} over the file \texttt{datetime2-serbian.ins}: \\ +% "lualatex datetime2-serbian.ins" +% % +% \item Move all \texttt{*.ldf} files to % +% \nolinkurl{TEXMF/tex/latex/datetime2-contrib/datetime2-serbian/} +% \end{enumerate} +% Then, you can compile the documentation yourself by executing %\begin{verbatim} -% The Current Maintainer of this work is Name. +%lualatex datetime2-serbian.dtx +%makeindex -s ginddt2s.ist datetime2-serbian.idx +%makeindex -s gglodt2s.ist -o datetime2-serbian.gls datetime2-serbian.glo +%lualatex datetime2-serbian.dtx +%lualatex datetime2-serbian.dtx %\end{verbatim} -%to the preamble part in \texttt{datetime2-serbian.ins} where Name -%is the name of the maintainer(s) and replace -%the `inactive' status to `maintained'. +% or just use the precompiled documentation shipped with the source files. +% In both cases, copy the files \texttt{datetime2-serbian.pdf} and +% \texttt{README.md} to +% \nolinkurl{TEXMF/doc/latex/datetime2-contrib/datetime2-serbian/}. +% +% +% \subsection{Setting up \sty{datetime2} with a language module} +% +% \subsubsection{Loading a language module} +% \emph{There are three different ways to load the required language module. +% See the \sty{datetime2} documentation for further detail.} +% +% \medskip +% +% \paragraph{Variant 1:} +% Request the desired language module explicitly by passing one of the +% region options to the \sty{datetime2} package, such as "serbian", "serbianc", +% "sr-Cyrl-ME", \ldots{} (the full list can be found in \autoref{sub:regions}).% +% +%\begin{verbatim} +%\documentclass{article} +%\usepackage[serbian]{datetime2} +%\begin{document} +%\today +%\end{document} +%\end{verbatim} +% +% \paragraph{Variant 2:} +% Load \sty{babel} and pass the "serbian" or "serbianc" option to the +% "\documentclass" command (or to \sty{babel} directly). +% If you now pass the \opt{useregional} option to \sty{datetime2}, the language +% module suitable to the one specified with \sty{babel} is loaded: +%\begin{verbatim} +%\documentclass[serbian]{article} +%\usepackage{babel} +%\usepackage[useregional]{datetime2} +%\begin{document} +%\today +%\end{document} +%\end{verbatim} +% +% \paragraph{Variant 3:} +% When using \sty{polyglossia}, you should request the desired language module +% by passing one of the previously mentioned options to the \sty{datetime2} +% package: +%\begin{verbatim} +%\documentclass{article} +%\usepackage{polyglossia} +%\setmainlanguage{serbian} +%\usepackage[serbian]{datetime2} +%\begin{document} +%\today +%\end{document} +%\end{verbatim} +% +%\changes{2.0}{2019-11-07}{% +% Added regions and documented their use. +%} +% \subsection{Regions and scripts}\label{sub:regions} +% +% Serbian language is a rare example of synchronic digraphia --- a situation +% where all literate members of a society use two interchangeable writing +% systems (Cyrillic and Latin). +% This is true in all regions Serbian is spoken in (Serbia, Bosnia and +% Herzegovina, Montenegro). +% This is why every region has a Cyrillic and Latin variant, as well as the +% regionless styles ("serbian" and "serbianc"). +% +% The only other difference between the regions is the default value of +% \hyperref[sub:pronu]{\opt{pronunciation}}, which is Ekavian by default for +% "serbian", "serbianc", "sr-*-RS" and Ijekavian for the rest. +% +% The full list of regions (and regionless styles, on top) is as follows: +%\begin{multicols}{2} +%\begin{verbatim} +%serbian +%sr-Latn +%sr-Latn-RS +%sr-Latn-ME +%sr-Latn-BA +%serbianc +%sr-Cyrl +%sr-Cyrl-RS +%sr-Cyrl-ME +%sr-Cyrl-BA +%\end{verbatim} +%\end{multicols} +% +% +% \subsection{Settings (Serbian-related)} +%\changes{2.0}{2019-11-07}{% +% Added documentation for new settings. +%} +% +% These settings can be changed using \sty{\\DTMlangsetup}. +% Here's an example showing how to set both multiple--choice and boolean +% settings. +%\begin{verbatim} +% \DTMlangsetup[serbian]{pronunciation=ijekavian, monthi} +%\end{verbatim} +% +% +% \subsubsectionopt{pronunciation}\label{sub:pronu} +%\changes{2.0}{2019-11-07}{% +% Added a way to switch between Ekavian and Ijekavian pronunciation. +%} +% May take values "ekavian" and "ijekavian", which denote the two most +% frequently used pronunciations in Serbian language. +% The only difference is in the way weekdays are written. +% +% The default value is Ekavian by default for "serbian", "serbianc", "sr-*-RS" +% and Ijekavian for the rest of the regions. +% +% \smallskip +% ponedeljak, 4. novembar 2019. \hfill \emph{Ekavian pronunciation} \\ +% ponedjeljak, 4. novembar 2019. \hfill \emph{Ijekavian pronunciation} +% +% +% \subsubsectionopt{monthi} +%\changes{2.0}{2019-11-07}{% +% Added a way to switch June, July alternate spellings. +%} +% This is a boolean key. +% If "false" (the default), the months June and July are spelled as \emph{Jun} +% and \emph{Jul}. +% If "true", the months June and July are spelled as \emph{Juni} and +% \emph{Juli}. +% +% \smallskip +% 15. juni 1389. \hfill "monthi=true" \\ +% 15. jun 1389. \hfill "monthi=false" +% +% \subsubsectionopt{leadingzero}\label{sub:leadingzero} +%\changes{2.0}{2019-11-07}{% +% Added a switch for toggling leading zeroes in day and month ordinals. +%} +% This is a boolean key. +% If "false" (the default), there is no leading zero for hours, days or months. +% If "true", there is. +% +% \smallskip +% уторак, 2. 4. 2019. 8.03 CET \hfill "leadingzero=false" \\ +% уторак, 02. 04. 2019. 08.03 CET \hfill "leadingzero=true" +% +% \subsubsectionopt{monthord} +%\changes{2.0}{2019-11-07}{% +% Added a switch between multiple numeric month ordinal formats used in +% Serbian. +%} +% This key defines the way the month ordinal is written in Serbian "*-numeric" +% formats. +% It takes values "arabic" (the default), "roman" and "romanlsc". +% The "arabic" setting results in an arabic numeral (subject to +% \nameref{sub:leadingzero}) followed by a colon. +% The "roman" setting results in an uppercase Roman numeral without a colon +% suffix. +% The "romansc" setting results in a lowercase small caps Roman numeral without +% a colon suffix (this looks better than regular uppercase when usign old style +% figures). +% +% \smallskip +% уторак, 2. 4. 2019. 8.03 CET \hfill "monthord=arabic" \\ +% \liningnums{уторак, 2. IV 2019. 8.03 CET} \hfill "monthord=roman" with +% "\liningnums" \\ +% \oldstylenums{уторак, 02. \textsc{iv} 2019. 08.03 CET} \hfill +% "monthord=romanlsc" with "\oldstylenums" +% +% \subsection{Other features and settings} +% +% \subsubsection{Showing the weekday} +%\changes{2.0}{2019-11-07}{% +% Added weekday names. +%} +% All language modules shipped with \sty{datetime2-serbian} support showing the +% weekday. +% To enable this feature, pass the \opt{showdow} option to the \sty{datetime2} +% package. +% +% \subsubsection{Generic customization of styles} +% There are a number of settings provided that can be used in "\DTMlangsetup" +% to modify the date-time style. +% These should be present in all "datetime2-*" packages and are present in +% all Serbian regionless and regional styles +% +% These are: +% \begin{optdescription} +% \itemopt{dowdaysep}% +% The separator between the day of week name and the day of month number. +% +% \itemopt{daymonthsep}% +% The separator between the day and the month name. +% +% \itemopt{monthyearsep}% +% The separator between the month name and year. +% +% \itemopt{datesep}% +% The separator between the date numbers in the numeric styles. +% +% \itemopt{timesep}% +% The separator between hours, minutes and seconds. +% +% \itemopt{datetimesep}% +% The separator between the date and time for the full date-time format. +% +% \itemopt{timezonesep}% +% The separator between the time and zone for the full date-time format. +% +% \itemopt{mapzone}% +% This is a boolean key. If true, the time zone mappings are applied. +% +% \itemopt{showdayofmonth}% +% A boolean key that determines whether or not to show the day of the month. +% +% \itemopt{showyear}% +% A boolean key that determines whether or not to show the year. +%\end{optdescription} +% +% Although the keys listed here are \emph{defined} for all variant styles, it +% depends on \sty{datetime2}'s setup and the requested styles whether they're +% \emph{used}. \\ +% For more information about the "\DTMlangsetup" command see the documentation +% of the main \sty{datetime2} package. % -%Currently there is only a regionless style. +% +% \subsection{License} +% This material is subject to the \LaTeX\ Project Public License, Version 1.3c or later. \\ +% See the copyright headers of the single files for further details. % %\StopEventually{% -%\clearpage -%\phantomsection -%\addcontentsline{toc}{section}{Change History}% -%\PrintChanges -%\addcontentsline{toc}{section}{\indexname}% -%\PrintIndex} +% \clearpage +% \section*{Acronyms} +% \addcontentsline{toc}{section}{Acronyms}% +% \begin{acronym}[asciim] +% \acro{ascii}{American Standard Code for Information +% Interchange\acroextra{, legacy 7-bit text encoding used on American +% computers since the 1960s. +% It fails to encode non-English characters. +% The mainstream encoding used when \hologo{TeX} was concieved. +% }} +% \acro{utf-8}{Unicode Transformation Format -- 8-bit\acroextra{, +% modern variable width character encoding that's backward-compatible with +% \acs*{ascii} for all \acs*{ascii} characters, yet provides full coverage +% for almost every spoken language.}} +% \acro{licr}{\LaTeX{} Internal Character Representation\acroextra{, a set +% of macros that help define non-\acs*{ascii} characters for typesetting in +% \LaTeX{} even in engines that only support \acs*{ascii}.}} +% \end{acronym} +% \phantomsection +% \addcontentsline{toc}{section}{Change History}% +% \PrintChanges +% \addcontentsline{toc}{section}{\indexname}% +% \PrintIndex +%} +% +%\newgeometry{left=5cm,right=2.75cm,top=3.25cm,bottom=3cm} +% %\section{The Code} +% %\iffalse % \begin{macrocode} -%<*datetime2-serbian-utf8.ldf> +%<*datetime2-serbian-base.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. +%\subsection{Base package localization strings} +% +% This file contains the code common to all the Serbian regional +% variations. +% +% The localization strings are later imported with the appropriate encoding. +% %\changes{1.0}{2015-03-31}{Initial release} -% Identify module +%\changes{2.0}{2019-11-07}{% +% Separated the base package from the regionless style. +% The base package now only declares common localization strings and includes +% adequately encoded localization strings from their respective packages. +%} +% % \begin{macrocode} -\ProvidesDateTimeModule{serbian-utf8}[2019/09/14 v1.0] +\ProvidesDateTimeModule{serbian-base}[2019/11/07 v2.0] % \end{macrocode} -%\begin{macro}{\DTMserbianordinal} +% +% +%\begin{macro}{\DTMserbianordinalROMAN} +% Uppercase Roman numerals. % \begin{macrocode} -\newcommand*{\DTMserbianordinal}[1]{% - \number#1.% +\newcommand*{\DTMserbianordinalROMAN}[1]{% + \ifcase#1 + \or% + I% + \or% + II% + \or% + III% + \or% + IV% + \or% + V% + \or% + VI% + \or% + VII% + \or% + VIII% + \or% + IX% + \or% + X% + \or% + XI% + \or% + XII% + \fi } % \end{macrocode} %\end{macro} % -%\begin{macro}{\DTMserbiancyrmonthname} -% Serbian month names. (Cyrillic alphabet.) +% +%\begin{macro}{\DTMserbianordinalroman} +% Lowercase Roman numerals. % \begin{macrocode} -\newcommand*{\DTMserbiancyrmonthname}[1]{% +\newcommand*{\DTMserbianordinalroman}[1]{% \ifcase#1 - \or - јануар% - \or - фебруар% - \or - март% - \or - април% - \or - мај% - \or - јун% - \or - јул% - \or - август% - \or - септембар% - \or - октобар% - \or - новембар% - \or - децембар% + \or% + i% + \or% + ii% + \or% + iii% + \or% + iv% + \or% + v% + \or% + vi% + \or% + vii% + \or% + viii% + \or% + ix% + \or% + x% + \or% + xi% + \or% + xii% \fi } % \end{macrocode} %\end{macro} % -%\begin{macro}{\DTMserbiancyrMonthname} -% As above but capitalize. +% +% We will now include the appropriate localization data. +% +% Packages \sty{ifxetex} and \sty{ifluatex} provide a way to determine if the +% currently used \LaTeX{} engine is \hologo{XeLaTeX} or \hologo{LuaLaTeX}, +% respectively. +% \begin{macrocode} +\RequirePackage{ifxetex,ifluatex} +% \end{macrocode} +% Load \texttt{serbian-utf8} if either \hologo{XeLaTeX} or \hologo{LuaLaTeX} +% are used, since these engines natively support utf-8. +% Otherwise load \texttt{serbian-ascii}, which provides support for legacy +% engines that only support \ac{licr}. +% \begin{macrocode} +\ifxetex% + \RequireDateTimeModule{serbian-base-utf8} +\else + \ifluatex% + \RequireDateTimeModule{serbian-base-utf8} + \else + \RequireDateTimeModule{serbian-base-ascii} + \fi +\fi +% \end{macrocode} +% +%\iffalse % \begin{macrocode} -\newcommand*{\DTMserbiancyrMonthname}[1]{% +%</datetime2-serbian-base.ldf> +% \end{macrocode} +%\fi +% +% +% +%\iffalse +% \begin{macrocode} +%<*datetime2-serbian-base-utf8.ldf> +% \end{macrocode} +%\fi +%\subsection{Base Serbian \acs{utf-8} localization strings} +% This file contains the localization strings necessary for proper date +% formatting in \acs{utf-8} format. +% This file is loaded if \hologo{XeLaTeX} or \hologo{LuaLaTeX} are used. +% +%\changes{1.0}{2015-03-31}{Initial release} +%\changes{2.0}{2019-11-07}{% +% All localization strings are now declared within the Python build script +% and both the \acs{utf-8} and \acs{licr} encoded strings are generated from +% said files on build, before uploading to CTAN. +%} +% \begin{macrocode} +\ProvidesDateTimeModule{serbian-base-utf8}[2019/11/07 v2.0] +% \end{macrocode} +% +%\subsubsection{Latin month names} +% +%\begin{macro}{\DTMserbianlatnoimonthname} +% Serbian month names, Latin alphabet, no \sty{i} suffix for June and July, +% non-capitalized. +% \begin{macrocode} +\newcommand*{\DTMserbianlatnoimonthname}[1]{% \ifcase#1 - \or - Јануар% - \or - Фебруар% - \or - Март% - \or - Април% - \or - Мај% - \or - Јун% - \or - Јул% - \or - Август% - \or - Септембар% - \or - Октобар% - \or - Новембар% - \or - Децембар% + \or% + januar% + \or% + februar% + \or% + mart% + \or% + april% + \or% + maj% + \or% + jun% + \or% + jul% + \or% + avgust% + \or% + septembar% + \or% + oktobar% + \or% + novembar% + \or% + decembar% \fi } % \end{macrocode} %\end{macro} % -%\begin{macro}{\DTMserbianlatinmonthname} -% Serbian month names. (Latin alphabet.) +%\begin{macro}{\DTMserbianlatnoiMonthname} +% Serbian month names, Latin alphabet, no \sty{i} suffix for June and July, +% capitalized. % \begin{macrocode} -\newcommand*{\DTMserbianlatinmonthname}[1]{% +\newcommand*{\DTMserbianlatnoiMonthname}[1]{% \ifcase#1 - \or - januar% - \or - februar% - \or - mart% - \or - april% - \or - maj% - \or - juni% - \or - juli% - \or - avgust% - \or - septembar% - \or - oktobar% - \or - novembar% - \or - decembar% + \or% + Januar% + \or% + Februar% + \or% + Mart% + \or% + April% + \or% + Maj% + \or% + Jun% + \or% + Jul% + \or% + Avgust% + \or% + Septembar% + \or% + Oktobar% + \or% + Novembar% + \or% + Decembar% \fi } % \end{macrocode} %\end{macro} % -%\begin{macro}{\DTMserbianlatinMonthname} -% As above but capitalize. +%\begin{macro}{\DTMserbianlatimonthname} +% Serbian month names, Latin alphabet, \sty{i} suffix for June and July, +% non-capitalized. % \begin{macrocode} -\newcommand*{\DTMserbianlatinMonthname}[1]{% - \ifcase#1 - \or - Januar% - \or - Februar% - \or - Mart% - \or - April% - \or - Maj% - \or - Juni% - \or +\newcommand*{\DTMserbianlatimonthname}[1]{% + \ifnum#1=6% + juni% + \else\ifnum\#1=7% + juli% + \else + \DTMserbianlatnoimonthname% + \fi\fi +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMserbianlatiMonthname} +% Serbian month names, Latin alphabet, \sty{i} suffix for June and July, +% capitalized. +% \begin{macrocode} +\newcommand*{\DTMserbianlatiMonthname}[1]{% + \ifnum#1=6% + Juni% + \else\ifnum\#1=7% Juli% - \or - Avgust% - \or - Septembar% - \or - Oktobar% - \or - Novembar% - \or - Decembar% + \else + \DTMserbianlatnoimonthname% + \fi\fi +} +% \end{macrocode} +%\end{macro} +% +%\subsubsection{Latin days of week, Ekavian pronunciation} +% +%\begin{macro}{\DTMserbianlatekweekdayname} +% Serbian weekday names, Latin alphabet, Ekavian pronunciation, +% non-capitalized +% \begin{macrocode} +\newcommand*{\DTMserbianlatekweekdayname}[1]{% + \ifcase#1 + ponedeljak% + \or% + utorak% + \or% + sreda% + \or% + četvrtak% + \or% + petak% + \or% + subota% + \or% + nedelja% + \fi% +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMserbianlatekWeekdayname} +% Serbian weekday names, Latin alphabet, Ekavian pronunciation, capitalized +% \begin{macrocode} +\newcommand*{\DTMserbianlatekWeekdayname}[1]{% + \ifcase#1 + Ponedeljak% + \or% + Utorak% + \or% + Sreda% + \or% + Četvrtak% + \or% + Petak% + \or% + Subota% + \or% + Nedelja% + \fi% +} +% \end{macrocode} +%\end{macro} +% +%\subsubsection{Latin days of week, Ijekavian pronunciation} +% +% +%\begin{macro}{\DTMserbianlatijweekdayname} +% Serbian weekday names, Latin alphabet, Ijekavian pronunciation, +% non-capitalized +% \begin{macrocode} +\newcommand*{\DTMserbianlatijweekdayname}[1]{% + \ifcase#1 + ponedjeljak% + \or% + utorak% + \or% + srijeda% + \or% + četvrtak% + \or% + petak% + \or% + subota% + \or% + nedjelja% + \fi% +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMserbianlatijWeekdayname} +% Serbian weekday names, Latin alphabet, Ijekavian pronunciation, +% capitalized +% \begin{macrocode} +\newcommand*{\DTMserbianlatijWeekdayname}[1]{% + \ifcase#1 + Ponedjeljak% + \or% + Utorak% + \or% + Srijeda% + \or% + Četvrtak% + \or% + Petak% + \or% + Subota% + \or% + Nedjelja% + \fi% +} +% \end{macrocode} +%\end{macro} +% +% +%\subsubsection{Cyrillic month names} +% +%\begin{macro}{\DTMserbiancyrnoimonthname} +% Serbian month names, Cyrillic alphabet, no \sty{i} suffix for June and July, +% non-capitalized. +% \begin{macrocode} +\newcommand*{\DTMserbiancyrnoimonthname}[1]{% + \ifcase#1 + \or% + јануар% + \or% + фебруар% + \or% + март% + \or% + април% + \or% + мај% + \or% + јун% + \or% + јул% + \or% + август% + \or% + септембар% + \or% + октобар% + \or% + новембар% + \or% + децембар% \fi } % \end{macrocode} %\end{macro} % -%If abbreviated dates are supported, short month names should be -%likewise provided. +%\begin{macro}{\DTMserbiancyrnoiMonthname} +% Serbian month names, Cyrillic alphabet, no \sty{i} suffix for June and July, +% capitalized. +% \begin{macrocode} +\newcommand*{\DTMserbiancyrnoiMonthname}[1]{% + \ifcase#1 + \or% + Јануар% + \or% + Фебруар% + \or% + Март% + \or% + Април% + \or% + Мај% + \or% + Јун% + \or% + Јул% + \or% + Август% + \or% + Септембар% + \or% + Октобар% + \or% + Новембар% + \or% + Децембар% + \fi +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMserbiancyrimonthname} +% Serbian month names, Cyrillic alphabet, \sty{i} suffix for June and July, +% non-capitalized. +% \begin{macrocode} +\newcommand*{\DTMserbiancyrimonthname}[1]{% + \ifnum#1=6% + јуни% + \else\ifnum\#1=7% + јули% + \else + \DTMserbiancyrnoimonthname% + \fi\fi +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMserbiancyriMonthname} +% Serbian month names, Cyrillic alphabet, \sty{i} suffix for June and July, +% capitalized. +% \begin{macrocode} +\newcommand*{\DTMserbiancyriMonthname}[1]{% + \ifnum#1=6% + Јуни% + \else\ifnum\#1=7% + Јули% + \else + \DTMserbiancyrnoimonthname% + \fi\fi +} +% \end{macrocode} +%\end{macro} +% +%\subsubsection{Cyrillic days of week, Ekavian pronunciation} +% +%\begin{macro}{\DTMserbiancyrekweekdayname} +% Serbian weekday names, Cyrillic alphabet, Ekavian pronunciation, +% non-capitalized +% \begin{macrocode} +\newcommand*{\DTMserbiancyrekweekdayname}[1]{% + \ifcase#1 + понедељак% + \or% + уторак% + \or% + среда% + \or% + четвртак% + \or% + петак% + \or% + субота% + \or% + недеља% + \fi% +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMserbiancyrekWeekdayname} +% Serbian weekday names, Cyrillic alphabet, Ekavian pronunciation, capitalized +% \begin{macrocode} +\newcommand*{\DTMserbiancyrekWeekdayname}[1]{% + \ifcase#1 + Понедељак% + \or% + Уторак% + \or% + Среда% + \or% + Четвртак% + \or% + Петак% + \or% + Субота% + \or% + Недеља% + \fi% +} +% \end{macrocode} +%\end{macro} +% +%\subsubsection{Cyrillic days of week, Ijekavian pronunciation} +% +% +%\begin{macro}{\DTMserbiancyrijweekdayname} +% Serbian weekday names, Cyrillic alphabet, Ijekavian pronunciation, +% non-capitalized +% \begin{macrocode} +\newcommand*{\DTMserbiancyrijweekdayname}[1]{% + \ifcase#1 + понедјељак% + \or% + уторак% + \or% + сриједа% + \or% + четвртак% + \or% + петак% + \or% + субота% + \or% + недјеља% + \fi% +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMserbiancyrijWeekdayname} +% Serbian weekday names, Cyrillic alphabet, Ijekavian pronunciation, +% capitalized +% \begin{macrocode} +\newcommand*{\DTMserbiancyrijWeekdayname}[1]{% + \ifcase#1 + Понедјељак% + \or% + Уторак% + \or% + Сриједа% + \or% + Четвртак% + \or% + Петак% + \or% + Субота% + \or% + Недјеља% + \fi% +} +% \end{macrocode} +%\end{macro} +% +% % %\iffalse % \begin{macrocode} -%</datetime2-serbian-utf8.ldf> +%</datetime2-serbian-base-utf8.ldf> % \end{macrocode} %\fi +% %\iffalse % \begin{macrocode} -%<*datetime2-serbian-ascii.ldf> +%<*datetime2-serbian-base-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-serbian-utf8.ldf} file as the non-ASCII -%characters are made active in that situation and would need -%protecting against expansion. +%\subsection{Base Serbian \acs{ascii} --- \acs{licr} localization strings} +% This file contains the localization strings necessary for proper date +% formatting in \ac{licr} format, which is \acs{ascii}-compatible. +% It provides support for legacy \LaTeX{} engines that only support this kind +% of format and encoding. +% +% This part of the file is generated from the \acs{utf-8} version with the +% help of a tool I wrote, since writing pure \ac{licr} by hand would be +% quite insane. +% %\changes{1.0}{2015-03-31}{Initial release} -% Identify module +%\changes{2.0}{2019-11-07}{% +% All localization strings are now declared within the Python build script +% and both the \acs{utf-8} and \acs{licr} encoded strings are generated from +% said files on build, before uploading to CTAN. +%} +% % \begin{macrocode} -\ProvidesDateTimeModule{serbian-ascii}[2019/09/14 v1.0] +\ProvidesDateTimeModule{serbian-base-ascii}[2019/11/07 v2.0] % \end{macrocode} % -%If abbreviated dates are supported, short month names should be -%likewise provided. -%\begin{macro}{\DTMserbianordinal} +%%\subsubsection{Latin month names} +% +%\begin{macro}{\DTMserbianlatnoimonthname} +% Serbian month names, Latin alphabet, no \sty{i} suffix for June and July, +% non-capitalized. % \begin{macrocode} -\newcommand*{\DTMserbianordinal}[1]{% - \number#1.% +\newcommand*{\DTMserbianlatnoimonthname}[1]{% + \ifcase#1 + \or% + januar% + \or% + februar% + \or% + mart% + \or% + april% + \or% + maj% + \or% + jun% + \or% + jul% + \or% + avgust% + \or% + septembar% + \or% + oktobar% + \or% + novembar% + \or% + decembar% + \fi } % \end{macrocode} %\end{macro} % -%\begin{macro}{\DTMserbiancyrmonthname} -% Serbian month names. (Cyrillic alphabet.) I'm not sure if these -% are correct. +%\begin{macro}{\DTMserbianlatnoiMonthname} +% Serbian month names, Latin alphabet, no \sty{i} suffix for June and July, +% capitalized. % \begin{macrocode} -\newcommand*{\DTMserbiancyrmonthname}[1]{% +\newcommand*{\DTMserbianlatnoiMonthname}[1]{% \ifcase#1 - \or - \protect\cyrje\protect\cyra\protect\cyrn\protect\cyru\protect\cyra - \protect\cyrr - \or - \protect\cyrf\protect\cyrie\protect\cyrb\protect\cyrr\protect\cyru - \protect\cyrr - \or - \protect\cyrm\protect\cyra\protect\cyrr\protect\cyrt - \or - \protect\cyra\protect\cyrp\protect\cyrr\protect\cyri\protect\cyrl - \or - \protect\cyrm\protect\cyra\protect\cyrje - \or - \protect\cyrje\protect\cyru\protect\cyrn - \or - \protect\cyrje\protect\cyru\protect\cyrl - \or - \protect\cyra\protect\cyrv\protect\cyrg\protect\cyru\protect\cyrs - \protect\cyrt - \or - \protect\cyrs\protect\cyre\protect\cyrp\protect\cyrt\protect\cyre - \protect\cyrm\protect\cyrb\protect\cyra\protect\cyrr - \or - \protect\cyro\protect\cyrk\protect\cyrt\protect\cyro\protect\cyrb - \protect\cyra\protect\cyrr - \or - \protect\cyrn\protect\cyro\protect\cyrv\protect\cyre\protect\cyrm - \protect\cyrb\protect\cyra\protect\cyrr - \or - \protect\cyrd\protect\cyre\protect\cyrc\protect\cyre\protect\cyrm - \protect\cyrb\protect\cyra\protect\cyrr + \or% + Januar% + \or% + Februar% + \or% + Mart% + \or% + April% + \or% + Maj% + \or% + Jun% + \or% + Jul% + \or% + Avgust% + \or% + Septembar% + \or% + Oktobar% + \or% + Novembar% + \or% + Decembar% \fi } % \end{macrocode} %\end{macro} % -%\begin{macro}{\DTMserbiancyrMonthname} -% As above but capitalize. +%\begin{macro}{\DTMserbianlatimonthname} +% Serbian month names, Latin alphabet, \sty{i} suffix for June and July, +% non-capitalized. +% \begin{macrocode} +\newcommand*{\DTMserbianlatimonthname}[1]{% + \ifnum#1=6% + juni% + \else\ifnum\#1=7% + juli% + \else + \DTMserbianlatnoimonthname% + \fi\fi +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMserbianlatiMonthname} +% Serbian month names, Latin alphabet, \sty{i} suffix for June and July, +% capitalized. +% \begin{macrocode} +\newcommand*{\DTMserbianlatiMonthname}[1]{% + \ifnum#1=6% + Juni% + \else\ifnum\#1=7% + Juli% + \else + \DTMserbianlatnoimonthname% + \fi\fi +} +% \end{macrocode} +%\end{macro} +% +%\subsubsection{Latin days of week, Ekavian pronunciation} +% +%\begin{macro}{\DTMserbianlatekweekdayname} +% Serbian weekday names, Latin alphabet, Ekavian pronunciation, +% non-capitalized % \begin{macrocode} -\newcommand*{\DTMserbiancyrMonthname}[1]{% +\newcommand*{\DTMserbianlatekweekdayname}[1]{% \ifcase#1 - \or - \protect\CYRJE\protect\cyra\protect\cyrn\protect\cyru\protect\cyra - \protect\cyrr - \or - \protect\CYRF\protect\cyrie\protect\cyrb\protect\cyrr\protect\cyru - \protect\cyrr - \or - \protect\CYRM\protect\cyra\protect\cyrr\protect\cyrt - \or - \protect\CYRA\protect\cyrp\protect\cyrr\protect\cyri\protect\cyrl - \or - \protect\CYRM\protect\cyra\protect\cyrje - \or - \protect\CYRJE\protect\cyru\protect\cyrn - \or - \protect\CYRJE\protect\cyru\protect\cyrl - \or - \protect\CYRA\protect\cyrv\protect\cyrg\protect\cyru\protect\cyrs - \protect\cyrt - \or - \protect\CYRS\protect\cyre\protect\cyrp\protect\cyrt\protect\cyre - \protect\cyrm\protect\cyrb\protect\cyra\protect\cyrr - \or - \protect\CYRO\protect\cyrk\protect\cyrt\protect\cyro\protect\cyrb - \protect\cyra\protect\cyrr - \or - \protect\CYRN\protect\cyro\protect\cyrv\protect\cyre\protect\cyrm - \protect\cyrb\protect\cyra\protect\cyrr - \or - \protect\CYRD\protect\cyre\protect\cyrc\protect\cyre\protect\cyrm - \protect\cyrb\protect\cyra\protect\cyrr - \fi + ponedeljak% + \or% + utorak% + \or% + sreda% + \or% + \v cetvrtak% + \or% + petak% + \or% + subota% + \or% + nedelja% + \fi% } % \end{macrocode} %\end{macro} % -%\begin{macro}{\DTMserbianlatinmonthname} -% Serbian month names. (Latin alphabet.) +%\begin{macro}{\DTMserbianlatekWeekdayname} +% Serbian weekday names, Latin alphabet, Ekavian pronunciation, capitalized % \begin{macrocode} -\newcommand*{\DTMserbianlatinmonthname}[1]{% +\newcommand*{\DTMserbianlatekWeekdayname}[1]{% \ifcase#1 - \or - januar% - \or - februar% - \or - mart% - \or - april% - \or - maj% - \or - juni% - \or - juli% - \or - avgust% - \or - septembar% - \or - oktobar% - \or - novembar% - \or - decembar% + Ponedeljak% + \or% + Utorak% + \or% + Sreda% + \or% + \v Cetvrtak% + \or% + Petak% + \or% + Subota% + \or% + Nedelja% + \fi% +} +% \end{macrocode} +%\end{macro} +% +%\subsubsection{Latin days of week, Ijekavian pronunciation} +% +% +%\begin{macro}{\DTMserbianlatijweekdayname} +% Serbian weekday names, Latin alphabet, Ijekavian pronunciation, +% non-capitalized +% \begin{macrocode} +\newcommand*{\DTMserbianlatijweekdayname}[1]{% + \ifcase#1 + ponedjeljak% + \or% + utorak% + \or% + srijeda% + \or% + \v cetvrtak% + \or% + petak% + \or% + subota% + \or% + nedjelja% + \fi% +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMserbianlatijWeekdayname} +% Serbian weekday names, Latin alphabet, Ijekavian pronunciation, +% capitalized +% \begin{macrocode} +\newcommand*{\DTMserbianlatijWeekdayname}[1]{% + \ifcase#1 + Ponedjeljak% + \or% + Utorak% + \or% + Srijeda% + \or% + \v Cetvrtak% + \or% + Petak% + \or% + Subota% + \or% + Nedjelja% + \fi% +} +% \end{macrocode} +%\end{macro} +% +% +%\subsubsection{Cyrillic month names} +% +%\begin{macro}{\DTMserbiancyrnoimonthname} +% Serbian month names, Cyrillic alphabet, no \sty{i} suffix for June and July, +% non-capitalized. +% \begin{macrocode} +\newcommand*{\DTMserbiancyrnoimonthname}[1]{% + \ifcase#1 + \or% + \cyrje\cyra\cyrn\cyru\cyra\cyrr% + \or% + \cyrf\cyre\cyrb\cyrr\cyru\cyra\cyrr% + \or% + \cyrm\cyra\cyrr\cyrt% + \or% + \cyra\cyrp\cyrr\cyri\cyrl% + \or% + \cyrm\cyra\cyrje% + \or% + \cyrje\cyru\cyrn% + \or% + \cyrje\cyru\cyrl% + \or% + \cyra\cyrv\cyrg\cyru\cyrs\cyrt% + \or% + \cyrs\cyre\cyrp\cyrt\cyre\cyrm\cyrb\cyra\cyrr% + \or% + \cyro\cyrk\cyrt\cyro\cyrb\cyra\cyrr% + \or% + \cyrn\cyro\cyrv\cyre\cyrm\cyrb\cyra\cyrr% + \or% + \cyrd\cyre\cyrc\cyre\cyrm\cyrb\cyra\cyrr% \fi } % \end{macrocode} %\end{macro} % -%\begin{macro}{\DTMserbianlatinMonthname} -% As above but capitalize. +%\begin{macro}{\DTMserbiancyrnoiMonthname} +% Serbian month names, Cyrillic alphabet, no \sty{i} suffix for June and July, +% capitalized. % \begin{macrocode} -\newcommand*{\DTMserbianlatinMonthname}[1]{% +\newcommand*{\DTMserbiancyrnoiMonthname}[1]{% \ifcase#1 - \or - Januar% - \or - Februar% - \or - Mart% - \or - April% - \or - Maj% - \or - Juni% - \or - Juli% - \or - Avgust% - \or - Septembar% - \or - Oktobar% - \or - Novembar% - \or - Decembar% + \or% + \CYRJE\cyra\cyrn\cyru\cyra\cyrr% + \or% + \CYRF\cyre\cyrb\cyrr\cyru\cyra\cyrr% + \or% + \CYRM\cyra\cyrr\cyrt% + \or% + \CYRA\cyrp\cyrr\cyri\cyrl% + \or% + \CYRM\cyra\cyrje% + \or% + \CYRJE\cyru\cyrn% + \or% + \CYRJE\cyru\cyrl% + \or% + \CYRA\cyrv\cyrg\cyru\cyrs\cyrt% + \or% + \CYRS\cyre\cyrp\cyrt\cyre\cyrm\cyrb\cyra\cyrr% + \or% + \CYRO\cyrk\cyrt\cyro\cyrb\cyra\cyrr% + \or% + \CYRN\cyro\cyrv\cyre\cyrm\cyrb\cyra\cyrr% + \or% + \CYRD\cyre\cyrc\cyre\cyrm\cyrb\cyra\cyrr% \fi } % \end{macrocode} %\end{macro} % +%\begin{macro}{\DTMserbiancyrimonthname} +% Serbian month names, Cyrillic alphabet, \sty{i} suffix for June and July, +% non-capitalized. +% \begin{macrocode} +\newcommand*{\DTMserbiancyrimonthname}[1]{% + \ifnum#1=6% + \cyrje\cyru\cyrn\cyri% + \else\ifnum\#1=7% + \cyrje\cyru\cyrl\cyri% + \else + \DTMserbiancyrnoimonthname% + \fi\fi +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMserbiancyriMonthname} +% Serbian month names, Cyrillic alphabet, \sty{i} suffix for June and July, +% capitalized. +% \begin{macrocode} +\newcommand*{\DTMserbiancyriMonthname}[1]{% + \ifnum#1=6% + \CYRJE\cyru\cyrn\cyri% + \else\ifnum\#1=7% + \CYRJE\cyru\cyrl\cyri% + \else + \DTMserbiancyrnoimonthname% + \fi\fi +} +% \end{macrocode} +%\end{macro} +% +%\subsubsection{Cyrillic days of week, Ekavian pronunciation} +% +%\begin{macro}{\DTMserbiancyrekweekdayname} +% Serbian weekday names, Cyrillic alphabet, Ekavian pronunciation, +% non-capitalized +% \begin{macrocode} +\newcommand*{\DTMserbiancyrekweekdayname}[1]{% + \ifcase#1 + \cyrp\cyro\cyrn\cyre\cyrd\cyre\cyrlje\cyra\cyrk% + \or% + \cyru\cyrt\cyro\cyrr\cyra\cyrk% + \or% + \cyrs\cyrr\cyre\cyrd\cyra% + \or% + \cyrch\cyre\cyrt\cyrv\cyrr\cyrt\cyra\cyrk% + \or% + \cyrp\cyre\cyrt\cyra\cyrk% + \or% + \cyrs\cyru\cyrb\cyro\cyrt\cyra% + \or% + \cyrn\cyre\cyrd\cyre\cyrlje\cyra% + \fi% +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMserbiancyrekWeekdayname} +% Serbian weekday names, Cyrillic alphabet, Ekavian pronunciation, capitalized +% \begin{macrocode} +\newcommand*{\DTMserbiancyrekWeekdayname}[1]{% + \ifcase#1 + \CYRP\cyro\cyrn\cyre\cyrd\cyre\cyrlje\cyra\cyrk% + \or% + \CYRU\cyrt\cyro\cyrr\cyra\cyrk% + \or% + \CYRS\cyrr\cyre\cyrd\cyra% + \or% + \CYRCH\cyre\cyrt\cyrv\cyrr\cyrt\cyra\cyrk% + \or% + \CYRP\cyre\cyrt\cyra\cyrk% + \or% + \CYRS\cyru\cyrb\cyro\cyrt\cyra% + \or% + \CYRN\cyre\cyrd\cyre\cyrlje\cyra% + \fi% +} +% \end{macrocode} +%\end{macro} +% +%\subsubsection{Cyrillic days of week, Ijekavian pronunciation} +% +% +%\begin{macro}{\DTMserbiancyrijweekdayname} +% Serbian weekday names, Cyrillic alphabet, Ijekavian pronunciation, +% non-capitalized +% \begin{macrocode} +\newcommand*{\DTMserbiancyrijweekdayname}[1]{% + \ifcase#1 + \cyrp\cyro\cyrn\cyre\cyrd\cyrje\cyre\cyrlje\cyra\cyrk% + \or% + \cyru\cyrt\cyro\cyrr\cyra\cyrk% + \or% + \cyrs\cyrr\cyri\cyrje\cyre\cyrd\cyra% + \or% + \cyrch\cyre\cyrt\cyrv\cyrr\cyrt\cyra\cyrk% + \or% + \cyrp\cyre\cyrt\cyra\cyrk% + \or% + \cyrs\cyru\cyrb\cyro\cyrt\cyra% + \or% + \cyrn\cyre\cyrd\cyrje\cyre\cyrlje\cyra% + \fi% +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMserbiancyrijWeekdayname} +% Serbian weekday names, Cyrillic alphabet, Ijekavian pronunciation, +% capitalized +% \begin{macrocode} +\newcommand*{\DTMserbiancyrijWeekdayname}[1]{% + \ifcase#1 + \CYRP\cyro\cyrn\cyre\cyrd\cyrje\cyre\cyrlje\cyra\cyrk% + \or% + \CYRU\cyrt\cyro\cyrr\cyra\cyrk% + \or% + \CYRS\cyrr\cyri\cyrje\cyre\cyrd\cyra% + \or% + \CYRCH\cyre\cyrt\cyrv\cyrr\cyrt\cyra\cyrk% + \or% + \CYRP\cyre\cyrt\cyra\cyrk% + \or% + \CYRS\cyru\cyrb\cyro\cyrt\cyra% + \or% + \CYRN\cyre\cyrd\cyrje\cyre\cyrlje\cyra% + \fi% +} +% \end{macrocode} +%\end{macro} +% +% +% %\iffalse % \begin{macrocode} -%</datetime2-serbian-ascii.ldf> +%</datetime2-serbian-base-ascii.ldf> % \end{macrocode} %\fi % -%\subsection{Main Serbian Module (\texttt{datetime2-serbian.ldf})} -%\changes{1.0}{2015-03-31}{Initial release} % %\iffalse % \begin{macrocode} @@ -470,44 +1524,48 @@ % \end{macrocode} %\fi % -% Identify Module +%\subsection{Serbian \sty{serbian} Code +% (\texttt{datetime2-serbian.ldf})} +%\changes{1.0}{2015-03-24}{Initial release} +%\changes{2.0}{2019-11-07}{% +% Added regions, all settings made available to regions so all changes can be +% region-specific. +%} % \begin{macrocode} -\ProvidesDateTimeModule{serbian}[2019/09/14 v1.0] +\ProvidesDateTimeModule{serbian}[2019/11/07 v2.0] % \end{macrocode} -% Need to find out if XeTeX or LuaTeX are being used. +%\changes{2.0}{2019-11-07}{% +% All localization strings loaded from base module. +%} +% +% Load base Serbian module. % \begin{macrocode} -\RequirePackage{ifxetex,ifluatex} +\RequireDateTimeModule{serbian-base} % \end{macrocode} -% XeTeX and LuaTeX natively support UTF-8, so load -% \texttt{serbian-utf8} if either of those engines are used -% otherwise load \texttt{serbian-ascii}. +% +%\subsubsection{Defining the \sty{serbian} style} +% +% Allow the user a way of configuring the "serbian" and +% "serbian-numeric" styles by providing macros for various format +% elements. +% +% This doesn't use the package-wide separators such as \cs{dtm@datetimesep} in +% case other date formats are also required. +% +% +%\begin{macro}{\DTMserbiandowdaysep} +% The separator between weekday and day. % \begin{macrocode} -\ifxetex - \RequireDateTimeModule{serbian-utf8} -\else - \ifluatex - \RequireDateTimeModule{serbian-utf8} - \else - \RequireDateTimeModule{serbian-ascii} - \fi -\fi +\newcommand*{\DTMserbiandowdaysep}{,\space} % \end{macrocode} +%\end{macro} % -% Define the \texttt{serbian} 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 "serbian" and -% "serbian-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}{\DTMserbiandaymonthsep} % The separator between the day and month for the text format. % \begin{macrocode} \newcommand*{\DTMserbiandaymonthsep}{% - \DTMtexorpdfstring{\protect~}{\space}% + \DTMtexorpdfstring{\protect~}{\space}% } % \end{macrocode} %\end{macro} @@ -520,16 +1578,16 @@ %\end{macro} % %\begin{macro}{\DTMserbiandatetimesep} -% The separator between the date and time blocks in the full format -% (either text or numeric). +% The separator between the date and time blocks in the full format (either +% text or numeric). % \begin{macrocode} \newcommand*{\DTMserbiandatetimesep}{\space} % \end{macrocode} %\end{macro} % %\begin{macro}{\DTMserbiantimezonesep} -% The separator between the time and zone blocks in the full format -% (either text or numeric). +% The separator between the time and zone blocks in the full format (either +% text or numeric). % \begin{macrocode} \newcommand*{\DTMserbiantimezonesep}{\space} % \end{macrocode} @@ -549,44 +1607,144 @@ % \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. % \begin{macrocode} -\DTMdefkey{serbian}{daymonthsep}{\renewcommand*{\DTMserbiandaymonthsep}{#1}} -\DTMdefkey{serbian}{monthyearsep}{\renewcommand*{\DTMserbianmonthyearsep}{#1}} -\DTMdefkey{serbian}{datetimesep}{\renewcommand*{\DTMserbiandatetimesep}{#1}} -\DTMdefkey{serbian}{timezonesep}{\renewcommand*{\DTMserbiantimezonesep}{#1}} -\DTMdefkey{serbian}{datesep}{\renewcommand*{\DTMserbiandatesep}{#1}} -\DTMdefkey{serbian}{timesep}{\renewcommand*{\DTMserbiantimesep}{#1}} +\DTMdefkey{serbian}{dowdaysep}% + {\renewcommand*{\DTMserbiandowdaysep}{#1}} +\DTMdefkey{serbian}{daymonthsep}% + {\renewcommand*{\DTMserbiandaymonthsep}{#1}} +\DTMdefkey{serbian}{monthyearsep}% + {\renewcommand*{\DTMserbianmonthyearsep}{#1}} +\DTMdefkey{serbian}{datetimesep}% + {\renewcommand*{\DTMserbiandatetimesep}{#1}} +\DTMdefkey{serbian}{timezonesep}% + {\renewcommand*{\DTMserbiantimezonesep}{#1}} +\DTMdefkey{serbian}{datesep}% + {\renewcommand*{\DTMserbiandatesep}{#1}} +\DTMdefkey{serbian}{timesep}% + {\renewcommand*{\DTMserbiantimesep}{#1}} % \end{macrocode} % -%\begin{macro}{\DTMserbianmonthname} -% Provide a way to switch between Latin and Cyrillic month names. +%\subsubsection{Switches and settings} +% +%\changes{2.0}{2019-11-07}{% +% Added weekday names. +%} +%\begin{macro}{\DTMserbianweekdayname} +% Define the weekday name, lowercase. % \begin{macrocode} -\newcommand*{\DTMserbianmonthname}{\DTMserbiancyrmonthname} +\newcommand*{\DTMserbianweekdayname}% +{\DTMserbianlatekweekdayname} % \end{macrocode} %\end{macro} -%\begin{macro}{\DTMserbianMonthname} + +%\begin{macro}{\DTMserbianweekdayname} +% Define the weekday name, capitalized. % \begin{macrocode} -\newcommand*{\DTMserbianMonthname}{\DTMserbiancyrMonthname} +\newcommand*{\DTMserbianWeekdayname}% + {\DTMserbianlatekWeekdayname} % \end{macrocode} %\end{macro} % +% Provide a way to switch between Ekavian and Ijekavian pronunciation. +%\changes{2.0}{2019-11-07}{% +% Added a way to switch between Ekavian and Ijekavian pronunciation. +%} +% % \begin{macrocode} -\DTMdefchoicekey{serbian}{alphabet}[\val\nr]{cyrillic,latin}{% - \ifcase\nr\relax - \renewcommand*{\DTMserbianmonthname}{\DTMserbiancyrmonthname}% - \renewcommand*{\DTMserbianMonthname}{\DTMserbiancyrMonthname}% - \or - \renewcommand*{\DTMserbianmonthname}{\DTMserbianlatinmonthname}% - \renewcommand*{\DTMserbianMonthname}{\DTMserbianlatinMonthname}% - \fi +\DTMdefchoicekey{serbian}% + {pronunciation}[\@dtm@val\@dtm@nr]{ekavian,ijekavian}{% + \ifcase\@dtm@nr\relax + \renewcommand*{\DTMserbianweekdayname}% + {\DTMserbianlatekweekdayname}% + \renewcommand*{\DTMserbianWeekdayname}% + {\DTMserbianlatekWeekdayname}% + \or% + \renewcommand*{\DTMserbianweekdayname}% + {\DTMserbianlatijweekdayname}% + \renewcommand*{\DTMserbianWeekdayname} + {\DTMserbianlatijWeekdayname}% + \fi } % \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.) +%\changes{2.0}{2019-11-07}{% +% Added a way to switch June, July alternate spellings. +%} +% Define a boolean key that can switch between (jun, jul) and (juni, juli) +% month spellings. +% \begin{macrocode} +\DTMdefboolkey{serbian}{monthi}[true]{} +% \end{macrocode} +% The default is without the "i" suffix. +% \begin{macrocode} +\DTMsetbool{serbian}{monthi}{false} +% \end{macrocode} +% +%\changes{2.0}{2019-11-07}{% +% Added a switch for adding leading zeroes in day and month ordinals. +%} +% Define a boolean key that determines if the day and month ordinals should +% have leading zeroes. +% \begin{macrocode} +\DTMdefboolkey{serbian}{leadingzero}[true]{} +% \end{macrocode} +% The default is to omit the leading zero. +% \begin{macrocode} +\DTMsetbool{serbian}{leadingzero}{false} +% \end{macrocode} +% +% +% +%\begin{macro}{\DTMserbiandayordinal} +% Define the day ordinal format to be used by this style. +% \begin{macrocode} + \newcommand*{\DTMserbiandayordinal}[1]{% + \DTMifbool{serbian}{leadingzero}% + {\DTMtwodigits{#1}}% + {\number#1}\DTMserbiandatesep}% +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMserbianyearordinal} +% Define the year ordinal format to be used by this style. +% \begin{macrocode} + \newcommand*{\DTMserbianyearordinal}[1]{% + \number#1\DTMserbiandatesep}% +% \end{macrocode} +%\end{macro} +% +%\changes{2.0}{2019-11-07}{% +% Removed the option to switch between writing systems, since that is +% accomplished by using different regions or regionless styles ("serbian" and +% "serbianc" for example). +%} +% +% Define the month names. +% +%\begin{macro}{\DTMserbiannoimonthname} +% \begin{macrocode} +\newcommand*{\DTMserbiannoimonthname}{\DTMserbianlatnoimonthname} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMserbiannoiMonthname} +% \begin{macrocode} +\newcommand*{\DTMserbiannoiMonthname}{\DTMserbianlatnoiMonthname} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMserbianimonthname} +% \begin{macrocode} +\newcommand*{\DTMserbianimonthname}{\DTMserbianlatimonthname} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMserbianiMonthname} +% \begin{macrocode} +\newcommand*{\DTMserbianiMonthname}{\DTMserbianlatiMonthname} +% \end{macrocode} +%\end{macro} % % Define a boolean key that determines if the time zone mappings % should be used. @@ -617,137 +1775,222 @@ % \begin{macrocode} \DTMsetbool{serbian}{showyear}{true} % \end{macrocode} -% -% Define the "serbian" style. (TODO: implement day of week?) -% \begin{macrocode} -\DTMnewstyle - {serbian}% label - {% date style - \renewcommand*\DTMdisplaydate[4]{% - \DTMifbool{serbian}{showdayofmonth} - {\DTMserbianordinal{##3}\DTMserbiandaymonthsep}% - {}% - \DTMserbianmonthname{##2}% - \DTMifbool{serbian}{showyear}% - {% - \DTMserbianmonthyearsep - \number##1 - }% - {}% - }% - \renewcommand*\DTMDisplaydate[4]{% - \DTMifbool{serbian}{showdayofmonth} - {% - \DTMserbianordinal{##3}\DTMserbiandaymonthsep - \DTMserbianmonthname{##2}% - }% - {% - \DTMserbianMonthname{##2}% - }% - \DTMifbool{serbian}{showyear}% - {% - \DTMserbianmonthyearsep - \number##1 - }% - {}% - }% - }% - {% time style (use default) - \DTMsettimestyle{default}% - }% - {% zone style - \DTMresetzones - \DTMserbianzonemaps - \renewcommand*{\DTMdisplayzone}[2]{% - \DTMifbool{serbian}{mapzone}% - {\DTMusezonemapordefault{##1}{##2}}% - {% - \ifnum##1<0 \else+\fi\DTMtwodigits{##1}% - \ifDTMshowzoneminutes\DTMserbiantimesep\DTMtwodigits{##2}\fi - }% - }% - }% - {% full style - \renewcommand*{\DTMdisplay}[9]{% - \ifDTMshowdate - \DTMdisplaydate{##1}{##2}{##3}{##4}% - \DTMserbiandatetimesep +%\changes{2.0}{2019-11-07}{% +% Added weekday names. +%} +% \begin{macrocode} +\DTMnewstyle% +{serbian}% label +{% date style + \renewcommand*\DTMdisplaydate[4]{% + \ifDTMshowdow% + \ifnum##4>-1 + \DTMserbianweekdayname{##4}% + \DTMserbiandowdaysep% + \fi + \fi + \DTMifbool{serbian}{showdayofmonth} + {\DTMserbiandayordinal{##3}\DTMserbiandaymonthsep}% + {}% + \DTMifbool{serbian}{monthi}% + {\DTMserbianimonthname{##2}}% + {\DTMserbiannoimonthname{##2}}% + \DTMifbool{serbian}{showyear}% + {% + \DTMserbianmonthyearsep% + \DTMserbianyearordinal{##1}% + }% + {}% + }% + \renewcommand*\DTMDisplaydate[4]{% + \ifDTMshowdow% + \ifnum##4>-1 + \DTMserbianWeekdayname{##4}% + \DTMserbiandowdaysep% + \fi + \fi + \DTMifbool{serbian}{showdayofmonth} + {% + \DTMserbiandayordinal{##3}\DTMserbiandaymonthsep% + \DTMifbool{serbian}{monthi}% + {\DTMserbianimonthname{##2}}% + {\DTMserbiannoimonthname{##2}}% + }% + {% + \DTMifbool{serbian}{monthi}% + {\DTMserbianiMonthname{##2}}% + {\DTMserbiannoiMonthname{##2}}% + }% + \DTMifbool{serbian}{showyear}% + {% + \DTMserbianmonthyearsep% + \DTMserbianyearordinal{##1}% + }% + {}% + }% +}% +{% time style + \renewcommand*\DTMdisplaytime[3]{% + \DTMifbool{serbian}{leadingzero}{\DTMtwodigits{##1}}{\number##1}% + \DTMserbiantimesep\DTMtwodigits{##2}% + \ifDTMshowseconds\DTMserbiantimesep\DTMtwodigits{##3}\fi + }% +}% +{% zone style + \DTMresetzones% + \DTMserbianzonemaps% + \renewcommand*{\DTMdisplayzone}[2]{% + \DTMifbool{serbian}{mapzone}% + {\DTMusezonemapordefault{##1}{##2}}% + {% + \ifnum##1<0 + \else+\fi\DTMtwodigits{##1}% + \ifDTMshowzoneminutes\DTMserbiantimesep\DTMtwodigits{##2}\fi + }% + }% +}% +{% full style + \renewcommand*{\DTMdisplay}[9]{% + \ifDTMshowdate% + \DTMdisplaydate{##1}{##2}{##3}{##4}% + \DTMserbiandatetimesep% \fi \DTMdisplaytime{##5}{##6}{##7}% - \ifDTMshowzone - \DTMserbiantimezonesep - \DTMdisplayzone{##8}{##9}% + \ifDTMshowzone% + \DTMserbiantimezonesep% + \DTMdisplayzone{##8}{##9}% \fi - }% - \renewcommand*{\DTMDisplay}[9]{% - \ifDTMshowdate - \DTMDisplaydate{##1}{##2}{##3}{##4}% - \DTMserbiandatetimesep + }% + \renewcommand*{\DTMDisplay}[9]{% + \ifDTMshowdate% + \DTMDisplaydate{##1}{##2}{##3}{##4}% + \DTMserbiandatetimesep% \fi \DTMdisplaytime{##5}{##6}{##7}% - \ifDTMshowzone - \DTMserbiantimezonesep - \DTMdisplayzone{##8}{##9}% + \ifDTMshowzone% + \DTMserbiantimezonesep% + \DTMdisplayzone{##8}{##9}% \fi - }% - }% + }% +}% +% \end{macrocode} +% +% +%\begin{macro}{\DTMserbianmonthordinal} +% Define the month ordinal format to be used by this style. +% \begin{macrocode} + \newcommand*{\DTMserbianmonthordinal}[1]{% + \DTMifbool{serbian}{leadingzero}{\DTMtwodigits{#1}}{\number#1}.}% +% \end{macrocode} +%\end{macro} +% +%\changes{2.0}{2019-11-07}{% +% Added a switch between multiple numeric month ordinal formats used in +% Serbian. +%} +% Define a setting to switch between Arabic, uppercase Roman and lowercase +% smallcaps Roman month format for the "serbian-numeric" style. +% \begin{macrocode} +\DTMdefchoicekey{serbian}{monthord}% +[\@dtm@val\@dtm@nr]{arabic,roman,romanlsc}{% + \ifcase\@dtm@nr\relax + \renewcommand*{\DTMserbianmonthordinal}[1]{% + \DTMifbool{serbian}{leadingzero}% + {\DTMtwodigits{##1}}{\number##1}\DTMserbiandatesep}% + \or% + \renewcommand*{\DTMserbianmonthordinal}[1]{% + \DTMtexorpdfstring{\protect\DTMserbianordinalROMAN{##1}}% + {serbianordinalROMAN{##1}}}% + \or% + \renewcommand*{\DTMserbianmonthordinal}[1]{% + \DTMtexorpdfstring{\textsc{\protect\DTMserbianordinalroman{##1}}}% + {serbianordinalROMAN{##1}}}% + \fi +} % \end{macrocode} % +%\changes{2.0}{2019-11-07}{% +% Fixed the (previously entirely wrong) numeric date style. +%} +%\changes{2.0}{2019-11-07}{% +% Added weekday names. +%} % Define numeric style. % \begin{macrocode} -\DTMnewstyle - {serbian-numeric}% label - {% date style - \renewcommand*\DTMdisplaydate[4]{% - \DTMifbool{serbian}{showdayofmonth}% - {% - \number##3 % space intended - \DTMserbiandatesep - }% - {}% - \number##2 % space intended - \DTMifbool{serbian}{showyear}% - {% - \DTMserbiandatesep - \number##1 % space intended - }% - {}% +\DTMnewstyle% +{serbian-numeric}% label +{% date style + \renewcommand*\DTMdisplaydate[4]{% + \ifDTMshowdow% + \ifnum##4>-1 + \DTMserbianweekdayname{##4}% + \DTMserbiandowdaysep% + \fi + \fi + \DTMifbool{serbian}{showdayofmonth}% + {\DTMserbiandayordinal{##3}\DTMserbiandaymonthsep}% + {}% + \DTMserbianmonthordinal{##2}% + \DTMifbool{serbian}{showyear}% + {% + \DTMserbianmonthyearsep% + \DTMserbianyearordinal{##1}% + }% + {}% + }% + \renewcommand*\DTMDisplaydate[4]{% + \ifDTMshowdow% + \ifnum##4>-1 + \DTMserbianWeekdayname{##4}% + \DTMserbiandowdaysep% + \fi + \fi + \DTMifbool{serbian}{showdayofmonth}% + {\DTMserbiandayordinal{##3}\DTMserbiandaymonthsep}% + {}% + \DTMserbianmonthordinal{##2}% + \DTMifbool{serbian}{showyear}% + {% + \DTMserbianmonthyearsep% + \DTMserbianyearordinal{##1}% + }% + {}% + }% +}% +{% time style + \renewcommand*\DTMdisplaytime[3]{% + \DTMifbool{serbian}{leadingzero}{\DTMtwodigits{##1}}{\number##1}% + \DTMserbiantimesep\DTMtwodigits{##2}% + \ifDTMshowseconds\DTMserbiantimesep\DTMtwodigits{##3}\fi + }% +}% +{% zone style + \DTMresetzones% + \DTMserbianzonemaps% + \renewcommand*{\DTMdisplayzone}[2]{% + \DTMifbool{serbian}{mapzone}% + {\DTMusezonemapordefault{##1}{##2}}% + {% + \ifnum##1<0 + \else+\fi\DTMtwodigits{##1}% + \ifDTMshowzoneminutes\DTMserbiantimesep\DTMtwodigits{##2}\fi }% - \renewcommand*{\DTMDisplaydate}{\DTMdisplaydate}% - }% - {% time style - \renewcommand*\DTMdisplaytime[3]{% - \number##1 - \DTMserbiantimesep\DTMtwodigits{##2}% - \ifDTMshowseconds\DTMserbiantimesep\DTMtwodigits{##3}\fi - }% - }% - {% zone style - \DTMresetzones - \DTMserbianzonemaps - \renewcommand*{\DTMdisplayzone}[2]{% - \DTMifbool{serbian}{mapzone}% - {\DTMusezonemapordefault{##1}{##2}}% - {% - \ifnum##1<0 \else+\fi\DTMtwodigits{##1}% - \ifDTMshowzoneminutes\DTMserbiantimesep\DTMtwodigits{##2}\fi - }% - }% - }% - {% full style - \renewcommand*{\DTMdisplay}[9]{% - \ifDTMshowdate - \DTMdisplaydate{##1}{##2}{##3}{##4}% - \DTMserbiandatetimesep + }% +}% +{% full style + \renewcommand*{\DTMdisplay}[9]{% + \ifDTMshowdate% + \DTMdisplaydate{##1}{##2}{##3}{##4}% + \DTMserbiandatetimesep% \fi \DTMdisplaytime{##5}{##6}{##7}% - \ifDTMshowzone - \DTMserbiantimezonesep - \DTMdisplayzone{##8}{##9}% + \ifDTMshowzone% + \DTMserbiantimezonesep% + \DTMdisplayzone{##8}{##9}% \fi - }% - \renewcommand*{\DTMDisplay}{\DTMdisplay}% - } + }% + \renewcommand*{\DTMDisplay}{\DTMdisplay}% +} % \end{macrocode} % %\begin{macro}{\DTMserbianzonemaps} @@ -764,25 +2007,28 @@ % Switch style according to the \opt{useregional} setting. % \begin{macrocode} -\DTMifcaseregional +\DTMifcaseregional% {}% do nothing -{\DTMsetstyle{serbian}} -{\DTMsetstyle{serbian-numeric}} +{\DTMsetstyle{serbian}}% +{\DTMsetstyle{serbian-numeric}}% % \end{macrocode} % % Redefine \cs{dateserbian} (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.) %\changes{1.1}{2019-09-14}{removed spurious space} +%\changes{2.0}{2019-11-07}{% +% Added regions. +%} % \begin{macrocode} \ifcsundef{date\CurrentTrackedDialect} {% - \ifundef\dateserbian + \ifundef\dateserbian% {% do nothing }% {% \def\dateserbian{% - \DTMifcaseregional + \DTMifcaseregional% {}% do nothing {\DTMsetstyle{serbian}}% {\DTMsetstyle{serbian-numeric}}% @@ -791,17 +2037,4819 @@ }% {% \csdef{date\CurrentTrackedDialect}{% - \DTMifcaseregional + \DTMifcaseregional% {}% do nothing {\DTMsetstyle{serbian}}% {\DTMsetstyle{serbian-numeric}}% }% }% % \end{macrocode} +% %\iffalse % \begin{macrocode} %</datetime2-serbian.ldf> % \end{macrocode} %\fi +% +%\iffalse +% \begin{macrocode} +%<*datetime2-sr-Latn.ldf> +% \end{macrocode} +%\fi +% +%\subsection{Serbian \sty{sr-Latn} Code +% (\texttt{datetime2-sr-Latn.ldf})} +%\changes{1.0}{2015-03-24}{Initial release} +%\changes{2.0}{2019-11-07}{% +% Added regions, all settings made available to regions so all changes can be +% region-specific. +%} +% \begin{macrocode} +\ProvidesDateTimeModule{sr-Latn}[2019/11/07 v2.0] +% \end{macrocode} +%\changes{2.0}{2019-11-07}{% +% All localization strings loaded from base module. +%} +% +% Load base Serbian module. +% \begin{macrocode} +\RequireDateTimeModule{serbian-base} +% \end{macrocode} +% +%\subsubsection{Defining the \sty{sr-Latn} style} +% +% Allow the user a way of configuring the "srLatn" and +% "srLatn-numeric" styles by providing macros for various format +% elements. +% +% This doesn't use the package-wide separators such as \cs{dtm@datetimesep} in +% case other date formats are also required. +% +% +%\begin{macro}{\DTMsrLatndowdaysep} +% The separator between weekday and day. +% \begin{macrocode} +\newcommand*{\DTMsrLatndowdaysep}{,\space} +% \end{macrocode} +%\end{macro} +% +% +%\begin{macro}{\DTMsrLatndaymonthsep} +% The separator between the day and month for the text format. +% \begin{macrocode} +\newcommand*{\DTMsrLatndaymonthsep}{% + \DTMtexorpdfstring{\protect~}{\space}% +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMsrLatnmonthyearsep} +% The separator between the month and year for the text format. +% \begin{macrocode} +\newcommand*{\DTMsrLatnmonthyearsep}{\space} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMsrLatndatetimesep} +% The separator between the date and time blocks in the full format (either +% text or numeric). +% \begin{macrocode} +\newcommand*{\DTMsrLatndatetimesep}{\space} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMsrLatntimezonesep} +% The separator between the time and zone blocks in the full format (either +% text or numeric). +% \begin{macrocode} +\newcommand*{\DTMsrLatntimezonesep}{\space} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMsrLatndatesep} +% The separator for the numeric date format. +% \begin{macrocode} +\newcommand*{\DTMsrLatndatesep}{.} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMsrLatntimesep} +% The separator for the numeric time format. +% \begin{macrocode} +\newcommand*{\DTMsrLatntimesep}{.} +% \end{macrocode} +%\end{macro} +% +%Provide keys that can be used in \cs{DTMlangsetup} to set these separators. +% \begin{macrocode} +\DTMdefkey{sr-Latn}{dowdaysep}% + {\renewcommand*{\DTMsr-Latndowdaysep}{#1}} +\DTMdefkey{sr-Latn}{daymonthsep}% + {\renewcommand*{\DTMsr-Latndaymonthsep}{#1}} +\DTMdefkey{sr-Latn}{monthyearsep}% + {\renewcommand*{\DTMsr-Latnmonthyearsep}{#1}} +\DTMdefkey{sr-Latn}{datetimesep}% + {\renewcommand*{\DTMsr-Latndatetimesep}{#1}} +\DTMdefkey{sr-Latn}{timezonesep}% + {\renewcommand*{\DTMsr-Latntimezonesep}{#1}} +\DTMdefkey{sr-Latn}{datesep}% + {\renewcommand*{\DTMsr-Latndatesep}{#1}} +\DTMdefkey{sr-Latn}{timesep}% + {\renewcommand*{\DTMsr-Latntimesep}{#1}} +% \end{macrocode} +% +%\subsubsection{Switches and settings} +% +%\changes{2.0}{2019-11-07}{% +% Added weekday names. +%} +%\begin{macro}{\DTMsrLatnweekdayname} +% Define the weekday name, lowercase. +% \begin{macrocode} +\newcommand*{\DTMsrLatnweekdayname}% +{\DTMserbianlatekweekdayname} +% \end{macrocode} +%\end{macro} + +%\begin{macro}{\DTMsrLatnweekdayname} +% Define the weekday name, capitalized. +% \begin{macrocode} +\newcommand*{\DTMsrLatnWeekdayname}% + {\DTMserbianlatekWeekdayname} +% \end{macrocode} +%\end{macro} +% +% Provide a way to switch between Ekavian and Ijekavian pronunciation. +%\changes{2.0}{2019-11-07}{% +% Added a way to switch between Ekavian and Ijekavian pronunciation. +%} +% +% \begin{macrocode} +\DTMdefchoicekey{sr-Latn}% + {pronunciation}[\@dtm@val\@dtm@nr]{ekavian,ijekavian}{% + \ifcase\@dtm@nr\relax + \renewcommand*{\DTMsrLatnweekdayname}% + {\DTMserbianlatekweekdayname}% + \renewcommand*{\DTMsrLatnWeekdayname}% + {\DTMserbianlatekWeekdayname}% + \or% + \renewcommand*{\DTMsrLatnweekdayname}% + {\DTMserbianlatijweekdayname}% + \renewcommand*{\DTMsrLatnWeekdayname} + {\DTMserbianlatijWeekdayname}% + \fi +} +% \end{macrocode} +% +%\changes{2.0}{2019-11-07}{% +% Added a way to switch June, July alternate spellings. +%} +% Define a boolean key that can switch between (jun, jul) and (juni, juli) +% month spellings. +% \begin{macrocode} +\DTMdefboolkey{sr-Latn}{monthi}[true]{} +% \end{macrocode} +% The default is without the "i" suffix. +% \begin{macrocode} +\DTMsetbool{sr-Latn}{monthi}{false} +% \end{macrocode} +% +%\changes{2.0}{2019-11-07}{% +% Added a switch for adding leading zeroes in day and month ordinals. +%} +% Define a boolean key that determines if the day and month ordinals should +% have leading zeroes. +% \begin{macrocode} +\DTMdefboolkey{sr-Latn}{leadingzero}[true]{} +% \end{macrocode} +% The default is to omit the leading zero. +% \begin{macrocode} +\DTMsetbool{sr-Latn}{leadingzero}{false} +% \end{macrocode} +% +% +% +%\begin{macro}{\DTMsrLatndayordinal} +% Define the day ordinal format to be used by this style. +% \begin{macrocode} + \newcommand*{\DTMsrLatndayordinal}[1]{% + \DTMifbool{sr-Latn}{leadingzero}% + {\DTMtwodigits{#1}}% + {\number#1}\DTMsrLatndatesep}% +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMsrLatnyearordinal} +% Define the year ordinal format to be used by this style. +% \begin{macrocode} + \newcommand*{\DTMsrLatnyearordinal}[1]{% + \number#1\DTMsrLatndatesep}% +% \end{macrocode} +%\end{macro} +% +%\changes{2.0}{2019-11-07}{% +% Removed the option to switch between writing systems, since that is +% accomplished by using different regions or regionless styles ("serbian" and +% "serbianc" for example). +%} +% +% Define the month names. +% +%\begin{macro}{\DTMsrLatnnoimonthname} +% \begin{macrocode} +\newcommand*{\DTMsrLatnnoimonthname}{\DTMserbianlatnoimonthname} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMsrLatnnoiMonthname} +% \begin{macrocode} +\newcommand*{\DTMsrLatnnoiMonthname}{\DTMserbianlatnoiMonthname} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMsrLatnimonthname} +% \begin{macrocode} +\newcommand*{\DTMsrLatnimonthname}{\DTMserbianlatimonthname} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMsrLatniMonthname} +% \begin{macrocode} +\newcommand*{\DTMsrLatniMonthname}{\DTMserbianlatiMonthname} +% \end{macrocode} +%\end{macro} +% +% Define a boolean key that determines if the time zone mappings +% should be used. +% \begin{macrocode} +\DTMdefboolkey{sr-Latn}{mapzone}[true]{} +% \end{macrocode} +% The default is to use mappings. +% \begin{macrocode} +\DTMsetbool{sr-Latn}{mapzone}{true} +% \end{macrocode} +% +% Define a boolean key that determines if the day of month should be +% displayed. +% \begin{macrocode} +\DTMdefboolkey{sr-Latn}{showdayofmonth}[true]{} +% \end{macrocode} +% The default is to show the day of month. +% \begin{macrocode} +\DTMsetbool{sr-Latn}{showdayofmonth}{true} +% \end{macrocode} +% +% Define a boolean key that determines if the year should be +% displayed. +% \begin{macrocode} +\DTMdefboolkey{sr-Latn}{showyear}[true]{} +% \end{macrocode} +% The default is to show the year. +% \begin{macrocode} +\DTMsetbool{sr-Latn}{showyear}{true} +% \end{macrocode} +%\changes{2.0}{2019-11-07}{% +% Added weekday names. +%} +% \begin{macrocode} +\DTMnewstyle% +{sr-Latn}% label +{% date style + \renewcommand*\DTMdisplaydate[4]{% + \ifDTMshowdow% + \ifnum##4>-1 + \DTMsrLatnweekdayname{##4}% + \DTMsrLatndowdaysep% + \fi + \fi + \DTMifbool{sr-Latn}{showdayofmonth} + {\DTMsrLatndayordinal{##3}\DTMsrLatndaymonthsep}% + {}% + \DTMifbool{sr-Latn}{monthi}% + {\DTMsrLatnimonthname{##2}}% + {\DTMsrLatnnoimonthname{##2}}% + \DTMifbool{sr-Latn}{showyear}% + {% + \DTMsrLatnmonthyearsep% + \DTMsrLatnyearordinal{##1}% + }% + {}% + }% + \renewcommand*\DTMDisplaydate[4]{% + \ifDTMshowdow% + \ifnum##4>-1 + \DTMsrLatnWeekdayname{##4}% + \DTMsrLatndowdaysep% + \fi + \fi + \DTMifbool{sr-Latn}{showdayofmonth} + {% + \DTMsrLatndayordinal{##3}\DTMsrLatndaymonthsep% + \DTMifbool{sr-Latn}{monthi}% + {\DTMsrLatnimonthname{##2}}% + {\DTMsrLatnnoimonthname{##2}}% + }% + {% + \DTMifbool{sr-Latn}{monthi}% + {\DTMsrLatniMonthname{##2}}% + {\DTMsrLatnnoiMonthname{##2}}% + }% + \DTMifbool{sr-Latn}{showyear}% + {% + \DTMsrLatnmonthyearsep% + \DTMsrLatnyearordinal{##1}% + }% + {}% + }% +}% +{% time style + \renewcommand*\DTMdisplaytime[3]{% + \DTMifbool{sr-Latn}{leadingzero}{\DTMtwodigits{##1}}{\number##1}% + \DTMsrLatntimesep\DTMtwodigits{##2}% + \ifDTMshowseconds\DTMsrLatntimesep\DTMtwodigits{##3}\fi + }% +}% +{% zone style + \DTMresetzones% + \DTMsrLatnzonemaps% + \renewcommand*{\DTMdisplayzone}[2]{% + \DTMifbool{sr-Latn}{mapzone}% + {\DTMusezonemapordefault{##1}{##2}}% + {% + \ifnum##1<0 + \else+\fi\DTMtwodigits{##1}% + \ifDTMshowzoneminutes\DTMsrLatntimesep\DTMtwodigits{##2}\fi + }% + }% +}% +{% full style + \renewcommand*{\DTMdisplay}[9]{% + \ifDTMshowdate% + \DTMdisplaydate{##1}{##2}{##3}{##4}% + \DTMsrLatndatetimesep% + \fi + \DTMdisplaytime{##5}{##6}{##7}% + \ifDTMshowzone% + \DTMsrLatntimezonesep% + \DTMdisplayzone{##8}{##9}% + \fi + }% + \renewcommand*{\DTMDisplay}[9]{% + \ifDTMshowdate% + \DTMDisplaydate{##1}{##2}{##3}{##4}% + \DTMsrLatndatetimesep% + \fi + \DTMdisplaytime{##5}{##6}{##7}% + \ifDTMshowzone% + \DTMsrLatntimezonesep% + \DTMdisplayzone{##8}{##9}% + \fi + }% +}% +% \end{macrocode} +% +% +%\begin{macro}{\DTMsrLatnmonthordinal} +% Define the month ordinal format to be used by this style. +% \begin{macrocode} + \newcommand*{\DTMsrLatnmonthordinal}[1]{% + \DTMifbool{sr-Latn}{leadingzero}{\DTMtwodigits{#1}}{\number#1}.}% +% \end{macrocode} +%\end{macro} +% +%\changes{2.0}{2019-11-07}{% +% Added a switch between multiple numeric month ordinal formats used in +% Serbian. +%} +% Define a setting to switch between Arabic, uppercase Roman and lowercase +% smallcaps Roman month format for the "srLatn-numeric" style. +% \begin{macrocode} +\DTMdefchoicekey{sr-Latn}{monthord}% +[\@dtm@val\@dtm@nr]{arabic,roman,romanlsc}{% + \ifcase\@dtm@nr\relax + \renewcommand*{\DTMsrLatnmonthordinal}[1]{% + \DTMifbool{sr-Latn}{leadingzero}% + {\DTMtwodigits{##1}}{\number##1}\DTMsrLatndatesep}% + \or% + \renewcommand*{\DTMsrLatnmonthordinal}[1]{% + \DTMtexorpdfstring{\protect\DTMserbianordinalROMAN{##1}}% + {serbianordinalROMAN{##1}}}% + \or% + \renewcommand*{\DTMsrLatnmonthordinal}[1]{% + \DTMtexorpdfstring{\textsc{\protect\DTMserbianordinalroman{##1}}}% + {serbianordinalROMAN{##1}}}% + \fi +} +% \end{macrocode} +% +%\changes{2.0}{2019-11-07}{% +% Fixed the (previously entirely wrong) numeric date style. +%} +%\changes{2.0}{2019-11-07}{% +% Added weekday names. +%} +% Define numeric style. +% \begin{macrocode} +\DTMnewstyle% +{sr-Latn-numeric}% label +{% date style + \renewcommand*\DTMdisplaydate[4]{% + \ifDTMshowdow% + \ifnum##4>-1 + \DTMsrLatnweekdayname{##4}% + \DTMsrLatndowdaysep% + \fi + \fi + \DTMifbool{sr-Latn}{showdayofmonth}% + {\DTMsrLatndayordinal{##3}\DTMsrLatndaymonthsep}% + {}% + \DTMsrLatnmonthordinal{##2}% + \DTMifbool{sr-Latn}{showyear}% + {% + \DTMsrLatnmonthyearsep% + \DTMsrLatnyearordinal{##1}% + }% + {}% + }% + \renewcommand*\DTMDisplaydate[4]{% + \ifDTMshowdow% + \ifnum##4>-1 + \DTMsrLatnWeekdayname{##4}% + \DTMsrLatndowdaysep% + \fi + \fi + \DTMifbool{sr-Latn}{showdayofmonth}% + {\DTMsrLatndayordinal{##3}\DTMsrLatndaymonthsep}% + {}% + \DTMsrLatnmonthordinal{##2}% + \DTMifbool{sr-Latn}{showyear}% + {% + \DTMsrLatnmonthyearsep% + \DTMsrLatnyearordinal{##1}% + }% + {}% + }% +}% +{% time style + \renewcommand*\DTMdisplaytime[3]{% + \DTMifbool{sr-Latn}{leadingzero}{\DTMtwodigits{##1}}{\number##1}% + \DTMsrLatntimesep\DTMtwodigits{##2}% + \ifDTMshowseconds\DTMsrLatntimesep\DTMtwodigits{##3}\fi + }% +}% +{% zone style + \DTMresetzones% + \DTMsrLatnzonemaps% + \renewcommand*{\DTMdisplayzone}[2]{% + \DTMifbool{sr-Latn}{mapzone}% + {\DTMusezonemapordefault{##1}{##2}}% + {% + \ifnum##1<0 + \else+\fi\DTMtwodigits{##1}% + \ifDTMshowzoneminutes\DTMsrLatntimesep\DTMtwodigits{##2}\fi + }% + }% +}% +{% full style + \renewcommand*{\DTMdisplay}[9]{% + \ifDTMshowdate% + \DTMdisplaydate{##1}{##2}{##3}{##4}% + \DTMsrLatndatetimesep% + \fi + \DTMdisplaytime{##5}{##6}{##7}% + \ifDTMshowzone% + \DTMsrLatntimezonesep% + \DTMdisplayzone{##8}{##9}% + \fi + }% + \renewcommand*{\DTMDisplay}{\DTMdisplay}% +} +% \end{macrocode} +% +%\begin{macro}{\DTMsr-Latnzonemaps} +% The time zone mappings are set through this command, which can be +% redefined if extra mappings are required or mappings need to be +% removed. +% \begin{macrocode} +\newcommand*{\DTMsr-Latnzonemaps}{% + \DTMdefzonemap{01}{00}{CET}% + \DTMdefzonemap{02}{00}{CEST}% +} +% \end{macrocode} +%\end{macro} + +% Switch style according to the \opt{useregional} setting. +% \begin{macrocode} +\DTMifcaseregional% +{}% do nothing +{\DTMsetstyle{sr-Latn}}% +{\DTMsetstyle{sr-Latn-numeric}}% +% \end{macrocode} +% +% Redefine \cs{dateserbian} (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.) +%\changes{1.1}{2019-09-14}{removed spurious space} +%\changes{2.0}{2019-11-07}{% +% Added regions. +%} +% \begin{macrocode} +\ifcsundef{date\CurrentTrackedDialect} +{% + \ifundef\dateserbian% + {% do nothing + }% + {% + \def\dateserbian{% + \DTMifcaseregional% + {}% do nothing + {\DTMsetstyle{sr-Latn}}% + {\DTMsetstyle{sr-Latn-numeric}}% + }% + }% +}% +{% + \csdef{date\CurrentTrackedDialect}{% + \DTMifcaseregional% + {}% do nothing + {\DTMsetstyle{sr-Latn}}% + {\DTMsetstyle{sr-Latn-numeric}}% + }% +}% +% \end{macrocode} +% +%\iffalse +% \begin{macrocode} +%</datetime2-sr-Latn.ldf> +% \end{macrocode} +%\fi +% +%\iffalse +% \begin{macrocode} +%<*datetime2-sr-Latn-RS.ldf> +% \end{macrocode} +%\fi +% +%\subsection{Serbian \sty{sr-Latn-RS} Code +% (\texttt{datetime2-sr-Latn-RS.ldf})} +%\changes{1.0}{2015-03-24}{Initial release} +%\changes{2.0}{2019-11-07}{% +% Added regions, all settings made available to regions so all changes can be +% region-specific. +%} +% \begin{macrocode} +\ProvidesDateTimeModule{sr-Latn-RS}[2019/11/07 v2.0] +% \end{macrocode} +%\changes{2.0}{2019-11-07}{% +% All localization strings loaded from base module. +%} +% +% Load base Serbian module. +% \begin{macrocode} +\RequireDateTimeModule{serbian-base} +% \end{macrocode} +% +%\subsubsection{Defining the \sty{sr-Latn-RS} style} +% +% Allow the user a way of configuring the "srLatnRS" and +% "srLatnRS-numeric" styles by providing macros for various format +% elements. +% +% This doesn't use the package-wide separators such as \cs{dtm@datetimesep} in +% case other date formats are also required. +% +% +%\begin{macro}{\DTMsrLatnRSdowdaysep} +% The separator between weekday and day. +% \begin{macrocode} +\newcommand*{\DTMsrLatnRSdowdaysep}{,\space} +% \end{macrocode} +%\end{macro} +% +% +%\begin{macro}{\DTMsrLatnRSdaymonthsep} +% The separator between the day and month for the text format. +% \begin{macrocode} +\newcommand*{\DTMsrLatnRSdaymonthsep}{% + \DTMtexorpdfstring{\protect~}{\space}% +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMsrLatnRSmonthyearsep} +% The separator between the month and year for the text format. +% \begin{macrocode} +\newcommand*{\DTMsrLatnRSmonthyearsep}{\space} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMsrLatnRSdatetimesep} +% The separator between the date and time blocks in the full format (either +% text or numeric). +% \begin{macrocode} +\newcommand*{\DTMsrLatnRSdatetimesep}{\space} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMsrLatnRStimezonesep} +% The separator between the time and zone blocks in the full format (either +% text or numeric). +% \begin{macrocode} +\newcommand*{\DTMsrLatnRStimezonesep}{\space} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMsrLatnRSdatesep} +% The separator for the numeric date format. +% \begin{macrocode} +\newcommand*{\DTMsrLatnRSdatesep}{.} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMsrLatnRStimesep} +% The separator for the numeric time format. +% \begin{macrocode} +\newcommand*{\DTMsrLatnRStimesep}{.} +% \end{macrocode} +%\end{macro} +% +%Provide keys that can be used in \cs{DTMlangsetup} to set these separators. +% \begin{macrocode} +\DTMdefkey{sr-Latn-RS}{dowdaysep}% + {\renewcommand*{\DTMsr-Latn-RSdowdaysep}{#1}} +\DTMdefkey{sr-Latn-RS}{daymonthsep}% + {\renewcommand*{\DTMsr-Latn-RSdaymonthsep}{#1}} +\DTMdefkey{sr-Latn-RS}{monthyearsep}% + {\renewcommand*{\DTMsr-Latn-RSmonthyearsep}{#1}} +\DTMdefkey{sr-Latn-RS}{datetimesep}% + {\renewcommand*{\DTMsr-Latn-RSdatetimesep}{#1}} +\DTMdefkey{sr-Latn-RS}{timezonesep}% + {\renewcommand*{\DTMsr-Latn-RStimezonesep}{#1}} +\DTMdefkey{sr-Latn-RS}{datesep}% + {\renewcommand*{\DTMsr-Latn-RSdatesep}{#1}} +\DTMdefkey{sr-Latn-RS}{timesep}% + {\renewcommand*{\DTMsr-Latn-RStimesep}{#1}} +% \end{macrocode} +% +%\subsubsection{Switches and settings} +% +%\changes{2.0}{2019-11-07}{% +% Added weekday names. +%} +%\begin{macro}{\DTMsrLatnRSweekdayname} +% Define the weekday name, lowercase. +% \begin{macrocode} +\newcommand*{\DTMsrLatnRSweekdayname}% +{\DTMserbianlatekweekdayname} +% \end{macrocode} +%\end{macro} + +%\begin{macro}{\DTMsrLatnRSweekdayname} +% Define the weekday name, capitalized. +% \begin{macrocode} +\newcommand*{\DTMsrLatnRSWeekdayname}% + {\DTMserbianlatekWeekdayname} +% \end{macrocode} +%\end{macro} +% +% Provide a way to switch between Ekavian and Ijekavian pronunciation. +%\changes{2.0}{2019-11-07}{% +% Added a way to switch between Ekavian and Ijekavian pronunciation. +%} +% +% \begin{macrocode} +\DTMdefchoicekey{sr-Latn-RS}% + {pronunciation}[\@dtm@val\@dtm@nr]{ekavian,ijekavian}{% + \ifcase\@dtm@nr\relax + \renewcommand*{\DTMsrLatnRSweekdayname}% + {\DTMserbianlatekweekdayname}% + \renewcommand*{\DTMsrLatnRSWeekdayname}% + {\DTMserbianlatekWeekdayname}% + \or% + \renewcommand*{\DTMsrLatnRSweekdayname}% + {\DTMserbianlatijweekdayname}% + \renewcommand*{\DTMsrLatnRSWeekdayname} + {\DTMserbianlatijWeekdayname}% + \fi +} +% \end{macrocode} +% +%\changes{2.0}{2019-11-07}{% +% Added a way to switch June, July alternate spellings. +%} +% Define a boolean key that can switch between (jun, jul) and (juni, juli) +% month spellings. +% \begin{macrocode} +\DTMdefboolkey{sr-Latn-RS}{monthi}[true]{} +% \end{macrocode} +% The default is without the "i" suffix. +% \begin{macrocode} +\DTMsetbool{sr-Latn-RS}{monthi}{false} +% \end{macrocode} +% +%\changes{2.0}{2019-11-07}{% +% Added a switch for adding leading zeroes in day and month ordinals. +%} +% Define a boolean key that determines if the day and month ordinals should +% have leading zeroes. +% \begin{macrocode} +\DTMdefboolkey{sr-Latn-RS}{leadingzero}[true]{} +% \end{macrocode} +% The default is to omit the leading zero. +% \begin{macrocode} +\DTMsetbool{sr-Latn-RS}{leadingzero}{false} +% \end{macrocode} +% +% +% +%\begin{macro}{\DTMsrLatnRSdayordinal} +% Define the day ordinal format to be used by this style. +% \begin{macrocode} + \newcommand*{\DTMsrLatnRSdayordinal}[1]{% + \DTMifbool{sr-Latn-RS}{leadingzero}% + {\DTMtwodigits{#1}}% + {\number#1}\DTMsrLatnRSdatesep}% +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMsrLatnRSyearordinal} +% Define the year ordinal format to be used by this style. +% \begin{macrocode} + \newcommand*{\DTMsrLatnRSyearordinal}[1]{% + \number#1\DTMsrLatnRSdatesep}% +% \end{macrocode} +%\end{macro} +% +%\changes{2.0}{2019-11-07}{% +% Removed the option to switch between writing systems, since that is +% accomplished by using different regions or regionless styles ("serbian" and +% "serbianc" for example). +%} +% +% Define the month names. +% +%\begin{macro}{\DTMsrLatnRSnoimonthname} +% \begin{macrocode} +\newcommand*{\DTMsrLatnRSnoimonthname}{\DTMserbianlatnoimonthname} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMsrLatnRSnoiMonthname} +% \begin{macrocode} +\newcommand*{\DTMsrLatnRSnoiMonthname}{\DTMserbianlatnoiMonthname} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMsrLatnRSimonthname} +% \begin{macrocode} +\newcommand*{\DTMsrLatnRSimonthname}{\DTMserbianlatimonthname} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMsrLatnRSiMonthname} +% \begin{macrocode} +\newcommand*{\DTMsrLatnRSiMonthname}{\DTMserbianlatiMonthname} +% \end{macrocode} +%\end{macro} +% +% Define a boolean key that determines if the time zone mappings +% should be used. +% \begin{macrocode} +\DTMdefboolkey{sr-Latn-RS}{mapzone}[true]{} +% \end{macrocode} +% The default is to use mappings. +% \begin{macrocode} +\DTMsetbool{sr-Latn-RS}{mapzone}{true} +% \end{macrocode} +% +% Define a boolean key that determines if the day of month should be +% displayed. +% \begin{macrocode} +\DTMdefboolkey{sr-Latn-RS}{showdayofmonth}[true]{} +% \end{macrocode} +% The default is to show the day of month. +% \begin{macrocode} +\DTMsetbool{sr-Latn-RS}{showdayofmonth}{true} +% \end{macrocode} +% +% Define a boolean key that determines if the year should be +% displayed. +% \begin{macrocode} +\DTMdefboolkey{sr-Latn-RS}{showyear}[true]{} +% \end{macrocode} +% The default is to show the year. +% \begin{macrocode} +\DTMsetbool{sr-Latn-RS}{showyear}{true} +% \end{macrocode} +%\changes{2.0}{2019-11-07}{% +% Added weekday names. +%} +% \begin{macrocode} +\DTMnewstyle% +{sr-Latn-RS}% label +{% date style + \renewcommand*\DTMdisplaydate[4]{% + \ifDTMshowdow% + \ifnum##4>-1 + \DTMsrLatnRSweekdayname{##4}% + \DTMsrLatnRSdowdaysep% + \fi + \fi + \DTMifbool{sr-Latn-RS}{showdayofmonth} + {\DTMsrLatnRSdayordinal{##3}\DTMsrLatnRSdaymonthsep}% + {}% + \DTMifbool{sr-Latn-RS}{monthi}% + {\DTMsrLatnRSimonthname{##2}}% + {\DTMsrLatnRSnoimonthname{##2}}% + \DTMifbool{sr-Latn-RS}{showyear}% + {% + \DTMsrLatnRSmonthyearsep% + \DTMsrLatnRSyearordinal{##1}% + }% + {}% + }% + \renewcommand*\DTMDisplaydate[4]{% + \ifDTMshowdow% + \ifnum##4>-1 + \DTMsrLatnRSWeekdayname{##4}% + \DTMsrLatnRSdowdaysep% + \fi + \fi + \DTMifbool{sr-Latn-RS}{showdayofmonth} + {% + \DTMsrLatnRSdayordinal{##3}\DTMsrLatnRSdaymonthsep% + \DTMifbool{sr-Latn-RS}{monthi}% + {\DTMsrLatnRSimonthname{##2}}% + {\DTMsrLatnRSnoimonthname{##2}}% + }% + {% + \DTMifbool{sr-Latn-RS}{monthi}% + {\DTMsrLatnRSiMonthname{##2}}% + {\DTMsrLatnRSnoiMonthname{##2}}% + }% + \DTMifbool{sr-Latn-RS}{showyear}% + {% + \DTMsrLatnRSmonthyearsep% + \DTMsrLatnRSyearordinal{##1}% + }% + {}% + }% +}% +{% time style + \renewcommand*\DTMdisplaytime[3]{% + \DTMifbool{sr-Latn-RS}{leadingzero}{\DTMtwodigits{##1}}{\number##1}% + \DTMsrLatnRStimesep\DTMtwodigits{##2}% + \ifDTMshowseconds\DTMsrLatnRStimesep\DTMtwodigits{##3}\fi + }% +}% +{% zone style + \DTMresetzones% + \DTMsrLatnRSzonemaps% + \renewcommand*{\DTMdisplayzone}[2]{% + \DTMifbool{sr-Latn-RS}{mapzone}% + {\DTMusezonemapordefault{##1}{##2}}% + {% + \ifnum##1<0 + \else+\fi\DTMtwodigits{##1}% + \ifDTMshowzoneminutes\DTMsrLatnRStimesep\DTMtwodigits{##2}\fi + }% + }% +}% +{% full style + \renewcommand*{\DTMdisplay}[9]{% + \ifDTMshowdate% + \DTMdisplaydate{##1}{##2}{##3}{##4}% + \DTMsrLatnRSdatetimesep% + \fi + \DTMdisplaytime{##5}{##6}{##7}% + \ifDTMshowzone% + \DTMsrLatnRStimezonesep% + \DTMdisplayzone{##8}{##9}% + \fi + }% + \renewcommand*{\DTMDisplay}[9]{% + \ifDTMshowdate% + \DTMDisplaydate{##1}{##2}{##3}{##4}% + \DTMsrLatnRSdatetimesep% + \fi + \DTMdisplaytime{##5}{##6}{##7}% + \ifDTMshowzone% + \DTMsrLatnRStimezonesep% + \DTMdisplayzone{##8}{##9}% + \fi + }% +}% +% \end{macrocode} +% +% +%\begin{macro}{\DTMsrLatnRSmonthordinal} +% Define the month ordinal format to be used by this style. +% \begin{macrocode} + \newcommand*{\DTMsrLatnRSmonthordinal}[1]{% + \DTMifbool{sr-Latn-RS}{leadingzero}{\DTMtwodigits{#1}}{\number#1}.}% +% \end{macrocode} +%\end{macro} +% +%\changes{2.0}{2019-11-07}{% +% Added a switch between multiple numeric month ordinal formats used in +% Serbian. +%} +% Define a setting to switch between Arabic, uppercase Roman and lowercase +% smallcaps Roman month format for the "srLatnRS-numeric" style. +% \begin{macrocode} +\DTMdefchoicekey{sr-Latn-RS}{monthord}% +[\@dtm@val\@dtm@nr]{arabic,roman,romanlsc}{% + \ifcase\@dtm@nr\relax + \renewcommand*{\DTMsrLatnRSmonthordinal}[1]{% + \DTMifbool{sr-Latn-RS}{leadingzero}% + {\DTMtwodigits{##1}}{\number##1}\DTMsrLatnRSdatesep}% + \or% + \renewcommand*{\DTMsrLatnRSmonthordinal}[1]{% + \DTMtexorpdfstring{\protect\DTMserbianordinalROMAN{##1}}% + {serbianordinalROMAN{##1}}}% + \or% + \renewcommand*{\DTMsrLatnRSmonthordinal}[1]{% + \DTMtexorpdfstring{\textsc{\protect\DTMserbianordinalroman{##1}}}% + {serbianordinalROMAN{##1}}}% + \fi +} +% \end{macrocode} +% +%\changes{2.0}{2019-11-07}{% +% Fixed the (previously entirely wrong) numeric date style. +%} +%\changes{2.0}{2019-11-07}{% +% Added weekday names. +%} +% Define numeric style. +% \begin{macrocode} +\DTMnewstyle% +{sr-Latn-RS-numeric}% label +{% date style + \renewcommand*\DTMdisplaydate[4]{% + \ifDTMshowdow% + \ifnum##4>-1 + \DTMsrLatnRSweekdayname{##4}% + \DTMsrLatnRSdowdaysep% + \fi + \fi + \DTMifbool{sr-Latn-RS}{showdayofmonth}% + {\DTMsrLatnRSdayordinal{##3}\DTMsrLatnRSdaymonthsep}% + {}% + \DTMsrLatnRSmonthordinal{##2}% + \DTMifbool{sr-Latn-RS}{showyear}% + {% + \DTMsrLatnRSmonthyearsep% + \DTMsrLatnRSyearordinal{##1}% + }% + {}% + }% + \renewcommand*\DTMDisplaydate[4]{% + \ifDTMshowdow% + \ifnum##4>-1 + \DTMsrLatnRSWeekdayname{##4}% + \DTMsrLatnRSdowdaysep% + \fi + \fi + \DTMifbool{sr-Latn-RS}{showdayofmonth}% + {\DTMsrLatnRSdayordinal{##3}\DTMsrLatnRSdaymonthsep}% + {}% + \DTMsrLatnRSmonthordinal{##2}% + \DTMifbool{sr-Latn-RS}{showyear}% + {% + \DTMsrLatnRSmonthyearsep% + \DTMsrLatnRSyearordinal{##1}% + }% + {}% + }% +}% +{% time style + \renewcommand*\DTMdisplaytime[3]{% + \DTMifbool{sr-Latn-RS}{leadingzero}{\DTMtwodigits{##1}}{\number##1}% + \DTMsrLatnRStimesep\DTMtwodigits{##2}% + \ifDTMshowseconds\DTMsrLatnRStimesep\DTMtwodigits{##3}\fi + }% +}% +{% zone style + \DTMresetzones% + \DTMsrLatnRSzonemaps% + \renewcommand*{\DTMdisplayzone}[2]{% + \DTMifbool{sr-Latn-RS}{mapzone}% + {\DTMusezonemapordefault{##1}{##2}}% + {% + \ifnum##1<0 + \else+\fi\DTMtwodigits{##1}% + \ifDTMshowzoneminutes\DTMsrLatnRStimesep\DTMtwodigits{##2}\fi + }% + }% +}% +{% full style + \renewcommand*{\DTMdisplay}[9]{% + \ifDTMshowdate% + \DTMdisplaydate{##1}{##2}{##3}{##4}% + \DTMsrLatnRSdatetimesep% + \fi + \DTMdisplaytime{##5}{##6}{##7}% + \ifDTMshowzone% + \DTMsrLatnRStimezonesep% + \DTMdisplayzone{##8}{##9}% + \fi + }% + \renewcommand*{\DTMDisplay}{\DTMdisplay}% +} +% \end{macrocode} +% +%\begin{macro}{\DTMsr-Latn-RSzonemaps} +% The time zone mappings are set through this command, which can be +% redefined if extra mappings are required or mappings need to be +% removed. +% \begin{macrocode} +\newcommand*{\DTMsr-Latn-RSzonemaps}{% + \DTMdefzonemap{01}{00}{CET}% + \DTMdefzonemap{02}{00}{CEST}% +} +% \end{macrocode} +%\end{macro} + +% Switch style according to the \opt{useregional} setting. +% \begin{macrocode} +\DTMifcaseregional% +{}% do nothing +{\DTMsetstyle{sr-Latn-RS}}% +{\DTMsetstyle{sr-Latn-RS-numeric}}% +% \end{macrocode} +% +% Redefine \cs{dateserbian} (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.) +%\changes{1.1}{2019-09-14}{removed spurious space} +%\changes{2.0}{2019-11-07}{% +% Added regions. +%} +% \begin{macrocode} +\ifcsundef{date\CurrentTrackedDialect} +{% + \ifundef\dateserbian% + {% do nothing + }% + {% + \def\dateserbian{% + \DTMifcaseregional% + {}% do nothing + {\DTMsetstyle{sr-Latn-RS}}% + {\DTMsetstyle{sr-Latn-RS-numeric}}% + }% + }% +}% +{% + \csdef{date\CurrentTrackedDialect}{% + \DTMifcaseregional% + {}% do nothing + {\DTMsetstyle{sr-Latn-RS}}% + {\DTMsetstyle{sr-Latn-RS-numeric}}% + }% +}% +% \end{macrocode} +% +%\iffalse +% \begin{macrocode} +%</datetime2-sr-Latn-RS.ldf> +% \end{macrocode} +%\fi +% +%\iffalse +% \begin{macrocode} +%<*datetime2-sr-Latn-ME.ldf> +% \end{macrocode} +%\fi +% +%\subsection{Serbian \sty{sr-Latn-ME} Code +% (\texttt{datetime2-sr-Latn-ME.ldf})} +%\changes{1.0}{2015-03-24}{Initial release} +%\changes{2.0}{2019-11-07}{% +% Added regions, all settings made available to regions so all changes can be +% region-specific. +%} +% \begin{macrocode} +\ProvidesDateTimeModule{sr-Latn-ME}[2019/11/07 v2.0] +% \end{macrocode} +%\changes{2.0}{2019-11-07}{% +% All localization strings loaded from base module. +%} +% +% Load base Serbian module. +% \begin{macrocode} +\RequireDateTimeModule{serbian-base} +% \end{macrocode} +% +%\subsubsection{Defining the \sty{sr-Latn-ME} style} +% +% Allow the user a way of configuring the "srLatnME" and +% "srLatnME-numeric" styles by providing macros for various format +% elements. +% +% This doesn't use the package-wide separators such as \cs{dtm@datetimesep} in +% case other date formats are also required. +% +% +%\begin{macro}{\DTMsrLatnMEdowdaysep} +% The separator between weekday and day. +% \begin{macrocode} +\newcommand*{\DTMsrLatnMEdowdaysep}{,\space} +% \end{macrocode} +%\end{macro} +% +% +%\begin{macro}{\DTMsrLatnMEdaymonthsep} +% The separator between the day and month for the text format. +% \begin{macrocode} +\newcommand*{\DTMsrLatnMEdaymonthsep}{% + \DTMtexorpdfstring{\protect~}{\space}% +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMsrLatnMEmonthyearsep} +% The separator between the month and year for the text format. +% \begin{macrocode} +\newcommand*{\DTMsrLatnMEmonthyearsep}{\space} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMsrLatnMEdatetimesep} +% The separator between the date and time blocks in the full format (either +% text or numeric). +% \begin{macrocode} +\newcommand*{\DTMsrLatnMEdatetimesep}{\space} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMsrLatnMEtimezonesep} +% The separator between the time and zone blocks in the full format (either +% text or numeric). +% \begin{macrocode} +\newcommand*{\DTMsrLatnMEtimezonesep}{\space} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMsrLatnMEdatesep} +% The separator for the numeric date format. +% \begin{macrocode} +\newcommand*{\DTMsrLatnMEdatesep}{.} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMsrLatnMEtimesep} +% The separator for the numeric time format. +% \begin{macrocode} +\newcommand*{\DTMsrLatnMEtimesep}{.} +% \end{macrocode} +%\end{macro} +% +%Provide keys that can be used in \cs{DTMlangsetup} to set these separators. +% \begin{macrocode} +\DTMdefkey{sr-Latn-ME}{dowdaysep}% + {\renewcommand*{\DTMsr-Latn-MEdowdaysep}{#1}} +\DTMdefkey{sr-Latn-ME}{daymonthsep}% + {\renewcommand*{\DTMsr-Latn-MEdaymonthsep}{#1}} +\DTMdefkey{sr-Latn-ME}{monthyearsep}% + {\renewcommand*{\DTMsr-Latn-MEmonthyearsep}{#1}} +\DTMdefkey{sr-Latn-ME}{datetimesep}% + {\renewcommand*{\DTMsr-Latn-MEdatetimesep}{#1}} +\DTMdefkey{sr-Latn-ME}{timezonesep}% + {\renewcommand*{\DTMsr-Latn-MEtimezonesep}{#1}} +\DTMdefkey{sr-Latn-ME}{datesep}% + {\renewcommand*{\DTMsr-Latn-MEdatesep}{#1}} +\DTMdefkey{sr-Latn-ME}{timesep}% + {\renewcommand*{\DTMsr-Latn-MEtimesep}{#1}} +% \end{macrocode} +% +%\subsubsection{Switches and settings} +% +%\changes{2.0}{2019-11-07}{% +% Added weekday names. +%} +%\begin{macro}{\DTMsrLatnMEweekdayname} +% Define the weekday name, lowercase. +% \begin{macrocode} +\newcommand*{\DTMsrLatnMEweekdayname}% +{\DTMserbianlatijweekdayname} +% \end{macrocode} +%\end{macro} + +%\begin{macro}{\DTMsrLatnMEweekdayname} +% Define the weekday name, capitalized. +% \begin{macrocode} +\newcommand*{\DTMsrLatnMEWeekdayname}% + {\DTMserbianlatijWeekdayname} +% \end{macrocode} +%\end{macro} +% +% Provide a way to switch between Ekavian and Ijekavian pronunciation. +%\changes{2.0}{2019-11-07}{% +% Added a way to switch between Ekavian and Ijekavian pronunciation. +%} +% +% \begin{macrocode} +\DTMdefchoicekey{sr-Latn-ME}% + {pronunciation}[\@dtm@val\@dtm@nr]{ekavian,ijekavian}{% + \ifcase\@dtm@nr\relax + \renewcommand*{\DTMsrLatnMEweekdayname}% + {\DTMserbianlatekweekdayname}% + \renewcommand*{\DTMsrLatnMEWeekdayname}% + {\DTMserbianlatekWeekdayname}% + \or% + \renewcommand*{\DTMsrLatnMEweekdayname}% + {\DTMserbianlatijweekdayname}% + \renewcommand*{\DTMsrLatnMEWeekdayname} + {\DTMserbianlatijWeekdayname}% + \fi +} +% \end{macrocode} +% +%\changes{2.0}{2019-11-07}{% +% Added a way to switch June, July alternate spellings. +%} +% Define a boolean key that can switch between (jun, jul) and (juni, juli) +% month spellings. +% \begin{macrocode} +\DTMdefboolkey{sr-Latn-ME}{monthi}[true]{} +% \end{macrocode} +% The default is without the "i" suffix. +% \begin{macrocode} +\DTMsetbool{sr-Latn-ME}{monthi}{false} +% \end{macrocode} +% +%\changes{2.0}{2019-11-07}{% +% Added a switch for adding leading zeroes in day and month ordinals. +%} +% Define a boolean key that determines if the day and month ordinals should +% have leading zeroes. +% \begin{macrocode} +\DTMdefboolkey{sr-Latn-ME}{leadingzero}[true]{} +% \end{macrocode} +% The default is to omit the leading zero. +% \begin{macrocode} +\DTMsetbool{sr-Latn-ME}{leadingzero}{false} +% \end{macrocode} +% +% +% +%\begin{macro}{\DTMsrLatnMEdayordinal} +% Define the day ordinal format to be used by this style. +% \begin{macrocode} + \newcommand*{\DTMsrLatnMEdayordinal}[1]{% + \DTMifbool{sr-Latn-ME}{leadingzero}% + {\DTMtwodigits{#1}}% + {\number#1}\DTMsrLatnMEdatesep}% +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMsrLatnMEyearordinal} +% Define the year ordinal format to be used by this style. +% \begin{macrocode} + \newcommand*{\DTMsrLatnMEyearordinal}[1]{% + \number#1\DTMsrLatnMEdatesep}% +% \end{macrocode} +%\end{macro} +% +%\changes{2.0}{2019-11-07}{% +% Removed the option to switch between writing systems, since that is +% accomplished by using different regions or regionless styles ("serbian" and +% "serbianc" for example). +%} +% +% Define the month names. +% +%\begin{macro}{\DTMsrLatnMEnoimonthname} +% \begin{macrocode} +\newcommand*{\DTMsrLatnMEnoimonthname}{\DTMserbianlatnoimonthname} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMsrLatnMEnoiMonthname} +% \begin{macrocode} +\newcommand*{\DTMsrLatnMEnoiMonthname}{\DTMserbianlatnoiMonthname} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMsrLatnMEimonthname} +% \begin{macrocode} +\newcommand*{\DTMsrLatnMEimonthname}{\DTMserbianlatimonthname} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMsrLatnMEiMonthname} +% \begin{macrocode} +\newcommand*{\DTMsrLatnMEiMonthname}{\DTMserbianlatiMonthname} +% \end{macrocode} +%\end{macro} +% +% Define a boolean key that determines if the time zone mappings +% should be used. +% \begin{macrocode} +\DTMdefboolkey{sr-Latn-ME}{mapzone}[true]{} +% \end{macrocode} +% The default is to use mappings. +% \begin{macrocode} +\DTMsetbool{sr-Latn-ME}{mapzone}{true} +% \end{macrocode} +% +% Define a boolean key that determines if the day of month should be +% displayed. +% \begin{macrocode} +\DTMdefboolkey{sr-Latn-ME}{showdayofmonth}[true]{} +% \end{macrocode} +% The default is to show the day of month. +% \begin{macrocode} +\DTMsetbool{sr-Latn-ME}{showdayofmonth}{true} +% \end{macrocode} +% +% Define a boolean key that determines if the year should be +% displayed. +% \begin{macrocode} +\DTMdefboolkey{sr-Latn-ME}{showyear}[true]{} +% \end{macrocode} +% The default is to show the year. +% \begin{macrocode} +\DTMsetbool{sr-Latn-ME}{showyear}{true} +% \end{macrocode} +%\changes{2.0}{2019-11-07}{% +% Added weekday names. +%} +% \begin{macrocode} +\DTMnewstyle% +{sr-Latn-ME}% label +{% date style + \renewcommand*\DTMdisplaydate[4]{% + \ifDTMshowdow% + \ifnum##4>-1 + \DTMsrLatnMEweekdayname{##4}% + \DTMsrLatnMEdowdaysep% + \fi + \fi + \DTMifbool{sr-Latn-ME}{showdayofmonth} + {\DTMsrLatnMEdayordinal{##3}\DTMsrLatnMEdaymonthsep}% + {}% + \DTMifbool{sr-Latn-ME}{monthi}% + {\DTMsrLatnMEimonthname{##2}}% + {\DTMsrLatnMEnoimonthname{##2}}% + \DTMifbool{sr-Latn-ME}{showyear}% + {% + \DTMsrLatnMEmonthyearsep% + \DTMsrLatnMEyearordinal{##1}% + }% + {}% + }% + \renewcommand*\DTMDisplaydate[4]{% + \ifDTMshowdow% + \ifnum##4>-1 + \DTMsrLatnMEWeekdayname{##4}% + \DTMsrLatnMEdowdaysep% + \fi + \fi + \DTMifbool{sr-Latn-ME}{showdayofmonth} + {% + \DTMsrLatnMEdayordinal{##3}\DTMsrLatnMEdaymonthsep% + \DTMifbool{sr-Latn-ME}{monthi}% + {\DTMsrLatnMEimonthname{##2}}% + {\DTMsrLatnMEnoimonthname{##2}}% + }% + {% + \DTMifbool{sr-Latn-ME}{monthi}% + {\DTMsrLatnMEiMonthname{##2}}% + {\DTMsrLatnMEnoiMonthname{##2}}% + }% + \DTMifbool{sr-Latn-ME}{showyear}% + {% + \DTMsrLatnMEmonthyearsep% + \DTMsrLatnMEyearordinal{##1}% + }% + {}% + }% +}% +{% time style + \renewcommand*\DTMdisplaytime[3]{% + \DTMifbool{sr-Latn-ME}{leadingzero}{\DTMtwodigits{##1}}{\number##1}% + \DTMsrLatnMEtimesep\DTMtwodigits{##2}% + \ifDTMshowseconds\DTMsrLatnMEtimesep\DTMtwodigits{##3}\fi + }% +}% +{% zone style + \DTMresetzones% + \DTMsrLatnMEzonemaps% + \renewcommand*{\DTMdisplayzone}[2]{% + \DTMifbool{sr-Latn-ME}{mapzone}% + {\DTMusezonemapordefault{##1}{##2}}% + {% + \ifnum##1<0 + \else+\fi\DTMtwodigits{##1}% + \ifDTMshowzoneminutes\DTMsrLatnMEtimesep\DTMtwodigits{##2}\fi + }% + }% +}% +{% full style + \renewcommand*{\DTMdisplay}[9]{% + \ifDTMshowdate% + \DTMdisplaydate{##1}{##2}{##3}{##4}% + \DTMsrLatnMEdatetimesep% + \fi + \DTMdisplaytime{##5}{##6}{##7}% + \ifDTMshowzone% + \DTMsrLatnMEtimezonesep% + \DTMdisplayzone{##8}{##9}% + \fi + }% + \renewcommand*{\DTMDisplay}[9]{% + \ifDTMshowdate% + \DTMDisplaydate{##1}{##2}{##3}{##4}% + \DTMsrLatnMEdatetimesep% + \fi + \DTMdisplaytime{##5}{##6}{##7}% + \ifDTMshowzone% + \DTMsrLatnMEtimezonesep% + \DTMdisplayzone{##8}{##9}% + \fi + }% +}% +% \end{macrocode} +% +% +%\begin{macro}{\DTMsrLatnMEmonthordinal} +% Define the month ordinal format to be used by this style. +% \begin{macrocode} + \newcommand*{\DTMsrLatnMEmonthordinal}[1]{% + \DTMifbool{sr-Latn-ME}{leadingzero}{\DTMtwodigits{#1}}{\number#1}.}% +% \end{macrocode} +%\end{macro} +% +%\changes{2.0}{2019-11-07}{% +% Added a switch between multiple numeric month ordinal formats used in +% Serbian. +%} +% Define a setting to switch between Arabic, uppercase Roman and lowercase +% smallcaps Roman month format for the "srLatnME-numeric" style. +% \begin{macrocode} +\DTMdefchoicekey{sr-Latn-ME}{monthord}% +[\@dtm@val\@dtm@nr]{arabic,roman,romanlsc}{% + \ifcase\@dtm@nr\relax + \renewcommand*{\DTMsrLatnMEmonthordinal}[1]{% + \DTMifbool{sr-Latn-ME}{leadingzero}% + {\DTMtwodigits{##1}}{\number##1}\DTMsrLatnMEdatesep}% + \or% + \renewcommand*{\DTMsrLatnMEmonthordinal}[1]{% + \DTMtexorpdfstring{\protect\DTMserbianordinalROMAN{##1}}% + {serbianordinalROMAN{##1}}}% + \or% + \renewcommand*{\DTMsrLatnMEmonthordinal}[1]{% + \DTMtexorpdfstring{\textsc{\protect\DTMserbianordinalroman{##1}}}% + {serbianordinalROMAN{##1}}}% + \fi +} +% \end{macrocode} +% +%\changes{2.0}{2019-11-07}{% +% Fixed the (previously entirely wrong) numeric date style. +%} +%\changes{2.0}{2019-11-07}{% +% Added weekday names. +%} +% Define numeric style. +% \begin{macrocode} +\DTMnewstyle% +{sr-Latn-ME-numeric}% label +{% date style + \renewcommand*\DTMdisplaydate[4]{% + \ifDTMshowdow% + \ifnum##4>-1 + \DTMsrLatnMEweekdayname{##4}% + \DTMsrLatnMEdowdaysep% + \fi + \fi + \DTMifbool{sr-Latn-ME}{showdayofmonth}% + {\DTMsrLatnMEdayordinal{##3}\DTMsrLatnMEdaymonthsep}% + {}% + \DTMsrLatnMEmonthordinal{##2}% + \DTMifbool{sr-Latn-ME}{showyear}% + {% + \DTMsrLatnMEmonthyearsep% + \DTMsrLatnMEyearordinal{##1}% + }% + {}% + }% + \renewcommand*\DTMDisplaydate[4]{% + \ifDTMshowdow% + \ifnum##4>-1 + \DTMsrLatnMEWeekdayname{##4}% + \DTMsrLatnMEdowdaysep% + \fi + \fi + \DTMifbool{sr-Latn-ME}{showdayofmonth}% + {\DTMsrLatnMEdayordinal{##3}\DTMsrLatnMEdaymonthsep}% + {}% + \DTMsrLatnMEmonthordinal{##2}% + \DTMifbool{sr-Latn-ME}{showyear}% + {% + \DTMsrLatnMEmonthyearsep% + \DTMsrLatnMEyearordinal{##1}% + }% + {}% + }% +}% +{% time style + \renewcommand*\DTMdisplaytime[3]{% + \DTMifbool{sr-Latn-ME}{leadingzero}{\DTMtwodigits{##1}}{\number##1}% + \DTMsrLatnMEtimesep\DTMtwodigits{##2}% + \ifDTMshowseconds\DTMsrLatnMEtimesep\DTMtwodigits{##3}\fi + }% +}% +{% zone style + \DTMresetzones% + \DTMsrLatnMEzonemaps% + \renewcommand*{\DTMdisplayzone}[2]{% + \DTMifbool{sr-Latn-ME}{mapzone}% + {\DTMusezonemapordefault{##1}{##2}}% + {% + \ifnum##1<0 + \else+\fi\DTMtwodigits{##1}% + \ifDTMshowzoneminutes\DTMsrLatnMEtimesep\DTMtwodigits{##2}\fi + }% + }% +}% +{% full style + \renewcommand*{\DTMdisplay}[9]{% + \ifDTMshowdate% + \DTMdisplaydate{##1}{##2}{##3}{##4}% + \DTMsrLatnMEdatetimesep% + \fi + \DTMdisplaytime{##5}{##6}{##7}% + \ifDTMshowzone% + \DTMsrLatnMEtimezonesep% + \DTMdisplayzone{##8}{##9}% + \fi + }% + \renewcommand*{\DTMDisplay}{\DTMdisplay}% +} +% \end{macrocode} +% +%\begin{macro}{\DTMsr-Latn-MEzonemaps} +% The time zone mappings are set through this command, which can be +% redefined if extra mappings are required or mappings need to be +% removed. +% \begin{macrocode} +\newcommand*{\DTMsr-Latn-MEzonemaps}{% + \DTMdefzonemap{01}{00}{CET}% + \DTMdefzonemap{02}{00}{CEST}% +} +% \end{macrocode} +%\end{macro} + +% Switch style according to the \opt{useregional} setting. +% \begin{macrocode} +\DTMifcaseregional% +{}% do nothing +{\DTMsetstyle{sr-Latn-ME}}% +{\DTMsetstyle{sr-Latn-ME-numeric}}% +% \end{macrocode} +% +% Redefine \cs{dateserbian} (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.) +%\changes{1.1}{2019-09-14}{removed spurious space} +%\changes{2.0}{2019-11-07}{% +% Added regions. +%} +% \begin{macrocode} +\ifcsundef{date\CurrentTrackedDialect} +{% + \ifundef\dateserbian% + {% do nothing + }% + {% + \def\dateserbian{% + \DTMifcaseregional% + {}% do nothing + {\DTMsetstyle{sr-Latn-ME}}% + {\DTMsetstyle{sr-Latn-ME-numeric}}% + }% + }% +}% +{% + \csdef{date\CurrentTrackedDialect}{% + \DTMifcaseregional% + {}% do nothing + {\DTMsetstyle{sr-Latn-ME}}% + {\DTMsetstyle{sr-Latn-ME-numeric}}% + }% +}% +% \end{macrocode} +% +%\iffalse +% \begin{macrocode} +%</datetime2-sr-Latn-ME.ldf> +% \end{macrocode} +%\fi +% +%\iffalse +% \begin{macrocode} +%<*datetime2-sr-Latn-BA.ldf> +% \end{macrocode} +%\fi +% +%\subsection{Serbian \sty{sr-Latn-BA} Code +% (\texttt{datetime2-sr-Latn-BA.ldf})} +%\changes{1.0}{2015-03-24}{Initial release} +%\changes{2.0}{2019-11-07}{% +% Added regions, all settings made available to regions so all changes can be +% region-specific. +%} +% \begin{macrocode} +\ProvidesDateTimeModule{sr-Latn-BA}[2019/11/07 v2.0] +% \end{macrocode} +%\changes{2.0}{2019-11-07}{% +% All localization strings loaded from base module. +%} +% +% Load base Serbian module. +% \begin{macrocode} +\RequireDateTimeModule{serbian-base} +% \end{macrocode} +% +%\subsubsection{Defining the \sty{sr-Latn-BA} style} +% +% Allow the user a way of configuring the "srLatnBA" and +% "srLatnBA-numeric" styles by providing macros for various format +% elements. +% +% This doesn't use the package-wide separators such as \cs{dtm@datetimesep} in +% case other date formats are also required. +% +% +%\begin{macro}{\DTMsrLatnBAdowdaysep} +% The separator between weekday and day. +% \begin{macrocode} +\newcommand*{\DTMsrLatnBAdowdaysep}{,\space} +% \end{macrocode} +%\end{macro} +% +% +%\begin{macro}{\DTMsrLatnBAdaymonthsep} +% The separator between the day and month for the text format. +% \begin{macrocode} +\newcommand*{\DTMsrLatnBAdaymonthsep}{% + \DTMtexorpdfstring{\protect~}{\space}% +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMsrLatnBAmonthyearsep} +% The separator between the month and year for the text format. +% \begin{macrocode} +\newcommand*{\DTMsrLatnBAmonthyearsep}{\space} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMsrLatnBAdatetimesep} +% The separator between the date and time blocks in the full format (either +% text or numeric). +% \begin{macrocode} +\newcommand*{\DTMsrLatnBAdatetimesep}{\space} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMsrLatnBAtimezonesep} +% The separator between the time and zone blocks in the full format (either +% text or numeric). +% \begin{macrocode} +\newcommand*{\DTMsrLatnBAtimezonesep}{\space} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMsrLatnBAdatesep} +% The separator for the numeric date format. +% \begin{macrocode} +\newcommand*{\DTMsrLatnBAdatesep}{.} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMsrLatnBAtimesep} +% The separator for the numeric time format. +% \begin{macrocode} +\newcommand*{\DTMsrLatnBAtimesep}{.} +% \end{macrocode} +%\end{macro} +% +%Provide keys that can be used in \cs{DTMlangsetup} to set these separators. +% \begin{macrocode} +\DTMdefkey{sr-Latn-BA}{dowdaysep}% + {\renewcommand*{\DTMsr-Latn-BAdowdaysep}{#1}} +\DTMdefkey{sr-Latn-BA}{daymonthsep}% + {\renewcommand*{\DTMsr-Latn-BAdaymonthsep}{#1}} +\DTMdefkey{sr-Latn-BA}{monthyearsep}% + {\renewcommand*{\DTMsr-Latn-BAmonthyearsep}{#1}} +\DTMdefkey{sr-Latn-BA}{datetimesep}% + {\renewcommand*{\DTMsr-Latn-BAdatetimesep}{#1}} +\DTMdefkey{sr-Latn-BA}{timezonesep}% + {\renewcommand*{\DTMsr-Latn-BAtimezonesep}{#1}} +\DTMdefkey{sr-Latn-BA}{datesep}% + {\renewcommand*{\DTMsr-Latn-BAdatesep}{#1}} +\DTMdefkey{sr-Latn-BA}{timesep}% + {\renewcommand*{\DTMsr-Latn-BAtimesep}{#1}} +% \end{macrocode} +% +%\subsubsection{Switches and settings} +% +%\changes{2.0}{2019-11-07}{% +% Added weekday names. +%} +%\begin{macro}{\DTMsrLatnBAweekdayname} +% Define the weekday name, lowercase. +% \begin{macrocode} +\newcommand*{\DTMsrLatnBAweekdayname}% +{\DTMserbianlatijweekdayname} +% \end{macrocode} +%\end{macro} + +%\begin{macro}{\DTMsrLatnBAweekdayname} +% Define the weekday name, capitalized. +% \begin{macrocode} +\newcommand*{\DTMsrLatnBAWeekdayname}% + {\DTMserbianlatijWeekdayname} +% \end{macrocode} +%\end{macro} +% +% Provide a way to switch between Ekavian and Ijekavian pronunciation. +%\changes{2.0}{2019-11-07}{% +% Added a way to switch between Ekavian and Ijekavian pronunciation. +%} +% +% \begin{macrocode} +\DTMdefchoicekey{sr-Latn-BA}% + {pronunciation}[\@dtm@val\@dtm@nr]{ekavian,ijekavian}{% + \ifcase\@dtm@nr\relax + \renewcommand*{\DTMsrLatnBAweekdayname}% + {\DTMserbianlatekweekdayname}% + \renewcommand*{\DTMsrLatnBAWeekdayname}% + {\DTMserbianlatekWeekdayname}% + \or% + \renewcommand*{\DTMsrLatnBAweekdayname}% + {\DTMserbianlatijweekdayname}% + \renewcommand*{\DTMsrLatnBAWeekdayname} + {\DTMserbianlatijWeekdayname}% + \fi +} +% \end{macrocode} +% +%\changes{2.0}{2019-11-07}{% +% Added a way to switch June, July alternate spellings. +%} +% Define a boolean key that can switch between (jun, jul) and (juni, juli) +% month spellings. +% \begin{macrocode} +\DTMdefboolkey{sr-Latn-BA}{monthi}[true]{} +% \end{macrocode} +% The default is without the "i" suffix. +% \begin{macrocode} +\DTMsetbool{sr-Latn-BA}{monthi}{false} +% \end{macrocode} +% +%\changes{2.0}{2019-11-07}{% +% Added a switch for adding leading zeroes in day and month ordinals. +%} +% Define a boolean key that determines if the day and month ordinals should +% have leading zeroes. +% \begin{macrocode} +\DTMdefboolkey{sr-Latn-BA}{leadingzero}[true]{} +% \end{macrocode} +% The default is to omit the leading zero. +% \begin{macrocode} +\DTMsetbool{sr-Latn-BA}{leadingzero}{false} +% \end{macrocode} +% +% +% +%\begin{macro}{\DTMsrLatnBAdayordinal} +% Define the day ordinal format to be used by this style. +% \begin{macrocode} + \newcommand*{\DTMsrLatnBAdayordinal}[1]{% + \DTMifbool{sr-Latn-BA}{leadingzero}% + {\DTMtwodigits{#1}}% + {\number#1}\DTMsrLatnBAdatesep}% +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMsrLatnBAyearordinal} +% Define the year ordinal format to be used by this style. +% \begin{macrocode} + \newcommand*{\DTMsrLatnBAyearordinal}[1]{% + \number#1\DTMsrLatnBAdatesep}% +% \end{macrocode} +%\end{macro} +% +%\changes{2.0}{2019-11-07}{% +% Removed the option to switch between writing systems, since that is +% accomplished by using different regions or regionless styles ("serbian" and +% "serbianc" for example). +%} +% +% Define the month names. +% +%\begin{macro}{\DTMsrLatnBAnoimonthname} +% \begin{macrocode} +\newcommand*{\DTMsrLatnBAnoimonthname}{\DTMserbianlatnoimonthname} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMsrLatnBAnoiMonthname} +% \begin{macrocode} +\newcommand*{\DTMsrLatnBAnoiMonthname}{\DTMserbianlatnoiMonthname} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMsrLatnBAimonthname} +% \begin{macrocode} +\newcommand*{\DTMsrLatnBAimonthname}{\DTMserbianlatimonthname} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMsrLatnBAiMonthname} +% \begin{macrocode} +\newcommand*{\DTMsrLatnBAiMonthname}{\DTMserbianlatiMonthname} +% \end{macrocode} +%\end{macro} +% +% Define a boolean key that determines if the time zone mappings +% should be used. +% \begin{macrocode} +\DTMdefboolkey{sr-Latn-BA}{mapzone}[true]{} +% \end{macrocode} +% The default is to use mappings. +% \begin{macrocode} +\DTMsetbool{sr-Latn-BA}{mapzone}{true} +% \end{macrocode} +% +% Define a boolean key that determines if the day of month should be +% displayed. +% \begin{macrocode} +\DTMdefboolkey{sr-Latn-BA}{showdayofmonth}[true]{} +% \end{macrocode} +% The default is to show the day of month. +% \begin{macrocode} +\DTMsetbool{sr-Latn-BA}{showdayofmonth}{true} +% \end{macrocode} +% +% Define a boolean key that determines if the year should be +% displayed. +% \begin{macrocode} +\DTMdefboolkey{sr-Latn-BA}{showyear}[true]{} +% \end{macrocode} +% The default is to show the year. +% \begin{macrocode} +\DTMsetbool{sr-Latn-BA}{showyear}{true} +% \end{macrocode} +%\changes{2.0}{2019-11-07}{% +% Added weekday names. +%} +% \begin{macrocode} +\DTMnewstyle% +{sr-Latn-BA}% label +{% date style + \renewcommand*\DTMdisplaydate[4]{% + \ifDTMshowdow% + \ifnum##4>-1 + \DTMsrLatnBAweekdayname{##4}% + \DTMsrLatnBAdowdaysep% + \fi + \fi + \DTMifbool{sr-Latn-BA}{showdayofmonth} + {\DTMsrLatnBAdayordinal{##3}\DTMsrLatnBAdaymonthsep}% + {}% + \DTMifbool{sr-Latn-BA}{monthi}% + {\DTMsrLatnBAimonthname{##2}}% + {\DTMsrLatnBAnoimonthname{##2}}% + \DTMifbool{sr-Latn-BA}{showyear}% + {% + \DTMsrLatnBAmonthyearsep% + \DTMsrLatnBAyearordinal{##1}% + }% + {}% + }% + \renewcommand*\DTMDisplaydate[4]{% + \ifDTMshowdow% + \ifnum##4>-1 + \DTMsrLatnBAWeekdayname{##4}% + \DTMsrLatnBAdowdaysep% + \fi + \fi + \DTMifbool{sr-Latn-BA}{showdayofmonth} + {% + \DTMsrLatnBAdayordinal{##3}\DTMsrLatnBAdaymonthsep% + \DTMifbool{sr-Latn-BA}{monthi}% + {\DTMsrLatnBAimonthname{##2}}% + {\DTMsrLatnBAnoimonthname{##2}}% + }% + {% + \DTMifbool{sr-Latn-BA}{monthi}% + {\DTMsrLatnBAiMonthname{##2}}% + {\DTMsrLatnBAnoiMonthname{##2}}% + }% + \DTMifbool{sr-Latn-BA}{showyear}% + {% + \DTMsrLatnBAmonthyearsep% + \DTMsrLatnBAyearordinal{##1}% + }% + {}% + }% +}% +{% time style + \renewcommand*\DTMdisplaytime[3]{% + \DTMifbool{sr-Latn-BA}{leadingzero}{\DTMtwodigits{##1}}{\number##1}% + \DTMsrLatnBAtimesep\DTMtwodigits{##2}% + \ifDTMshowseconds\DTMsrLatnBAtimesep\DTMtwodigits{##3}\fi + }% +}% +{% zone style + \DTMresetzones% + \DTMsrLatnBAzonemaps% + \renewcommand*{\DTMdisplayzone}[2]{% + \DTMifbool{sr-Latn-BA}{mapzone}% + {\DTMusezonemapordefault{##1}{##2}}% + {% + \ifnum##1<0 + \else+\fi\DTMtwodigits{##1}% + \ifDTMshowzoneminutes\DTMsrLatnBAtimesep\DTMtwodigits{##2}\fi + }% + }% +}% +{% full style + \renewcommand*{\DTMdisplay}[9]{% + \ifDTMshowdate% + \DTMdisplaydate{##1}{##2}{##3}{##4}% + \DTMsrLatnBAdatetimesep% + \fi + \DTMdisplaytime{##5}{##6}{##7}% + \ifDTMshowzone% + \DTMsrLatnBAtimezonesep% + \DTMdisplayzone{##8}{##9}% + \fi + }% + \renewcommand*{\DTMDisplay}[9]{% + \ifDTMshowdate% + \DTMDisplaydate{##1}{##2}{##3}{##4}% + \DTMsrLatnBAdatetimesep% + \fi + \DTMdisplaytime{##5}{##6}{##7}% + \ifDTMshowzone% + \DTMsrLatnBAtimezonesep% + \DTMdisplayzone{##8}{##9}% + \fi + }% +}% +% \end{macrocode} +% +% +%\begin{macro}{\DTMsrLatnBAmonthordinal} +% Define the month ordinal format to be used by this style. +% \begin{macrocode} + \newcommand*{\DTMsrLatnBAmonthordinal}[1]{% + \DTMifbool{sr-Latn-BA}{leadingzero}{\DTMtwodigits{#1}}{\number#1}.}% +% \end{macrocode} +%\end{macro} +% +%\changes{2.0}{2019-11-07}{% +% Added a switch between multiple numeric month ordinal formats used in +% Serbian. +%} +% Define a setting to switch between Arabic, uppercase Roman and lowercase +% smallcaps Roman month format for the "srLatnBA-numeric" style. +% \begin{macrocode} +\DTMdefchoicekey{sr-Latn-BA}{monthord}% +[\@dtm@val\@dtm@nr]{arabic,roman,romanlsc}{% + \ifcase\@dtm@nr\relax + \renewcommand*{\DTMsrLatnBAmonthordinal}[1]{% + \DTMifbool{sr-Latn-BA}{leadingzero}% + {\DTMtwodigits{##1}}{\number##1}\DTMsrLatnBAdatesep}% + \or% + \renewcommand*{\DTMsrLatnBAmonthordinal}[1]{% + \DTMtexorpdfstring{\protect\DTMserbianordinalROMAN{##1}}% + {serbianordinalROMAN{##1}}}% + \or% + \renewcommand*{\DTMsrLatnBAmonthordinal}[1]{% + \DTMtexorpdfstring{\textsc{\protect\DTMserbianordinalroman{##1}}}% + {serbianordinalROMAN{##1}}}% + \fi +} +% \end{macrocode} +% +%\changes{2.0}{2019-11-07}{% +% Fixed the (previously entirely wrong) numeric date style. +%} +%\changes{2.0}{2019-11-07}{% +% Added weekday names. +%} +% Define numeric style. +% \begin{macrocode} +\DTMnewstyle% +{sr-Latn-BA-numeric}% label +{% date style + \renewcommand*\DTMdisplaydate[4]{% + \ifDTMshowdow% + \ifnum##4>-1 + \DTMsrLatnBAweekdayname{##4}% + \DTMsrLatnBAdowdaysep% + \fi + \fi + \DTMifbool{sr-Latn-BA}{showdayofmonth}% + {\DTMsrLatnBAdayordinal{##3}\DTMsrLatnBAdaymonthsep}% + {}% + \DTMsrLatnBAmonthordinal{##2}% + \DTMifbool{sr-Latn-BA}{showyear}% + {% + \DTMsrLatnBAmonthyearsep% + \DTMsrLatnBAyearordinal{##1}% + }% + {}% + }% + \renewcommand*\DTMDisplaydate[4]{% + \ifDTMshowdow% + \ifnum##4>-1 + \DTMsrLatnBAWeekdayname{##4}% + \DTMsrLatnBAdowdaysep% + \fi + \fi + \DTMifbool{sr-Latn-BA}{showdayofmonth}% + {\DTMsrLatnBAdayordinal{##3}\DTMsrLatnBAdaymonthsep}% + {}% + \DTMsrLatnBAmonthordinal{##2}% + \DTMifbool{sr-Latn-BA}{showyear}% + {% + \DTMsrLatnBAmonthyearsep% + \DTMsrLatnBAyearordinal{##1}% + }% + {}% + }% +}% +{% time style + \renewcommand*\DTMdisplaytime[3]{% + \DTMifbool{sr-Latn-BA}{leadingzero}{\DTMtwodigits{##1}}{\number##1}% + \DTMsrLatnBAtimesep\DTMtwodigits{##2}% + \ifDTMshowseconds\DTMsrLatnBAtimesep\DTMtwodigits{##3}\fi + }% +}% +{% zone style + \DTMresetzones% + \DTMsrLatnBAzonemaps% + \renewcommand*{\DTMdisplayzone}[2]{% + \DTMifbool{sr-Latn-BA}{mapzone}% + {\DTMusezonemapordefault{##1}{##2}}% + {% + \ifnum##1<0 + \else+\fi\DTMtwodigits{##1}% + \ifDTMshowzoneminutes\DTMsrLatnBAtimesep\DTMtwodigits{##2}\fi + }% + }% +}% +{% full style + \renewcommand*{\DTMdisplay}[9]{% + \ifDTMshowdate% + \DTMdisplaydate{##1}{##2}{##3}{##4}% + \DTMsrLatnBAdatetimesep% + \fi + \DTMdisplaytime{##5}{##6}{##7}% + \ifDTMshowzone% + \DTMsrLatnBAtimezonesep% + \DTMdisplayzone{##8}{##9}% + \fi + }% + \renewcommand*{\DTMDisplay}{\DTMdisplay}% +} +% \end{macrocode} +% +%\begin{macro}{\DTMsr-Latn-BAzonemaps} +% The time zone mappings are set through this command, which can be +% redefined if extra mappings are required or mappings need to be +% removed. +% \begin{macrocode} +\newcommand*{\DTMsr-Latn-BAzonemaps}{% + \DTMdefzonemap{01}{00}{CET}% + \DTMdefzonemap{02}{00}{CEST}% +} +% \end{macrocode} +%\end{macro} + +% Switch style according to the \opt{useregional} setting. +% \begin{macrocode} +\DTMifcaseregional% +{}% do nothing +{\DTMsetstyle{sr-Latn-BA}}% +{\DTMsetstyle{sr-Latn-BA-numeric}}% +% \end{macrocode} +% +% Redefine \cs{dateserbian} (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.) +%\changes{1.1}{2019-09-14}{removed spurious space} +%\changes{2.0}{2019-11-07}{% +% Added regions. +%} +% \begin{macrocode} +\ifcsundef{date\CurrentTrackedDialect} +{% + \ifundef\dateserbian% + {% do nothing + }% + {% + \def\dateserbian{% + \DTMifcaseregional% + {}% do nothing + {\DTMsetstyle{sr-Latn-BA}}% + {\DTMsetstyle{sr-Latn-BA-numeric}}% + }% + }% +}% +{% + \csdef{date\CurrentTrackedDialect}{% + \DTMifcaseregional% + {}% do nothing + {\DTMsetstyle{sr-Latn-BA}}% + {\DTMsetstyle{sr-Latn-BA-numeric}}% + }% +}% +% \end{macrocode} +% +%\iffalse +% \begin{macrocode} +%</datetime2-sr-Latn-BA.ldf> +% \end{macrocode} +%\fi +% +%\iffalse +% \begin{macrocode} +%<*datetime2-serbianc.ldf> +% \end{macrocode} +%\fi +% +%\subsection{Serbian \sty{serbianc} Code +% (\texttt{datetime2-serbianc.ldf})} +%\changes{1.0}{2015-03-24}{Initial release} +%\changes{2.0}{2019-11-07}{% +% Added regions, all settings made available to regions so all changes can be +% region-specific. +%} +% \begin{macrocode} +\ProvidesDateTimeModule{serbianc}[2019/11/07 v2.0] +% \end{macrocode} +%\changes{2.0}{2019-11-07}{% +% All localization strings loaded from base module. +%} +% +% Load base Serbian module. +% \begin{macrocode} +\RequireDateTimeModule{serbian-base} +% \end{macrocode} +% +%\subsubsection{Defining the \sty{serbianc} style} +% +% Allow the user a way of configuring the "serbianc" and +% "serbianc-numeric" styles by providing macros for various format +% elements. +% +% This doesn't use the package-wide separators such as \cs{dtm@datetimesep} in +% case other date formats are also required. +% +% +%\begin{macro}{\DTMserbiancdowdaysep} +% The separator between weekday and day. +% \begin{macrocode} +\newcommand*{\DTMserbiancdowdaysep}{,\space} +% \end{macrocode} +%\end{macro} +% +% +%\begin{macro}{\DTMserbiancdaymonthsep} +% The separator between the day and month for the text format. +% \begin{macrocode} +\newcommand*{\DTMserbiancdaymonthsep}{% + \DTMtexorpdfstring{\protect~}{\space}% +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMserbiancmonthyearsep} +% The separator between the month and year for the text format. +% \begin{macrocode} +\newcommand*{\DTMserbiancmonthyearsep}{\space} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMserbiancdatetimesep} +% The separator between the date and time blocks in the full format (either +% text or numeric). +% \begin{macrocode} +\newcommand*{\DTMserbiancdatetimesep}{\space} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMserbianctimezonesep} +% The separator between the time and zone blocks in the full format (either +% text or numeric). +% \begin{macrocode} +\newcommand*{\DTMserbianctimezonesep}{\space} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMserbiancdatesep} +% The separator for the numeric date format. +% \begin{macrocode} +\newcommand*{\DTMserbiancdatesep}{.} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMserbianctimesep} +% The separator for the numeric time format. +% \begin{macrocode} +\newcommand*{\DTMserbianctimesep}{.} +% \end{macrocode} +%\end{macro} +% +%Provide keys that can be used in \cs{DTMlangsetup} to set these separators. +% \begin{macrocode} +\DTMdefkey{serbianc}{dowdaysep}% + {\renewcommand*{\DTMserbiancdowdaysep}{#1}} +\DTMdefkey{serbianc}{daymonthsep}% + {\renewcommand*{\DTMserbiancdaymonthsep}{#1}} +\DTMdefkey{serbianc}{monthyearsep}% + {\renewcommand*{\DTMserbiancmonthyearsep}{#1}} +\DTMdefkey{serbianc}{datetimesep}% + {\renewcommand*{\DTMserbiancdatetimesep}{#1}} +\DTMdefkey{serbianc}{timezonesep}% + {\renewcommand*{\DTMserbianctimezonesep}{#1}} +\DTMdefkey{serbianc}{datesep}% + {\renewcommand*{\DTMserbiancdatesep}{#1}} +\DTMdefkey{serbianc}{timesep}% + {\renewcommand*{\DTMserbianctimesep}{#1}} +% \end{macrocode} +% +%\subsubsection{Switches and settings} +% +%\changes{2.0}{2019-11-07}{% +% Added weekday names. +%} +%\begin{macro}{\DTMserbiancweekdayname} +% Define the weekday name, lowercase. +% \begin{macrocode} +\newcommand*{\DTMserbiancweekdayname}% +{\DTMserbiancyrekweekdayname} +% \end{macrocode} +%\end{macro} + +%\begin{macro}{\DTMserbiancweekdayname} +% Define the weekday name, capitalized. +% \begin{macrocode} +\newcommand*{\DTMserbiancWeekdayname}% + {\DTMserbiancyrekWeekdayname} +% \end{macrocode} +%\end{macro} +% +% Provide a way to switch between Ekavian and Ijekavian pronunciation. +%\changes{2.0}{2019-11-07}{% +% Added a way to switch between Ekavian and Ijekavian pronunciation. +%} +% +% \begin{macrocode} +\DTMdefchoicekey{serbianc}% + {pronunciation}[\@dtm@val\@dtm@nr]{ekavian,ijekavian}{% + \ifcase\@dtm@nr\relax + \renewcommand*{\DTMserbiancweekdayname}% + {\DTMserbiancyrekweekdayname}% + \renewcommand*{\DTMserbiancWeekdayname}% + {\DTMserbiancyrekWeekdayname}% + \or% + \renewcommand*{\DTMserbiancweekdayname}% + {\DTMserbiancyrijweekdayname}% + \renewcommand*{\DTMserbiancWeekdayname} + {\DTMserbiancyrijWeekdayname}% + \fi +} +% \end{macrocode} +% +%\changes{2.0}{2019-11-07}{% +% Added a way to switch June, July alternate spellings. +%} +% Define a boolean key that can switch between (jun, jul) and (juni, juli) +% month spellings. +% \begin{macrocode} +\DTMdefboolkey{serbianc}{monthi}[true]{} +% \end{macrocode} +% The default is without the "i" suffix. +% \begin{macrocode} +\DTMsetbool{serbianc}{monthi}{false} +% \end{macrocode} +% +%\changes{2.0}{2019-11-07}{% +% Added a switch for adding leading zeroes in day and month ordinals. +%} +% Define a boolean key that determines if the day and month ordinals should +% have leading zeroes. +% \begin{macrocode} +\DTMdefboolkey{serbianc}{leadingzero}[true]{} +% \end{macrocode} +% The default is to omit the leading zero. +% \begin{macrocode} +\DTMsetbool{serbianc}{leadingzero}{false} +% \end{macrocode} +% +% +% +%\begin{macro}{\DTMserbiancdayordinal} +% Define the day ordinal format to be used by this style. +% \begin{macrocode} + \newcommand*{\DTMserbiancdayordinal}[1]{% + \DTMifbool{serbianc}{leadingzero}% + {\DTMtwodigits{#1}}% + {\number#1}\DTMserbiancdatesep}% +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMserbiancyearordinal} +% Define the year ordinal format to be used by this style. +% \begin{macrocode} + \newcommand*{\DTMserbiancyearordinal}[1]{% + \number#1\DTMserbiancdatesep}% +% \end{macrocode} +%\end{macro} +% +%\changes{2.0}{2019-11-07}{% +% Removed the option to switch between writing systems, since that is +% accomplished by using different regions or regionless styles ("serbian" and +% "serbianc" for example). +%} +% +% Define the month names. +% +%\begin{macro}{\DTMserbiancnoimonthname} +% \begin{macrocode} +\newcommand*{\DTMserbiancnoimonthname}{\DTMserbiancyrnoimonthname} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMserbiancnoiMonthname} +% \begin{macrocode} +\newcommand*{\DTMserbiancnoiMonthname}{\DTMserbiancyrnoiMonthname} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMserbiancimonthname} +% \begin{macrocode} +\newcommand*{\DTMserbiancimonthname}{\DTMserbiancyrimonthname} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMserbianciMonthname} +% \begin{macrocode} +\newcommand*{\DTMserbianciMonthname}{\DTMserbiancyriMonthname} +% \end{macrocode} +%\end{macro} +% +% Define a boolean key that determines if the time zone mappings +% should be used. +% \begin{macrocode} +\DTMdefboolkey{serbianc}{mapzone}[true]{} +% \end{macrocode} +% The default is to use mappings. +% \begin{macrocode} +\DTMsetbool{serbianc}{mapzone}{true} +% \end{macrocode} +% +% Define a boolean key that determines if the day of month should be +% displayed. +% \begin{macrocode} +\DTMdefboolkey{serbianc}{showdayofmonth}[true]{} +% \end{macrocode} +% The default is to show the day of month. +% \begin{macrocode} +\DTMsetbool{serbianc}{showdayofmonth}{true} +% \end{macrocode} +% +% Define a boolean key that determines if the year should be +% displayed. +% \begin{macrocode} +\DTMdefboolkey{serbianc}{showyear}[true]{} +% \end{macrocode} +% The default is to show the year. +% \begin{macrocode} +\DTMsetbool{serbianc}{showyear}{true} +% \end{macrocode} +%\changes{2.0}{2019-11-07}{% +% Added weekday names. +%} +% \begin{macrocode} +\DTMnewstyle% +{serbianc}% label +{% date style + \renewcommand*\DTMdisplaydate[4]{% + \ifDTMshowdow% + \ifnum##4>-1 + \DTMserbiancweekdayname{##4}% + \DTMserbiancdowdaysep% + \fi + \fi + \DTMifbool{serbianc}{showdayofmonth} + {\DTMserbiancdayordinal{##3}\DTMserbiancdaymonthsep}% + {}% + \DTMifbool{serbianc}{monthi}% + {\DTMserbiancimonthname{##2}}% + {\DTMserbiancnoimonthname{##2}}% + \DTMifbool{serbianc}{showyear}% + {% + \DTMserbiancmonthyearsep% + \DTMserbiancyearordinal{##1}% + }% + {}% + }% + \renewcommand*\DTMDisplaydate[4]{% + \ifDTMshowdow% + \ifnum##4>-1 + \DTMserbiancWeekdayname{##4}% + \DTMserbiancdowdaysep% + \fi + \fi + \DTMifbool{serbianc}{showdayofmonth} + {% + \DTMserbiancdayordinal{##3}\DTMserbiancdaymonthsep% + \DTMifbool{serbianc}{monthi}% + {\DTMserbiancimonthname{##2}}% + {\DTMserbiancnoimonthname{##2}}% + }% + {% + \DTMifbool{serbianc}{monthi}% + {\DTMserbianciMonthname{##2}}% + {\DTMserbiancnoiMonthname{##2}}% + }% + \DTMifbool{serbianc}{showyear}% + {% + \DTMserbiancmonthyearsep% + \DTMserbiancyearordinal{##1}% + }% + {}% + }% +}% +{% time style + \renewcommand*\DTMdisplaytime[3]{% + \DTMifbool{serbianc}{leadingzero}{\DTMtwodigits{##1}}{\number##1}% + \DTMserbianctimesep\DTMtwodigits{##2}% + \ifDTMshowseconds\DTMserbianctimesep\DTMtwodigits{##3}\fi + }% +}% +{% zone style + \DTMresetzones% + \DTMserbianczonemaps% + \renewcommand*{\DTMdisplayzone}[2]{% + \DTMifbool{serbianc}{mapzone}% + {\DTMusezonemapordefault{##1}{##2}}% + {% + \ifnum##1<0 + \else+\fi\DTMtwodigits{##1}% + \ifDTMshowzoneminutes\DTMserbianctimesep\DTMtwodigits{##2}\fi + }% + }% +}% +{% full style + \renewcommand*{\DTMdisplay}[9]{% + \ifDTMshowdate% + \DTMdisplaydate{##1}{##2}{##3}{##4}% + \DTMserbiancdatetimesep% + \fi + \DTMdisplaytime{##5}{##6}{##7}% + \ifDTMshowzone% + \DTMserbianctimezonesep% + \DTMdisplayzone{##8}{##9}% + \fi + }% + \renewcommand*{\DTMDisplay}[9]{% + \ifDTMshowdate% + \DTMDisplaydate{##1}{##2}{##3}{##4}% + \DTMserbiancdatetimesep% + \fi + \DTMdisplaytime{##5}{##6}{##7}% + \ifDTMshowzone% + \DTMserbianctimezonesep% + \DTMdisplayzone{##8}{##9}% + \fi + }% +}% +% \end{macrocode} +% +% +%\begin{macro}{\DTMserbiancmonthordinal} +% Define the month ordinal format to be used by this style. +% \begin{macrocode} + \newcommand*{\DTMserbiancmonthordinal}[1]{% + \DTMifbool{serbianc}{leadingzero}{\DTMtwodigits{#1}}{\number#1}.}% +% \end{macrocode} +%\end{macro} +% +%\changes{2.0}{2019-11-07}{% +% Added a switch between multiple numeric month ordinal formats used in +% Serbian. +%} +% Define a setting to switch between Arabic, uppercase Roman and lowercase +% smallcaps Roman month format for the "serbianc-numeric" style. +% \begin{macrocode} +\DTMdefchoicekey{serbianc}{monthord}% +[\@dtm@val\@dtm@nr]{arabic,roman,romanlsc}{% + \ifcase\@dtm@nr\relax + \renewcommand*{\DTMserbiancmonthordinal}[1]{% + \DTMifbool{serbianc}{leadingzero}% + {\DTMtwodigits{##1}}{\number##1}\DTMserbiancdatesep}% + \or% + \renewcommand*{\DTMserbiancmonthordinal}[1]{% + \DTMtexorpdfstring{\protect\DTMserbianordinalROMAN{##1}}% + {serbianordinalROMAN{##1}}}% + \or% + \renewcommand*{\DTMserbiancmonthordinal}[1]{% + \DTMtexorpdfstring{\textsc{\protect\DTMserbianordinalroman{##1}}}% + {serbianordinalROMAN{##1}}}% + \fi +} +% \end{macrocode} +% +%\changes{2.0}{2019-11-07}{% +% Fixed the (previously entirely wrong) numeric date style. +%} +%\changes{2.0}{2019-11-07}{% +% Added weekday names. +%} +% Define numeric style. +% \begin{macrocode} +\DTMnewstyle% +{serbianc-numeric}% label +{% date style + \renewcommand*\DTMdisplaydate[4]{% + \ifDTMshowdow% + \ifnum##4>-1 + \DTMserbiancweekdayname{##4}% + \DTMserbiancdowdaysep% + \fi + \fi + \DTMifbool{serbianc}{showdayofmonth}% + {\DTMserbiancdayordinal{##3}\DTMserbiancdaymonthsep}% + {}% + \DTMserbiancmonthordinal{##2}% + \DTMifbool{serbianc}{showyear}% + {% + \DTMserbiancmonthyearsep% + \DTMserbiancyearordinal{##1}% + }% + {}% + }% + \renewcommand*\DTMDisplaydate[4]{% + \ifDTMshowdow% + \ifnum##4>-1 + \DTMserbiancWeekdayname{##4}% + \DTMserbiancdowdaysep% + \fi + \fi + \DTMifbool{serbianc}{showdayofmonth}% + {\DTMserbiancdayordinal{##3}\DTMserbiancdaymonthsep}% + {}% + \DTMserbiancmonthordinal{##2}% + \DTMifbool{serbianc}{showyear}% + {% + \DTMserbiancmonthyearsep% + \DTMserbiancyearordinal{##1}% + }% + {}% + }% +}% +{% time style + \renewcommand*\DTMdisplaytime[3]{% + \DTMifbool{serbianc}{leadingzero}{\DTMtwodigits{##1}}{\number##1}% + \DTMserbianctimesep\DTMtwodigits{##2}% + \ifDTMshowseconds\DTMserbianctimesep\DTMtwodigits{##3}\fi + }% +}% +{% zone style + \DTMresetzones% + \DTMserbianczonemaps% + \renewcommand*{\DTMdisplayzone}[2]{% + \DTMifbool{serbianc}{mapzone}% + {\DTMusezonemapordefault{##1}{##2}}% + {% + \ifnum##1<0 + \else+\fi\DTMtwodigits{##1}% + \ifDTMshowzoneminutes\DTMserbianctimesep\DTMtwodigits{##2}\fi + }% + }% +}% +{% full style + \renewcommand*{\DTMdisplay}[9]{% + \ifDTMshowdate% + \DTMdisplaydate{##1}{##2}{##3}{##4}% + \DTMserbiancdatetimesep% + \fi + \DTMdisplaytime{##5}{##6}{##7}% + \ifDTMshowzone% + \DTMserbianctimezonesep% + \DTMdisplayzone{##8}{##9}% + \fi + }% + \renewcommand*{\DTMDisplay}{\DTMdisplay}% +} +% \end{macrocode} +% +%\begin{macro}{\DTMserbianczonemaps} +% The time zone mappings are set through this command, which can be +% redefined if extra mappings are required or mappings need to be +% removed. +% \begin{macrocode} +\newcommand*{\DTMserbianczonemaps}{% + \DTMdefzonemap{01}{00}{CET}% + \DTMdefzonemap{02}{00}{CEST}% +} +% \end{macrocode} +%\end{macro} + +% Switch style according to the \opt{useregional} setting. +% \begin{macrocode} +\DTMifcaseregional% +{}% do nothing +{\DTMsetstyle{serbianc}}% +{\DTMsetstyle{serbianc-numeric}}% +% \end{macrocode} +% +% Redefine \cs{dateserbianc} (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.) +%\changes{1.1}{2019-09-14}{removed spurious space} +%\changes{2.0}{2019-11-07}{% +% Added regions. +%} +% \begin{macrocode} +\ifcsundef{date\CurrentTrackedDialect} +{% + \ifundef\dateserbianc% + {% do nothing + }% + {% + \def\dateserbianc{% + \DTMifcaseregional% + {}% do nothing + {\DTMsetstyle{serbianc}}% + {\DTMsetstyle{serbianc-numeric}}% + }% + }% +}% +{% + \csdef{date\CurrentTrackedDialect}{% + \DTMifcaseregional% + {}% do nothing + {\DTMsetstyle{serbianc}}% + {\DTMsetstyle{serbianc-numeric}}% + }% +}% +% \end{macrocode} +% +%\iffalse +% \begin{macrocode} +%</datetime2-serbianc.ldf> +% \end{macrocode} +%\fi +% +%\iffalse +% \begin{macrocode} +%<*datetime2-sr-Cyrl.ldf> +% \end{macrocode} +%\fi +% +%\subsection{Serbian \sty{sr-Cyrl} Code +% (\texttt{datetime2-sr-Cyrl.ldf})} +%\changes{1.0}{2015-03-24}{Initial release} +%\changes{2.0}{2019-11-07}{% +% Added regions, all settings made available to regions so all changes can be +% region-specific. +%} +% \begin{macrocode} +\ProvidesDateTimeModule{sr-Cyrl}[2019/11/07 v2.0] +% \end{macrocode} +%\changes{2.0}{2019-11-07}{% +% All localization strings loaded from base module. +%} +% +% Load base Serbian module. +% \begin{macrocode} +\RequireDateTimeModule{serbian-base} +% \end{macrocode} +% +%\subsubsection{Defining the \sty{sr-Cyrl} style} +% +% Allow the user a way of configuring the "srCyrl" and +% "srCyrl-numeric" styles by providing macros for various format +% elements. +% +% This doesn't use the package-wide separators such as \cs{dtm@datetimesep} in +% case other date formats are also required. +% +% +%\begin{macro}{\DTMsrCyrldowdaysep} +% The separator between weekday and day. +% \begin{macrocode} +\newcommand*{\DTMsrCyrldowdaysep}{,\space} +% \end{macrocode} +%\end{macro} +% +% +%\begin{macro}{\DTMsrCyrldaymonthsep} +% The separator between the day and month for the text format. +% \begin{macrocode} +\newcommand*{\DTMsrCyrldaymonthsep}{% + \DTMtexorpdfstring{\protect~}{\space}% +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMsrCyrlmonthyearsep} +% The separator between the month and year for the text format. +% \begin{macrocode} +\newcommand*{\DTMsrCyrlmonthyearsep}{\space} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMsrCyrldatetimesep} +% The separator between the date and time blocks in the full format (either +% text or numeric). +% \begin{macrocode} +\newcommand*{\DTMsrCyrldatetimesep}{\space} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMsrCyrltimezonesep} +% The separator between the time and zone blocks in the full format (either +% text or numeric). +% \begin{macrocode} +\newcommand*{\DTMsrCyrltimezonesep}{\space} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMsrCyrldatesep} +% The separator for the numeric date format. +% \begin{macrocode} +\newcommand*{\DTMsrCyrldatesep}{.} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMsrCyrltimesep} +% The separator for the numeric time format. +% \begin{macrocode} +\newcommand*{\DTMsrCyrltimesep}{.} +% \end{macrocode} +%\end{macro} +% +%Provide keys that can be used in \cs{DTMlangsetup} to set these separators. +% \begin{macrocode} +\DTMdefkey{sr-Cyrl}{dowdaysep}% + {\renewcommand*{\DTMsr-Cyrldowdaysep}{#1}} +\DTMdefkey{sr-Cyrl}{daymonthsep}% + {\renewcommand*{\DTMsr-Cyrldaymonthsep}{#1}} +\DTMdefkey{sr-Cyrl}{monthyearsep}% + {\renewcommand*{\DTMsr-Cyrlmonthyearsep}{#1}} +\DTMdefkey{sr-Cyrl}{datetimesep}% + {\renewcommand*{\DTMsr-Cyrldatetimesep}{#1}} +\DTMdefkey{sr-Cyrl}{timezonesep}% + {\renewcommand*{\DTMsr-Cyrltimezonesep}{#1}} +\DTMdefkey{sr-Cyrl}{datesep}% + {\renewcommand*{\DTMsr-Cyrldatesep}{#1}} +\DTMdefkey{sr-Cyrl}{timesep}% + {\renewcommand*{\DTMsr-Cyrltimesep}{#1}} +% \end{macrocode} +% +%\subsubsection{Switches and settings} +% +%\changes{2.0}{2019-11-07}{% +% Added weekday names. +%} +%\begin{macro}{\DTMsrCyrlweekdayname} +% Define the weekday name, lowercase. +% \begin{macrocode} +\newcommand*{\DTMsrCyrlweekdayname}% +{\DTMserbiancyrekweekdayname} +% \end{macrocode} +%\end{macro} + +%\begin{macro}{\DTMsrCyrlweekdayname} +% Define the weekday name, capitalized. +% \begin{macrocode} +\newcommand*{\DTMsrCyrlWeekdayname}% + {\DTMserbiancyrekWeekdayname} +% \end{macrocode} +%\end{macro} +% +% Provide a way to switch between Ekavian and Ijekavian pronunciation. +%\changes{2.0}{2019-11-07}{% +% Added a way to switch between Ekavian and Ijekavian pronunciation. +%} +% +% \begin{macrocode} +\DTMdefchoicekey{sr-Cyrl}% + {pronunciation}[\@dtm@val\@dtm@nr]{ekavian,ijekavian}{% + \ifcase\@dtm@nr\relax + \renewcommand*{\DTMsrCyrlweekdayname}% + {\DTMserbiancyrekweekdayname}% + \renewcommand*{\DTMsrCyrlWeekdayname}% + {\DTMserbiancyrekWeekdayname}% + \or% + \renewcommand*{\DTMsrCyrlweekdayname}% + {\DTMserbiancyrijweekdayname}% + \renewcommand*{\DTMsrCyrlWeekdayname} + {\DTMserbiancyrijWeekdayname}% + \fi +} +% \end{macrocode} +% +%\changes{2.0}{2019-11-07}{% +% Added a way to switch June, July alternate spellings. +%} +% Define a boolean key that can switch between (jun, jul) and (juni, juli) +% month spellings. +% \begin{macrocode} +\DTMdefboolkey{sr-Cyrl}{monthi}[true]{} +% \end{macrocode} +% The default is without the "i" suffix. +% \begin{macrocode} +\DTMsetbool{sr-Cyrl}{monthi}{false} +% \end{macrocode} +% +%\changes{2.0}{2019-11-07}{% +% Added a switch for adding leading zeroes in day and month ordinals. +%} +% Define a boolean key that determines if the day and month ordinals should +% have leading zeroes. +% \begin{macrocode} +\DTMdefboolkey{sr-Cyrl}{leadingzero}[true]{} +% \end{macrocode} +% The default is to omit the leading zero. +% \begin{macrocode} +\DTMsetbool{sr-Cyrl}{leadingzero}{false} +% \end{macrocode} +% +% +% +%\begin{macro}{\DTMsrCyrldayordinal} +% Define the day ordinal format to be used by this style. +% \begin{macrocode} + \newcommand*{\DTMsrCyrldayordinal}[1]{% + \DTMifbool{sr-Cyrl}{leadingzero}% + {\DTMtwodigits{#1}}% + {\number#1}\DTMsrCyrldatesep}% +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMsrCyrlyearordinal} +% Define the year ordinal format to be used by this style. +% \begin{macrocode} + \newcommand*{\DTMsrCyrlyearordinal}[1]{% + \number#1\DTMsrCyrldatesep}% +% \end{macrocode} +%\end{macro} +% +%\changes{2.0}{2019-11-07}{% +% Removed the option to switch between writing systems, since that is +% accomplished by using different regions or regionless styles ("serbian" and +% "serbianc" for example). +%} +% +% Define the month names. +% +%\begin{macro}{\DTMsrCyrlnoimonthname} +% \begin{macrocode} +\newcommand*{\DTMsrCyrlnoimonthname}{\DTMserbiancyrnoimonthname} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMsrCyrlnoiMonthname} +% \begin{macrocode} +\newcommand*{\DTMsrCyrlnoiMonthname}{\DTMserbiancyrnoiMonthname} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMsrCyrlimonthname} +% \begin{macrocode} +\newcommand*{\DTMsrCyrlimonthname}{\DTMserbiancyrimonthname} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMsrCyrliMonthname} +% \begin{macrocode} +\newcommand*{\DTMsrCyrliMonthname}{\DTMserbiancyriMonthname} +% \end{macrocode} +%\end{macro} +% +% Define a boolean key that determines if the time zone mappings +% should be used. +% \begin{macrocode} +\DTMdefboolkey{sr-Cyrl}{mapzone}[true]{} +% \end{macrocode} +% The default is to use mappings. +% \begin{macrocode} +\DTMsetbool{sr-Cyrl}{mapzone}{true} +% \end{macrocode} +% +% Define a boolean key that determines if the day of month should be +% displayed. +% \begin{macrocode} +\DTMdefboolkey{sr-Cyrl}{showdayofmonth}[true]{} +% \end{macrocode} +% The default is to show the day of month. +% \begin{macrocode} +\DTMsetbool{sr-Cyrl}{showdayofmonth}{true} +% \end{macrocode} +% +% Define a boolean key that determines if the year should be +% displayed. +% \begin{macrocode} +\DTMdefboolkey{sr-Cyrl}{showyear}[true]{} +% \end{macrocode} +% The default is to show the year. +% \begin{macrocode} +\DTMsetbool{sr-Cyrl}{showyear}{true} +% \end{macrocode} +%\changes{2.0}{2019-11-07}{% +% Added weekday names. +%} +% \begin{macrocode} +\DTMnewstyle% +{sr-Cyrl}% label +{% date style + \renewcommand*\DTMdisplaydate[4]{% + \ifDTMshowdow% + \ifnum##4>-1 + \DTMsrCyrlweekdayname{##4}% + \DTMsrCyrldowdaysep% + \fi + \fi + \DTMifbool{sr-Cyrl}{showdayofmonth} + {\DTMsrCyrldayordinal{##3}\DTMsrCyrldaymonthsep}% + {}% + \DTMifbool{sr-Cyrl}{monthi}% + {\DTMsrCyrlimonthname{##2}}% + {\DTMsrCyrlnoimonthname{##2}}% + \DTMifbool{sr-Cyrl}{showyear}% + {% + \DTMsrCyrlmonthyearsep% + \DTMsrCyrlyearordinal{##1}% + }% + {}% + }% + \renewcommand*\DTMDisplaydate[4]{% + \ifDTMshowdow% + \ifnum##4>-1 + \DTMsrCyrlWeekdayname{##4}% + \DTMsrCyrldowdaysep% + \fi + \fi + \DTMifbool{sr-Cyrl}{showdayofmonth} + {% + \DTMsrCyrldayordinal{##3}\DTMsrCyrldaymonthsep% + \DTMifbool{sr-Cyrl}{monthi}% + {\DTMsrCyrlimonthname{##2}}% + {\DTMsrCyrlnoimonthname{##2}}% + }% + {% + \DTMifbool{sr-Cyrl}{monthi}% + {\DTMsrCyrliMonthname{##2}}% + {\DTMsrCyrlnoiMonthname{##2}}% + }% + \DTMifbool{sr-Cyrl}{showyear}% + {% + \DTMsrCyrlmonthyearsep% + \DTMsrCyrlyearordinal{##1}% + }% + {}% + }% +}% +{% time style + \renewcommand*\DTMdisplaytime[3]{% + \DTMifbool{sr-Cyrl}{leadingzero}{\DTMtwodigits{##1}}{\number##1}% + \DTMsrCyrltimesep\DTMtwodigits{##2}% + \ifDTMshowseconds\DTMsrCyrltimesep\DTMtwodigits{##3}\fi + }% +}% +{% zone style + \DTMresetzones% + \DTMsrCyrlzonemaps% + \renewcommand*{\DTMdisplayzone}[2]{% + \DTMifbool{sr-Cyrl}{mapzone}% + {\DTMusezonemapordefault{##1}{##2}}% + {% + \ifnum##1<0 + \else+\fi\DTMtwodigits{##1}% + \ifDTMshowzoneminutes\DTMsrCyrltimesep\DTMtwodigits{##2}\fi + }% + }% +}% +{% full style + \renewcommand*{\DTMdisplay}[9]{% + \ifDTMshowdate% + \DTMdisplaydate{##1}{##2}{##3}{##4}% + \DTMsrCyrldatetimesep% + \fi + \DTMdisplaytime{##5}{##6}{##7}% + \ifDTMshowzone% + \DTMsrCyrltimezonesep% + \DTMdisplayzone{##8}{##9}% + \fi + }% + \renewcommand*{\DTMDisplay}[9]{% + \ifDTMshowdate% + \DTMDisplaydate{##1}{##2}{##3}{##4}% + \DTMsrCyrldatetimesep% + \fi + \DTMdisplaytime{##5}{##6}{##7}% + \ifDTMshowzone% + \DTMsrCyrltimezonesep% + \DTMdisplayzone{##8}{##9}% + \fi + }% +}% +% \end{macrocode} +% +% +%\begin{macro}{\DTMsrCyrlmonthordinal} +% Define the month ordinal format to be used by this style. +% \begin{macrocode} + \newcommand*{\DTMsrCyrlmonthordinal}[1]{% + \DTMifbool{sr-Cyrl}{leadingzero}{\DTMtwodigits{#1}}{\number#1}.}% +% \end{macrocode} +%\end{macro} +% +%\changes{2.0}{2019-11-07}{% +% Added a switch between multiple numeric month ordinal formats used in +% Serbian. +%} +% Define a setting to switch between Arabic, uppercase Roman and lowercase +% smallcaps Roman month format for the "srCyrl-numeric" style. +% \begin{macrocode} +\DTMdefchoicekey{sr-Cyrl}{monthord}% +[\@dtm@val\@dtm@nr]{arabic,roman,romanlsc}{% + \ifcase\@dtm@nr\relax + \renewcommand*{\DTMsrCyrlmonthordinal}[1]{% + \DTMifbool{sr-Cyrl}{leadingzero}% + {\DTMtwodigits{##1}}{\number##1}\DTMsrCyrldatesep}% + \or% + \renewcommand*{\DTMsrCyrlmonthordinal}[1]{% + \DTMtexorpdfstring{\protect\DTMserbianordinalROMAN{##1}}% + {serbianordinalROMAN{##1}}}% + \or% + \renewcommand*{\DTMsrCyrlmonthordinal}[1]{% + \DTMtexorpdfstring{\textsc{\protect\DTMserbianordinalroman{##1}}}% + {serbianordinalROMAN{##1}}}% + \fi +} +% \end{macrocode} +% +%\changes{2.0}{2019-11-07}{% +% Fixed the (previously entirely wrong) numeric date style. +%} +%\changes{2.0}{2019-11-07}{% +% Added weekday names. +%} +% Define numeric style. +% \begin{macrocode} +\DTMnewstyle% +{sr-Cyrl-numeric}% label +{% date style + \renewcommand*\DTMdisplaydate[4]{% + \ifDTMshowdow% + \ifnum##4>-1 + \DTMsrCyrlweekdayname{##4}% + \DTMsrCyrldowdaysep% + \fi + \fi + \DTMifbool{sr-Cyrl}{showdayofmonth}% + {\DTMsrCyrldayordinal{##3}\DTMsrCyrldaymonthsep}% + {}% + \DTMsrCyrlmonthordinal{##2}% + \DTMifbool{sr-Cyrl}{showyear}% + {% + \DTMsrCyrlmonthyearsep% + \DTMsrCyrlyearordinal{##1}% + }% + {}% + }% + \renewcommand*\DTMDisplaydate[4]{% + \ifDTMshowdow% + \ifnum##4>-1 + \DTMsrCyrlWeekdayname{##4}% + \DTMsrCyrldowdaysep% + \fi + \fi + \DTMifbool{sr-Cyrl}{showdayofmonth}% + {\DTMsrCyrldayordinal{##3}\DTMsrCyrldaymonthsep}% + {}% + \DTMsrCyrlmonthordinal{##2}% + \DTMifbool{sr-Cyrl}{showyear}% + {% + \DTMsrCyrlmonthyearsep% + \DTMsrCyrlyearordinal{##1}% + }% + {}% + }% +}% +{% time style + \renewcommand*\DTMdisplaytime[3]{% + \DTMifbool{sr-Cyrl}{leadingzero}{\DTMtwodigits{##1}}{\number##1}% + \DTMsrCyrltimesep\DTMtwodigits{##2}% + \ifDTMshowseconds\DTMsrCyrltimesep\DTMtwodigits{##3}\fi + }% +}% +{% zone style + \DTMresetzones% + \DTMsrCyrlzonemaps% + \renewcommand*{\DTMdisplayzone}[2]{% + \DTMifbool{sr-Cyrl}{mapzone}% + {\DTMusezonemapordefault{##1}{##2}}% + {% + \ifnum##1<0 + \else+\fi\DTMtwodigits{##1}% + \ifDTMshowzoneminutes\DTMsrCyrltimesep\DTMtwodigits{##2}\fi + }% + }% +}% +{% full style + \renewcommand*{\DTMdisplay}[9]{% + \ifDTMshowdate% + \DTMdisplaydate{##1}{##2}{##3}{##4}% + \DTMsrCyrldatetimesep% + \fi + \DTMdisplaytime{##5}{##6}{##7}% + \ifDTMshowzone% + \DTMsrCyrltimezonesep% + \DTMdisplayzone{##8}{##9}% + \fi + }% + \renewcommand*{\DTMDisplay}{\DTMdisplay}% +} +% \end{macrocode} +% +%\begin{macro}{\DTMsr-Cyrlzonemaps} +% The time zone mappings are set through this command, which can be +% redefined if extra mappings are required or mappings need to be +% removed. +% \begin{macrocode} +\newcommand*{\DTMsr-Cyrlzonemaps}{% + \DTMdefzonemap{01}{00}{CET}% + \DTMdefzonemap{02}{00}{CEST}% +} +% \end{macrocode} +%\end{macro} + +% Switch style according to the \opt{useregional} setting. +% \begin{macrocode} +\DTMifcaseregional% +{}% do nothing +{\DTMsetstyle{sr-Cyrl}}% +{\DTMsetstyle{sr-Cyrl-numeric}}% +% \end{macrocode} +% +% Redefine \cs{dateserbianc} (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.) +%\changes{1.1}{2019-09-14}{removed spurious space} +%\changes{2.0}{2019-11-07}{% +% Added regions. +%} +% \begin{macrocode} +\ifcsundef{date\CurrentTrackedDialect} +{% + \ifundef\dateserbianc% + {% do nothing + }% + {% + \def\dateserbianc{% + \DTMifcaseregional% + {}% do nothing + {\DTMsetstyle{sr-Cyrl}}% + {\DTMsetstyle{sr-Cyrl-numeric}}% + }% + }% +}% +{% + \csdef{date\CurrentTrackedDialect}{% + \DTMifcaseregional% + {}% do nothing + {\DTMsetstyle{sr-Cyrl}}% + {\DTMsetstyle{sr-Cyrl-numeric}}% + }% +}% +% \end{macrocode} +% +%\iffalse +% \begin{macrocode} +%</datetime2-sr-Cyrl.ldf> +% \end{macrocode} +%\fi +% +%\iffalse +% \begin{macrocode} +%<*datetime2-sr-Cyrl-RS.ldf> +% \end{macrocode} +%\fi +% +%\subsection{Serbian \sty{sr-Cyrl-RS} Code +% (\texttt{datetime2-sr-Cyrl-RS.ldf})} +%\changes{1.0}{2015-03-24}{Initial release} +%\changes{2.0}{2019-11-07}{% +% Added regions, all settings made available to regions so all changes can be +% region-specific. +%} +% \begin{macrocode} +\ProvidesDateTimeModule{sr-Cyrl-RS}[2019/11/07 v2.0] +% \end{macrocode} +%\changes{2.0}{2019-11-07}{% +% All localization strings loaded from base module. +%} +% +% Load base Serbian module. +% \begin{macrocode} +\RequireDateTimeModule{serbian-base} +% \end{macrocode} +% +%\subsubsection{Defining the \sty{sr-Cyrl-RS} style} +% +% Allow the user a way of configuring the "srCyrlRS" and +% "srCyrlRS-numeric" styles by providing macros for various format +% elements. +% +% This doesn't use the package-wide separators such as \cs{dtm@datetimesep} in +% case other date formats are also required. +% +% +%\begin{macro}{\DTMsrCyrlRSdowdaysep} +% The separator between weekday and day. +% \begin{macrocode} +\newcommand*{\DTMsrCyrlRSdowdaysep}{,\space} +% \end{macrocode} +%\end{macro} +% +% +%\begin{macro}{\DTMsrCyrlRSdaymonthsep} +% The separator between the day and month for the text format. +% \begin{macrocode} +\newcommand*{\DTMsrCyrlRSdaymonthsep}{% + \DTMtexorpdfstring{\protect~}{\space}% +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMsrCyrlRSmonthyearsep} +% The separator between the month and year for the text format. +% \begin{macrocode} +\newcommand*{\DTMsrCyrlRSmonthyearsep}{\space} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMsrCyrlRSdatetimesep} +% The separator between the date and time blocks in the full format (either +% text or numeric). +% \begin{macrocode} +\newcommand*{\DTMsrCyrlRSdatetimesep}{\space} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMsrCyrlRStimezonesep} +% The separator between the time and zone blocks in the full format (either +% text or numeric). +% \begin{macrocode} +\newcommand*{\DTMsrCyrlRStimezonesep}{\space} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMsrCyrlRSdatesep} +% The separator for the numeric date format. +% \begin{macrocode} +\newcommand*{\DTMsrCyrlRSdatesep}{.} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMsrCyrlRStimesep} +% The separator for the numeric time format. +% \begin{macrocode} +\newcommand*{\DTMsrCyrlRStimesep}{.} +% \end{macrocode} +%\end{macro} +% +%Provide keys that can be used in \cs{DTMlangsetup} to set these separators. +% \begin{macrocode} +\DTMdefkey{sr-Cyrl-RS}{dowdaysep}% + {\renewcommand*{\DTMsr-Cyrl-RSdowdaysep}{#1}} +\DTMdefkey{sr-Cyrl-RS}{daymonthsep}% + {\renewcommand*{\DTMsr-Cyrl-RSdaymonthsep}{#1}} +\DTMdefkey{sr-Cyrl-RS}{monthyearsep}% + {\renewcommand*{\DTMsr-Cyrl-RSmonthyearsep}{#1}} +\DTMdefkey{sr-Cyrl-RS}{datetimesep}% + {\renewcommand*{\DTMsr-Cyrl-RSdatetimesep}{#1}} +\DTMdefkey{sr-Cyrl-RS}{timezonesep}% + {\renewcommand*{\DTMsr-Cyrl-RStimezonesep}{#1}} +\DTMdefkey{sr-Cyrl-RS}{datesep}% + {\renewcommand*{\DTMsr-Cyrl-RSdatesep}{#1}} +\DTMdefkey{sr-Cyrl-RS}{timesep}% + {\renewcommand*{\DTMsr-Cyrl-RStimesep}{#1}} +% \end{macrocode} +% +%\subsubsection{Switches and settings} +% +%\changes{2.0}{2019-11-07}{% +% Added weekday names. +%} +%\begin{macro}{\DTMsrCyrlRSweekdayname} +% Define the weekday name, lowercase. +% \begin{macrocode} +\newcommand*{\DTMsrCyrlRSweekdayname}% +{\DTMserbiancyrijweekdayname} +% \end{macrocode} +%\end{macro} + +%\begin{macro}{\DTMsrCyrlRSweekdayname} +% Define the weekday name, capitalized. +% \begin{macrocode} +\newcommand*{\DTMsrCyrlRSWeekdayname}% + {\DTMserbiancyrijWeekdayname} +% \end{macrocode} +%\end{macro} +% +% Provide a way to switch between Ekavian and Ijekavian pronunciation. +%\changes{2.0}{2019-11-07}{% +% Added a way to switch between Ekavian and Ijekavian pronunciation. +%} +% +% \begin{macrocode} +\DTMdefchoicekey{sr-Cyrl-RS}% + {pronunciation}[\@dtm@val\@dtm@nr]{ekavian,ijekavian}{% + \ifcase\@dtm@nr\relax + \renewcommand*{\DTMsrCyrlRSweekdayname}% + {\DTMserbiancyrekweekdayname}% + \renewcommand*{\DTMsrCyrlRSWeekdayname}% + {\DTMserbiancyrekWeekdayname}% + \or% + \renewcommand*{\DTMsrCyrlRSweekdayname}% + {\DTMserbiancyrijweekdayname}% + \renewcommand*{\DTMsrCyrlRSWeekdayname} + {\DTMserbiancyrijWeekdayname}% + \fi +} +% \end{macrocode} +% +%\changes{2.0}{2019-11-07}{% +% Added a way to switch June, July alternate spellings. +%} +% Define a boolean key that can switch between (jun, jul) and (juni, juli) +% month spellings. +% \begin{macrocode} +\DTMdefboolkey{sr-Cyrl-RS}{monthi}[true]{} +% \end{macrocode} +% The default is without the "i" suffix. +% \begin{macrocode} +\DTMsetbool{sr-Cyrl-RS}{monthi}{false} +% \end{macrocode} +% +%\changes{2.0}{2019-11-07}{% +% Added a switch for adding leading zeroes in day and month ordinals. +%} +% Define a boolean key that determines if the day and month ordinals should +% have leading zeroes. +% \begin{macrocode} +\DTMdefboolkey{sr-Cyrl-RS}{leadingzero}[true]{} +% \end{macrocode} +% The default is to omit the leading zero. +% \begin{macrocode} +\DTMsetbool{sr-Cyrl-RS}{leadingzero}{false} +% \end{macrocode} +% +% +% +%\begin{macro}{\DTMsrCyrlRSdayordinal} +% Define the day ordinal format to be used by this style. +% \begin{macrocode} + \newcommand*{\DTMsrCyrlRSdayordinal}[1]{% + \DTMifbool{sr-Cyrl-RS}{leadingzero}% + {\DTMtwodigits{#1}}% + {\number#1}\DTMsrCyrlRSdatesep}% +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMsrCyrlRSyearordinal} +% Define the year ordinal format to be used by this style. +% \begin{macrocode} + \newcommand*{\DTMsrCyrlRSyearordinal}[1]{% + \number#1\DTMsrCyrlRSdatesep}% +% \end{macrocode} +%\end{macro} +% +%\changes{2.0}{2019-11-07}{% +% Removed the option to switch between writing systems, since that is +% accomplished by using different regions or regionless styles ("serbian" and +% "serbianc" for example). +%} +% +% Define the month names. +% +%\begin{macro}{\DTMsrCyrlRSnoimonthname} +% \begin{macrocode} +\newcommand*{\DTMsrCyrlRSnoimonthname}{\DTMserbiancyrnoimonthname} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMsrCyrlRSnoiMonthname} +% \begin{macrocode} +\newcommand*{\DTMsrCyrlRSnoiMonthname}{\DTMserbiancyrnoiMonthname} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMsrCyrlRSimonthname} +% \begin{macrocode} +\newcommand*{\DTMsrCyrlRSimonthname}{\DTMserbiancyrimonthname} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMsrCyrlRSiMonthname} +% \begin{macrocode} +\newcommand*{\DTMsrCyrlRSiMonthname}{\DTMserbiancyriMonthname} +% \end{macrocode} +%\end{macro} +% +% Define a boolean key that determines if the time zone mappings +% should be used. +% \begin{macrocode} +\DTMdefboolkey{sr-Cyrl-RS}{mapzone}[true]{} +% \end{macrocode} +% The default is to use mappings. +% \begin{macrocode} +\DTMsetbool{sr-Cyrl-RS}{mapzone}{true} +% \end{macrocode} +% +% Define a boolean key that determines if the day of month should be +% displayed. +% \begin{macrocode} +\DTMdefboolkey{sr-Cyrl-RS}{showdayofmonth}[true]{} +% \end{macrocode} +% The default is to show the day of month. +% \begin{macrocode} +\DTMsetbool{sr-Cyrl-RS}{showdayofmonth}{true} +% \end{macrocode} +% +% Define a boolean key that determines if the year should be +% displayed. +% \begin{macrocode} +\DTMdefboolkey{sr-Cyrl-RS}{showyear}[true]{} +% \end{macrocode} +% The default is to show the year. +% \begin{macrocode} +\DTMsetbool{sr-Cyrl-RS}{showyear}{true} +% \end{macrocode} +%\changes{2.0}{2019-11-07}{% +% Added weekday names. +%} +% \begin{macrocode} +\DTMnewstyle% +{sr-Cyrl-RS}% label +{% date style + \renewcommand*\DTMdisplaydate[4]{% + \ifDTMshowdow% + \ifnum##4>-1 + \DTMsrCyrlRSweekdayname{##4}% + \DTMsrCyrlRSdowdaysep% + \fi + \fi + \DTMifbool{sr-Cyrl-RS}{showdayofmonth} + {\DTMsrCyrlRSdayordinal{##3}\DTMsrCyrlRSdaymonthsep}% + {}% + \DTMifbool{sr-Cyrl-RS}{monthi}% + {\DTMsrCyrlRSimonthname{##2}}% + {\DTMsrCyrlRSnoimonthname{##2}}% + \DTMifbool{sr-Cyrl-RS}{showyear}% + {% + \DTMsrCyrlRSmonthyearsep% + \DTMsrCyrlRSyearordinal{##1}% + }% + {}% + }% + \renewcommand*\DTMDisplaydate[4]{% + \ifDTMshowdow% + \ifnum##4>-1 + \DTMsrCyrlRSWeekdayname{##4}% + \DTMsrCyrlRSdowdaysep% + \fi + \fi + \DTMifbool{sr-Cyrl-RS}{showdayofmonth} + {% + \DTMsrCyrlRSdayordinal{##3}\DTMsrCyrlRSdaymonthsep% + \DTMifbool{sr-Cyrl-RS}{monthi}% + {\DTMsrCyrlRSimonthname{##2}}% + {\DTMsrCyrlRSnoimonthname{##2}}% + }% + {% + \DTMifbool{sr-Cyrl-RS}{monthi}% + {\DTMsrCyrlRSiMonthname{##2}}% + {\DTMsrCyrlRSnoiMonthname{##2}}% + }% + \DTMifbool{sr-Cyrl-RS}{showyear}% + {% + \DTMsrCyrlRSmonthyearsep% + \DTMsrCyrlRSyearordinal{##1}% + }% + {}% + }% +}% +{% time style + \renewcommand*\DTMdisplaytime[3]{% + \DTMifbool{sr-Cyrl-RS}{leadingzero}{\DTMtwodigits{##1}}{\number##1}% + \DTMsrCyrlRStimesep\DTMtwodigits{##2}% + \ifDTMshowseconds\DTMsrCyrlRStimesep\DTMtwodigits{##3}\fi + }% +}% +{% zone style + \DTMresetzones% + \DTMsrCyrlRSzonemaps% + \renewcommand*{\DTMdisplayzone}[2]{% + \DTMifbool{sr-Cyrl-RS}{mapzone}% + {\DTMusezonemapordefault{##1}{##2}}% + {% + \ifnum##1<0 + \else+\fi\DTMtwodigits{##1}% + \ifDTMshowzoneminutes\DTMsrCyrlRStimesep\DTMtwodigits{##2}\fi + }% + }% +}% +{% full style + \renewcommand*{\DTMdisplay}[9]{% + \ifDTMshowdate% + \DTMdisplaydate{##1}{##2}{##3}{##4}% + \DTMsrCyrlRSdatetimesep% + \fi + \DTMdisplaytime{##5}{##6}{##7}% + \ifDTMshowzone% + \DTMsrCyrlRStimezonesep% + \DTMdisplayzone{##8}{##9}% + \fi + }% + \renewcommand*{\DTMDisplay}[9]{% + \ifDTMshowdate% + \DTMDisplaydate{##1}{##2}{##3}{##4}% + \DTMsrCyrlRSdatetimesep% + \fi + \DTMdisplaytime{##5}{##6}{##7}% + \ifDTMshowzone% + \DTMsrCyrlRStimezonesep% + \DTMdisplayzone{##8}{##9}% + \fi + }% +}% +% \end{macrocode} +% +% +%\begin{macro}{\DTMsrCyrlRSmonthordinal} +% Define the month ordinal format to be used by this style. +% \begin{macrocode} + \newcommand*{\DTMsrCyrlRSmonthordinal}[1]{% + \DTMifbool{sr-Cyrl-RS}{leadingzero}{\DTMtwodigits{#1}}{\number#1}.}% +% \end{macrocode} +%\end{macro} +% +%\changes{2.0}{2019-11-07}{% +% Added a switch between multiple numeric month ordinal formats used in +% Serbian. +%} +% Define a setting to switch between Arabic, uppercase Roman and lowercase +% smallcaps Roman month format for the "srCyrlRS-numeric" style. +% \begin{macrocode} +\DTMdefchoicekey{sr-Cyrl-RS}{monthord}% +[\@dtm@val\@dtm@nr]{arabic,roman,romanlsc}{% + \ifcase\@dtm@nr\relax + \renewcommand*{\DTMsrCyrlRSmonthordinal}[1]{% + \DTMifbool{sr-Cyrl-RS}{leadingzero}% + {\DTMtwodigits{##1}}{\number##1}\DTMsrCyrlRSdatesep}% + \or% + \renewcommand*{\DTMsrCyrlRSmonthordinal}[1]{% + \DTMtexorpdfstring{\protect\DTMserbianordinalROMAN{##1}}% + {serbianordinalROMAN{##1}}}% + \or% + \renewcommand*{\DTMsrCyrlRSmonthordinal}[1]{% + \DTMtexorpdfstring{\textsc{\protect\DTMserbianordinalroman{##1}}}% + {serbianordinalROMAN{##1}}}% + \fi +} +% \end{macrocode} +% +%\changes{2.0}{2019-11-07}{% +% Fixed the (previously entirely wrong) numeric date style. +%} +%\changes{2.0}{2019-11-07}{% +% Added weekday names. +%} +% Define numeric style. +% \begin{macrocode} +\DTMnewstyle% +{sr-Cyrl-RS-numeric}% label +{% date style + \renewcommand*\DTMdisplaydate[4]{% + \ifDTMshowdow% + \ifnum##4>-1 + \DTMsrCyrlRSweekdayname{##4}% + \DTMsrCyrlRSdowdaysep% + \fi + \fi + \DTMifbool{sr-Cyrl-RS}{showdayofmonth}% + {\DTMsrCyrlRSdayordinal{##3}\DTMsrCyrlRSdaymonthsep}% + {}% + \DTMsrCyrlRSmonthordinal{##2}% + \DTMifbool{sr-Cyrl-RS}{showyear}% + {% + \DTMsrCyrlRSmonthyearsep% + \DTMsrCyrlRSyearordinal{##1}% + }% + {}% + }% + \renewcommand*\DTMDisplaydate[4]{% + \ifDTMshowdow% + \ifnum##4>-1 + \DTMsrCyrlRSWeekdayname{##4}% + \DTMsrCyrlRSdowdaysep% + \fi + \fi + \DTMifbool{sr-Cyrl-RS}{showdayofmonth}% + {\DTMsrCyrlRSdayordinal{##3}\DTMsrCyrlRSdaymonthsep}% + {}% + \DTMsrCyrlRSmonthordinal{##2}% + \DTMifbool{sr-Cyrl-RS}{showyear}% + {% + \DTMsrCyrlRSmonthyearsep% + \DTMsrCyrlRSyearordinal{##1}% + }% + {}% + }% +}% +{% time style + \renewcommand*\DTMdisplaytime[3]{% + \DTMifbool{sr-Cyrl-RS}{leadingzero}{\DTMtwodigits{##1}}{\number##1}% + \DTMsrCyrlRStimesep\DTMtwodigits{##2}% + \ifDTMshowseconds\DTMsrCyrlRStimesep\DTMtwodigits{##3}\fi + }% +}% +{% zone style + \DTMresetzones% + \DTMsrCyrlRSzonemaps% + \renewcommand*{\DTMdisplayzone}[2]{% + \DTMifbool{sr-Cyrl-RS}{mapzone}% + {\DTMusezonemapordefault{##1}{##2}}% + {% + \ifnum##1<0 + \else+\fi\DTMtwodigits{##1}% + \ifDTMshowzoneminutes\DTMsrCyrlRStimesep\DTMtwodigits{##2}\fi + }% + }% +}% +{% full style + \renewcommand*{\DTMdisplay}[9]{% + \ifDTMshowdate% + \DTMdisplaydate{##1}{##2}{##3}{##4}% + \DTMsrCyrlRSdatetimesep% + \fi + \DTMdisplaytime{##5}{##6}{##7}% + \ifDTMshowzone% + \DTMsrCyrlRStimezonesep% + \DTMdisplayzone{##8}{##9}% + \fi + }% + \renewcommand*{\DTMDisplay}{\DTMdisplay}% +} +% \end{macrocode} +% +%\begin{macro}{\DTMsr-Cyrl-RSzonemaps} +% The time zone mappings are set through this command, which can be +% redefined if extra mappings are required or mappings need to be +% removed. +% \begin{macrocode} +\newcommand*{\DTMsr-Cyrl-RSzonemaps}{% + \DTMdefzonemap{01}{00}{CET}% + \DTMdefzonemap{02}{00}{CEST}% +} +% \end{macrocode} +%\end{macro} + +% Switch style according to the \opt{useregional} setting. +% \begin{macrocode} +\DTMifcaseregional% +{}% do nothing +{\DTMsetstyle{sr-Cyrl-RS}}% +{\DTMsetstyle{sr-Cyrl-RS-numeric}}% +% \end{macrocode} +% +% Redefine \cs{dateserbianc} (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.) +%\changes{1.1}{2019-09-14}{removed spurious space} +%\changes{2.0}{2019-11-07}{% +% Added regions. +%} +% \begin{macrocode} +\ifcsundef{date\CurrentTrackedDialect} +{% + \ifundef\dateserbianc% + {% do nothing + }% + {% + \def\dateserbianc{% + \DTMifcaseregional% + {}% do nothing + {\DTMsetstyle{sr-Cyrl-RS}}% + {\DTMsetstyle{sr-Cyrl-RS-numeric}}% + }% + }% +}% +{% + \csdef{date\CurrentTrackedDialect}{% + \DTMifcaseregional% + {}% do nothing + {\DTMsetstyle{sr-Cyrl-RS}}% + {\DTMsetstyle{sr-Cyrl-RS-numeric}}% + }% +}% +% \end{macrocode} +% +%\iffalse +% \begin{macrocode} +%</datetime2-sr-Cyrl-RS.ldf> +% \end{macrocode} +%\fi +% +%\iffalse +% \begin{macrocode} +%<*datetime2-sr-Cyrl-ME.ldf> +% \end{macrocode} +%\fi +% +%\subsection{Serbian \sty{sr-Cyrl-ME} Code +% (\texttt{datetime2-sr-Cyrl-ME.ldf})} +%\changes{1.0}{2015-03-24}{Initial release} +%\changes{2.0}{2019-11-07}{% +% Added regions, all settings made available to regions so all changes can be +% region-specific. +%} +% \begin{macrocode} +\ProvidesDateTimeModule{sr-Cyrl-ME}[2019/11/07 v2.0] +% \end{macrocode} +%\changes{2.0}{2019-11-07}{% +% All localization strings loaded from base module. +%} +% +% Load base Serbian module. +% \begin{macrocode} +\RequireDateTimeModule{serbian-base} +% \end{macrocode} +% +%\subsubsection{Defining the \sty{sr-Cyrl-ME} style} +% +% Allow the user a way of configuring the "srCyrlME" and +% "srCyrlME-numeric" styles by providing macros for various format +% elements. +% +% This doesn't use the package-wide separators such as \cs{dtm@datetimesep} in +% case other date formats are also required. +% +% +%\begin{macro}{\DTMsrCyrlMEdowdaysep} +% The separator between weekday and day. +% \begin{macrocode} +\newcommand*{\DTMsrCyrlMEdowdaysep}{,\space} +% \end{macrocode} +%\end{macro} +% +% +%\begin{macro}{\DTMsrCyrlMEdaymonthsep} +% The separator between the day and month for the text format. +% \begin{macrocode} +\newcommand*{\DTMsrCyrlMEdaymonthsep}{% + \DTMtexorpdfstring{\protect~}{\space}% +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMsrCyrlMEmonthyearsep} +% The separator between the month and year for the text format. +% \begin{macrocode} +\newcommand*{\DTMsrCyrlMEmonthyearsep}{\space} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMsrCyrlMEdatetimesep} +% The separator between the date and time blocks in the full format (either +% text or numeric). +% \begin{macrocode} +\newcommand*{\DTMsrCyrlMEdatetimesep}{\space} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMsrCyrlMEtimezonesep} +% The separator between the time and zone blocks in the full format (either +% text or numeric). +% \begin{macrocode} +\newcommand*{\DTMsrCyrlMEtimezonesep}{\space} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMsrCyrlMEdatesep} +% The separator for the numeric date format. +% \begin{macrocode} +\newcommand*{\DTMsrCyrlMEdatesep}{.} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMsrCyrlMEtimesep} +% The separator for the numeric time format. +% \begin{macrocode} +\newcommand*{\DTMsrCyrlMEtimesep}{.} +% \end{macrocode} +%\end{macro} +% +%Provide keys that can be used in \cs{DTMlangsetup} to set these separators. +% \begin{macrocode} +\DTMdefkey{sr-Cyrl-ME}{dowdaysep}% + {\renewcommand*{\DTMsr-Cyrl-MEdowdaysep}{#1}} +\DTMdefkey{sr-Cyrl-ME}{daymonthsep}% + {\renewcommand*{\DTMsr-Cyrl-MEdaymonthsep}{#1}} +\DTMdefkey{sr-Cyrl-ME}{monthyearsep}% + {\renewcommand*{\DTMsr-Cyrl-MEmonthyearsep}{#1}} +\DTMdefkey{sr-Cyrl-ME}{datetimesep}% + {\renewcommand*{\DTMsr-Cyrl-MEdatetimesep}{#1}} +\DTMdefkey{sr-Cyrl-ME}{timezonesep}% + {\renewcommand*{\DTMsr-Cyrl-MEtimezonesep}{#1}} +\DTMdefkey{sr-Cyrl-ME}{datesep}% + {\renewcommand*{\DTMsr-Cyrl-MEdatesep}{#1}} +\DTMdefkey{sr-Cyrl-ME}{timesep}% + {\renewcommand*{\DTMsr-Cyrl-MEtimesep}{#1}} +% \end{macrocode} +% +%\subsubsection{Switches and settings} +% +%\changes{2.0}{2019-11-07}{% +% Added weekday names. +%} +%\begin{macro}{\DTMsrCyrlMEweekdayname} +% Define the weekday name, lowercase. +% \begin{macrocode} +\newcommand*{\DTMsrCyrlMEweekdayname}% +{\DTMserbiancyrijweekdayname} +% \end{macrocode} +%\end{macro} + +%\begin{macro}{\DTMsrCyrlMEweekdayname} +% Define the weekday name, capitalized. +% \begin{macrocode} +\newcommand*{\DTMsrCyrlMEWeekdayname}% + {\DTMserbiancyrijWeekdayname} +% \end{macrocode} +%\end{macro} +% +% Provide a way to switch between Ekavian and Ijekavian pronunciation. +%\changes{2.0}{2019-11-07}{% +% Added a way to switch between Ekavian and Ijekavian pronunciation. +%} +% +% \begin{macrocode} +\DTMdefchoicekey{sr-Cyrl-ME}% + {pronunciation}[\@dtm@val\@dtm@nr]{ekavian,ijekavian}{% + \ifcase\@dtm@nr\relax + \renewcommand*{\DTMsrCyrlMEweekdayname}% + {\DTMserbiancyrekweekdayname}% + \renewcommand*{\DTMsrCyrlMEWeekdayname}% + {\DTMserbiancyrekWeekdayname}% + \or% + \renewcommand*{\DTMsrCyrlMEweekdayname}% + {\DTMserbiancyrijweekdayname}% + \renewcommand*{\DTMsrCyrlMEWeekdayname} + {\DTMserbiancyrijWeekdayname}% + \fi +} +% \end{macrocode} +% +%\changes{2.0}{2019-11-07}{% +% Added a way to switch June, July alternate spellings. +%} +% Define a boolean key that can switch between (jun, jul) and (juni, juli) +% month spellings. +% \begin{macrocode} +\DTMdefboolkey{sr-Cyrl-ME}{monthi}[true]{} +% \end{macrocode} +% The default is without the "i" suffix. +% \begin{macrocode} +\DTMsetbool{sr-Cyrl-ME}{monthi}{false} +% \end{macrocode} +% +%\changes{2.0}{2019-11-07}{% +% Added a switch for adding leading zeroes in day and month ordinals. +%} +% Define a boolean key that determines if the day and month ordinals should +% have leading zeroes. +% \begin{macrocode} +\DTMdefboolkey{sr-Cyrl-ME}{leadingzero}[true]{} +% \end{macrocode} +% The default is to omit the leading zero. +% \begin{macrocode} +\DTMsetbool{sr-Cyrl-ME}{leadingzero}{false} +% \end{macrocode} +% +% +% +%\begin{macro}{\DTMsrCyrlMEdayordinal} +% Define the day ordinal format to be used by this style. +% \begin{macrocode} + \newcommand*{\DTMsrCyrlMEdayordinal}[1]{% + \DTMifbool{sr-Cyrl-ME}{leadingzero}% + {\DTMtwodigits{#1}}% + {\number#1}\DTMsrCyrlMEdatesep}% +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMsrCyrlMEyearordinal} +% Define the year ordinal format to be used by this style. +% \begin{macrocode} + \newcommand*{\DTMsrCyrlMEyearordinal}[1]{% + \number#1\DTMsrCyrlMEdatesep}% +% \end{macrocode} +%\end{macro} +% +%\changes{2.0}{2019-11-07}{% +% Removed the option to switch between writing systems, since that is +% accomplished by using different regions or regionless styles ("serbian" and +% "serbianc" for example). +%} +% +% Define the month names. +% +%\begin{macro}{\DTMsrCyrlMEnoimonthname} +% \begin{macrocode} +\newcommand*{\DTMsrCyrlMEnoimonthname}{\DTMserbiancyrnoimonthname} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMsrCyrlMEnoiMonthname} +% \begin{macrocode} +\newcommand*{\DTMsrCyrlMEnoiMonthname}{\DTMserbiancyrnoiMonthname} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMsrCyrlMEimonthname} +% \begin{macrocode} +\newcommand*{\DTMsrCyrlMEimonthname}{\DTMserbiancyrimonthname} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMsrCyrlMEiMonthname} +% \begin{macrocode} +\newcommand*{\DTMsrCyrlMEiMonthname}{\DTMserbiancyriMonthname} +% \end{macrocode} +%\end{macro} +% +% Define a boolean key that determines if the time zone mappings +% should be used. +% \begin{macrocode} +\DTMdefboolkey{sr-Cyrl-ME}{mapzone}[true]{} +% \end{macrocode} +% The default is to use mappings. +% \begin{macrocode} +\DTMsetbool{sr-Cyrl-ME}{mapzone}{true} +% \end{macrocode} +% +% Define a boolean key that determines if the day of month should be +% displayed. +% \begin{macrocode} +\DTMdefboolkey{sr-Cyrl-ME}{showdayofmonth}[true]{} +% \end{macrocode} +% The default is to show the day of month. +% \begin{macrocode} +\DTMsetbool{sr-Cyrl-ME}{showdayofmonth}{true} +% \end{macrocode} +% +% Define a boolean key that determines if the year should be +% displayed. +% \begin{macrocode} +\DTMdefboolkey{sr-Cyrl-ME}{showyear}[true]{} +% \end{macrocode} +% The default is to show the year. +% \begin{macrocode} +\DTMsetbool{sr-Cyrl-ME}{showyear}{true} +% \end{macrocode} +%\changes{2.0}{2019-11-07}{% +% Added weekday names. +%} +% \begin{macrocode} +\DTMnewstyle% +{sr-Cyrl-ME}% label +{% date style + \renewcommand*\DTMdisplaydate[4]{% + \ifDTMshowdow% + \ifnum##4>-1 + \DTMsrCyrlMEweekdayname{##4}% + \DTMsrCyrlMEdowdaysep% + \fi + \fi + \DTMifbool{sr-Cyrl-ME}{showdayofmonth} + {\DTMsrCyrlMEdayordinal{##3}\DTMsrCyrlMEdaymonthsep}% + {}% + \DTMifbool{sr-Cyrl-ME}{monthi}% + {\DTMsrCyrlMEimonthname{##2}}% + {\DTMsrCyrlMEnoimonthname{##2}}% + \DTMifbool{sr-Cyrl-ME}{showyear}% + {% + \DTMsrCyrlMEmonthyearsep% + \DTMsrCyrlMEyearordinal{##1}% + }% + {}% + }% + \renewcommand*\DTMDisplaydate[4]{% + \ifDTMshowdow% + \ifnum##4>-1 + \DTMsrCyrlMEWeekdayname{##4}% + \DTMsrCyrlMEdowdaysep% + \fi + \fi + \DTMifbool{sr-Cyrl-ME}{showdayofmonth} + {% + \DTMsrCyrlMEdayordinal{##3}\DTMsrCyrlMEdaymonthsep% + \DTMifbool{sr-Cyrl-ME}{monthi}% + {\DTMsrCyrlMEimonthname{##2}}% + {\DTMsrCyrlMEnoimonthname{##2}}% + }% + {% + \DTMifbool{sr-Cyrl-ME}{monthi}% + {\DTMsrCyrlMEiMonthname{##2}}% + {\DTMsrCyrlMEnoiMonthname{##2}}% + }% + \DTMifbool{sr-Cyrl-ME}{showyear}% + {% + \DTMsrCyrlMEmonthyearsep% + \DTMsrCyrlMEyearordinal{##1}% + }% + {}% + }% +}% +{% time style + \renewcommand*\DTMdisplaytime[3]{% + \DTMifbool{sr-Cyrl-ME}{leadingzero}{\DTMtwodigits{##1}}{\number##1}% + \DTMsrCyrlMEtimesep\DTMtwodigits{##2}% + \ifDTMshowseconds\DTMsrCyrlMEtimesep\DTMtwodigits{##3}\fi + }% +}% +{% zone style + \DTMresetzones% + \DTMsrCyrlMEzonemaps% + \renewcommand*{\DTMdisplayzone}[2]{% + \DTMifbool{sr-Cyrl-ME}{mapzone}% + {\DTMusezonemapordefault{##1}{##2}}% + {% + \ifnum##1<0 + \else+\fi\DTMtwodigits{##1}% + \ifDTMshowzoneminutes\DTMsrCyrlMEtimesep\DTMtwodigits{##2}\fi + }% + }% +}% +{% full style + \renewcommand*{\DTMdisplay}[9]{% + \ifDTMshowdate% + \DTMdisplaydate{##1}{##2}{##3}{##4}% + \DTMsrCyrlMEdatetimesep% + \fi + \DTMdisplaytime{##5}{##6}{##7}% + \ifDTMshowzone% + \DTMsrCyrlMEtimezonesep% + \DTMdisplayzone{##8}{##9}% + \fi + }% + \renewcommand*{\DTMDisplay}[9]{% + \ifDTMshowdate% + \DTMDisplaydate{##1}{##2}{##3}{##4}% + \DTMsrCyrlMEdatetimesep% + \fi + \DTMdisplaytime{##5}{##6}{##7}% + \ifDTMshowzone% + \DTMsrCyrlMEtimezonesep% + \DTMdisplayzone{##8}{##9}% + \fi + }% +}% +% \end{macrocode} +% +% +%\begin{macro}{\DTMsrCyrlMEmonthordinal} +% Define the month ordinal format to be used by this style. +% \begin{macrocode} + \newcommand*{\DTMsrCyrlMEmonthordinal}[1]{% + \DTMifbool{sr-Cyrl-ME}{leadingzero}{\DTMtwodigits{#1}}{\number#1}.}% +% \end{macrocode} +%\end{macro} +% +%\changes{2.0}{2019-11-07}{% +% Added a switch between multiple numeric month ordinal formats used in +% Serbian. +%} +% Define a setting to switch between Arabic, uppercase Roman and lowercase +% smallcaps Roman month format for the "srCyrlME-numeric" style. +% \begin{macrocode} +\DTMdefchoicekey{sr-Cyrl-ME}{monthord}% +[\@dtm@val\@dtm@nr]{arabic,roman,romanlsc}{% + \ifcase\@dtm@nr\relax + \renewcommand*{\DTMsrCyrlMEmonthordinal}[1]{% + \DTMifbool{sr-Cyrl-ME}{leadingzero}% + {\DTMtwodigits{##1}}{\number##1}\DTMsrCyrlMEdatesep}% + \or% + \renewcommand*{\DTMsrCyrlMEmonthordinal}[1]{% + \DTMtexorpdfstring{\protect\DTMserbianordinalROMAN{##1}}% + {serbianordinalROMAN{##1}}}% + \or% + \renewcommand*{\DTMsrCyrlMEmonthordinal}[1]{% + \DTMtexorpdfstring{\textsc{\protect\DTMserbianordinalroman{##1}}}% + {serbianordinalROMAN{##1}}}% + \fi +} +% \end{macrocode} +% +%\changes{2.0}{2019-11-07}{% +% Fixed the (previously entirely wrong) numeric date style. +%} +%\changes{2.0}{2019-11-07}{% +% Added weekday names. +%} +% Define numeric style. +% \begin{macrocode} +\DTMnewstyle% +{sr-Cyrl-ME-numeric}% label +{% date style + \renewcommand*\DTMdisplaydate[4]{% + \ifDTMshowdow% + \ifnum##4>-1 + \DTMsrCyrlMEweekdayname{##4}% + \DTMsrCyrlMEdowdaysep% + \fi + \fi + \DTMifbool{sr-Cyrl-ME}{showdayofmonth}% + {\DTMsrCyrlMEdayordinal{##3}\DTMsrCyrlMEdaymonthsep}% + {}% + \DTMsrCyrlMEmonthordinal{##2}% + \DTMifbool{sr-Cyrl-ME}{showyear}% + {% + \DTMsrCyrlMEmonthyearsep% + \DTMsrCyrlMEyearordinal{##1}% + }% + {}% + }% + \renewcommand*\DTMDisplaydate[4]{% + \ifDTMshowdow% + \ifnum##4>-1 + \DTMsrCyrlMEWeekdayname{##4}% + \DTMsrCyrlMEdowdaysep% + \fi + \fi + \DTMifbool{sr-Cyrl-ME}{showdayofmonth}% + {\DTMsrCyrlMEdayordinal{##3}\DTMsrCyrlMEdaymonthsep}% + {}% + \DTMsrCyrlMEmonthordinal{##2}% + \DTMifbool{sr-Cyrl-ME}{showyear}% + {% + \DTMsrCyrlMEmonthyearsep% + \DTMsrCyrlMEyearordinal{##1}% + }% + {}% + }% +}% +{% time style + \renewcommand*\DTMdisplaytime[3]{% + \DTMifbool{sr-Cyrl-ME}{leadingzero}{\DTMtwodigits{##1}}{\number##1}% + \DTMsrCyrlMEtimesep\DTMtwodigits{##2}% + \ifDTMshowseconds\DTMsrCyrlMEtimesep\DTMtwodigits{##3}\fi + }% +}% +{% zone style + \DTMresetzones% + \DTMsrCyrlMEzonemaps% + \renewcommand*{\DTMdisplayzone}[2]{% + \DTMifbool{sr-Cyrl-ME}{mapzone}% + {\DTMusezonemapordefault{##1}{##2}}% + {% + \ifnum##1<0 + \else+\fi\DTMtwodigits{##1}% + \ifDTMshowzoneminutes\DTMsrCyrlMEtimesep\DTMtwodigits{##2}\fi + }% + }% +}% +{% full style + \renewcommand*{\DTMdisplay}[9]{% + \ifDTMshowdate% + \DTMdisplaydate{##1}{##2}{##3}{##4}% + \DTMsrCyrlMEdatetimesep% + \fi + \DTMdisplaytime{##5}{##6}{##7}% + \ifDTMshowzone% + \DTMsrCyrlMEtimezonesep% + \DTMdisplayzone{##8}{##9}% + \fi + }% + \renewcommand*{\DTMDisplay}{\DTMdisplay}% +} +% \end{macrocode} +% +%\begin{macro}{\DTMsr-Cyrl-MEzonemaps} +% The time zone mappings are set through this command, which can be +% redefined if extra mappings are required or mappings need to be +% removed. +% \begin{macrocode} +\newcommand*{\DTMsr-Cyrl-MEzonemaps}{% + \DTMdefzonemap{01}{00}{CET}% + \DTMdefzonemap{02}{00}{CEST}% +} +% \end{macrocode} +%\end{macro} + +% Switch style according to the \opt{useregional} setting. +% \begin{macrocode} +\DTMifcaseregional% +{}% do nothing +{\DTMsetstyle{sr-Cyrl-ME}}% +{\DTMsetstyle{sr-Cyrl-ME-numeric}}% +% \end{macrocode} +% +% Redefine \cs{dateserbianc} (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.) +%\changes{1.1}{2019-09-14}{removed spurious space} +%\changes{2.0}{2019-11-07}{% +% Added regions. +%} +% \begin{macrocode} +\ifcsundef{date\CurrentTrackedDialect} +{% + \ifundef\dateserbianc% + {% do nothing + }% + {% + \def\dateserbianc{% + \DTMifcaseregional% + {}% do nothing + {\DTMsetstyle{sr-Cyrl-ME}}% + {\DTMsetstyle{sr-Cyrl-ME-numeric}}% + }% + }% +}% +{% + \csdef{date\CurrentTrackedDialect}{% + \DTMifcaseregional% + {}% do nothing + {\DTMsetstyle{sr-Cyrl-ME}}% + {\DTMsetstyle{sr-Cyrl-ME-numeric}}% + }% +}% +% \end{macrocode} +% +%\iffalse +% \begin{macrocode} +%</datetime2-sr-Cyrl-ME.ldf> +% \end{macrocode} +%\fi +% +%\iffalse +% \begin{macrocode} +%<*datetime2-sr-Cyrl-BA.ldf> +% \end{macrocode} +%\fi +% +%\subsection{Serbian \sty{sr-Cyrl-BA} Code +% (\texttt{datetime2-sr-Cyrl-BA.ldf})} +%\changes{1.0}{2015-03-24}{Initial release} +%\changes{2.0}{2019-11-07}{% +% Added regions, all settings made available to regions so all changes can be +% region-specific. +%} +% \begin{macrocode} +\ProvidesDateTimeModule{sr-Cyrl-BA}[2019/11/07 v2.0] +% \end{macrocode} +%\changes{2.0}{2019-11-07}{% +% All localization strings loaded from base module. +%} +% +% Load base Serbian module. +% \begin{macrocode} +\RequireDateTimeModule{serbian-base} +% \end{macrocode} +% +%\subsubsection{Defining the \sty{sr-Cyrl-BA} style} +% +% Allow the user a way of configuring the "srCyrlBA" and +% "srCyrlBA-numeric" styles by providing macros for various format +% elements. +% +% This doesn't use the package-wide separators such as \cs{dtm@datetimesep} in +% case other date formats are also required. +% +% +%\begin{macro}{\DTMsrCyrlBAdowdaysep} +% The separator between weekday and day. +% \begin{macrocode} +\newcommand*{\DTMsrCyrlBAdowdaysep}{,\space} +% \end{macrocode} +%\end{macro} +% +% +%\begin{macro}{\DTMsrCyrlBAdaymonthsep} +% The separator between the day and month for the text format. +% \begin{macrocode} +\newcommand*{\DTMsrCyrlBAdaymonthsep}{% + \DTMtexorpdfstring{\protect~}{\space}% +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMsrCyrlBAmonthyearsep} +% The separator between the month and year for the text format. +% \begin{macrocode} +\newcommand*{\DTMsrCyrlBAmonthyearsep}{\space} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMsrCyrlBAdatetimesep} +% The separator between the date and time blocks in the full format (either +% text or numeric). +% \begin{macrocode} +\newcommand*{\DTMsrCyrlBAdatetimesep}{\space} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMsrCyrlBAtimezonesep} +% The separator between the time and zone blocks in the full format (either +% text or numeric). +% \begin{macrocode} +\newcommand*{\DTMsrCyrlBAtimezonesep}{\space} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMsrCyrlBAdatesep} +% The separator for the numeric date format. +% \begin{macrocode} +\newcommand*{\DTMsrCyrlBAdatesep}{.} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMsrCyrlBAtimesep} +% The separator for the numeric time format. +% \begin{macrocode} +\newcommand*{\DTMsrCyrlBAtimesep}{.} +% \end{macrocode} +%\end{macro} +% +%Provide keys that can be used in \cs{DTMlangsetup} to set these separators. +% \begin{macrocode} +\DTMdefkey{sr-Cyrl-BA}{dowdaysep}% + {\renewcommand*{\DTMsr-Cyrl-BAdowdaysep}{#1}} +\DTMdefkey{sr-Cyrl-BA}{daymonthsep}% + {\renewcommand*{\DTMsr-Cyrl-BAdaymonthsep}{#1}} +\DTMdefkey{sr-Cyrl-BA}{monthyearsep}% + {\renewcommand*{\DTMsr-Cyrl-BAmonthyearsep}{#1}} +\DTMdefkey{sr-Cyrl-BA}{datetimesep}% + {\renewcommand*{\DTMsr-Cyrl-BAdatetimesep}{#1}} +\DTMdefkey{sr-Cyrl-BA}{timezonesep}% + {\renewcommand*{\DTMsr-Cyrl-BAtimezonesep}{#1}} +\DTMdefkey{sr-Cyrl-BA}{datesep}% + {\renewcommand*{\DTMsr-Cyrl-BAdatesep}{#1}} +\DTMdefkey{sr-Cyrl-BA}{timesep}% + {\renewcommand*{\DTMsr-Cyrl-BAtimesep}{#1}} +% \end{macrocode} +% +%\subsubsection{Switches and settings} +% +%\changes{2.0}{2019-11-07}{% +% Added weekday names. +%} +%\begin{macro}{\DTMsrCyrlBAweekdayname} +% Define the weekday name, lowercase. +% \begin{macrocode} +\newcommand*{\DTMsrCyrlBAweekdayname}% +{\DTMserbiancyrijweekdayname} +% \end{macrocode} +%\end{macro} + +%\begin{macro}{\DTMsrCyrlBAweekdayname} +% Define the weekday name, capitalized. +% \begin{macrocode} +\newcommand*{\DTMsrCyrlBAWeekdayname}% + {\DTMserbiancyrijWeekdayname} +% \end{macrocode} +%\end{macro} +% +% Provide a way to switch between Ekavian and Ijekavian pronunciation. +%\changes{2.0}{2019-11-07}{% +% Added a way to switch between Ekavian and Ijekavian pronunciation. +%} +% +% \begin{macrocode} +\DTMdefchoicekey{sr-Cyrl-BA}% + {pronunciation}[\@dtm@val\@dtm@nr]{ekavian,ijekavian}{% + \ifcase\@dtm@nr\relax + \renewcommand*{\DTMsrCyrlBAweekdayname}% + {\DTMserbiancyrekweekdayname}% + \renewcommand*{\DTMsrCyrlBAWeekdayname}% + {\DTMserbiancyrekWeekdayname}% + \or% + \renewcommand*{\DTMsrCyrlBAweekdayname}% + {\DTMserbiancyrijweekdayname}% + \renewcommand*{\DTMsrCyrlBAWeekdayname} + {\DTMserbiancyrijWeekdayname}% + \fi +} +% \end{macrocode} +% +%\changes{2.0}{2019-11-07}{% +% Added a way to switch June, July alternate spellings. +%} +% Define a boolean key that can switch between (jun, jul) and (juni, juli) +% month spellings. +% \begin{macrocode} +\DTMdefboolkey{sr-Cyrl-BA}{monthi}[true]{} +% \end{macrocode} +% The default is without the "i" suffix. +% \begin{macrocode} +\DTMsetbool{sr-Cyrl-BA}{monthi}{false} +% \end{macrocode} +% +%\changes{2.0}{2019-11-07}{% +% Added a switch for adding leading zeroes in day and month ordinals. +%} +% Define a boolean key that determines if the day and month ordinals should +% have leading zeroes. +% \begin{macrocode} +\DTMdefboolkey{sr-Cyrl-BA}{leadingzero}[true]{} +% \end{macrocode} +% The default is to omit the leading zero. +% \begin{macrocode} +\DTMsetbool{sr-Cyrl-BA}{leadingzero}{false} +% \end{macrocode} +% +% +% +%\begin{macro}{\DTMsrCyrlBAdayordinal} +% Define the day ordinal format to be used by this style. +% \begin{macrocode} + \newcommand*{\DTMsrCyrlBAdayordinal}[1]{% + \DTMifbool{sr-Cyrl-BA}{leadingzero}% + {\DTMtwodigits{#1}}% + {\number#1}\DTMsrCyrlBAdatesep}% +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMsrCyrlBAyearordinal} +% Define the year ordinal format to be used by this style. +% \begin{macrocode} + \newcommand*{\DTMsrCyrlBAyearordinal}[1]{% + \number#1\DTMsrCyrlBAdatesep}% +% \end{macrocode} +%\end{macro} +% +%\changes{2.0}{2019-11-07}{% +% Removed the option to switch between writing systems, since that is +% accomplished by using different regions or regionless styles ("serbian" and +% "serbianc" for example). +%} +% +% Define the month names. +% +%\begin{macro}{\DTMsrCyrlBAnoimonthname} +% \begin{macrocode} +\newcommand*{\DTMsrCyrlBAnoimonthname}{\DTMserbiancyrnoimonthname} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMsrCyrlBAnoiMonthname} +% \begin{macrocode} +\newcommand*{\DTMsrCyrlBAnoiMonthname}{\DTMserbiancyrnoiMonthname} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMsrCyrlBAimonthname} +% \begin{macrocode} +\newcommand*{\DTMsrCyrlBAimonthname}{\DTMserbiancyrimonthname} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\DTMsrCyrlBAiMonthname} +% \begin{macrocode} +\newcommand*{\DTMsrCyrlBAiMonthname}{\DTMserbiancyriMonthname} +% \end{macrocode} +%\end{macro} +% +% Define a boolean key that determines if the time zone mappings +% should be used. +% \begin{macrocode} +\DTMdefboolkey{sr-Cyrl-BA}{mapzone}[true]{} +% \end{macrocode} +% The default is to use mappings. +% \begin{macrocode} +\DTMsetbool{sr-Cyrl-BA}{mapzone}{true} +% \end{macrocode} +% +% Define a boolean key that determines if the day of month should be +% displayed. +% \begin{macrocode} +\DTMdefboolkey{sr-Cyrl-BA}{showdayofmonth}[true]{} +% \end{macrocode} +% The default is to show the day of month. +% \begin{macrocode} +\DTMsetbool{sr-Cyrl-BA}{showdayofmonth}{true} +% \end{macrocode} +% +% Define a boolean key that determines if the year should be +% displayed. +% \begin{macrocode} +\DTMdefboolkey{sr-Cyrl-BA}{showyear}[true]{} +% \end{macrocode} +% The default is to show the year. +% \begin{macrocode} +\DTMsetbool{sr-Cyrl-BA}{showyear}{true} +% \end{macrocode} +%\changes{2.0}{2019-11-07}{% +% Added weekday names. +%} +% \begin{macrocode} +\DTMnewstyle% +{sr-Cyrl-BA}% label +{% date style + \renewcommand*\DTMdisplaydate[4]{% + \ifDTMshowdow% + \ifnum##4>-1 + \DTMsrCyrlBAweekdayname{##4}% + \DTMsrCyrlBAdowdaysep% + \fi + \fi + \DTMifbool{sr-Cyrl-BA}{showdayofmonth} + {\DTMsrCyrlBAdayordinal{##3}\DTMsrCyrlBAdaymonthsep}% + {}% + \DTMifbool{sr-Cyrl-BA}{monthi}% + {\DTMsrCyrlBAimonthname{##2}}% + {\DTMsrCyrlBAnoimonthname{##2}}% + \DTMifbool{sr-Cyrl-BA}{showyear}% + {% + \DTMsrCyrlBAmonthyearsep% + \DTMsrCyrlBAyearordinal{##1}% + }% + {}% + }% + \renewcommand*\DTMDisplaydate[4]{% + \ifDTMshowdow% + \ifnum##4>-1 + \DTMsrCyrlBAWeekdayname{##4}% + \DTMsrCyrlBAdowdaysep% + \fi + \fi + \DTMifbool{sr-Cyrl-BA}{showdayofmonth} + {% + \DTMsrCyrlBAdayordinal{##3}\DTMsrCyrlBAdaymonthsep% + \DTMifbool{sr-Cyrl-BA}{monthi}% + {\DTMsrCyrlBAimonthname{##2}}% + {\DTMsrCyrlBAnoimonthname{##2}}% + }% + {% + \DTMifbool{sr-Cyrl-BA}{monthi}% + {\DTMsrCyrlBAiMonthname{##2}}% + {\DTMsrCyrlBAnoiMonthname{##2}}% + }% + \DTMifbool{sr-Cyrl-BA}{showyear}% + {% + \DTMsrCyrlBAmonthyearsep% + \DTMsrCyrlBAyearordinal{##1}% + }% + {}% + }% +}% +{% time style + \renewcommand*\DTMdisplaytime[3]{% + \DTMifbool{sr-Cyrl-BA}{leadingzero}{\DTMtwodigits{##1}}{\number##1}% + \DTMsrCyrlBAtimesep\DTMtwodigits{##2}% + \ifDTMshowseconds\DTMsrCyrlBAtimesep\DTMtwodigits{##3}\fi + }% +}% +{% zone style + \DTMresetzones% + \DTMsrCyrlBAzonemaps% + \renewcommand*{\DTMdisplayzone}[2]{% + \DTMifbool{sr-Cyrl-BA}{mapzone}% + {\DTMusezonemapordefault{##1}{##2}}% + {% + \ifnum##1<0 + \else+\fi\DTMtwodigits{##1}% + \ifDTMshowzoneminutes\DTMsrCyrlBAtimesep\DTMtwodigits{##2}\fi + }% + }% +}% +{% full style + \renewcommand*{\DTMdisplay}[9]{% + \ifDTMshowdate% + \DTMdisplaydate{##1}{##2}{##3}{##4}% + \DTMsrCyrlBAdatetimesep% + \fi + \DTMdisplaytime{##5}{##6}{##7}% + \ifDTMshowzone% + \DTMsrCyrlBAtimezonesep% + \DTMdisplayzone{##8}{##9}% + \fi + }% + \renewcommand*{\DTMDisplay}[9]{% + \ifDTMshowdate% + \DTMDisplaydate{##1}{##2}{##3}{##4}% + \DTMsrCyrlBAdatetimesep% + \fi + \DTMdisplaytime{##5}{##6}{##7}% + \ifDTMshowzone% + \DTMsrCyrlBAtimezonesep% + \DTMdisplayzone{##8}{##9}% + \fi + }% +}% +% \end{macrocode} +% +% +%\begin{macro}{\DTMsrCyrlBAmonthordinal} +% Define the month ordinal format to be used by this style. +% \begin{macrocode} + \newcommand*{\DTMsrCyrlBAmonthordinal}[1]{% + \DTMifbool{sr-Cyrl-BA}{leadingzero}{\DTMtwodigits{#1}}{\number#1}.}% +% \end{macrocode} +%\end{macro} +% +%\changes{2.0}{2019-11-07}{% +% Added a switch between multiple numeric month ordinal formats used in +% Serbian. +%} +% Define a setting to switch between Arabic, uppercase Roman and lowercase +% smallcaps Roman month format for the "srCyrlBA-numeric" style. +% \begin{macrocode} +\DTMdefchoicekey{sr-Cyrl-BA}{monthord}% +[\@dtm@val\@dtm@nr]{arabic,roman,romanlsc}{% + \ifcase\@dtm@nr\relax + \renewcommand*{\DTMsrCyrlBAmonthordinal}[1]{% + \DTMifbool{sr-Cyrl-BA}{leadingzero}% + {\DTMtwodigits{##1}}{\number##1}\DTMsrCyrlBAdatesep}% + \or% + \renewcommand*{\DTMsrCyrlBAmonthordinal}[1]{% + \DTMtexorpdfstring{\protect\DTMserbianordinalROMAN{##1}}% + {serbianordinalROMAN{##1}}}% + \or% + \renewcommand*{\DTMsrCyrlBAmonthordinal}[1]{% + \DTMtexorpdfstring{\textsc{\protect\DTMserbianordinalroman{##1}}}% + {serbianordinalROMAN{##1}}}% + \fi +} +% \end{macrocode} +% +%\changes{2.0}{2019-11-07}{% +% Fixed the (previously entirely wrong) numeric date style. +%} +%\changes{2.0}{2019-11-07}{% +% Added weekday names. +%} +% Define numeric style. +% \begin{macrocode} +\DTMnewstyle% +{sr-Cyrl-BA-numeric}% label +{% date style + \renewcommand*\DTMdisplaydate[4]{% + \ifDTMshowdow% + \ifnum##4>-1 + \DTMsrCyrlBAweekdayname{##4}% + \DTMsrCyrlBAdowdaysep% + \fi + \fi + \DTMifbool{sr-Cyrl-BA}{showdayofmonth}% + {\DTMsrCyrlBAdayordinal{##3}\DTMsrCyrlBAdaymonthsep}% + {}% + \DTMsrCyrlBAmonthordinal{##2}% + \DTMifbool{sr-Cyrl-BA}{showyear}% + {% + \DTMsrCyrlBAmonthyearsep% + \DTMsrCyrlBAyearordinal{##1}% + }% + {}% + }% + \renewcommand*\DTMDisplaydate[4]{% + \ifDTMshowdow% + \ifnum##4>-1 + \DTMsrCyrlBAWeekdayname{##4}% + \DTMsrCyrlBAdowdaysep% + \fi + \fi + \DTMifbool{sr-Cyrl-BA}{showdayofmonth}% + {\DTMsrCyrlBAdayordinal{##3}\DTMsrCyrlBAdaymonthsep}% + {}% + \DTMsrCyrlBAmonthordinal{##2}% + \DTMifbool{sr-Cyrl-BA}{showyear}% + {% + \DTMsrCyrlBAmonthyearsep% + \DTMsrCyrlBAyearordinal{##1}% + }% + {}% + }% +}% +{% time style + \renewcommand*\DTMdisplaytime[3]{% + \DTMifbool{sr-Cyrl-BA}{leadingzero}{\DTMtwodigits{##1}}{\number##1}% + \DTMsrCyrlBAtimesep\DTMtwodigits{##2}% + \ifDTMshowseconds\DTMsrCyrlBAtimesep\DTMtwodigits{##3}\fi + }% +}% +{% zone style + \DTMresetzones% + \DTMsrCyrlBAzonemaps% + \renewcommand*{\DTMdisplayzone}[2]{% + \DTMifbool{sr-Cyrl-BA}{mapzone}% + {\DTMusezonemapordefault{##1}{##2}}% + {% + \ifnum##1<0 + \else+\fi\DTMtwodigits{##1}% + \ifDTMshowzoneminutes\DTMsrCyrlBAtimesep\DTMtwodigits{##2}\fi + }% + }% +}% +{% full style + \renewcommand*{\DTMdisplay}[9]{% + \ifDTMshowdate% + \DTMdisplaydate{##1}{##2}{##3}{##4}% + \DTMsrCyrlBAdatetimesep% + \fi + \DTMdisplaytime{##5}{##6}{##7}% + \ifDTMshowzone% + \DTMsrCyrlBAtimezonesep% + \DTMdisplayzone{##8}{##9}% + \fi + }% + \renewcommand*{\DTMDisplay}{\DTMdisplay}% +} +% \end{macrocode} +% +%\begin{macro}{\DTMsr-Cyrl-BAzonemaps} +% The time zone mappings are set through this command, which can be +% redefined if extra mappings are required or mappings need to be +% removed. +% \begin{macrocode} +\newcommand*{\DTMsr-Cyrl-BAzonemaps}{% + \DTMdefzonemap{01}{00}{CET}% + \DTMdefzonemap{02}{00}{CEST}% +} +% \end{macrocode} +%\end{macro} + +% Switch style according to the \opt{useregional} setting. +% \begin{macrocode} +\DTMifcaseregional% +{}% do nothing +{\DTMsetstyle{sr-Cyrl-BA}}% +{\DTMsetstyle{sr-Cyrl-BA-numeric}}% +% \end{macrocode} +% +% Redefine \cs{dateserbianc} (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.) +%\changes{1.1}{2019-09-14}{removed spurious space} +%\changes{2.0}{2019-11-07}{% +% Added regions. +%} +% \begin{macrocode} +\ifcsundef{date\CurrentTrackedDialect} +{% + \ifundef\dateserbianc% + {% do nothing + }% + {% + \def\dateserbianc{% + \DTMifcaseregional% + {}% do nothing + {\DTMsetstyle{sr-Cyrl-BA}}% + {\DTMsetstyle{sr-Cyrl-BA-numeric}}% + }% + }% +}% +{% + \csdef{date\CurrentTrackedDialect}{% + \DTMifcaseregional% + {}% do nothing + {\DTMsetstyle{sr-Cyrl-BA}}% + {\DTMsetstyle{sr-Cyrl-BA-numeric}}% + }% +}% +% \end{macrocode} +% +%\iffalse +% \begin{macrocode} +%</datetime2-sr-Cyrl-BA.ldf> +% \end{macrocode} +%\fi +% +% +% +%\restoregeometry{} %\Finale -\endinput +\endinput
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/datetime2-serbian/datetime2-serbian.ins b/Master/texmf-dist/source/latex/datetime2-serbian/datetime2-serbian.ins index eb0e2e0ff78..7825ac00824 100644 --- a/Master/texmf-dist/source/latex/datetime2-serbian/datetime2-serbian.ins +++ b/Master/texmf-dist/source/latex/datetime2-serbian/datetime2-serbian.ins @@ -3,6 +3,7 @@ \preamble datetime2-serbian.dtx + Copyright 2019 Andrej Radović Copyright 2019 Nicola Talbot This work may be distributed and/or modified under the @@ -13,12 +14,26 @@ 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 has the LPPL maintenance status `maintained'. + + The Current Maintainer of this work is Andrej Radović. This work consists of the files datetime2-serbian.dtx and - datetime2-serbian.ins and the derived files - datetime2-serbian-utf8.ldf, datetime2-serbian-ascii.ldf and - datetime2-serbian.ldf. + datetime2-serbian.ins and the derived files are as follows: + datetime2-serbian-base.ldf + datetime2-serbian-base-utf8.ldf + datetime2-serbian-base-ascii.ldf + datetime2-serbian.ldf + datetime2-sr-Latn.ldf + datetime2-sr-Latn-RS.ldf + datetime2-sr-Latn-ME.ldf + datetime2-sr-Latn-BA.ldf + datetime2-serbianc.ldf + datetime2-sr-Cyrl.ldf + datetime2-sr-Cyrl-RS.ldf + datetime2-sr-Cyrl-ME.ldf + datetime2-sr-Cyrl-BA.ldf + \endpreamble @@ -27,35 +42,145 @@ \generate {% \file - {datetime2-serbian-utf8.ldf}% + {datetime2-serbian.ldf}% {% \usepreamble\defaultpreamble \usepostamble\defaultpostamble - \from{datetime2-serbian.dtx}{datetime2-serbian-utf8.ldf,package}% + \from{datetime2-serbian.dtx}{datetime2-serbian.ldf,package}% }% } \generate {% \file - {datetime2-serbian-ascii.ldf}% + {datetime2-sr-Latn.ldf}% {% \usepreamble\defaultpreamble \usepostamble\defaultpostamble - \from{datetime2-serbian.dtx}{datetime2-serbian-ascii.ldf,package}% + \from{datetime2-serbian.dtx}{datetime2-sr-Latn.ldf,package}% }% } \generate {% \file - {datetime2-serbian.ldf}% + {datetime2-sr-Latn-RS.ldf}% {% \usepreamble\defaultpreamble \usepostamble\defaultpostamble - \from{datetime2-serbian.dtx}{datetime2-serbian.ldf,package}% + \from{datetime2-serbian.dtx}{datetime2-sr-Latn-RS.ldf,package}% }% } -\endbatchfile +\generate +{% + \file + {datetime2-sr-Latn-ME.ldf}% + {% + \usepreamble\defaultpreamble + \usepostamble\defaultpostamble + \from{datetime2-serbian.dtx}{datetime2-sr-Latn-ME.ldf,package}% + }% +} + +\generate +{% + \file + {datetime2-sr-Latn-BA.ldf}% + {% + \usepreamble\defaultpreamble + \usepostamble\defaultpostamble + \from{datetime2-serbian.dtx}{datetime2-sr-Latn-BA.ldf,package}% + }% +} + +\generate +{% + \file + {datetime2-serbianc.ldf}% + {% + \usepreamble\defaultpreamble + \usepostamble\defaultpostamble + \from{datetime2-serbian.dtx}{datetime2-serbianc.ldf,package}% + }% +} + +\generate +{% + \file + {datetime2-sr-Cyrl.ldf}% + {% + \usepreamble\defaultpreamble + \usepostamble\defaultpostamble + \from{datetime2-serbian.dtx}{datetime2-sr-Cyrl.ldf,package}% + }% +} + +\generate +{% + \file + {datetime2-sr-Cyrl-RS.ldf}% + {% + \usepreamble\defaultpreamble + \usepostamble\defaultpostamble + \from{datetime2-serbian.dtx}{datetime2-sr-Cyrl-RS.ldf,package}% + }% +} +\generate +{% + \file + {datetime2-sr-Cyrl-ME.ldf}% + {% + \usepreamble\defaultpreamble + \usepostamble\defaultpostamble + \from{datetime2-serbian.dtx}{datetime2-sr-Cyrl-ME.ldf,package}% + }% +} + +\generate +{% + \file + {datetime2-sr-Cyrl-BA.ldf}% + {% + \usepreamble\defaultpreamble + \usepostamble\defaultpostamble + \from{datetime2-serbian.dtx}{datetime2-sr-Cyrl-BA.ldf,package}% + }% +} + + +\generate +{% + \file + {datetime2-serbian-base.ldf}% + {% + \usepreamble\defaultpreamble + \usepostamble\defaultpostamble + \from{datetime2-serbian.dtx}{datetime2-serbian-base.ldf,package}% + }% +} + +\generate +{% + \file + {datetime2-serbian-base-utf8.ldf}% + {% + \usepreamble\defaultpreamble + \usepostamble\defaultpostamble + \from{datetime2-serbian.dtx}{datetime2-serbian-base-utf8.ldf,package}% + }% +} + +\generate +{% + \file + {datetime2-serbian-base-ascii.ldf}% + {% + \usepreamble\defaultpreamble + \usepostamble\defaultpostamble + \from{datetime2-serbian.dtx}{datetime2-serbian-base-ascii.ldf,package}% + }% +} + +\endbatchfile diff --git a/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-serbian-ascii.ldf b/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-serbian-ascii.ldf deleted file mode 100644 index b74b3fc2653..00000000000 --- a/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-serbian-ascii.ldf +++ /dev/null @@ -1,174 +0,0 @@ -%% -%% This is file `datetime2-serbian-ascii.ldf', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% datetime2-serbian.dtx (with options: `datetime2-serbian-ascii.ldf,package') -%% -%% datetime2-serbian.dtx -%% Copyright 2019 Nicola Talbot -%% -%% 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-serbian.dtx and -%% datetime2-serbian.ins and the derived files -%% datetime2-serbian-utf8.ldf, datetime2-serbian-ascii.ldf and -%% datetime2-serbian.ldf. -%% -%% \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 \~} -\ProvidesDateTimeModule{serbian-ascii}[2019/09/14 v1.0] -\newcommand*{\DTMserbianordinal}[1]{% - \number#1.% -} -\newcommand*{\DTMserbiancyrmonthname}[1]{% - \ifcase#1 - \or - \protect\cyrje\protect\cyra\protect\cyrn\protect\cyru\protect\cyra - \protect\cyrr - \or - \protect\cyrf\protect\cyrie\protect\cyrb\protect\cyrr\protect\cyru - \protect\cyrr - \or - \protect\cyrm\protect\cyra\protect\cyrr\protect\cyrt - \or - \protect\cyra\protect\cyrp\protect\cyrr\protect\cyri\protect\cyrl - \or - \protect\cyrm\protect\cyra\protect\cyrje - \or - \protect\cyrje\protect\cyru\protect\cyrn - \or - \protect\cyrje\protect\cyru\protect\cyrl - \or - \protect\cyra\protect\cyrv\protect\cyrg\protect\cyru\protect\cyrs - \protect\cyrt - \or - \protect\cyrs\protect\cyre\protect\cyrp\protect\cyrt\protect\cyre - \protect\cyrm\protect\cyrb\protect\cyra\protect\cyrr - \or - \protect\cyro\protect\cyrk\protect\cyrt\protect\cyro\protect\cyrb - \protect\cyra\protect\cyrr - \or - \protect\cyrn\protect\cyro\protect\cyrv\protect\cyre\protect\cyrm - \protect\cyrb\protect\cyra\protect\cyrr - \or - \protect\cyrd\protect\cyre\protect\cyrc\protect\cyre\protect\cyrm - \protect\cyrb\protect\cyra\protect\cyrr - \fi -} -\newcommand*{\DTMserbiancyrMonthname}[1]{% - \ifcase#1 - \or - \protect\CYRJE\protect\cyra\protect\cyrn\protect\cyru\protect\cyra - \protect\cyrr - \or - \protect\CYRF\protect\cyrie\protect\cyrb\protect\cyrr\protect\cyru - \protect\cyrr - \or - \protect\CYRM\protect\cyra\protect\cyrr\protect\cyrt - \or - \protect\CYRA\protect\cyrp\protect\cyrr\protect\cyri\protect\cyrl - \or - \protect\CYRM\protect\cyra\protect\cyrje - \or - \protect\CYRJE\protect\cyru\protect\cyrn - \or - \protect\CYRJE\protect\cyru\protect\cyrl - \or - \protect\CYRA\protect\cyrv\protect\cyrg\protect\cyru\protect\cyrs - \protect\cyrt - \or - \protect\CYRS\protect\cyre\protect\cyrp\protect\cyrt\protect\cyre - \protect\cyrm\protect\cyrb\protect\cyra\protect\cyrr - \or - \protect\CYRO\protect\cyrk\protect\cyrt\protect\cyro\protect\cyrb - \protect\cyra\protect\cyrr - \or - \protect\CYRN\protect\cyro\protect\cyrv\protect\cyre\protect\cyrm - \protect\cyrb\protect\cyra\protect\cyrr - \or - \protect\CYRD\protect\cyre\protect\cyrc\protect\cyre\protect\cyrm - \protect\cyrb\protect\cyra\protect\cyrr - \fi -} -\newcommand*{\DTMserbianlatinmonthname}[1]{% - \ifcase#1 - \or - januar% - \or - februar% - \or - mart% - \or - april% - \or - maj% - \or - juni% - \or - juli% - \or - avgust% - \or - septembar% - \or - oktobar% - \or - novembar% - \or - decembar% - \fi -} -\newcommand*{\DTMserbianlatinMonthname}[1]{% - \ifcase#1 - \or - Januar% - \or - Februar% - \or - Mart% - \or - April% - \or - Maj% - \or - Juni% - \or - Juli% - \or - Avgust% - \or - Septembar% - \or - Oktobar% - \or - Novembar% - \or - Decembar% - \fi -} -\endinput -%% -%% End of file `datetime2-serbian-ascii.ldf'. diff --git a/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-serbian-base-ascii.ldf b/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-serbian-base-ascii.ldf new file mode 100644 index 00000000000..dc54416c84f --- /dev/null +++ b/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-serbian-base-ascii.ldf @@ -0,0 +1,345 @@ +%% +%% This is file `datetime2-serbian-base-ascii.ldf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% datetime2-serbian.dtx (with options: `datetime2-serbian-base-ascii.ldf,package') +%% +%% datetime2-serbian.dtx +%% Copyright 2019 Andrej Radović +%% Copyright 2019 Nicola Talbot +%% +%% 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 `maintained'. +%% +%% The Current Maintainer of this work is Andrej Radović. +%% +%% This work consists of the files datetime2-serbian.dtx and +%% datetime2-serbian.ins and the derived files are as follows: +%% datetime2-serbian-base.ldf +%% datetime2-serbian-base-utf8.ldf +%% datetime2-serbian-base-ascii.ldf +%% datetime2-serbian.ldf +%% datetime2-sr-Latn.ldf +%% datetime2-sr-Latn-RS.ldf +%% datetime2-sr-Latn-ME.ldf +%% datetime2-sr-Latn-BA.ldf +%% datetime2-serbianc.ldf +%% datetime2-sr-Cyrl.ldf +%% datetime2-sr-Cyrl-RS.ldf +%% datetime2-sr-Cyrl-ME.ldf +%% datetime2-sr-Cyrl-BA.ldf +%% +%% +%% \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 \~} +\ProvidesDateTimeModule{serbian-base-ascii}[2019/11/07 v2.0] +%%\subsubsection{Latin month names} +\newcommand*{\DTMserbianlatnoimonthname}[1]{% + \ifcase#1 + \or% + januar% + \or% + februar% + \or% + mart% + \or% + april% + \or% + maj% + \or% + jun% + \or% + jul% + \or% + avgust% + \or% + septembar% + \or% + oktobar% + \or% + novembar% + \or% + decembar% + \fi +} +\newcommand*{\DTMserbianlatnoiMonthname}[1]{% + \ifcase#1 + \or% + Januar% + \or% + Februar% + \or% + Mart% + \or% + April% + \or% + Maj% + \or% + Jun% + \or% + Jul% + \or% + Avgust% + \or% + Septembar% + \or% + Oktobar% + \or% + Novembar% + \or% + Decembar% + \fi +} +\newcommand*{\DTMserbianlatimonthname}[1]{% + \ifnum#1=6% + juni% + \else\ifnum\#1=7% + juli% + \else + \DTMserbianlatnoimonthname% + \fi\fi +} +\newcommand*{\DTMserbianlatiMonthname}[1]{% + \ifnum#1=6% + Juni% + \else\ifnum\#1=7% + Juli% + \else + \DTMserbianlatnoimonthname% + \fi\fi +} +\newcommand*{\DTMserbianlatekweekdayname}[1]{% + \ifcase#1 + ponedeljak% + \or% + utorak% + \or% + sreda% + \or% + \v cetvrtak% + \or% + petak% + \or% + subota% + \or% + nedelja% + \fi% +} +\newcommand*{\DTMserbianlatekWeekdayname}[1]{% + \ifcase#1 + Ponedeljak% + \or% + Utorak% + \or% + Sreda% + \or% + \v Cetvrtak% + \or% + Petak% + \or% + Subota% + \or% + Nedelja% + \fi% +} +\newcommand*{\DTMserbianlatijweekdayname}[1]{% + \ifcase#1 + ponedjeljak% + \or% + utorak% + \or% + srijeda% + \or% + \v cetvrtak% + \or% + petak% + \or% + subota% + \or% + nedjelja% + \fi% +} +\newcommand*{\DTMserbianlatijWeekdayname}[1]{% + \ifcase#1 + Ponedjeljak% + \or% + Utorak% + \or% + Srijeda% + \or% + \v Cetvrtak% + \or% + Petak% + \or% + Subota% + \or% + Nedjelja% + \fi% +} +\newcommand*{\DTMserbiancyrnoimonthname}[1]{% + \ifcase#1 + \or% + \cyrje\cyra\cyrn\cyru\cyra\cyrr% + \or% + \cyrf\cyre\cyrb\cyrr\cyru\cyra\cyrr% + \or% + \cyrm\cyra\cyrr\cyrt% + \or% + \cyra\cyrp\cyrr\cyri\cyrl% + \or% + \cyrm\cyra\cyrje% + \or% + \cyrje\cyru\cyrn% + \or% + \cyrje\cyru\cyrl% + \or% + \cyra\cyrv\cyrg\cyru\cyrs\cyrt% + \or% + \cyrs\cyre\cyrp\cyrt\cyre\cyrm\cyrb\cyra\cyrr% + \or% + \cyro\cyrk\cyrt\cyro\cyrb\cyra\cyrr% + \or% + \cyrn\cyro\cyrv\cyre\cyrm\cyrb\cyra\cyrr% + \or% + \cyrd\cyre\cyrc\cyre\cyrm\cyrb\cyra\cyrr% + \fi +} +\newcommand*{\DTMserbiancyrnoiMonthname}[1]{% + \ifcase#1 + \or% + \CYRJE\cyra\cyrn\cyru\cyra\cyrr% + \or% + \CYRF\cyre\cyrb\cyrr\cyru\cyra\cyrr% + \or% + \CYRM\cyra\cyrr\cyrt% + \or% + \CYRA\cyrp\cyrr\cyri\cyrl% + \or% + \CYRM\cyra\cyrje% + \or% + \CYRJE\cyru\cyrn% + \or% + \CYRJE\cyru\cyrl% + \or% + \CYRA\cyrv\cyrg\cyru\cyrs\cyrt% + \or% + \CYRS\cyre\cyrp\cyrt\cyre\cyrm\cyrb\cyra\cyrr% + \or% + \CYRO\cyrk\cyrt\cyro\cyrb\cyra\cyrr% + \or% + \CYRN\cyro\cyrv\cyre\cyrm\cyrb\cyra\cyrr% + \or% + \CYRD\cyre\cyrc\cyre\cyrm\cyrb\cyra\cyrr% + \fi +} +\newcommand*{\DTMserbiancyrimonthname}[1]{% + \ifnum#1=6% + \cyrje\cyru\cyrn\cyri% + \else\ifnum\#1=7% + \cyrje\cyru\cyrl\cyri% + \else + \DTMserbiancyrnoimonthname% + \fi\fi +} +\newcommand*{\DTMserbiancyriMonthname}[1]{% + \ifnum#1=6% + \CYRJE\cyru\cyrn\cyri% + \else\ifnum\#1=7% + \CYRJE\cyru\cyrl\cyri% + \else + \DTMserbiancyrnoimonthname% + \fi\fi +} +\newcommand*{\DTMserbiancyrekweekdayname}[1]{% + \ifcase#1 + \cyrp\cyro\cyrn\cyre\cyrd\cyre\cyrlje\cyra\cyrk% + \or% + \cyru\cyrt\cyro\cyrr\cyra\cyrk% + \or% + \cyrs\cyrr\cyre\cyrd\cyra% + \or% + \cyrch\cyre\cyrt\cyrv\cyrr\cyrt\cyra\cyrk% + \or% + \cyrp\cyre\cyrt\cyra\cyrk% + \or% + \cyrs\cyru\cyrb\cyro\cyrt\cyra% + \or% + \cyrn\cyre\cyrd\cyre\cyrlje\cyra% + \fi% +} +\newcommand*{\DTMserbiancyrekWeekdayname}[1]{% + \ifcase#1 + \CYRP\cyro\cyrn\cyre\cyrd\cyre\cyrlje\cyra\cyrk% + \or% + \CYRU\cyrt\cyro\cyrr\cyra\cyrk% + \or% + \CYRS\cyrr\cyre\cyrd\cyra% + \or% + \CYRCH\cyre\cyrt\cyrv\cyrr\cyrt\cyra\cyrk% + \or% + \CYRP\cyre\cyrt\cyra\cyrk% + \or% + \CYRS\cyru\cyrb\cyro\cyrt\cyra% + \or% + \CYRN\cyre\cyrd\cyre\cyrlje\cyra% + \fi% +} +\newcommand*{\DTMserbiancyrijweekdayname}[1]{% + \ifcase#1 + \cyrp\cyro\cyrn\cyre\cyrd\cyrje\cyre\cyrlje\cyra\cyrk% + \or% + \cyru\cyrt\cyro\cyrr\cyra\cyrk% + \or% + \cyrs\cyrr\cyri\cyrje\cyre\cyrd\cyra% + \or% + \cyrch\cyre\cyrt\cyrv\cyrr\cyrt\cyra\cyrk% + \or% + \cyrp\cyre\cyrt\cyra\cyrk% + \or% + \cyrs\cyru\cyrb\cyro\cyrt\cyra% + \or% + \cyrn\cyre\cyrd\cyrje\cyre\cyrlje\cyra% + \fi% +} +\newcommand*{\DTMserbiancyrijWeekdayname}[1]{% + \ifcase#1 + \CYRP\cyro\cyrn\cyre\cyrd\cyrje\cyre\cyrlje\cyra\cyrk% + \or% + \CYRU\cyrt\cyro\cyrr\cyra\cyrk% + \or% + \CYRS\cyrr\cyri\cyrje\cyre\cyrd\cyra% + \or% + \CYRCH\cyre\cyrt\cyrv\cyrr\cyrt\cyra\cyrk% + \or% + \CYRP\cyre\cyrt\cyra\cyrk% + \or% + \CYRS\cyru\cyrb\cyro\cyrt\cyra% + \or% + \CYRN\cyre\cyrd\cyrje\cyre\cyrlje\cyra% + \fi% +} +\endinput +%% +%% End of file `datetime2-serbian-base-ascii.ldf'. diff --git a/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-serbian-base-utf8.ldf b/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-serbian-base-utf8.ldf new file mode 100644 index 00000000000..9d74637d928 --- /dev/null +++ b/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-serbian-base-utf8.ldf @@ -0,0 +1,344 @@ +%% +%% This is file `datetime2-serbian-base-utf8.ldf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% datetime2-serbian.dtx (with options: `datetime2-serbian-base-utf8.ldf,package') +%% +%% datetime2-serbian.dtx +%% Copyright 2019 Andrej Radović +%% Copyright 2019 Nicola Talbot +%% +%% 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 `maintained'. +%% +%% The Current Maintainer of this work is Andrej Radović. +%% +%% This work consists of the files datetime2-serbian.dtx and +%% datetime2-serbian.ins and the derived files are as follows: +%% datetime2-serbian-base.ldf +%% datetime2-serbian-base-utf8.ldf +%% datetime2-serbian-base-ascii.ldf +%% datetime2-serbian.ldf +%% datetime2-sr-Latn.ldf +%% datetime2-sr-Latn-RS.ldf +%% datetime2-sr-Latn-ME.ldf +%% datetime2-sr-Latn-BA.ldf +%% datetime2-serbianc.ldf +%% datetime2-sr-Cyrl.ldf +%% datetime2-sr-Cyrl-RS.ldf +%% datetime2-sr-Cyrl-ME.ldf +%% datetime2-sr-Cyrl-BA.ldf +%% +%% +%% \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 \~} +\ProvidesDateTimeModule{serbian-base-utf8}[2019/11/07 v2.0] +\newcommand*{\DTMserbianlatnoimonthname}[1]{% + \ifcase#1 + \or% + januar% + \or% + februar% + \or% + mart% + \or% + april% + \or% + maj% + \or% + jun% + \or% + jul% + \or% + avgust% + \or% + septembar% + \or% + oktobar% + \or% + novembar% + \or% + decembar% + \fi +} +\newcommand*{\DTMserbianlatnoiMonthname}[1]{% + \ifcase#1 + \or% + Januar% + \or% + Februar% + \or% + Mart% + \or% + April% + \or% + Maj% + \or% + Jun% + \or% + Jul% + \or% + Avgust% + \or% + Septembar% + \or% + Oktobar% + \or% + Novembar% + \or% + Decembar% + \fi +} +\newcommand*{\DTMserbianlatimonthname}[1]{% + \ifnum#1=6% + juni% + \else\ifnum\#1=7% + juli% + \else + \DTMserbianlatnoimonthname% + \fi\fi +} +\newcommand*{\DTMserbianlatiMonthname}[1]{% + \ifnum#1=6% + Juni% + \else\ifnum\#1=7% + Juli% + \else + \DTMserbianlatnoimonthname% + \fi\fi +} +\newcommand*{\DTMserbianlatekweekdayname}[1]{% + \ifcase#1 + ponedeljak% + \or% + utorak% + \or% + sreda% + \or% + četvrtak% + \or% + petak% + \or% + subota% + \or% + nedelja% + \fi% +} +\newcommand*{\DTMserbianlatekWeekdayname}[1]{% + \ifcase#1 + Ponedeljak% + \or% + Utorak% + \or% + Sreda% + \or% + Četvrtak% + \or% + Petak% + \or% + Subota% + \or% + Nedelja% + \fi% +} +\newcommand*{\DTMserbianlatijweekdayname}[1]{% + \ifcase#1 + ponedjeljak% + \or% + utorak% + \or% + srijeda% + \or% + četvrtak% + \or% + petak% + \or% + subota% + \or% + nedjelja% + \fi% +} +\newcommand*{\DTMserbianlatijWeekdayname}[1]{% + \ifcase#1 + Ponedjeljak% + \or% + Utorak% + \or% + Srijeda% + \or% + Četvrtak% + \or% + Petak% + \or% + Subota% + \or% + Nedjelja% + \fi% +} +\newcommand*{\DTMserbiancyrnoimonthname}[1]{% + \ifcase#1 + \or% + јануар% + \or% + фебруар% + \or% + март% + \or% + април% + \or% + мај% + \or% + јун% + \or% + јул% + \or% + август% + \or% + септембар% + \or% + октобар% + \or% + новембар% + \or% + децембар% + \fi +} +\newcommand*{\DTMserbiancyrnoiMonthname}[1]{% + \ifcase#1 + \or% + Јануар% + \or% + Фебруар% + \or% + Март% + \or% + Април% + \or% + Мај% + \or% + Јун% + \or% + Јул% + \or% + Август% + \or% + Септембар% + \or% + Октобар% + \or% + Новембар% + \or% + Децембар% + \fi +} +\newcommand*{\DTMserbiancyrimonthname}[1]{% + \ifnum#1=6% + јуни% + \else\ifnum\#1=7% + јули% + \else + \DTMserbiancyrnoimonthname% + \fi\fi +} +\newcommand*{\DTMserbiancyriMonthname}[1]{% + \ifnum#1=6% + Јуни% + \else\ifnum\#1=7% + Јули% + \else + \DTMserbiancyrnoimonthname% + \fi\fi +} +\newcommand*{\DTMserbiancyrekweekdayname}[1]{% + \ifcase#1 + понедељак% + \or% + уторак% + \or% + среда% + \or% + четвртак% + \or% + петак% + \or% + субота% + \or% + недеља% + \fi% +} +\newcommand*{\DTMserbiancyrekWeekdayname}[1]{% + \ifcase#1 + Понедељак% + \or% + Уторак% + \or% + Среда% + \or% + Четвртак% + \or% + Петак% + \or% + Субота% + \or% + Недеља% + \fi% +} +\newcommand*{\DTMserbiancyrijweekdayname}[1]{% + \ifcase#1 + понедјељак% + \or% + уторак% + \or% + сриједа% + \or% + четвртак% + \or% + петак% + \or% + субота% + \or% + недјеља% + \fi% +} +\newcommand*{\DTMserbiancyrijWeekdayname}[1]{% + \ifcase#1 + Понедјељак% + \or% + Уторак% + \or% + Сриједа% + \or% + Четвртак% + \or% + Петак% + \or% + Субота% + \or% + Недјеља% + \fi% +} +\endinput +%% +%% End of file `datetime2-serbian-base-utf8.ldf'. diff --git a/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-serbian-base.ldf b/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-serbian-base.ldf new file mode 100644 index 00000000000..ba8542abe2a --- /dev/null +++ b/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-serbian-base.ldf @@ -0,0 +1,126 @@ +%% +%% This is file `datetime2-serbian-base.ldf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% datetime2-serbian.dtx (with options: `datetime2-serbian-base.ldf,package') +%% +%% datetime2-serbian.dtx +%% Copyright 2019 Andrej Radović +%% Copyright 2019 Nicola Talbot +%% +%% 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 `maintained'. +%% +%% The Current Maintainer of this work is Andrej Radović. +%% +%% This work consists of the files datetime2-serbian.dtx and +%% datetime2-serbian.ins and the derived files are as follows: +%% datetime2-serbian-base.ldf +%% datetime2-serbian-base-utf8.ldf +%% datetime2-serbian-base-ascii.ldf +%% datetime2-serbian.ldf +%% datetime2-sr-Latn.ldf +%% datetime2-sr-Latn-RS.ldf +%% datetime2-sr-Latn-ME.ldf +%% datetime2-sr-Latn-BA.ldf +%% datetime2-serbianc.ldf +%% datetime2-sr-Cyrl.ldf +%% datetime2-sr-Cyrl-RS.ldf +%% datetime2-sr-Cyrl-ME.ldf +%% datetime2-sr-Cyrl-BA.ldf +%% +%% +%% \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 \~} +\ProvidesDateTimeModule{serbian-base}[2019/11/07 v2.0] +\newcommand*{\DTMserbianordinalROMAN}[1]{% + \ifcase#1 + \or% + I% + \or% + II% + \or% + III% + \or% + IV% + \or% + V% + \or% + VI% + \or% + VII% + \or% + VIII% + \or% + IX% + \or% + X% + \or% + XI% + \or% + XII% + \fi +} +\newcommand*{\DTMserbianordinalroman}[1]{% + \ifcase#1 + \or% + i% + \or% + ii% + \or% + iii% + \or% + iv% + \or% + v% + \or% + vi% + \or% + vii% + \or% + viii% + \or% + ix% + \or% + x% + \or% + xi% + \or% + xii% + \fi +} +\RequirePackage{ifxetex,ifluatex} +\ifxetex% + \RequireDateTimeModule{serbian-base-utf8} +\else + \ifluatex% + \RequireDateTimeModule{serbian-base-utf8} + \else + \RequireDateTimeModule{serbian-base-ascii} + \fi +\fi +\endinput +%% +%% End of file `datetime2-serbian-base.ldf'. diff --git a/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-serbian-utf8.ldf b/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-serbian-utf8.ldf deleted file mode 100644 index fe9b997bafc..00000000000 --- a/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-serbian-utf8.ldf +++ /dev/null @@ -1,160 +0,0 @@ -%% -%% This is file `datetime2-serbian-utf8.ldf', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% datetime2-serbian.dtx (with options: `datetime2-serbian-utf8.ldf,package') -%% -%% datetime2-serbian.dtx -%% Copyright 2019 Nicola Talbot -%% -%% 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-serbian.dtx and -%% datetime2-serbian.ins and the derived files -%% datetime2-serbian-utf8.ldf, datetime2-serbian-ascii.ldf and -%% datetime2-serbian.ldf. -%% -%% \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 \~} -\ProvidesDateTimeModule{serbian-utf8}[2019/09/14 v1.0] -\newcommand*{\DTMserbianordinal}[1]{% - \number#1.% -} -\newcommand*{\DTMserbiancyrmonthname}[1]{% - \ifcase#1 - \or - јануар% - \or - фебруар% - \or - март% - \or - април% - \or - мај% - \or - јун% - \or - јул% - \or - август% - \or - септембар% - \or - октобар% - \or - новембар% - \or - децембар% - \fi -} -\newcommand*{\DTMserbiancyrMonthname}[1]{% - \ifcase#1 - \or - Јануар% - \or - Фебруар% - \or - Март% - \or - Април% - \or - Мај% - \or - Јун% - \or - Јул% - \or - Август% - \or - Септембар% - \or - Октобар% - \or - Новембар% - \or - Децембар% - \fi -} -\newcommand*{\DTMserbianlatinmonthname}[1]{% - \ifcase#1 - \or - januar% - \or - februar% - \or - mart% - \or - april% - \or - maj% - \or - juni% - \or - juli% - \or - avgust% - \or - septembar% - \or - oktobar% - \or - novembar% - \or - decembar% - \fi -} -\newcommand*{\DTMserbianlatinMonthname}[1]{% - \ifcase#1 - \or - Januar% - \or - Februar% - \or - Mart% - \or - April% - \or - Maj% - \or - Juni% - \or - Juli% - \or - Avgust% - \or - Septembar% - \or - Oktobar% - \or - Novembar% - \or - Decembar% - \fi -} -\endinput -%% -%% End of file `datetime2-serbian-utf8.ldf'. diff --git a/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-serbian.ldf b/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-serbian.ldf index 6ff1d487e51..a41aef2f6d7 100644 --- a/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-serbian.ldf +++ b/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-serbian.ldf @@ -7,6 +7,7 @@ %% datetime2-serbian.dtx (with options: `datetime2-serbian.ldf,package') %% %% datetime2-serbian.dtx +%% Copyright 2019 Andrej Radović %% Copyright 2019 Nicola Talbot %% %% This work may be distributed and/or modified under the @@ -17,12 +18,26 @@ %% 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 has the LPPL maintenance status `maintained'. +%% +%% The Current Maintainer of this work is Andrej Radović. %% %% This work consists of the files datetime2-serbian.dtx and -%% datetime2-serbian.ins and the derived files -%% datetime2-serbian-utf8.ldf, datetime2-serbian-ascii.ldf and -%% datetime2-serbian.ldf. +%% datetime2-serbian.ins and the derived files are as follows: +%% datetime2-serbian-base.ldf +%% datetime2-serbian-base-utf8.ldf +%% datetime2-serbian-base-ascii.ldf +%% datetime2-serbian.ldf +%% datetime2-sr-Latn.ldf +%% datetime2-sr-Latn-RS.ldf +%% datetime2-sr-Latn-ME.ldf +%% datetime2-sr-Latn-BA.ldf +%% datetime2-serbianc.ldf +%% datetime2-sr-Cyrl.ldf +%% datetime2-sr-Cyrl-RS.ldf +%% datetime2-sr-Cyrl-ME.ldf +%% datetime2-sr-Cyrl-BA.ldf +%% %% %% \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 @@ -39,189 +54,273 @@ %% Right bracket \] Circumflex \^ Underscore \_ %% Grave accent \` Left brace \{ Vertical bar \| %% Right brace \} Tilde \~} -\ProvidesDateTimeModule{serbian}[2019/09/14 v1.0] -\RequirePackage{ifxetex,ifluatex} -\ifxetex - \RequireDateTimeModule{serbian-utf8} -\else - \ifluatex - \RequireDateTimeModule{serbian-utf8} - \else - \RequireDateTimeModule{serbian-ascii} - \fi -\fi +\ProvidesDateTimeModule{serbian}[2019/11/07 v2.0] +\RequireDateTimeModule{serbian-base} +\newcommand*{\DTMserbiandowdaysep}{,\space} \newcommand*{\DTMserbiandaymonthsep}{% - \DTMtexorpdfstring{\protect~}{\space}% + \DTMtexorpdfstring{\protect~}{\space}% } \newcommand*{\DTMserbianmonthyearsep}{\space} \newcommand*{\DTMserbiandatetimesep}{\space} \newcommand*{\DTMserbiantimezonesep}{\space} \newcommand*{\DTMserbiandatesep}{.} \newcommand*{\DTMserbiantimesep}{.} -\DTMdefkey{serbian}{daymonthsep}{\renewcommand*{\DTMserbiandaymonthsep}{#1}} -\DTMdefkey{serbian}{monthyearsep}{\renewcommand*{\DTMserbianmonthyearsep}{#1}} -\DTMdefkey{serbian}{datetimesep}{\renewcommand*{\DTMserbiandatetimesep}{#1}} -\DTMdefkey{serbian}{timezonesep}{\renewcommand*{\DTMserbiantimezonesep}{#1}} -\DTMdefkey{serbian}{datesep}{\renewcommand*{\DTMserbiandatesep}{#1}} -\DTMdefkey{serbian}{timesep}{\renewcommand*{\DTMserbiantimesep}{#1}} -\newcommand*{\DTMserbianmonthname}{\DTMserbiancyrmonthname} -\newcommand*{\DTMserbianMonthname}{\DTMserbiancyrMonthname} -\DTMdefchoicekey{serbian}{alphabet}[\val\nr]{cyrillic,latin}{% - \ifcase\nr\relax - \renewcommand*{\DTMserbianmonthname}{\DTMserbiancyrmonthname}% - \renewcommand*{\DTMserbianMonthname}{\DTMserbiancyrMonthname}% - \or - \renewcommand*{\DTMserbianmonthname}{\DTMserbianlatinmonthname}% - \renewcommand*{\DTMserbianMonthname}{\DTMserbianlatinMonthname}% - \fi +\DTMdefkey{serbian}{dowdaysep}% + {\renewcommand*{\DTMserbiandowdaysep}{#1}} +\DTMdefkey{serbian}{daymonthsep}% + {\renewcommand*{\DTMserbiandaymonthsep}{#1}} +\DTMdefkey{serbian}{monthyearsep}% + {\renewcommand*{\DTMserbianmonthyearsep}{#1}} +\DTMdefkey{serbian}{datetimesep}% + {\renewcommand*{\DTMserbiandatetimesep}{#1}} +\DTMdefkey{serbian}{timezonesep}% + {\renewcommand*{\DTMserbiantimezonesep}{#1}} +\DTMdefkey{serbian}{datesep}% + {\renewcommand*{\DTMserbiandatesep}{#1}} +\DTMdefkey{serbian}{timesep}% + {\renewcommand*{\DTMserbiantimesep}{#1}} +\newcommand*{\DTMserbianweekdayname}% +{\DTMserbianlatekweekdayname} + +\newcommand*{\DTMserbianWeekdayname}% + {\DTMserbianlatekWeekdayname} +\DTMdefchoicekey{serbian}% + {pronunciation}[\@dtm@val\@dtm@nr]{ekavian,ijekavian}{% + \ifcase\@dtm@nr\relax + \renewcommand*{\DTMserbianweekdayname}% + {\DTMserbianlatekweekdayname}% + \renewcommand*{\DTMserbianWeekdayname}% + {\DTMserbianlatekWeekdayname}% + \or% + \renewcommand*{\DTMserbianweekdayname}% + {\DTMserbianlatijweekdayname}% + \renewcommand*{\DTMserbianWeekdayname} + {\DTMserbianlatijWeekdayname}% + \fi } +\DTMdefboolkey{serbian}{monthi}[true]{} +\DTMsetbool{serbian}{monthi}{false} +\DTMdefboolkey{serbian}{leadingzero}[true]{} +\DTMsetbool{serbian}{leadingzero}{false} + \newcommand*{\DTMserbiandayordinal}[1]{% + \DTMifbool{serbian}{leadingzero}% + {\DTMtwodigits{#1}}% + {\number#1}\DTMserbiandatesep}% + \newcommand*{\DTMserbianyearordinal}[1]{% + \number#1\DTMserbiandatesep}% +\newcommand*{\DTMserbiannoimonthname}{\DTMserbianlatnoimonthname} +\newcommand*{\DTMserbiannoiMonthname}{\DTMserbianlatnoiMonthname} +\newcommand*{\DTMserbianimonthname}{\DTMserbianlatimonthname} +\newcommand*{\DTMserbianiMonthname}{\DTMserbianlatiMonthname} \DTMdefboolkey{serbian}{mapzone}[true]{} \DTMsetbool{serbian}{mapzone}{true} \DTMdefboolkey{serbian}{showdayofmonth}[true]{} \DTMsetbool{serbian}{showdayofmonth}{true} \DTMdefboolkey{serbian}{showyear}[true]{} \DTMsetbool{serbian}{showyear}{true} -\DTMnewstyle - {serbian}% label - {% date style - \renewcommand*\DTMdisplaydate[4]{% - \DTMifbool{serbian}{showdayofmonth} - {\DTMserbianordinal{##3}\DTMserbiandaymonthsep}% - {}% - \DTMserbianmonthname{##2}% - \DTMifbool{serbian}{showyear}% - {% - \DTMserbianmonthyearsep - \number##1 - }% - {}% - }% - \renewcommand*\DTMDisplaydate[4]{% - \DTMifbool{serbian}{showdayofmonth} - {% - \DTMserbianordinal{##3}\DTMserbiandaymonthsep - \DTMserbianmonthname{##2}% - }% - {% - \DTMserbianMonthname{##2}% - }% - \DTMifbool{serbian}{showyear}% - {% - \DTMserbianmonthyearsep - \number##1 - }% - {}% - }% - }% - {% time style (use default) - \DTMsettimestyle{default}% - }% - {% zone style - \DTMresetzones - \DTMserbianzonemaps - \renewcommand*{\DTMdisplayzone}[2]{% - \DTMifbool{serbian}{mapzone}% - {\DTMusezonemapordefault{##1}{##2}}% - {% - \ifnum##1<0 \else+\fi\DTMtwodigits{##1}% - \ifDTMshowzoneminutes\DTMserbiantimesep\DTMtwodigits{##2}\fi - }% - }% - }% - {% full style - \renewcommand*{\DTMdisplay}[9]{% - \ifDTMshowdate - \DTMdisplaydate{##1}{##2}{##3}{##4}% - \DTMserbiandatetimesep +\DTMnewstyle% +{serbian}% label +{% date style + \renewcommand*\DTMdisplaydate[4]{% + \ifDTMshowdow% + \ifnum##4>-1 + \DTMserbianweekdayname{##4}% + \DTMserbiandowdaysep% + \fi + \fi + \DTMifbool{serbian}{showdayofmonth} + {\DTMserbiandayordinal{##3}\DTMserbiandaymonthsep}% + {}% + \DTMifbool{serbian}{monthi}% + {\DTMserbianimonthname{##2}}% + {\DTMserbiannoimonthname{##2}}% + \DTMifbool{serbian}{showyear}% + {% + \DTMserbianmonthyearsep% + \DTMserbianyearordinal{##1}% + }% + {}% + }% + \renewcommand*\DTMDisplaydate[4]{% + \ifDTMshowdow% + \ifnum##4>-1 + \DTMserbianWeekdayname{##4}% + \DTMserbiandowdaysep% + \fi + \fi + \DTMifbool{serbian}{showdayofmonth} + {% + \DTMserbiandayordinal{##3}\DTMserbiandaymonthsep% + \DTMifbool{serbian}{monthi}% + {\DTMserbianimonthname{##2}}% + {\DTMserbiannoimonthname{##2}}% + }% + {% + \DTMifbool{serbian}{monthi}% + {\DTMserbianiMonthname{##2}}% + {\DTMserbiannoiMonthname{##2}}% + }% + \DTMifbool{serbian}{showyear}% + {% + \DTMserbianmonthyearsep% + \DTMserbianyearordinal{##1}% + }% + {}% + }% +}% +{% time style + \renewcommand*\DTMdisplaytime[3]{% + \DTMifbool{serbian}{leadingzero}{\DTMtwodigits{##1}}{\number##1}% + \DTMserbiantimesep\DTMtwodigits{##2}% + \ifDTMshowseconds\DTMserbiantimesep\DTMtwodigits{##3}\fi + }% +}% +{% zone style + \DTMresetzones% + \DTMserbianzonemaps% + \renewcommand*{\DTMdisplayzone}[2]{% + \DTMifbool{serbian}{mapzone}% + {\DTMusezonemapordefault{##1}{##2}}% + {% + \ifnum##1<0 + \else+\fi\DTMtwodigits{##1}% + \ifDTMshowzoneminutes\DTMserbiantimesep\DTMtwodigits{##2}\fi + }% + }% +}% +{% full style + \renewcommand*{\DTMdisplay}[9]{% + \ifDTMshowdate% + \DTMdisplaydate{##1}{##2}{##3}{##4}% + \DTMserbiandatetimesep% \fi \DTMdisplaytime{##5}{##6}{##7}% - \ifDTMshowzone - \DTMserbiantimezonesep - \DTMdisplayzone{##8}{##9}% + \ifDTMshowzone% + \DTMserbiantimezonesep% + \DTMdisplayzone{##8}{##9}% \fi - }% - \renewcommand*{\DTMDisplay}[9]{% - \ifDTMshowdate - \DTMDisplaydate{##1}{##2}{##3}{##4}% - \DTMserbiandatetimesep + }% + \renewcommand*{\DTMDisplay}[9]{% + \ifDTMshowdate% + \DTMDisplaydate{##1}{##2}{##3}{##4}% + \DTMserbiandatetimesep% \fi \DTMdisplaytime{##5}{##6}{##7}% - \ifDTMshowzone - \DTMserbiantimezonesep - \DTMdisplayzone{##8}{##9}% + \ifDTMshowzone% + \DTMserbiantimezonesep% + \DTMdisplayzone{##8}{##9}% \fi - }% - }% -\DTMnewstyle - {serbian-numeric}% label - {% date style - \renewcommand*\DTMdisplaydate[4]{% - \DTMifbool{serbian}{showdayofmonth}% - {% - \number##3 % space intended - \DTMserbiandatesep - }% - {}% - \number##2 % space intended - \DTMifbool{serbian}{showyear}% - {% - \DTMserbiandatesep - \number##1 % space intended - }% - {}% + }% +}% + \newcommand*{\DTMserbianmonthordinal}[1]{% + \DTMifbool{serbian}{leadingzero}{\DTMtwodigits{#1}}{\number#1}.}% +\DTMdefchoicekey{serbian}{monthord}% +[\@dtm@val\@dtm@nr]{arabic,roman,romanlsc}{% + \ifcase\@dtm@nr\relax + \renewcommand*{\DTMserbianmonthordinal}[1]{% + \DTMifbool{serbian}{leadingzero}% + {\DTMtwodigits{##1}}{\number##1}\DTMserbiandatesep}% + \or% + \renewcommand*{\DTMserbianmonthordinal}[1]{% + \DTMtexorpdfstring{\protect\DTMserbianordinalROMAN{##1}}% + {serbianordinalROMAN{##1}}}% + \or% + \renewcommand*{\DTMserbianmonthordinal}[1]{% + \DTMtexorpdfstring{\textsc{\protect\DTMserbianordinalroman{##1}}}% + {serbianordinalROMAN{##1}}}% + \fi +} +\DTMnewstyle% +{serbian-numeric}% label +{% date style + \renewcommand*\DTMdisplaydate[4]{% + \ifDTMshowdow% + \ifnum##4>-1 + \DTMserbianweekdayname{##4}% + \DTMserbiandowdaysep% + \fi + \fi + \DTMifbool{serbian}{showdayofmonth}% + {\DTMserbiandayordinal{##3}\DTMserbiandaymonthsep}% + {}% + \DTMserbianmonthordinal{##2}% + \DTMifbool{serbian}{showyear}% + {% + \DTMserbianmonthyearsep% + \DTMserbianyearordinal{##1}% }% - \renewcommand*{\DTMDisplaydate}{\DTMdisplaydate}% - }% - {% time style - \renewcommand*\DTMdisplaytime[3]{% - \number##1 - \DTMserbiantimesep\DTMtwodigits{##2}% - \ifDTMshowseconds\DTMserbiantimesep\DTMtwodigits{##3}\fi + {}% + }% + \renewcommand*\DTMDisplaydate[4]{% + \ifDTMshowdow% + \ifnum##4>-1 + \DTMserbianWeekdayname{##4}% + \DTMserbiandowdaysep% + \fi + \fi + \DTMifbool{serbian}{showdayofmonth}% + {\DTMserbiandayordinal{##3}\DTMserbiandaymonthsep}% + {}% + \DTMserbianmonthordinal{##2}% + \DTMifbool{serbian}{showyear}% + {% + \DTMserbianmonthyearsep% + \DTMserbianyearordinal{##1}% }% - }% - {% zone style - \DTMresetzones - \DTMserbianzonemaps - \renewcommand*{\DTMdisplayzone}[2]{% - \DTMifbool{serbian}{mapzone}% - {\DTMusezonemapordefault{##1}{##2}}% - {% - \ifnum##1<0 \else+\fi\DTMtwodigits{##1}% - \ifDTMshowzoneminutes\DTMserbiantimesep\DTMtwodigits{##2}\fi - }% - }% - }% - {% full style - \renewcommand*{\DTMdisplay}[9]{% - \ifDTMshowdate - \DTMdisplaydate{##1}{##2}{##3}{##4}% - \DTMserbiandatetimesep + {}% + }% +}% +{% time style + \renewcommand*\DTMdisplaytime[3]{% + \DTMifbool{serbian}{leadingzero}{\DTMtwodigits{##1}}{\number##1}% + \DTMserbiantimesep\DTMtwodigits{##2}% + \ifDTMshowseconds\DTMserbiantimesep\DTMtwodigits{##3}\fi + }% +}% +{% zone style + \DTMresetzones% + \DTMserbianzonemaps% + \renewcommand*{\DTMdisplayzone}[2]{% + \DTMifbool{serbian}{mapzone}% + {\DTMusezonemapordefault{##1}{##2}}% + {% + \ifnum##1<0 + \else+\fi\DTMtwodigits{##1}% + \ifDTMshowzoneminutes\DTMserbiantimesep\DTMtwodigits{##2}\fi + }% + }% +}% +{% full style + \renewcommand*{\DTMdisplay}[9]{% + \ifDTMshowdate% + \DTMdisplaydate{##1}{##2}{##3}{##4}% + \DTMserbiandatetimesep% \fi \DTMdisplaytime{##5}{##6}{##7}% - \ifDTMshowzone - \DTMserbiantimezonesep - \DTMdisplayzone{##8}{##9}% + \ifDTMshowzone% + \DTMserbiantimezonesep% + \DTMdisplayzone{##8}{##9}% \fi - }% - \renewcommand*{\DTMDisplay}{\DTMdisplay}% - } + }% + \renewcommand*{\DTMDisplay}{\DTMdisplay}% +} \newcommand*{\DTMserbianzonemaps}{% \DTMdefzonemap{01}{00}{CET}% \DTMdefzonemap{02}{00}{CEST}% } -\DTMifcaseregional +\DTMifcaseregional% {}% do nothing -{\DTMsetstyle{serbian}} -{\DTMsetstyle{serbian-numeric}} +{\DTMsetstyle{serbian}}% +{\DTMsetstyle{serbian-numeric}}% \ifcsundef{date\CurrentTrackedDialect} {% - \ifundef\dateserbian + \ifundef\dateserbian% {% do nothing }% {% \def\dateserbian{% - \DTMifcaseregional + \DTMifcaseregional% {}% do nothing {\DTMsetstyle{serbian}}% {\DTMsetstyle{serbian-numeric}}% @@ -230,7 +329,7 @@ }% {% \csdef{date\CurrentTrackedDialect}{% - \DTMifcaseregional + \DTMifcaseregional% {}% do nothing {\DTMsetstyle{serbian}}% {\DTMsetstyle{serbian-numeric}}% diff --git a/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-serbianc.ldf b/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-serbianc.ldf new file mode 100644 index 00000000000..4ad37b3886b --- /dev/null +++ b/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-serbianc.ldf @@ -0,0 +1,340 @@ +%% +%% This is file `datetime2-serbianc.ldf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% datetime2-serbian.dtx (with options: `datetime2-serbianc.ldf,package') +%% +%% datetime2-serbian.dtx +%% Copyright 2019 Andrej Radović +%% Copyright 2019 Nicola Talbot +%% +%% 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 `maintained'. +%% +%% The Current Maintainer of this work is Andrej Radović. +%% +%% This work consists of the files datetime2-serbian.dtx and +%% datetime2-serbian.ins and the derived files are as follows: +%% datetime2-serbian-base.ldf +%% datetime2-serbian-base-utf8.ldf +%% datetime2-serbian-base-ascii.ldf +%% datetime2-serbian.ldf +%% datetime2-sr-Latn.ldf +%% datetime2-sr-Latn-RS.ldf +%% datetime2-sr-Latn-ME.ldf +%% datetime2-sr-Latn-BA.ldf +%% datetime2-serbianc.ldf +%% datetime2-sr-Cyrl.ldf +%% datetime2-sr-Cyrl-RS.ldf +%% datetime2-sr-Cyrl-ME.ldf +%% datetime2-sr-Cyrl-BA.ldf +%% +%% +%% \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 \~} +\ProvidesDateTimeModule{serbianc}[2019/11/07 v2.0] +\RequireDateTimeModule{serbian-base} +\newcommand*{\DTMserbiancdowdaysep}{,\space} +\newcommand*{\DTMserbiancdaymonthsep}{% + \DTMtexorpdfstring{\protect~}{\space}% +} +\newcommand*{\DTMserbiancmonthyearsep}{\space} +\newcommand*{\DTMserbiancdatetimesep}{\space} +\newcommand*{\DTMserbianctimezonesep}{\space} +\newcommand*{\DTMserbiancdatesep}{.} +\newcommand*{\DTMserbianctimesep}{.} +\DTMdefkey{serbianc}{dowdaysep}% + {\renewcommand*{\DTMserbiancdowdaysep}{#1}} +\DTMdefkey{serbianc}{daymonthsep}% + {\renewcommand*{\DTMserbiancdaymonthsep}{#1}} +\DTMdefkey{serbianc}{monthyearsep}% + {\renewcommand*{\DTMserbiancmonthyearsep}{#1}} +\DTMdefkey{serbianc}{datetimesep}% + {\renewcommand*{\DTMserbiancdatetimesep}{#1}} +\DTMdefkey{serbianc}{timezonesep}% + {\renewcommand*{\DTMserbianctimezonesep}{#1}} +\DTMdefkey{serbianc}{datesep}% + {\renewcommand*{\DTMserbiancdatesep}{#1}} +\DTMdefkey{serbianc}{timesep}% + {\renewcommand*{\DTMserbianctimesep}{#1}} +\newcommand*{\DTMserbiancweekdayname}% +{\DTMserbiancyrekweekdayname} + +\newcommand*{\DTMserbiancWeekdayname}% + {\DTMserbiancyrekWeekdayname} +\DTMdefchoicekey{serbianc}% + {pronunciation}[\@dtm@val\@dtm@nr]{ekavian,ijekavian}{% + \ifcase\@dtm@nr\relax + \renewcommand*{\DTMserbiancweekdayname}% + {\DTMserbiancyrekweekdayname}% + \renewcommand*{\DTMserbiancWeekdayname}% + {\DTMserbiancyrekWeekdayname}% + \or% + \renewcommand*{\DTMserbiancweekdayname}% + {\DTMserbiancyrijweekdayname}% + \renewcommand*{\DTMserbiancWeekdayname} + {\DTMserbiancyrijWeekdayname}% + \fi +} +\DTMdefboolkey{serbianc}{monthi}[true]{} +\DTMsetbool{serbianc}{monthi}{false} +\DTMdefboolkey{serbianc}{leadingzero}[true]{} +\DTMsetbool{serbianc}{leadingzero}{false} + \newcommand*{\DTMserbiancdayordinal}[1]{% + \DTMifbool{serbianc}{leadingzero}% + {\DTMtwodigits{#1}}% + {\number#1}\DTMserbiancdatesep}% + \newcommand*{\DTMserbiancyearordinal}[1]{% + \number#1\DTMserbiancdatesep}% +\newcommand*{\DTMserbiancnoimonthname}{\DTMserbiancyrnoimonthname} +\newcommand*{\DTMserbiancnoiMonthname}{\DTMserbiancyrnoiMonthname} +\newcommand*{\DTMserbiancimonthname}{\DTMserbiancyrimonthname} +\newcommand*{\DTMserbianciMonthname}{\DTMserbiancyriMonthname} +\DTMdefboolkey{serbianc}{mapzone}[true]{} +\DTMsetbool{serbianc}{mapzone}{true} +\DTMdefboolkey{serbianc}{showdayofmonth}[true]{} +\DTMsetbool{serbianc}{showdayofmonth}{true} +\DTMdefboolkey{serbianc}{showyear}[true]{} +\DTMsetbool{serbianc}{showyear}{true} +\DTMnewstyle% +{serbianc}% label +{% date style + \renewcommand*\DTMdisplaydate[4]{% + \ifDTMshowdow% + \ifnum##4>-1 + \DTMserbiancweekdayname{##4}% + \DTMserbiancdowdaysep% + \fi + \fi + \DTMifbool{serbianc}{showdayofmonth} + {\DTMserbiancdayordinal{##3}\DTMserbiancdaymonthsep}% + {}% + \DTMifbool{serbianc}{monthi}% + {\DTMserbiancimonthname{##2}}% + {\DTMserbiancnoimonthname{##2}}% + \DTMifbool{serbianc}{showyear}% + {% + \DTMserbiancmonthyearsep% + \DTMserbiancyearordinal{##1}% + }% + {}% + }% + \renewcommand*\DTMDisplaydate[4]{% + \ifDTMshowdow% + \ifnum##4>-1 + \DTMserbiancWeekdayname{##4}% + \DTMserbiancdowdaysep% + \fi + \fi + \DTMifbool{serbianc}{showdayofmonth} + {% + \DTMserbiancdayordinal{##3}\DTMserbiancdaymonthsep% + \DTMifbool{serbianc}{monthi}% + {\DTMserbiancimonthname{##2}}% + {\DTMserbiancnoimonthname{##2}}% + }% + {% + \DTMifbool{serbianc}{monthi}% + {\DTMserbianciMonthname{##2}}% + {\DTMserbiancnoiMonthname{##2}}% + }% + \DTMifbool{serbianc}{showyear}% + {% + \DTMserbiancmonthyearsep% + \DTMserbiancyearordinal{##1}% + }% + {}% + }% +}% +{% time style + \renewcommand*\DTMdisplaytime[3]{% + \DTMifbool{serbianc}{leadingzero}{\DTMtwodigits{##1}}{\number##1}% + \DTMserbianctimesep\DTMtwodigits{##2}% + \ifDTMshowseconds\DTMserbianctimesep\DTMtwodigits{##3}\fi + }% +}% +{% zone style + \DTMresetzones% + \DTMserbianczonemaps% + \renewcommand*{\DTMdisplayzone}[2]{% + \DTMifbool{serbianc}{mapzone}% + {\DTMusezonemapordefault{##1}{##2}}% + {% + \ifnum##1<0 + \else+\fi\DTMtwodigits{##1}% + \ifDTMshowzoneminutes\DTMserbianctimesep\DTMtwodigits{##2}\fi + }% + }% +}% +{% full style + \renewcommand*{\DTMdisplay}[9]{% + \ifDTMshowdate% + \DTMdisplaydate{##1}{##2}{##3}{##4}% + \DTMserbiancdatetimesep% + \fi + \DTMdisplaytime{##5}{##6}{##7}% + \ifDTMshowzone% + \DTMserbianctimezonesep% + \DTMdisplayzone{##8}{##9}% + \fi + }% + \renewcommand*{\DTMDisplay}[9]{% + \ifDTMshowdate% + \DTMDisplaydate{##1}{##2}{##3}{##4}% + \DTMserbiancdatetimesep% + \fi + \DTMdisplaytime{##5}{##6}{##7}% + \ifDTMshowzone% + \DTMserbianctimezonesep% + \DTMdisplayzone{##8}{##9}% + \fi + }% +}% + \newcommand*{\DTMserbiancmonthordinal}[1]{% + \DTMifbool{serbianc}{leadingzero}{\DTMtwodigits{#1}}{\number#1}.}% +\DTMdefchoicekey{serbianc}{monthord}% +[\@dtm@val\@dtm@nr]{arabic,roman,romanlsc}{% + \ifcase\@dtm@nr\relax + \renewcommand*{\DTMserbiancmonthordinal}[1]{% + \DTMifbool{serbianc}{leadingzero}% + {\DTMtwodigits{##1}}{\number##1}\DTMserbiancdatesep}% + \or% + \renewcommand*{\DTMserbiancmonthordinal}[1]{% + \DTMtexorpdfstring{\protect\DTMserbianordinalROMAN{##1}}% + {serbianordinalROMAN{##1}}}% + \or% + \renewcommand*{\DTMserbiancmonthordinal}[1]{% + \DTMtexorpdfstring{\textsc{\protect\DTMserbianordinalroman{##1}}}% + {serbianordinalROMAN{##1}}}% + \fi +} +\DTMnewstyle% +{serbianc-numeric}% label +{% date style + \renewcommand*\DTMdisplaydate[4]{% + \ifDTMshowdow% + \ifnum##4>-1 + \DTMserbiancweekdayname{##4}% + \DTMserbiancdowdaysep% + \fi + \fi + \DTMifbool{serbianc}{showdayofmonth}% + {\DTMserbiancdayordinal{##3}\DTMserbiancdaymonthsep}% + {}% + \DTMserbiancmonthordinal{##2}% + \DTMifbool{serbianc}{showyear}% + {% + \DTMserbiancmonthyearsep% + \DTMserbiancyearordinal{##1}% + }% + {}% + }% + \renewcommand*\DTMDisplaydate[4]{% + \ifDTMshowdow% + \ifnum##4>-1 + \DTMserbiancWeekdayname{##4}% + \DTMserbiancdowdaysep% + \fi + \fi + \DTMifbool{serbianc}{showdayofmonth}% + {\DTMserbiancdayordinal{##3}\DTMserbiancdaymonthsep}% + {}% + \DTMserbiancmonthordinal{##2}% + \DTMifbool{serbianc}{showyear}% + {% + \DTMserbiancmonthyearsep% + \DTMserbiancyearordinal{##1}% + }% + {}% + }% +}% +{% time style + \renewcommand*\DTMdisplaytime[3]{% + \DTMifbool{serbianc}{leadingzero}{\DTMtwodigits{##1}}{\number##1}% + \DTMserbianctimesep\DTMtwodigits{##2}% + \ifDTMshowseconds\DTMserbianctimesep\DTMtwodigits{##3}\fi + }% +}% +{% zone style + \DTMresetzones% + \DTMserbianczonemaps% + \renewcommand*{\DTMdisplayzone}[2]{% + \DTMifbool{serbianc}{mapzone}% + {\DTMusezonemapordefault{##1}{##2}}% + {% + \ifnum##1<0 + \else+\fi\DTMtwodigits{##1}% + \ifDTMshowzoneminutes\DTMserbianctimesep\DTMtwodigits{##2}\fi + }% + }% +}% +{% full style + \renewcommand*{\DTMdisplay}[9]{% + \ifDTMshowdate% + \DTMdisplaydate{##1}{##2}{##3}{##4}% + \DTMserbiancdatetimesep% + \fi + \DTMdisplaytime{##5}{##6}{##7}% + \ifDTMshowzone% + \DTMserbianctimezonesep% + \DTMdisplayzone{##8}{##9}% + \fi + }% + \renewcommand*{\DTMDisplay}{\DTMdisplay}% +} +\newcommand*{\DTMserbianczonemaps}{% + \DTMdefzonemap{01}{00}{CET}% + \DTMdefzonemap{02}{00}{CEST}% +} + +\DTMifcaseregional% +{}% do nothing +{\DTMsetstyle{serbianc}}% +{\DTMsetstyle{serbianc-numeric}}% +\ifcsundef{date\CurrentTrackedDialect} +{% + \ifundef\dateserbianc% + {% do nothing + }% + {% + \def\dateserbianc{% + \DTMifcaseregional% + {}% do nothing + {\DTMsetstyle{serbianc}}% + {\DTMsetstyle{serbianc-numeric}}% + }% + }% +}% +{% + \csdef{date\CurrentTrackedDialect}{% + \DTMifcaseregional% + {}% do nothing + {\DTMsetstyle{serbianc}}% + {\DTMsetstyle{serbianc-numeric}}% + }% +}% +\endinput +%% +%% End of file `datetime2-serbianc.ldf'. diff --git a/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-sr-Cyrl-BA.ldf b/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-sr-Cyrl-BA.ldf new file mode 100644 index 00000000000..7538f13b66e --- /dev/null +++ b/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-sr-Cyrl-BA.ldf @@ -0,0 +1,340 @@ +%% +%% This is file `datetime2-sr-Cyrl-BA.ldf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% datetime2-serbian.dtx (with options: `datetime2-sr-Cyrl-BA.ldf,package') +%% +%% datetime2-serbian.dtx +%% Copyright 2019 Andrej Radović +%% Copyright 2019 Nicola Talbot +%% +%% 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 `maintained'. +%% +%% The Current Maintainer of this work is Andrej Radović. +%% +%% This work consists of the files datetime2-serbian.dtx and +%% datetime2-serbian.ins and the derived files are as follows: +%% datetime2-serbian-base.ldf +%% datetime2-serbian-base-utf8.ldf +%% datetime2-serbian-base-ascii.ldf +%% datetime2-serbian.ldf +%% datetime2-sr-Latn.ldf +%% datetime2-sr-Latn-RS.ldf +%% datetime2-sr-Latn-ME.ldf +%% datetime2-sr-Latn-BA.ldf +%% datetime2-serbianc.ldf +%% datetime2-sr-Cyrl.ldf +%% datetime2-sr-Cyrl-RS.ldf +%% datetime2-sr-Cyrl-ME.ldf +%% datetime2-sr-Cyrl-BA.ldf +%% +%% +%% \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 \~} +\ProvidesDateTimeModule{sr-Cyrl-BA}[2019/11/07 v2.0] +\RequireDateTimeModule{serbian-base} +\newcommand*{\DTMsrCyrlBAdowdaysep}{,\space} +\newcommand*{\DTMsrCyrlBAdaymonthsep}{% + \DTMtexorpdfstring{\protect~}{\space}% +} +\newcommand*{\DTMsrCyrlBAmonthyearsep}{\space} +\newcommand*{\DTMsrCyrlBAdatetimesep}{\space} +\newcommand*{\DTMsrCyrlBAtimezonesep}{\space} +\newcommand*{\DTMsrCyrlBAdatesep}{.} +\newcommand*{\DTMsrCyrlBAtimesep}{.} +\DTMdefkey{sr-Cyrl-BA}{dowdaysep}% + {\renewcommand*{\DTMsr-Cyrl-BAdowdaysep}{#1}} +\DTMdefkey{sr-Cyrl-BA}{daymonthsep}% + {\renewcommand*{\DTMsr-Cyrl-BAdaymonthsep}{#1}} +\DTMdefkey{sr-Cyrl-BA}{monthyearsep}% + {\renewcommand*{\DTMsr-Cyrl-BAmonthyearsep}{#1}} +\DTMdefkey{sr-Cyrl-BA}{datetimesep}% + {\renewcommand*{\DTMsr-Cyrl-BAdatetimesep}{#1}} +\DTMdefkey{sr-Cyrl-BA}{timezonesep}% + {\renewcommand*{\DTMsr-Cyrl-BAtimezonesep}{#1}} +\DTMdefkey{sr-Cyrl-BA}{datesep}% + {\renewcommand*{\DTMsr-Cyrl-BAdatesep}{#1}} +\DTMdefkey{sr-Cyrl-BA}{timesep}% + {\renewcommand*{\DTMsr-Cyrl-BAtimesep}{#1}} +\newcommand*{\DTMsrCyrlBAweekdayname}% +{\DTMserbiancyrijweekdayname} + +\newcommand*{\DTMsrCyrlBAWeekdayname}% + {\DTMserbiancyrijWeekdayname} +\DTMdefchoicekey{sr-Cyrl-BA}% + {pronunciation}[\@dtm@val\@dtm@nr]{ekavian,ijekavian}{% + \ifcase\@dtm@nr\relax + \renewcommand*{\DTMsrCyrlBAweekdayname}% + {\DTMserbiancyrekweekdayname}% + \renewcommand*{\DTMsrCyrlBAWeekdayname}% + {\DTMserbiancyrekWeekdayname}% + \or% + \renewcommand*{\DTMsrCyrlBAweekdayname}% + {\DTMserbiancyrijweekdayname}% + \renewcommand*{\DTMsrCyrlBAWeekdayname} + {\DTMserbiancyrijWeekdayname}% + \fi +} +\DTMdefboolkey{sr-Cyrl-BA}{monthi}[true]{} +\DTMsetbool{sr-Cyrl-BA}{monthi}{false} +\DTMdefboolkey{sr-Cyrl-BA}{leadingzero}[true]{} +\DTMsetbool{sr-Cyrl-BA}{leadingzero}{false} + \newcommand*{\DTMsrCyrlBAdayordinal}[1]{% + \DTMifbool{sr-Cyrl-BA}{leadingzero}% + {\DTMtwodigits{#1}}% + {\number#1}\DTMsrCyrlBAdatesep}% + \newcommand*{\DTMsrCyrlBAyearordinal}[1]{% + \number#1\DTMsrCyrlBAdatesep}% +\newcommand*{\DTMsrCyrlBAnoimonthname}{\DTMserbiancyrnoimonthname} +\newcommand*{\DTMsrCyrlBAnoiMonthname}{\DTMserbiancyrnoiMonthname} +\newcommand*{\DTMsrCyrlBAimonthname}{\DTMserbiancyrimonthname} +\newcommand*{\DTMsrCyrlBAiMonthname}{\DTMserbiancyriMonthname} +\DTMdefboolkey{sr-Cyrl-BA}{mapzone}[true]{} +\DTMsetbool{sr-Cyrl-BA}{mapzone}{true} +\DTMdefboolkey{sr-Cyrl-BA}{showdayofmonth}[true]{} +\DTMsetbool{sr-Cyrl-BA}{showdayofmonth}{true} +\DTMdefboolkey{sr-Cyrl-BA}{showyear}[true]{} +\DTMsetbool{sr-Cyrl-BA}{showyear}{true} +\DTMnewstyle% +{sr-Cyrl-BA}% label +{% date style + \renewcommand*\DTMdisplaydate[4]{% + \ifDTMshowdow% + \ifnum##4>-1 + \DTMsrCyrlBAweekdayname{##4}% + \DTMsrCyrlBAdowdaysep% + \fi + \fi + \DTMifbool{sr-Cyrl-BA}{showdayofmonth} + {\DTMsrCyrlBAdayordinal{##3}\DTMsrCyrlBAdaymonthsep}% + {}% + \DTMifbool{sr-Cyrl-BA}{monthi}% + {\DTMsrCyrlBAimonthname{##2}}% + {\DTMsrCyrlBAnoimonthname{##2}}% + \DTMifbool{sr-Cyrl-BA}{showyear}% + {% + \DTMsrCyrlBAmonthyearsep% + \DTMsrCyrlBAyearordinal{##1}% + }% + {}% + }% + \renewcommand*\DTMDisplaydate[4]{% + \ifDTMshowdow% + \ifnum##4>-1 + \DTMsrCyrlBAWeekdayname{##4}% + \DTMsrCyrlBAdowdaysep% + \fi + \fi + \DTMifbool{sr-Cyrl-BA}{showdayofmonth} + {% + \DTMsrCyrlBAdayordinal{##3}\DTMsrCyrlBAdaymonthsep% + \DTMifbool{sr-Cyrl-BA}{monthi}% + {\DTMsrCyrlBAimonthname{##2}}% + {\DTMsrCyrlBAnoimonthname{##2}}% + }% + {% + \DTMifbool{sr-Cyrl-BA}{monthi}% + {\DTMsrCyrlBAiMonthname{##2}}% + {\DTMsrCyrlBAnoiMonthname{##2}}% + }% + \DTMifbool{sr-Cyrl-BA}{showyear}% + {% + \DTMsrCyrlBAmonthyearsep% + \DTMsrCyrlBAyearordinal{##1}% + }% + {}% + }% +}% +{% time style + \renewcommand*\DTMdisplaytime[3]{% + \DTMifbool{sr-Cyrl-BA}{leadingzero}{\DTMtwodigits{##1}}{\number##1}% + \DTMsrCyrlBAtimesep\DTMtwodigits{##2}% + \ifDTMshowseconds\DTMsrCyrlBAtimesep\DTMtwodigits{##3}\fi + }% +}% +{% zone style + \DTMresetzones% + \DTMsrCyrlBAzonemaps% + \renewcommand*{\DTMdisplayzone}[2]{% + \DTMifbool{sr-Cyrl-BA}{mapzone}% + {\DTMusezonemapordefault{##1}{##2}}% + {% + \ifnum##1<0 + \else+\fi\DTMtwodigits{##1}% + \ifDTMshowzoneminutes\DTMsrCyrlBAtimesep\DTMtwodigits{##2}\fi + }% + }% +}% +{% full style + \renewcommand*{\DTMdisplay}[9]{% + \ifDTMshowdate% + \DTMdisplaydate{##1}{##2}{##3}{##4}% + \DTMsrCyrlBAdatetimesep% + \fi + \DTMdisplaytime{##5}{##6}{##7}% + \ifDTMshowzone% + \DTMsrCyrlBAtimezonesep% + \DTMdisplayzone{##8}{##9}% + \fi + }% + \renewcommand*{\DTMDisplay}[9]{% + \ifDTMshowdate% + \DTMDisplaydate{##1}{##2}{##3}{##4}% + \DTMsrCyrlBAdatetimesep% + \fi + \DTMdisplaytime{##5}{##6}{##7}% + \ifDTMshowzone% + \DTMsrCyrlBAtimezonesep% + \DTMdisplayzone{##8}{##9}% + \fi + }% +}% + \newcommand*{\DTMsrCyrlBAmonthordinal}[1]{% + \DTMifbool{sr-Cyrl-BA}{leadingzero}{\DTMtwodigits{#1}}{\number#1}.}% +\DTMdefchoicekey{sr-Cyrl-BA}{monthord}% +[\@dtm@val\@dtm@nr]{arabic,roman,romanlsc}{% + \ifcase\@dtm@nr\relax + \renewcommand*{\DTMsrCyrlBAmonthordinal}[1]{% + \DTMifbool{sr-Cyrl-BA}{leadingzero}% + {\DTMtwodigits{##1}}{\number##1}\DTMsrCyrlBAdatesep}% + \or% + \renewcommand*{\DTMsrCyrlBAmonthordinal}[1]{% + \DTMtexorpdfstring{\protect\DTMserbianordinalROMAN{##1}}% + {serbianordinalROMAN{##1}}}% + \or% + \renewcommand*{\DTMsrCyrlBAmonthordinal}[1]{% + \DTMtexorpdfstring{\textsc{\protect\DTMserbianordinalroman{##1}}}% + {serbianordinalROMAN{##1}}}% + \fi +} +\DTMnewstyle% +{sr-Cyrl-BA-numeric}% label +{% date style + \renewcommand*\DTMdisplaydate[4]{% + \ifDTMshowdow% + \ifnum##4>-1 + \DTMsrCyrlBAweekdayname{##4}% + \DTMsrCyrlBAdowdaysep% + \fi + \fi + \DTMifbool{sr-Cyrl-BA}{showdayofmonth}% + {\DTMsrCyrlBAdayordinal{##3}\DTMsrCyrlBAdaymonthsep}% + {}% + \DTMsrCyrlBAmonthordinal{##2}% + \DTMifbool{sr-Cyrl-BA}{showyear}% + {% + \DTMsrCyrlBAmonthyearsep% + \DTMsrCyrlBAyearordinal{##1}% + }% + {}% + }% + \renewcommand*\DTMDisplaydate[4]{% + \ifDTMshowdow% + \ifnum##4>-1 + \DTMsrCyrlBAWeekdayname{##4}% + \DTMsrCyrlBAdowdaysep% + \fi + \fi + \DTMifbool{sr-Cyrl-BA}{showdayofmonth}% + {\DTMsrCyrlBAdayordinal{##3}\DTMsrCyrlBAdaymonthsep}% + {}% + \DTMsrCyrlBAmonthordinal{##2}% + \DTMifbool{sr-Cyrl-BA}{showyear}% + {% + \DTMsrCyrlBAmonthyearsep% + \DTMsrCyrlBAyearordinal{##1}% + }% + {}% + }% +}% +{% time style + \renewcommand*\DTMdisplaytime[3]{% + \DTMifbool{sr-Cyrl-BA}{leadingzero}{\DTMtwodigits{##1}}{\number##1}% + \DTMsrCyrlBAtimesep\DTMtwodigits{##2}% + \ifDTMshowseconds\DTMsrCyrlBAtimesep\DTMtwodigits{##3}\fi + }% +}% +{% zone style + \DTMresetzones% + \DTMsrCyrlBAzonemaps% + \renewcommand*{\DTMdisplayzone}[2]{% + \DTMifbool{sr-Cyrl-BA}{mapzone}% + {\DTMusezonemapordefault{##1}{##2}}% + {% + \ifnum##1<0 + \else+\fi\DTMtwodigits{##1}% + \ifDTMshowzoneminutes\DTMsrCyrlBAtimesep\DTMtwodigits{##2}\fi + }% + }% +}% +{% full style + \renewcommand*{\DTMdisplay}[9]{% + \ifDTMshowdate% + \DTMdisplaydate{##1}{##2}{##3}{##4}% + \DTMsrCyrlBAdatetimesep% + \fi + \DTMdisplaytime{##5}{##6}{##7}% + \ifDTMshowzone% + \DTMsrCyrlBAtimezonesep% + \DTMdisplayzone{##8}{##9}% + \fi + }% + \renewcommand*{\DTMDisplay}{\DTMdisplay}% +} +\newcommand*{\DTMsr-Cyrl-BAzonemaps}{% + \DTMdefzonemap{01}{00}{CET}% + \DTMdefzonemap{02}{00}{CEST}% +} + +\DTMifcaseregional% +{}% do nothing +{\DTMsetstyle{sr-Cyrl-BA}}% +{\DTMsetstyle{sr-Cyrl-BA-numeric}}% +\ifcsundef{date\CurrentTrackedDialect} +{% + \ifundef\dateserbianc% + {% do nothing + }% + {% + \def\dateserbianc{% + \DTMifcaseregional% + {}% do nothing + {\DTMsetstyle{sr-Cyrl-BA}}% + {\DTMsetstyle{sr-Cyrl-BA-numeric}}% + }% + }% +}% +{% + \csdef{date\CurrentTrackedDialect}{% + \DTMifcaseregional% + {}% do nothing + {\DTMsetstyle{sr-Cyrl-BA}}% + {\DTMsetstyle{sr-Cyrl-BA-numeric}}% + }% +}% +\endinput +%% +%% End of file `datetime2-sr-Cyrl-BA.ldf'. diff --git a/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-sr-Cyrl-ME.ldf b/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-sr-Cyrl-ME.ldf new file mode 100644 index 00000000000..87bdf5cf9ee --- /dev/null +++ b/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-sr-Cyrl-ME.ldf @@ -0,0 +1,340 @@ +%% +%% This is file `datetime2-sr-Cyrl-ME.ldf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% datetime2-serbian.dtx (with options: `datetime2-sr-Cyrl-ME.ldf,package') +%% +%% datetime2-serbian.dtx +%% Copyright 2019 Andrej Radović +%% Copyright 2019 Nicola Talbot +%% +%% 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 `maintained'. +%% +%% The Current Maintainer of this work is Andrej Radović. +%% +%% This work consists of the files datetime2-serbian.dtx and +%% datetime2-serbian.ins and the derived files are as follows: +%% datetime2-serbian-base.ldf +%% datetime2-serbian-base-utf8.ldf +%% datetime2-serbian-base-ascii.ldf +%% datetime2-serbian.ldf +%% datetime2-sr-Latn.ldf +%% datetime2-sr-Latn-RS.ldf +%% datetime2-sr-Latn-ME.ldf +%% datetime2-sr-Latn-BA.ldf +%% datetime2-serbianc.ldf +%% datetime2-sr-Cyrl.ldf +%% datetime2-sr-Cyrl-RS.ldf +%% datetime2-sr-Cyrl-ME.ldf +%% datetime2-sr-Cyrl-BA.ldf +%% +%% +%% \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 \~} +\ProvidesDateTimeModule{sr-Cyrl-ME}[2019/11/07 v2.0] +\RequireDateTimeModule{serbian-base} +\newcommand*{\DTMsrCyrlMEdowdaysep}{,\space} +\newcommand*{\DTMsrCyrlMEdaymonthsep}{% + \DTMtexorpdfstring{\protect~}{\space}% +} +\newcommand*{\DTMsrCyrlMEmonthyearsep}{\space} +\newcommand*{\DTMsrCyrlMEdatetimesep}{\space} +\newcommand*{\DTMsrCyrlMEtimezonesep}{\space} +\newcommand*{\DTMsrCyrlMEdatesep}{.} +\newcommand*{\DTMsrCyrlMEtimesep}{.} +\DTMdefkey{sr-Cyrl-ME}{dowdaysep}% + {\renewcommand*{\DTMsr-Cyrl-MEdowdaysep}{#1}} +\DTMdefkey{sr-Cyrl-ME}{daymonthsep}% + {\renewcommand*{\DTMsr-Cyrl-MEdaymonthsep}{#1}} +\DTMdefkey{sr-Cyrl-ME}{monthyearsep}% + {\renewcommand*{\DTMsr-Cyrl-MEmonthyearsep}{#1}} +\DTMdefkey{sr-Cyrl-ME}{datetimesep}% + {\renewcommand*{\DTMsr-Cyrl-MEdatetimesep}{#1}} +\DTMdefkey{sr-Cyrl-ME}{timezonesep}% + {\renewcommand*{\DTMsr-Cyrl-MEtimezonesep}{#1}} +\DTMdefkey{sr-Cyrl-ME}{datesep}% + {\renewcommand*{\DTMsr-Cyrl-MEdatesep}{#1}} +\DTMdefkey{sr-Cyrl-ME}{timesep}% + {\renewcommand*{\DTMsr-Cyrl-MEtimesep}{#1}} +\newcommand*{\DTMsrCyrlMEweekdayname}% +{\DTMserbiancyrijweekdayname} + +\newcommand*{\DTMsrCyrlMEWeekdayname}% + {\DTMserbiancyrijWeekdayname} +\DTMdefchoicekey{sr-Cyrl-ME}% + {pronunciation}[\@dtm@val\@dtm@nr]{ekavian,ijekavian}{% + \ifcase\@dtm@nr\relax + \renewcommand*{\DTMsrCyrlMEweekdayname}% + {\DTMserbiancyrekweekdayname}% + \renewcommand*{\DTMsrCyrlMEWeekdayname}% + {\DTMserbiancyrekWeekdayname}% + \or% + \renewcommand*{\DTMsrCyrlMEweekdayname}% + {\DTMserbiancyrijweekdayname}% + \renewcommand*{\DTMsrCyrlMEWeekdayname} + {\DTMserbiancyrijWeekdayname}% + \fi +} +\DTMdefboolkey{sr-Cyrl-ME}{monthi}[true]{} +\DTMsetbool{sr-Cyrl-ME}{monthi}{false} +\DTMdefboolkey{sr-Cyrl-ME}{leadingzero}[true]{} +\DTMsetbool{sr-Cyrl-ME}{leadingzero}{false} + \newcommand*{\DTMsrCyrlMEdayordinal}[1]{% + \DTMifbool{sr-Cyrl-ME}{leadingzero}% + {\DTMtwodigits{#1}}% + {\number#1}\DTMsrCyrlMEdatesep}% + \newcommand*{\DTMsrCyrlMEyearordinal}[1]{% + \number#1\DTMsrCyrlMEdatesep}% +\newcommand*{\DTMsrCyrlMEnoimonthname}{\DTMserbiancyrnoimonthname} +\newcommand*{\DTMsrCyrlMEnoiMonthname}{\DTMserbiancyrnoiMonthname} +\newcommand*{\DTMsrCyrlMEimonthname}{\DTMserbiancyrimonthname} +\newcommand*{\DTMsrCyrlMEiMonthname}{\DTMserbiancyriMonthname} +\DTMdefboolkey{sr-Cyrl-ME}{mapzone}[true]{} +\DTMsetbool{sr-Cyrl-ME}{mapzone}{true} +\DTMdefboolkey{sr-Cyrl-ME}{showdayofmonth}[true]{} +\DTMsetbool{sr-Cyrl-ME}{showdayofmonth}{true} +\DTMdefboolkey{sr-Cyrl-ME}{showyear}[true]{} +\DTMsetbool{sr-Cyrl-ME}{showyear}{true} +\DTMnewstyle% +{sr-Cyrl-ME}% label +{% date style + \renewcommand*\DTMdisplaydate[4]{% + \ifDTMshowdow% + \ifnum##4>-1 + \DTMsrCyrlMEweekdayname{##4}% + \DTMsrCyrlMEdowdaysep% + \fi + \fi + \DTMifbool{sr-Cyrl-ME}{showdayofmonth} + {\DTMsrCyrlMEdayordinal{##3}\DTMsrCyrlMEdaymonthsep}% + {}% + \DTMifbool{sr-Cyrl-ME}{monthi}% + {\DTMsrCyrlMEimonthname{##2}}% + {\DTMsrCyrlMEnoimonthname{##2}}% + \DTMifbool{sr-Cyrl-ME}{showyear}% + {% + \DTMsrCyrlMEmonthyearsep% + \DTMsrCyrlMEyearordinal{##1}% + }% + {}% + }% + \renewcommand*\DTMDisplaydate[4]{% + \ifDTMshowdow% + \ifnum##4>-1 + \DTMsrCyrlMEWeekdayname{##4}% + \DTMsrCyrlMEdowdaysep% + \fi + \fi + \DTMifbool{sr-Cyrl-ME}{showdayofmonth} + {% + \DTMsrCyrlMEdayordinal{##3}\DTMsrCyrlMEdaymonthsep% + \DTMifbool{sr-Cyrl-ME}{monthi}% + {\DTMsrCyrlMEimonthname{##2}}% + {\DTMsrCyrlMEnoimonthname{##2}}% + }% + {% + \DTMifbool{sr-Cyrl-ME}{monthi}% + {\DTMsrCyrlMEiMonthname{##2}}% + {\DTMsrCyrlMEnoiMonthname{##2}}% + }% + \DTMifbool{sr-Cyrl-ME}{showyear}% + {% + \DTMsrCyrlMEmonthyearsep% + \DTMsrCyrlMEyearordinal{##1}% + }% + {}% + }% +}% +{% time style + \renewcommand*\DTMdisplaytime[3]{% + \DTMifbool{sr-Cyrl-ME}{leadingzero}{\DTMtwodigits{##1}}{\number##1}% + \DTMsrCyrlMEtimesep\DTMtwodigits{##2}% + \ifDTMshowseconds\DTMsrCyrlMEtimesep\DTMtwodigits{##3}\fi + }% +}% +{% zone style + \DTMresetzones% + \DTMsrCyrlMEzonemaps% + \renewcommand*{\DTMdisplayzone}[2]{% + \DTMifbool{sr-Cyrl-ME}{mapzone}% + {\DTMusezonemapordefault{##1}{##2}}% + {% + \ifnum##1<0 + \else+\fi\DTMtwodigits{##1}% + \ifDTMshowzoneminutes\DTMsrCyrlMEtimesep\DTMtwodigits{##2}\fi + }% + }% +}% +{% full style + \renewcommand*{\DTMdisplay}[9]{% + \ifDTMshowdate% + \DTMdisplaydate{##1}{##2}{##3}{##4}% + \DTMsrCyrlMEdatetimesep% + \fi + \DTMdisplaytime{##5}{##6}{##7}% + \ifDTMshowzone% + \DTMsrCyrlMEtimezonesep% + \DTMdisplayzone{##8}{##9}% + \fi + }% + \renewcommand*{\DTMDisplay}[9]{% + \ifDTMshowdate% + \DTMDisplaydate{##1}{##2}{##3}{##4}% + \DTMsrCyrlMEdatetimesep% + \fi + \DTMdisplaytime{##5}{##6}{##7}% + \ifDTMshowzone% + \DTMsrCyrlMEtimezonesep% + \DTMdisplayzone{##8}{##9}% + \fi + }% +}% + \newcommand*{\DTMsrCyrlMEmonthordinal}[1]{% + \DTMifbool{sr-Cyrl-ME}{leadingzero}{\DTMtwodigits{#1}}{\number#1}.}% +\DTMdefchoicekey{sr-Cyrl-ME}{monthord}% +[\@dtm@val\@dtm@nr]{arabic,roman,romanlsc}{% + \ifcase\@dtm@nr\relax + \renewcommand*{\DTMsrCyrlMEmonthordinal}[1]{% + \DTMifbool{sr-Cyrl-ME}{leadingzero}% + {\DTMtwodigits{##1}}{\number##1}\DTMsrCyrlMEdatesep}% + \or% + \renewcommand*{\DTMsrCyrlMEmonthordinal}[1]{% + \DTMtexorpdfstring{\protect\DTMserbianordinalROMAN{##1}}% + {serbianordinalROMAN{##1}}}% + \or% + \renewcommand*{\DTMsrCyrlMEmonthordinal}[1]{% + \DTMtexorpdfstring{\textsc{\protect\DTMserbianordinalroman{##1}}}% + {serbianordinalROMAN{##1}}}% + \fi +} +\DTMnewstyle% +{sr-Cyrl-ME-numeric}% label +{% date style + \renewcommand*\DTMdisplaydate[4]{% + \ifDTMshowdow% + \ifnum##4>-1 + \DTMsrCyrlMEweekdayname{##4}% + \DTMsrCyrlMEdowdaysep% + \fi + \fi + \DTMifbool{sr-Cyrl-ME}{showdayofmonth}% + {\DTMsrCyrlMEdayordinal{##3}\DTMsrCyrlMEdaymonthsep}% + {}% + \DTMsrCyrlMEmonthordinal{##2}% + \DTMifbool{sr-Cyrl-ME}{showyear}% + {% + \DTMsrCyrlMEmonthyearsep% + \DTMsrCyrlMEyearordinal{##1}% + }% + {}% + }% + \renewcommand*\DTMDisplaydate[4]{% + \ifDTMshowdow% + \ifnum##4>-1 + \DTMsrCyrlMEWeekdayname{##4}% + \DTMsrCyrlMEdowdaysep% + \fi + \fi + \DTMifbool{sr-Cyrl-ME}{showdayofmonth}% + {\DTMsrCyrlMEdayordinal{##3}\DTMsrCyrlMEdaymonthsep}% + {}% + \DTMsrCyrlMEmonthordinal{##2}% + \DTMifbool{sr-Cyrl-ME}{showyear}% + {% + \DTMsrCyrlMEmonthyearsep% + \DTMsrCyrlMEyearordinal{##1}% + }% + {}% + }% +}% +{% time style + \renewcommand*\DTMdisplaytime[3]{% + \DTMifbool{sr-Cyrl-ME}{leadingzero}{\DTMtwodigits{##1}}{\number##1}% + \DTMsrCyrlMEtimesep\DTMtwodigits{##2}% + \ifDTMshowseconds\DTMsrCyrlMEtimesep\DTMtwodigits{##3}\fi + }% +}% +{% zone style + \DTMresetzones% + \DTMsrCyrlMEzonemaps% + \renewcommand*{\DTMdisplayzone}[2]{% + \DTMifbool{sr-Cyrl-ME}{mapzone}% + {\DTMusezonemapordefault{##1}{##2}}% + {% + \ifnum##1<0 + \else+\fi\DTMtwodigits{##1}% + \ifDTMshowzoneminutes\DTMsrCyrlMEtimesep\DTMtwodigits{##2}\fi + }% + }% +}% +{% full style + \renewcommand*{\DTMdisplay}[9]{% + \ifDTMshowdate% + \DTMdisplaydate{##1}{##2}{##3}{##4}% + \DTMsrCyrlMEdatetimesep% + \fi + \DTMdisplaytime{##5}{##6}{##7}% + \ifDTMshowzone% + \DTMsrCyrlMEtimezonesep% + \DTMdisplayzone{##8}{##9}% + \fi + }% + \renewcommand*{\DTMDisplay}{\DTMdisplay}% +} +\newcommand*{\DTMsr-Cyrl-MEzonemaps}{% + \DTMdefzonemap{01}{00}{CET}% + \DTMdefzonemap{02}{00}{CEST}% +} + +\DTMifcaseregional% +{}% do nothing +{\DTMsetstyle{sr-Cyrl-ME}}% +{\DTMsetstyle{sr-Cyrl-ME-numeric}}% +\ifcsundef{date\CurrentTrackedDialect} +{% + \ifundef\dateserbianc% + {% do nothing + }% + {% + \def\dateserbianc{% + \DTMifcaseregional% + {}% do nothing + {\DTMsetstyle{sr-Cyrl-ME}}% + {\DTMsetstyle{sr-Cyrl-ME-numeric}}% + }% + }% +}% +{% + \csdef{date\CurrentTrackedDialect}{% + \DTMifcaseregional% + {}% do nothing + {\DTMsetstyle{sr-Cyrl-ME}}% + {\DTMsetstyle{sr-Cyrl-ME-numeric}}% + }% +}% +\endinput +%% +%% End of file `datetime2-sr-Cyrl-ME.ldf'. diff --git a/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-sr-Cyrl-RS.ldf b/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-sr-Cyrl-RS.ldf new file mode 100644 index 00000000000..2028783a63f --- /dev/null +++ b/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-sr-Cyrl-RS.ldf @@ -0,0 +1,340 @@ +%% +%% This is file `datetime2-sr-Cyrl-RS.ldf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% datetime2-serbian.dtx (with options: `datetime2-sr-Cyrl-RS.ldf,package') +%% +%% datetime2-serbian.dtx +%% Copyright 2019 Andrej Radović +%% Copyright 2019 Nicola Talbot +%% +%% 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 `maintained'. +%% +%% The Current Maintainer of this work is Andrej Radović. +%% +%% This work consists of the files datetime2-serbian.dtx and +%% datetime2-serbian.ins and the derived files are as follows: +%% datetime2-serbian-base.ldf +%% datetime2-serbian-base-utf8.ldf +%% datetime2-serbian-base-ascii.ldf +%% datetime2-serbian.ldf +%% datetime2-sr-Latn.ldf +%% datetime2-sr-Latn-RS.ldf +%% datetime2-sr-Latn-ME.ldf +%% datetime2-sr-Latn-BA.ldf +%% datetime2-serbianc.ldf +%% datetime2-sr-Cyrl.ldf +%% datetime2-sr-Cyrl-RS.ldf +%% datetime2-sr-Cyrl-ME.ldf +%% datetime2-sr-Cyrl-BA.ldf +%% +%% +%% \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 \~} +\ProvidesDateTimeModule{sr-Cyrl-RS}[2019/11/07 v2.0] +\RequireDateTimeModule{serbian-base} +\newcommand*{\DTMsrCyrlRSdowdaysep}{,\space} +\newcommand*{\DTMsrCyrlRSdaymonthsep}{% + \DTMtexorpdfstring{\protect~}{\space}% +} +\newcommand*{\DTMsrCyrlRSmonthyearsep}{\space} +\newcommand*{\DTMsrCyrlRSdatetimesep}{\space} +\newcommand*{\DTMsrCyrlRStimezonesep}{\space} +\newcommand*{\DTMsrCyrlRSdatesep}{.} +\newcommand*{\DTMsrCyrlRStimesep}{.} +\DTMdefkey{sr-Cyrl-RS}{dowdaysep}% + {\renewcommand*{\DTMsr-Cyrl-RSdowdaysep}{#1}} +\DTMdefkey{sr-Cyrl-RS}{daymonthsep}% + {\renewcommand*{\DTMsr-Cyrl-RSdaymonthsep}{#1}} +\DTMdefkey{sr-Cyrl-RS}{monthyearsep}% + {\renewcommand*{\DTMsr-Cyrl-RSmonthyearsep}{#1}} +\DTMdefkey{sr-Cyrl-RS}{datetimesep}% + {\renewcommand*{\DTMsr-Cyrl-RSdatetimesep}{#1}} +\DTMdefkey{sr-Cyrl-RS}{timezonesep}% + {\renewcommand*{\DTMsr-Cyrl-RStimezonesep}{#1}} +\DTMdefkey{sr-Cyrl-RS}{datesep}% + {\renewcommand*{\DTMsr-Cyrl-RSdatesep}{#1}} +\DTMdefkey{sr-Cyrl-RS}{timesep}% + {\renewcommand*{\DTMsr-Cyrl-RStimesep}{#1}} +\newcommand*{\DTMsrCyrlRSweekdayname}% +{\DTMserbiancyrijweekdayname} + +\newcommand*{\DTMsrCyrlRSWeekdayname}% + {\DTMserbiancyrijWeekdayname} +\DTMdefchoicekey{sr-Cyrl-RS}% + {pronunciation}[\@dtm@val\@dtm@nr]{ekavian,ijekavian}{% + \ifcase\@dtm@nr\relax + \renewcommand*{\DTMsrCyrlRSweekdayname}% + {\DTMserbiancyrekweekdayname}% + \renewcommand*{\DTMsrCyrlRSWeekdayname}% + {\DTMserbiancyrekWeekdayname}% + \or% + \renewcommand*{\DTMsrCyrlRSweekdayname}% + {\DTMserbiancyrijweekdayname}% + \renewcommand*{\DTMsrCyrlRSWeekdayname} + {\DTMserbiancyrijWeekdayname}% + \fi +} +\DTMdefboolkey{sr-Cyrl-RS}{monthi}[true]{} +\DTMsetbool{sr-Cyrl-RS}{monthi}{false} +\DTMdefboolkey{sr-Cyrl-RS}{leadingzero}[true]{} +\DTMsetbool{sr-Cyrl-RS}{leadingzero}{false} + \newcommand*{\DTMsrCyrlRSdayordinal}[1]{% + \DTMifbool{sr-Cyrl-RS}{leadingzero}% + {\DTMtwodigits{#1}}% + {\number#1}\DTMsrCyrlRSdatesep}% + \newcommand*{\DTMsrCyrlRSyearordinal}[1]{% + \number#1\DTMsrCyrlRSdatesep}% +\newcommand*{\DTMsrCyrlRSnoimonthname}{\DTMserbiancyrnoimonthname} +\newcommand*{\DTMsrCyrlRSnoiMonthname}{\DTMserbiancyrnoiMonthname} +\newcommand*{\DTMsrCyrlRSimonthname}{\DTMserbiancyrimonthname} +\newcommand*{\DTMsrCyrlRSiMonthname}{\DTMserbiancyriMonthname} +\DTMdefboolkey{sr-Cyrl-RS}{mapzone}[true]{} +\DTMsetbool{sr-Cyrl-RS}{mapzone}{true} +\DTMdefboolkey{sr-Cyrl-RS}{showdayofmonth}[true]{} +\DTMsetbool{sr-Cyrl-RS}{showdayofmonth}{true} +\DTMdefboolkey{sr-Cyrl-RS}{showyear}[true]{} +\DTMsetbool{sr-Cyrl-RS}{showyear}{true} +\DTMnewstyle% +{sr-Cyrl-RS}% label +{% date style + \renewcommand*\DTMdisplaydate[4]{% + \ifDTMshowdow% + \ifnum##4>-1 + \DTMsrCyrlRSweekdayname{##4}% + \DTMsrCyrlRSdowdaysep% + \fi + \fi + \DTMifbool{sr-Cyrl-RS}{showdayofmonth} + {\DTMsrCyrlRSdayordinal{##3}\DTMsrCyrlRSdaymonthsep}% + {}% + \DTMifbool{sr-Cyrl-RS}{monthi}% + {\DTMsrCyrlRSimonthname{##2}}% + {\DTMsrCyrlRSnoimonthname{##2}}% + \DTMifbool{sr-Cyrl-RS}{showyear}% + {% + \DTMsrCyrlRSmonthyearsep% + \DTMsrCyrlRSyearordinal{##1}% + }% + {}% + }% + \renewcommand*\DTMDisplaydate[4]{% + \ifDTMshowdow% + \ifnum##4>-1 + \DTMsrCyrlRSWeekdayname{##4}% + \DTMsrCyrlRSdowdaysep% + \fi + \fi + \DTMifbool{sr-Cyrl-RS}{showdayofmonth} + {% + \DTMsrCyrlRSdayordinal{##3}\DTMsrCyrlRSdaymonthsep% + \DTMifbool{sr-Cyrl-RS}{monthi}% + {\DTMsrCyrlRSimonthname{##2}}% + {\DTMsrCyrlRSnoimonthname{##2}}% + }% + {% + \DTMifbool{sr-Cyrl-RS}{monthi}% + {\DTMsrCyrlRSiMonthname{##2}}% + {\DTMsrCyrlRSnoiMonthname{##2}}% + }% + \DTMifbool{sr-Cyrl-RS}{showyear}% + {% + \DTMsrCyrlRSmonthyearsep% + \DTMsrCyrlRSyearordinal{##1}% + }% + {}% + }% +}% +{% time style + \renewcommand*\DTMdisplaytime[3]{% + \DTMifbool{sr-Cyrl-RS}{leadingzero}{\DTMtwodigits{##1}}{\number##1}% + \DTMsrCyrlRStimesep\DTMtwodigits{##2}% + \ifDTMshowseconds\DTMsrCyrlRStimesep\DTMtwodigits{##3}\fi + }% +}% +{% zone style + \DTMresetzones% + \DTMsrCyrlRSzonemaps% + \renewcommand*{\DTMdisplayzone}[2]{% + \DTMifbool{sr-Cyrl-RS}{mapzone}% + {\DTMusezonemapordefault{##1}{##2}}% + {% + \ifnum##1<0 + \else+\fi\DTMtwodigits{##1}% + \ifDTMshowzoneminutes\DTMsrCyrlRStimesep\DTMtwodigits{##2}\fi + }% + }% +}% +{% full style + \renewcommand*{\DTMdisplay}[9]{% + \ifDTMshowdate% + \DTMdisplaydate{##1}{##2}{##3}{##4}% + \DTMsrCyrlRSdatetimesep% + \fi + \DTMdisplaytime{##5}{##6}{##7}% + \ifDTMshowzone% + \DTMsrCyrlRStimezonesep% + \DTMdisplayzone{##8}{##9}% + \fi + }% + \renewcommand*{\DTMDisplay}[9]{% + \ifDTMshowdate% + \DTMDisplaydate{##1}{##2}{##3}{##4}% + \DTMsrCyrlRSdatetimesep% + \fi + \DTMdisplaytime{##5}{##6}{##7}% + \ifDTMshowzone% + \DTMsrCyrlRStimezonesep% + \DTMdisplayzone{##8}{##9}% + \fi + }% +}% + \newcommand*{\DTMsrCyrlRSmonthordinal}[1]{% + \DTMifbool{sr-Cyrl-RS}{leadingzero}{\DTMtwodigits{#1}}{\number#1}.}% +\DTMdefchoicekey{sr-Cyrl-RS}{monthord}% +[\@dtm@val\@dtm@nr]{arabic,roman,romanlsc}{% + \ifcase\@dtm@nr\relax + \renewcommand*{\DTMsrCyrlRSmonthordinal}[1]{% + \DTMifbool{sr-Cyrl-RS}{leadingzero}% + {\DTMtwodigits{##1}}{\number##1}\DTMsrCyrlRSdatesep}% + \or% + \renewcommand*{\DTMsrCyrlRSmonthordinal}[1]{% + \DTMtexorpdfstring{\protect\DTMserbianordinalROMAN{##1}}% + {serbianordinalROMAN{##1}}}% + \or% + \renewcommand*{\DTMsrCyrlRSmonthordinal}[1]{% + \DTMtexorpdfstring{\textsc{\protect\DTMserbianordinalroman{##1}}}% + {serbianordinalROMAN{##1}}}% + \fi +} +\DTMnewstyle% +{sr-Cyrl-RS-numeric}% label +{% date style + \renewcommand*\DTMdisplaydate[4]{% + \ifDTMshowdow% + \ifnum##4>-1 + \DTMsrCyrlRSweekdayname{##4}% + \DTMsrCyrlRSdowdaysep% + \fi + \fi + \DTMifbool{sr-Cyrl-RS}{showdayofmonth}% + {\DTMsrCyrlRSdayordinal{##3}\DTMsrCyrlRSdaymonthsep}% + {}% + \DTMsrCyrlRSmonthordinal{##2}% + \DTMifbool{sr-Cyrl-RS}{showyear}% + {% + \DTMsrCyrlRSmonthyearsep% + \DTMsrCyrlRSyearordinal{##1}% + }% + {}% + }% + \renewcommand*\DTMDisplaydate[4]{% + \ifDTMshowdow% + \ifnum##4>-1 + \DTMsrCyrlRSWeekdayname{##4}% + \DTMsrCyrlRSdowdaysep% + \fi + \fi + \DTMifbool{sr-Cyrl-RS}{showdayofmonth}% + {\DTMsrCyrlRSdayordinal{##3}\DTMsrCyrlRSdaymonthsep}% + {}% + \DTMsrCyrlRSmonthordinal{##2}% + \DTMifbool{sr-Cyrl-RS}{showyear}% + {% + \DTMsrCyrlRSmonthyearsep% + \DTMsrCyrlRSyearordinal{##1}% + }% + {}% + }% +}% +{% time style + \renewcommand*\DTMdisplaytime[3]{% + \DTMifbool{sr-Cyrl-RS}{leadingzero}{\DTMtwodigits{##1}}{\number##1}% + \DTMsrCyrlRStimesep\DTMtwodigits{##2}% + \ifDTMshowseconds\DTMsrCyrlRStimesep\DTMtwodigits{##3}\fi + }% +}% +{% zone style + \DTMresetzones% + \DTMsrCyrlRSzonemaps% + \renewcommand*{\DTMdisplayzone}[2]{% + \DTMifbool{sr-Cyrl-RS}{mapzone}% + {\DTMusezonemapordefault{##1}{##2}}% + {% + \ifnum##1<0 + \else+\fi\DTMtwodigits{##1}% + \ifDTMshowzoneminutes\DTMsrCyrlRStimesep\DTMtwodigits{##2}\fi + }% + }% +}% +{% full style + \renewcommand*{\DTMdisplay}[9]{% + \ifDTMshowdate% + \DTMdisplaydate{##1}{##2}{##3}{##4}% + \DTMsrCyrlRSdatetimesep% + \fi + \DTMdisplaytime{##5}{##6}{##7}% + \ifDTMshowzone% + \DTMsrCyrlRStimezonesep% + \DTMdisplayzone{##8}{##9}% + \fi + }% + \renewcommand*{\DTMDisplay}{\DTMdisplay}% +} +\newcommand*{\DTMsr-Cyrl-RSzonemaps}{% + \DTMdefzonemap{01}{00}{CET}% + \DTMdefzonemap{02}{00}{CEST}% +} + +\DTMifcaseregional% +{}% do nothing +{\DTMsetstyle{sr-Cyrl-RS}}% +{\DTMsetstyle{sr-Cyrl-RS-numeric}}% +\ifcsundef{date\CurrentTrackedDialect} +{% + \ifundef\dateserbianc% + {% do nothing + }% + {% + \def\dateserbianc{% + \DTMifcaseregional% + {}% do nothing + {\DTMsetstyle{sr-Cyrl-RS}}% + {\DTMsetstyle{sr-Cyrl-RS-numeric}}% + }% + }% +}% +{% + \csdef{date\CurrentTrackedDialect}{% + \DTMifcaseregional% + {}% do nothing + {\DTMsetstyle{sr-Cyrl-RS}}% + {\DTMsetstyle{sr-Cyrl-RS-numeric}}% + }% +}% +\endinput +%% +%% End of file `datetime2-sr-Cyrl-RS.ldf'. diff --git a/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-sr-Cyrl.ldf b/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-sr-Cyrl.ldf new file mode 100644 index 00000000000..d85900418c4 --- /dev/null +++ b/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-sr-Cyrl.ldf @@ -0,0 +1,340 @@ +%% +%% This is file `datetime2-sr-Cyrl.ldf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% datetime2-serbian.dtx (with options: `datetime2-sr-Cyrl.ldf,package') +%% +%% datetime2-serbian.dtx +%% Copyright 2019 Andrej Radović +%% Copyright 2019 Nicola Talbot +%% +%% 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 `maintained'. +%% +%% The Current Maintainer of this work is Andrej Radović. +%% +%% This work consists of the files datetime2-serbian.dtx and +%% datetime2-serbian.ins and the derived files are as follows: +%% datetime2-serbian-base.ldf +%% datetime2-serbian-base-utf8.ldf +%% datetime2-serbian-base-ascii.ldf +%% datetime2-serbian.ldf +%% datetime2-sr-Latn.ldf +%% datetime2-sr-Latn-RS.ldf +%% datetime2-sr-Latn-ME.ldf +%% datetime2-sr-Latn-BA.ldf +%% datetime2-serbianc.ldf +%% datetime2-sr-Cyrl.ldf +%% datetime2-sr-Cyrl-RS.ldf +%% datetime2-sr-Cyrl-ME.ldf +%% datetime2-sr-Cyrl-BA.ldf +%% +%% +%% \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 \~} +\ProvidesDateTimeModule{sr-Cyrl}[2019/11/07 v2.0] +\RequireDateTimeModule{serbian-base} +\newcommand*{\DTMsrCyrldowdaysep}{,\space} +\newcommand*{\DTMsrCyrldaymonthsep}{% + \DTMtexorpdfstring{\protect~}{\space}% +} +\newcommand*{\DTMsrCyrlmonthyearsep}{\space} +\newcommand*{\DTMsrCyrldatetimesep}{\space} +\newcommand*{\DTMsrCyrltimezonesep}{\space} +\newcommand*{\DTMsrCyrldatesep}{.} +\newcommand*{\DTMsrCyrltimesep}{.} +\DTMdefkey{sr-Cyrl}{dowdaysep}% + {\renewcommand*{\DTMsr-Cyrldowdaysep}{#1}} +\DTMdefkey{sr-Cyrl}{daymonthsep}% + {\renewcommand*{\DTMsr-Cyrldaymonthsep}{#1}} +\DTMdefkey{sr-Cyrl}{monthyearsep}% + {\renewcommand*{\DTMsr-Cyrlmonthyearsep}{#1}} +\DTMdefkey{sr-Cyrl}{datetimesep}% + {\renewcommand*{\DTMsr-Cyrldatetimesep}{#1}} +\DTMdefkey{sr-Cyrl}{timezonesep}% + {\renewcommand*{\DTMsr-Cyrltimezonesep}{#1}} +\DTMdefkey{sr-Cyrl}{datesep}% + {\renewcommand*{\DTMsr-Cyrldatesep}{#1}} +\DTMdefkey{sr-Cyrl}{timesep}% + {\renewcommand*{\DTMsr-Cyrltimesep}{#1}} +\newcommand*{\DTMsrCyrlweekdayname}% +{\DTMserbiancyrekweekdayname} + +\newcommand*{\DTMsrCyrlWeekdayname}% + {\DTMserbiancyrekWeekdayname} +\DTMdefchoicekey{sr-Cyrl}% + {pronunciation}[\@dtm@val\@dtm@nr]{ekavian,ijekavian}{% + \ifcase\@dtm@nr\relax + \renewcommand*{\DTMsrCyrlweekdayname}% + {\DTMserbiancyrekweekdayname}% + \renewcommand*{\DTMsrCyrlWeekdayname}% + {\DTMserbiancyrekWeekdayname}% + \or% + \renewcommand*{\DTMsrCyrlweekdayname}% + {\DTMserbiancyrijweekdayname}% + \renewcommand*{\DTMsrCyrlWeekdayname} + {\DTMserbiancyrijWeekdayname}% + \fi +} +\DTMdefboolkey{sr-Cyrl}{monthi}[true]{} +\DTMsetbool{sr-Cyrl}{monthi}{false} +\DTMdefboolkey{sr-Cyrl}{leadingzero}[true]{} +\DTMsetbool{sr-Cyrl}{leadingzero}{false} + \newcommand*{\DTMsrCyrldayordinal}[1]{% + \DTMifbool{sr-Cyrl}{leadingzero}% + {\DTMtwodigits{#1}}% + {\number#1}\DTMsrCyrldatesep}% + \newcommand*{\DTMsrCyrlyearordinal}[1]{% + \number#1\DTMsrCyrldatesep}% +\newcommand*{\DTMsrCyrlnoimonthname}{\DTMserbiancyrnoimonthname} +\newcommand*{\DTMsrCyrlnoiMonthname}{\DTMserbiancyrnoiMonthname} +\newcommand*{\DTMsrCyrlimonthname}{\DTMserbiancyrimonthname} +\newcommand*{\DTMsrCyrliMonthname}{\DTMserbiancyriMonthname} +\DTMdefboolkey{sr-Cyrl}{mapzone}[true]{} +\DTMsetbool{sr-Cyrl}{mapzone}{true} +\DTMdefboolkey{sr-Cyrl}{showdayofmonth}[true]{} +\DTMsetbool{sr-Cyrl}{showdayofmonth}{true} +\DTMdefboolkey{sr-Cyrl}{showyear}[true]{} +\DTMsetbool{sr-Cyrl}{showyear}{true} +\DTMnewstyle% +{sr-Cyrl}% label +{% date style + \renewcommand*\DTMdisplaydate[4]{% + \ifDTMshowdow% + \ifnum##4>-1 + \DTMsrCyrlweekdayname{##4}% + \DTMsrCyrldowdaysep% + \fi + \fi + \DTMifbool{sr-Cyrl}{showdayofmonth} + {\DTMsrCyrldayordinal{##3}\DTMsrCyrldaymonthsep}% + {}% + \DTMifbool{sr-Cyrl}{monthi}% + {\DTMsrCyrlimonthname{##2}}% + {\DTMsrCyrlnoimonthname{##2}}% + \DTMifbool{sr-Cyrl}{showyear}% + {% + \DTMsrCyrlmonthyearsep% + \DTMsrCyrlyearordinal{##1}% + }% + {}% + }% + \renewcommand*\DTMDisplaydate[4]{% + \ifDTMshowdow% + \ifnum##4>-1 + \DTMsrCyrlWeekdayname{##4}% + \DTMsrCyrldowdaysep% + \fi + \fi + \DTMifbool{sr-Cyrl}{showdayofmonth} + {% + \DTMsrCyrldayordinal{##3}\DTMsrCyrldaymonthsep% + \DTMifbool{sr-Cyrl}{monthi}% + {\DTMsrCyrlimonthname{##2}}% + {\DTMsrCyrlnoimonthname{##2}}% + }% + {% + \DTMifbool{sr-Cyrl}{monthi}% + {\DTMsrCyrliMonthname{##2}}% + {\DTMsrCyrlnoiMonthname{##2}}% + }% + \DTMifbool{sr-Cyrl}{showyear}% + {% + \DTMsrCyrlmonthyearsep% + \DTMsrCyrlyearordinal{##1}% + }% + {}% + }% +}% +{% time style + \renewcommand*\DTMdisplaytime[3]{% + \DTMifbool{sr-Cyrl}{leadingzero}{\DTMtwodigits{##1}}{\number##1}% + \DTMsrCyrltimesep\DTMtwodigits{##2}% + \ifDTMshowseconds\DTMsrCyrltimesep\DTMtwodigits{##3}\fi + }% +}% +{% zone style + \DTMresetzones% + \DTMsrCyrlzonemaps% + \renewcommand*{\DTMdisplayzone}[2]{% + \DTMifbool{sr-Cyrl}{mapzone}% + {\DTMusezonemapordefault{##1}{##2}}% + {% + \ifnum##1<0 + \else+\fi\DTMtwodigits{##1}% + \ifDTMshowzoneminutes\DTMsrCyrltimesep\DTMtwodigits{##2}\fi + }% + }% +}% +{% full style + \renewcommand*{\DTMdisplay}[9]{% + \ifDTMshowdate% + \DTMdisplaydate{##1}{##2}{##3}{##4}% + \DTMsrCyrldatetimesep% + \fi + \DTMdisplaytime{##5}{##6}{##7}% + \ifDTMshowzone% + \DTMsrCyrltimezonesep% + \DTMdisplayzone{##8}{##9}% + \fi + }% + \renewcommand*{\DTMDisplay}[9]{% + \ifDTMshowdate% + \DTMDisplaydate{##1}{##2}{##3}{##4}% + \DTMsrCyrldatetimesep% + \fi + \DTMdisplaytime{##5}{##6}{##7}% + \ifDTMshowzone% + \DTMsrCyrltimezonesep% + \DTMdisplayzone{##8}{##9}% + \fi + }% +}% + \newcommand*{\DTMsrCyrlmonthordinal}[1]{% + \DTMifbool{sr-Cyrl}{leadingzero}{\DTMtwodigits{#1}}{\number#1}.}% +\DTMdefchoicekey{sr-Cyrl}{monthord}% +[\@dtm@val\@dtm@nr]{arabic,roman,romanlsc}{% + \ifcase\@dtm@nr\relax + \renewcommand*{\DTMsrCyrlmonthordinal}[1]{% + \DTMifbool{sr-Cyrl}{leadingzero}% + {\DTMtwodigits{##1}}{\number##1}\DTMsrCyrldatesep}% + \or% + \renewcommand*{\DTMsrCyrlmonthordinal}[1]{% + \DTMtexorpdfstring{\protect\DTMserbianordinalROMAN{##1}}% + {serbianordinalROMAN{##1}}}% + \or% + \renewcommand*{\DTMsrCyrlmonthordinal}[1]{% + \DTMtexorpdfstring{\textsc{\protect\DTMserbianordinalroman{##1}}}% + {serbianordinalROMAN{##1}}}% + \fi +} +\DTMnewstyle% +{sr-Cyrl-numeric}% label +{% date style + \renewcommand*\DTMdisplaydate[4]{% + \ifDTMshowdow% + \ifnum##4>-1 + \DTMsrCyrlweekdayname{##4}% + \DTMsrCyrldowdaysep% + \fi + \fi + \DTMifbool{sr-Cyrl}{showdayofmonth}% + {\DTMsrCyrldayordinal{##3}\DTMsrCyrldaymonthsep}% + {}% + \DTMsrCyrlmonthordinal{##2}% + \DTMifbool{sr-Cyrl}{showyear}% + {% + \DTMsrCyrlmonthyearsep% + \DTMsrCyrlyearordinal{##1}% + }% + {}% + }% + \renewcommand*\DTMDisplaydate[4]{% + \ifDTMshowdow% + \ifnum##4>-1 + \DTMsrCyrlWeekdayname{##4}% + \DTMsrCyrldowdaysep% + \fi + \fi + \DTMifbool{sr-Cyrl}{showdayofmonth}% + {\DTMsrCyrldayordinal{##3}\DTMsrCyrldaymonthsep}% + {}% + \DTMsrCyrlmonthordinal{##2}% + \DTMifbool{sr-Cyrl}{showyear}% + {% + \DTMsrCyrlmonthyearsep% + \DTMsrCyrlyearordinal{##1}% + }% + {}% + }% +}% +{% time style + \renewcommand*\DTMdisplaytime[3]{% + \DTMifbool{sr-Cyrl}{leadingzero}{\DTMtwodigits{##1}}{\number##1}% + \DTMsrCyrltimesep\DTMtwodigits{##2}% + \ifDTMshowseconds\DTMsrCyrltimesep\DTMtwodigits{##3}\fi + }% +}% +{% zone style + \DTMresetzones% + \DTMsrCyrlzonemaps% + \renewcommand*{\DTMdisplayzone}[2]{% + \DTMifbool{sr-Cyrl}{mapzone}% + {\DTMusezonemapordefault{##1}{##2}}% + {% + \ifnum##1<0 + \else+\fi\DTMtwodigits{##1}% + \ifDTMshowzoneminutes\DTMsrCyrltimesep\DTMtwodigits{##2}\fi + }% + }% +}% +{% full style + \renewcommand*{\DTMdisplay}[9]{% + \ifDTMshowdate% + \DTMdisplaydate{##1}{##2}{##3}{##4}% + \DTMsrCyrldatetimesep% + \fi + \DTMdisplaytime{##5}{##6}{##7}% + \ifDTMshowzone% + \DTMsrCyrltimezonesep% + \DTMdisplayzone{##8}{##9}% + \fi + }% + \renewcommand*{\DTMDisplay}{\DTMdisplay}% +} +\newcommand*{\DTMsr-Cyrlzonemaps}{% + \DTMdefzonemap{01}{00}{CET}% + \DTMdefzonemap{02}{00}{CEST}% +} + +\DTMifcaseregional% +{}% do nothing +{\DTMsetstyle{sr-Cyrl}}% +{\DTMsetstyle{sr-Cyrl-numeric}}% +\ifcsundef{date\CurrentTrackedDialect} +{% + \ifundef\dateserbianc% + {% do nothing + }% + {% + \def\dateserbianc{% + \DTMifcaseregional% + {}% do nothing + {\DTMsetstyle{sr-Cyrl}}% + {\DTMsetstyle{sr-Cyrl-numeric}}% + }% + }% +}% +{% + \csdef{date\CurrentTrackedDialect}{% + \DTMifcaseregional% + {}% do nothing + {\DTMsetstyle{sr-Cyrl}}% + {\DTMsetstyle{sr-Cyrl-numeric}}% + }% +}% +\endinput +%% +%% End of file `datetime2-sr-Cyrl.ldf'. diff --git a/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-sr-Latn-BA.ldf b/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-sr-Latn-BA.ldf new file mode 100644 index 00000000000..2298f1b412a --- /dev/null +++ b/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-sr-Latn-BA.ldf @@ -0,0 +1,340 @@ +%% +%% This is file `datetime2-sr-Latn-BA.ldf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% datetime2-serbian.dtx (with options: `datetime2-sr-Latn-BA.ldf,package') +%% +%% datetime2-serbian.dtx +%% Copyright 2019 Andrej Radović +%% Copyright 2019 Nicola Talbot +%% +%% 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 `maintained'. +%% +%% The Current Maintainer of this work is Andrej Radović. +%% +%% This work consists of the files datetime2-serbian.dtx and +%% datetime2-serbian.ins and the derived files are as follows: +%% datetime2-serbian-base.ldf +%% datetime2-serbian-base-utf8.ldf +%% datetime2-serbian-base-ascii.ldf +%% datetime2-serbian.ldf +%% datetime2-sr-Latn.ldf +%% datetime2-sr-Latn-RS.ldf +%% datetime2-sr-Latn-ME.ldf +%% datetime2-sr-Latn-BA.ldf +%% datetime2-serbianc.ldf +%% datetime2-sr-Cyrl.ldf +%% datetime2-sr-Cyrl-RS.ldf +%% datetime2-sr-Cyrl-ME.ldf +%% datetime2-sr-Cyrl-BA.ldf +%% +%% +%% \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 \~} +\ProvidesDateTimeModule{sr-Latn-BA}[2019/11/07 v2.0] +\RequireDateTimeModule{serbian-base} +\newcommand*{\DTMsrLatnBAdowdaysep}{,\space} +\newcommand*{\DTMsrLatnBAdaymonthsep}{% + \DTMtexorpdfstring{\protect~}{\space}% +} +\newcommand*{\DTMsrLatnBAmonthyearsep}{\space} +\newcommand*{\DTMsrLatnBAdatetimesep}{\space} +\newcommand*{\DTMsrLatnBAtimezonesep}{\space} +\newcommand*{\DTMsrLatnBAdatesep}{.} +\newcommand*{\DTMsrLatnBAtimesep}{.} +\DTMdefkey{sr-Latn-BA}{dowdaysep}% + {\renewcommand*{\DTMsr-Latn-BAdowdaysep}{#1}} +\DTMdefkey{sr-Latn-BA}{daymonthsep}% + {\renewcommand*{\DTMsr-Latn-BAdaymonthsep}{#1}} +\DTMdefkey{sr-Latn-BA}{monthyearsep}% + {\renewcommand*{\DTMsr-Latn-BAmonthyearsep}{#1}} +\DTMdefkey{sr-Latn-BA}{datetimesep}% + {\renewcommand*{\DTMsr-Latn-BAdatetimesep}{#1}} +\DTMdefkey{sr-Latn-BA}{timezonesep}% + {\renewcommand*{\DTMsr-Latn-BAtimezonesep}{#1}} +\DTMdefkey{sr-Latn-BA}{datesep}% + {\renewcommand*{\DTMsr-Latn-BAdatesep}{#1}} +\DTMdefkey{sr-Latn-BA}{timesep}% + {\renewcommand*{\DTMsr-Latn-BAtimesep}{#1}} +\newcommand*{\DTMsrLatnBAweekdayname}% +{\DTMserbianlatijweekdayname} + +\newcommand*{\DTMsrLatnBAWeekdayname}% + {\DTMserbianlatijWeekdayname} +\DTMdefchoicekey{sr-Latn-BA}% + {pronunciation}[\@dtm@val\@dtm@nr]{ekavian,ijekavian}{% + \ifcase\@dtm@nr\relax + \renewcommand*{\DTMsrLatnBAweekdayname}% + {\DTMserbianlatekweekdayname}% + \renewcommand*{\DTMsrLatnBAWeekdayname}% + {\DTMserbianlatekWeekdayname}% + \or% + \renewcommand*{\DTMsrLatnBAweekdayname}% + {\DTMserbianlatijweekdayname}% + \renewcommand*{\DTMsrLatnBAWeekdayname} + {\DTMserbianlatijWeekdayname}% + \fi +} +\DTMdefboolkey{sr-Latn-BA}{monthi}[true]{} +\DTMsetbool{sr-Latn-BA}{monthi}{false} +\DTMdefboolkey{sr-Latn-BA}{leadingzero}[true]{} +\DTMsetbool{sr-Latn-BA}{leadingzero}{false} + \newcommand*{\DTMsrLatnBAdayordinal}[1]{% + \DTMifbool{sr-Latn-BA}{leadingzero}% + {\DTMtwodigits{#1}}% + {\number#1}\DTMsrLatnBAdatesep}% + \newcommand*{\DTMsrLatnBAyearordinal}[1]{% + \number#1\DTMsrLatnBAdatesep}% +\newcommand*{\DTMsrLatnBAnoimonthname}{\DTMserbianlatnoimonthname} +\newcommand*{\DTMsrLatnBAnoiMonthname}{\DTMserbianlatnoiMonthname} +\newcommand*{\DTMsrLatnBAimonthname}{\DTMserbianlatimonthname} +\newcommand*{\DTMsrLatnBAiMonthname}{\DTMserbianlatiMonthname} +\DTMdefboolkey{sr-Latn-BA}{mapzone}[true]{} +\DTMsetbool{sr-Latn-BA}{mapzone}{true} +\DTMdefboolkey{sr-Latn-BA}{showdayofmonth}[true]{} +\DTMsetbool{sr-Latn-BA}{showdayofmonth}{true} +\DTMdefboolkey{sr-Latn-BA}{showyear}[true]{} +\DTMsetbool{sr-Latn-BA}{showyear}{true} +\DTMnewstyle% +{sr-Latn-BA}% label +{% date style + \renewcommand*\DTMdisplaydate[4]{% + \ifDTMshowdow% + \ifnum##4>-1 + \DTMsrLatnBAweekdayname{##4}% + \DTMsrLatnBAdowdaysep% + \fi + \fi + \DTMifbool{sr-Latn-BA}{showdayofmonth} + {\DTMsrLatnBAdayordinal{##3}\DTMsrLatnBAdaymonthsep}% + {}% + \DTMifbool{sr-Latn-BA}{monthi}% + {\DTMsrLatnBAimonthname{##2}}% + {\DTMsrLatnBAnoimonthname{##2}}% + \DTMifbool{sr-Latn-BA}{showyear}% + {% + \DTMsrLatnBAmonthyearsep% + \DTMsrLatnBAyearordinal{##1}% + }% + {}% + }% + \renewcommand*\DTMDisplaydate[4]{% + \ifDTMshowdow% + \ifnum##4>-1 + \DTMsrLatnBAWeekdayname{##4}% + \DTMsrLatnBAdowdaysep% + \fi + \fi + \DTMifbool{sr-Latn-BA}{showdayofmonth} + {% + \DTMsrLatnBAdayordinal{##3}\DTMsrLatnBAdaymonthsep% + \DTMifbool{sr-Latn-BA}{monthi}% + {\DTMsrLatnBAimonthname{##2}}% + {\DTMsrLatnBAnoimonthname{##2}}% + }% + {% + \DTMifbool{sr-Latn-BA}{monthi}% + {\DTMsrLatnBAiMonthname{##2}}% + {\DTMsrLatnBAnoiMonthname{##2}}% + }% + \DTMifbool{sr-Latn-BA}{showyear}% + {% + \DTMsrLatnBAmonthyearsep% + \DTMsrLatnBAyearordinal{##1}% + }% + {}% + }% +}% +{% time style + \renewcommand*\DTMdisplaytime[3]{% + \DTMifbool{sr-Latn-BA}{leadingzero}{\DTMtwodigits{##1}}{\number##1}% + \DTMsrLatnBAtimesep\DTMtwodigits{##2}% + \ifDTMshowseconds\DTMsrLatnBAtimesep\DTMtwodigits{##3}\fi + }% +}% +{% zone style + \DTMresetzones% + \DTMsrLatnBAzonemaps% + \renewcommand*{\DTMdisplayzone}[2]{% + \DTMifbool{sr-Latn-BA}{mapzone}% + {\DTMusezonemapordefault{##1}{##2}}% + {% + \ifnum##1<0 + \else+\fi\DTMtwodigits{##1}% + \ifDTMshowzoneminutes\DTMsrLatnBAtimesep\DTMtwodigits{##2}\fi + }% + }% +}% +{% full style + \renewcommand*{\DTMdisplay}[9]{% + \ifDTMshowdate% + \DTMdisplaydate{##1}{##2}{##3}{##4}% + \DTMsrLatnBAdatetimesep% + \fi + \DTMdisplaytime{##5}{##6}{##7}% + \ifDTMshowzone% + \DTMsrLatnBAtimezonesep% + \DTMdisplayzone{##8}{##9}% + \fi + }% + \renewcommand*{\DTMDisplay}[9]{% + \ifDTMshowdate% + \DTMDisplaydate{##1}{##2}{##3}{##4}% + \DTMsrLatnBAdatetimesep% + \fi + \DTMdisplaytime{##5}{##6}{##7}% + \ifDTMshowzone% + \DTMsrLatnBAtimezonesep% + \DTMdisplayzone{##8}{##9}% + \fi + }% +}% + \newcommand*{\DTMsrLatnBAmonthordinal}[1]{% + \DTMifbool{sr-Latn-BA}{leadingzero}{\DTMtwodigits{#1}}{\number#1}.}% +\DTMdefchoicekey{sr-Latn-BA}{monthord}% +[\@dtm@val\@dtm@nr]{arabic,roman,romanlsc}{% + \ifcase\@dtm@nr\relax + \renewcommand*{\DTMsrLatnBAmonthordinal}[1]{% + \DTMifbool{sr-Latn-BA}{leadingzero}% + {\DTMtwodigits{##1}}{\number##1}\DTMsrLatnBAdatesep}% + \or% + \renewcommand*{\DTMsrLatnBAmonthordinal}[1]{% + \DTMtexorpdfstring{\protect\DTMserbianordinalROMAN{##1}}% + {serbianordinalROMAN{##1}}}% + \or% + \renewcommand*{\DTMsrLatnBAmonthordinal}[1]{% + \DTMtexorpdfstring{\textsc{\protect\DTMserbianordinalroman{##1}}}% + {serbianordinalROMAN{##1}}}% + \fi +} +\DTMnewstyle% +{sr-Latn-BA-numeric}% label +{% date style + \renewcommand*\DTMdisplaydate[4]{% + \ifDTMshowdow% + \ifnum##4>-1 + \DTMsrLatnBAweekdayname{##4}% + \DTMsrLatnBAdowdaysep% + \fi + \fi + \DTMifbool{sr-Latn-BA}{showdayofmonth}% + {\DTMsrLatnBAdayordinal{##3}\DTMsrLatnBAdaymonthsep}% + {}% + \DTMsrLatnBAmonthordinal{##2}% + \DTMifbool{sr-Latn-BA}{showyear}% + {% + \DTMsrLatnBAmonthyearsep% + \DTMsrLatnBAyearordinal{##1}% + }% + {}% + }% + \renewcommand*\DTMDisplaydate[4]{% + \ifDTMshowdow% + \ifnum##4>-1 + \DTMsrLatnBAWeekdayname{##4}% + \DTMsrLatnBAdowdaysep% + \fi + \fi + \DTMifbool{sr-Latn-BA}{showdayofmonth}% + {\DTMsrLatnBAdayordinal{##3}\DTMsrLatnBAdaymonthsep}% + {}% + \DTMsrLatnBAmonthordinal{##2}% + \DTMifbool{sr-Latn-BA}{showyear}% + {% + \DTMsrLatnBAmonthyearsep% + \DTMsrLatnBAyearordinal{##1}% + }% + {}% + }% +}% +{% time style + \renewcommand*\DTMdisplaytime[3]{% + \DTMifbool{sr-Latn-BA}{leadingzero}{\DTMtwodigits{##1}}{\number##1}% + \DTMsrLatnBAtimesep\DTMtwodigits{##2}% + \ifDTMshowseconds\DTMsrLatnBAtimesep\DTMtwodigits{##3}\fi + }% +}% +{% zone style + \DTMresetzones% + \DTMsrLatnBAzonemaps% + \renewcommand*{\DTMdisplayzone}[2]{% + \DTMifbool{sr-Latn-BA}{mapzone}% + {\DTMusezonemapordefault{##1}{##2}}% + {% + \ifnum##1<0 + \else+\fi\DTMtwodigits{##1}% + \ifDTMshowzoneminutes\DTMsrLatnBAtimesep\DTMtwodigits{##2}\fi + }% + }% +}% +{% full style + \renewcommand*{\DTMdisplay}[9]{% + \ifDTMshowdate% + \DTMdisplaydate{##1}{##2}{##3}{##4}% + \DTMsrLatnBAdatetimesep% + \fi + \DTMdisplaytime{##5}{##6}{##7}% + \ifDTMshowzone% + \DTMsrLatnBAtimezonesep% + \DTMdisplayzone{##8}{##9}% + \fi + }% + \renewcommand*{\DTMDisplay}{\DTMdisplay}% +} +\newcommand*{\DTMsr-Latn-BAzonemaps}{% + \DTMdefzonemap{01}{00}{CET}% + \DTMdefzonemap{02}{00}{CEST}% +} + +\DTMifcaseregional% +{}% do nothing +{\DTMsetstyle{sr-Latn-BA}}% +{\DTMsetstyle{sr-Latn-BA-numeric}}% +\ifcsundef{date\CurrentTrackedDialect} +{% + \ifundef\dateserbian% + {% do nothing + }% + {% + \def\dateserbian{% + \DTMifcaseregional% + {}% do nothing + {\DTMsetstyle{sr-Latn-BA}}% + {\DTMsetstyle{sr-Latn-BA-numeric}}% + }% + }% +}% +{% + \csdef{date\CurrentTrackedDialect}{% + \DTMifcaseregional% + {}% do nothing + {\DTMsetstyle{sr-Latn-BA}}% + {\DTMsetstyle{sr-Latn-BA-numeric}}% + }% +}% +\endinput +%% +%% End of file `datetime2-sr-Latn-BA.ldf'. diff --git a/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-sr-Latn-ME.ldf b/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-sr-Latn-ME.ldf new file mode 100644 index 00000000000..b49ceec3cbd --- /dev/null +++ b/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-sr-Latn-ME.ldf @@ -0,0 +1,340 @@ +%% +%% This is file `datetime2-sr-Latn-ME.ldf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% datetime2-serbian.dtx (with options: `datetime2-sr-Latn-ME.ldf,package') +%% +%% datetime2-serbian.dtx +%% Copyright 2019 Andrej Radović +%% Copyright 2019 Nicola Talbot +%% +%% 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 `maintained'. +%% +%% The Current Maintainer of this work is Andrej Radović. +%% +%% This work consists of the files datetime2-serbian.dtx and +%% datetime2-serbian.ins and the derived files are as follows: +%% datetime2-serbian-base.ldf +%% datetime2-serbian-base-utf8.ldf +%% datetime2-serbian-base-ascii.ldf +%% datetime2-serbian.ldf +%% datetime2-sr-Latn.ldf +%% datetime2-sr-Latn-RS.ldf +%% datetime2-sr-Latn-ME.ldf +%% datetime2-sr-Latn-BA.ldf +%% datetime2-serbianc.ldf +%% datetime2-sr-Cyrl.ldf +%% datetime2-sr-Cyrl-RS.ldf +%% datetime2-sr-Cyrl-ME.ldf +%% datetime2-sr-Cyrl-BA.ldf +%% +%% +%% \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 \~} +\ProvidesDateTimeModule{sr-Latn-ME}[2019/11/07 v2.0] +\RequireDateTimeModule{serbian-base} +\newcommand*{\DTMsrLatnMEdowdaysep}{,\space} +\newcommand*{\DTMsrLatnMEdaymonthsep}{% + \DTMtexorpdfstring{\protect~}{\space}% +} +\newcommand*{\DTMsrLatnMEmonthyearsep}{\space} +\newcommand*{\DTMsrLatnMEdatetimesep}{\space} +\newcommand*{\DTMsrLatnMEtimezonesep}{\space} +\newcommand*{\DTMsrLatnMEdatesep}{.} +\newcommand*{\DTMsrLatnMEtimesep}{.} +\DTMdefkey{sr-Latn-ME}{dowdaysep}% + {\renewcommand*{\DTMsr-Latn-MEdowdaysep}{#1}} +\DTMdefkey{sr-Latn-ME}{daymonthsep}% + {\renewcommand*{\DTMsr-Latn-MEdaymonthsep}{#1}} +\DTMdefkey{sr-Latn-ME}{monthyearsep}% + {\renewcommand*{\DTMsr-Latn-MEmonthyearsep}{#1}} +\DTMdefkey{sr-Latn-ME}{datetimesep}% + {\renewcommand*{\DTMsr-Latn-MEdatetimesep}{#1}} +\DTMdefkey{sr-Latn-ME}{timezonesep}% + {\renewcommand*{\DTMsr-Latn-MEtimezonesep}{#1}} +\DTMdefkey{sr-Latn-ME}{datesep}% + {\renewcommand*{\DTMsr-Latn-MEdatesep}{#1}} +\DTMdefkey{sr-Latn-ME}{timesep}% + {\renewcommand*{\DTMsr-Latn-MEtimesep}{#1}} +\newcommand*{\DTMsrLatnMEweekdayname}% +{\DTMserbianlatijweekdayname} + +\newcommand*{\DTMsrLatnMEWeekdayname}% + {\DTMserbianlatijWeekdayname} +\DTMdefchoicekey{sr-Latn-ME}% + {pronunciation}[\@dtm@val\@dtm@nr]{ekavian,ijekavian}{% + \ifcase\@dtm@nr\relax + \renewcommand*{\DTMsrLatnMEweekdayname}% + {\DTMserbianlatekweekdayname}% + \renewcommand*{\DTMsrLatnMEWeekdayname}% + {\DTMserbianlatekWeekdayname}% + \or% + \renewcommand*{\DTMsrLatnMEweekdayname}% + {\DTMserbianlatijweekdayname}% + \renewcommand*{\DTMsrLatnMEWeekdayname} + {\DTMserbianlatijWeekdayname}% + \fi +} +\DTMdefboolkey{sr-Latn-ME}{monthi}[true]{} +\DTMsetbool{sr-Latn-ME}{monthi}{false} +\DTMdefboolkey{sr-Latn-ME}{leadingzero}[true]{} +\DTMsetbool{sr-Latn-ME}{leadingzero}{false} + \newcommand*{\DTMsrLatnMEdayordinal}[1]{% + \DTMifbool{sr-Latn-ME}{leadingzero}% + {\DTMtwodigits{#1}}% + {\number#1}\DTMsrLatnMEdatesep}% + \newcommand*{\DTMsrLatnMEyearordinal}[1]{% + \number#1\DTMsrLatnMEdatesep}% +\newcommand*{\DTMsrLatnMEnoimonthname}{\DTMserbianlatnoimonthname} +\newcommand*{\DTMsrLatnMEnoiMonthname}{\DTMserbianlatnoiMonthname} +\newcommand*{\DTMsrLatnMEimonthname}{\DTMserbianlatimonthname} +\newcommand*{\DTMsrLatnMEiMonthname}{\DTMserbianlatiMonthname} +\DTMdefboolkey{sr-Latn-ME}{mapzone}[true]{} +\DTMsetbool{sr-Latn-ME}{mapzone}{true} +\DTMdefboolkey{sr-Latn-ME}{showdayofmonth}[true]{} +\DTMsetbool{sr-Latn-ME}{showdayofmonth}{true} +\DTMdefboolkey{sr-Latn-ME}{showyear}[true]{} +\DTMsetbool{sr-Latn-ME}{showyear}{true} +\DTMnewstyle% +{sr-Latn-ME}% label +{% date style + \renewcommand*\DTMdisplaydate[4]{% + \ifDTMshowdow% + \ifnum##4>-1 + \DTMsrLatnMEweekdayname{##4}% + \DTMsrLatnMEdowdaysep% + \fi + \fi + \DTMifbool{sr-Latn-ME}{showdayofmonth} + {\DTMsrLatnMEdayordinal{##3}\DTMsrLatnMEdaymonthsep}% + {}% + \DTMifbool{sr-Latn-ME}{monthi}% + {\DTMsrLatnMEimonthname{##2}}% + {\DTMsrLatnMEnoimonthname{##2}}% + \DTMifbool{sr-Latn-ME}{showyear}% + {% + \DTMsrLatnMEmonthyearsep% + \DTMsrLatnMEyearordinal{##1}% + }% + {}% + }% + \renewcommand*\DTMDisplaydate[4]{% + \ifDTMshowdow% + \ifnum##4>-1 + \DTMsrLatnMEWeekdayname{##4}% + \DTMsrLatnMEdowdaysep% + \fi + \fi + \DTMifbool{sr-Latn-ME}{showdayofmonth} + {% + \DTMsrLatnMEdayordinal{##3}\DTMsrLatnMEdaymonthsep% + \DTMifbool{sr-Latn-ME}{monthi}% + {\DTMsrLatnMEimonthname{##2}}% + {\DTMsrLatnMEnoimonthname{##2}}% + }% + {% + \DTMifbool{sr-Latn-ME}{monthi}% + {\DTMsrLatnMEiMonthname{##2}}% + {\DTMsrLatnMEnoiMonthname{##2}}% + }% + \DTMifbool{sr-Latn-ME}{showyear}% + {% + \DTMsrLatnMEmonthyearsep% + \DTMsrLatnMEyearordinal{##1}% + }% + {}% + }% +}% +{% time style + \renewcommand*\DTMdisplaytime[3]{% + \DTMifbool{sr-Latn-ME}{leadingzero}{\DTMtwodigits{##1}}{\number##1}% + \DTMsrLatnMEtimesep\DTMtwodigits{##2}% + \ifDTMshowseconds\DTMsrLatnMEtimesep\DTMtwodigits{##3}\fi + }% +}% +{% zone style + \DTMresetzones% + \DTMsrLatnMEzonemaps% + \renewcommand*{\DTMdisplayzone}[2]{% + \DTMifbool{sr-Latn-ME}{mapzone}% + {\DTMusezonemapordefault{##1}{##2}}% + {% + \ifnum##1<0 + \else+\fi\DTMtwodigits{##1}% + \ifDTMshowzoneminutes\DTMsrLatnMEtimesep\DTMtwodigits{##2}\fi + }% + }% +}% +{% full style + \renewcommand*{\DTMdisplay}[9]{% + \ifDTMshowdate% + \DTMdisplaydate{##1}{##2}{##3}{##4}% + \DTMsrLatnMEdatetimesep% + \fi + \DTMdisplaytime{##5}{##6}{##7}% + \ifDTMshowzone% + \DTMsrLatnMEtimezonesep% + \DTMdisplayzone{##8}{##9}% + \fi + }% + \renewcommand*{\DTMDisplay}[9]{% + \ifDTMshowdate% + \DTMDisplaydate{##1}{##2}{##3}{##4}% + \DTMsrLatnMEdatetimesep% + \fi + \DTMdisplaytime{##5}{##6}{##7}% + \ifDTMshowzone% + \DTMsrLatnMEtimezonesep% + \DTMdisplayzone{##8}{##9}% + \fi + }% +}% + \newcommand*{\DTMsrLatnMEmonthordinal}[1]{% + \DTMifbool{sr-Latn-ME}{leadingzero}{\DTMtwodigits{#1}}{\number#1}.}% +\DTMdefchoicekey{sr-Latn-ME}{monthord}% +[\@dtm@val\@dtm@nr]{arabic,roman,romanlsc}{% + \ifcase\@dtm@nr\relax + \renewcommand*{\DTMsrLatnMEmonthordinal}[1]{% + \DTMifbool{sr-Latn-ME}{leadingzero}% + {\DTMtwodigits{##1}}{\number##1}\DTMsrLatnMEdatesep}% + \or% + \renewcommand*{\DTMsrLatnMEmonthordinal}[1]{% + \DTMtexorpdfstring{\protect\DTMserbianordinalROMAN{##1}}% + {serbianordinalROMAN{##1}}}% + \or% + \renewcommand*{\DTMsrLatnMEmonthordinal}[1]{% + \DTMtexorpdfstring{\textsc{\protect\DTMserbianordinalroman{##1}}}% + {serbianordinalROMAN{##1}}}% + \fi +} +\DTMnewstyle% +{sr-Latn-ME-numeric}% label +{% date style + \renewcommand*\DTMdisplaydate[4]{% + \ifDTMshowdow% + \ifnum##4>-1 + \DTMsrLatnMEweekdayname{##4}% + \DTMsrLatnMEdowdaysep% + \fi + \fi + \DTMifbool{sr-Latn-ME}{showdayofmonth}% + {\DTMsrLatnMEdayordinal{##3}\DTMsrLatnMEdaymonthsep}% + {}% + \DTMsrLatnMEmonthordinal{##2}% + \DTMifbool{sr-Latn-ME}{showyear}% + {% + \DTMsrLatnMEmonthyearsep% + \DTMsrLatnMEyearordinal{##1}% + }% + {}% + }% + \renewcommand*\DTMDisplaydate[4]{% + \ifDTMshowdow% + \ifnum##4>-1 + \DTMsrLatnMEWeekdayname{##4}% + \DTMsrLatnMEdowdaysep% + \fi + \fi + \DTMifbool{sr-Latn-ME}{showdayofmonth}% + {\DTMsrLatnMEdayordinal{##3}\DTMsrLatnMEdaymonthsep}% + {}% + \DTMsrLatnMEmonthordinal{##2}% + \DTMifbool{sr-Latn-ME}{showyear}% + {% + \DTMsrLatnMEmonthyearsep% + \DTMsrLatnMEyearordinal{##1}% + }% + {}% + }% +}% +{% time style + \renewcommand*\DTMdisplaytime[3]{% + \DTMifbool{sr-Latn-ME}{leadingzero}{\DTMtwodigits{##1}}{\number##1}% + \DTMsrLatnMEtimesep\DTMtwodigits{##2}% + \ifDTMshowseconds\DTMsrLatnMEtimesep\DTMtwodigits{##3}\fi + }% +}% +{% zone style + \DTMresetzones% + \DTMsrLatnMEzonemaps% + \renewcommand*{\DTMdisplayzone}[2]{% + \DTMifbool{sr-Latn-ME}{mapzone}% + {\DTMusezonemapordefault{##1}{##2}}% + {% + \ifnum##1<0 + \else+\fi\DTMtwodigits{##1}% + \ifDTMshowzoneminutes\DTMsrLatnMEtimesep\DTMtwodigits{##2}\fi + }% + }% +}% +{% full style + \renewcommand*{\DTMdisplay}[9]{% + \ifDTMshowdate% + \DTMdisplaydate{##1}{##2}{##3}{##4}% + \DTMsrLatnMEdatetimesep% + \fi + \DTMdisplaytime{##5}{##6}{##7}% + \ifDTMshowzone% + \DTMsrLatnMEtimezonesep% + \DTMdisplayzone{##8}{##9}% + \fi + }% + \renewcommand*{\DTMDisplay}{\DTMdisplay}% +} +\newcommand*{\DTMsr-Latn-MEzonemaps}{% + \DTMdefzonemap{01}{00}{CET}% + \DTMdefzonemap{02}{00}{CEST}% +} + +\DTMifcaseregional% +{}% do nothing +{\DTMsetstyle{sr-Latn-ME}}% +{\DTMsetstyle{sr-Latn-ME-numeric}}% +\ifcsundef{date\CurrentTrackedDialect} +{% + \ifundef\dateserbian% + {% do nothing + }% + {% + \def\dateserbian{% + \DTMifcaseregional% + {}% do nothing + {\DTMsetstyle{sr-Latn-ME}}% + {\DTMsetstyle{sr-Latn-ME-numeric}}% + }% + }% +}% +{% + \csdef{date\CurrentTrackedDialect}{% + \DTMifcaseregional% + {}% do nothing + {\DTMsetstyle{sr-Latn-ME}}% + {\DTMsetstyle{sr-Latn-ME-numeric}}% + }% +}% +\endinput +%% +%% End of file `datetime2-sr-Latn-ME.ldf'. diff --git a/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-sr-Latn-RS.ldf b/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-sr-Latn-RS.ldf new file mode 100644 index 00000000000..c165c996dfc --- /dev/null +++ b/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-sr-Latn-RS.ldf @@ -0,0 +1,340 @@ +%% +%% This is file `datetime2-sr-Latn-RS.ldf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% datetime2-serbian.dtx (with options: `datetime2-sr-Latn-RS.ldf,package') +%% +%% datetime2-serbian.dtx +%% Copyright 2019 Andrej Radović +%% Copyright 2019 Nicola Talbot +%% +%% 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 `maintained'. +%% +%% The Current Maintainer of this work is Andrej Radović. +%% +%% This work consists of the files datetime2-serbian.dtx and +%% datetime2-serbian.ins and the derived files are as follows: +%% datetime2-serbian-base.ldf +%% datetime2-serbian-base-utf8.ldf +%% datetime2-serbian-base-ascii.ldf +%% datetime2-serbian.ldf +%% datetime2-sr-Latn.ldf +%% datetime2-sr-Latn-RS.ldf +%% datetime2-sr-Latn-ME.ldf +%% datetime2-sr-Latn-BA.ldf +%% datetime2-serbianc.ldf +%% datetime2-sr-Cyrl.ldf +%% datetime2-sr-Cyrl-RS.ldf +%% datetime2-sr-Cyrl-ME.ldf +%% datetime2-sr-Cyrl-BA.ldf +%% +%% +%% \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 \~} +\ProvidesDateTimeModule{sr-Latn-RS}[2019/11/07 v2.0] +\RequireDateTimeModule{serbian-base} +\newcommand*{\DTMsrLatnRSdowdaysep}{,\space} +\newcommand*{\DTMsrLatnRSdaymonthsep}{% + \DTMtexorpdfstring{\protect~}{\space}% +} +\newcommand*{\DTMsrLatnRSmonthyearsep}{\space} +\newcommand*{\DTMsrLatnRSdatetimesep}{\space} +\newcommand*{\DTMsrLatnRStimezonesep}{\space} +\newcommand*{\DTMsrLatnRSdatesep}{.} +\newcommand*{\DTMsrLatnRStimesep}{.} +\DTMdefkey{sr-Latn-RS}{dowdaysep}% + {\renewcommand*{\DTMsr-Latn-RSdowdaysep}{#1}} +\DTMdefkey{sr-Latn-RS}{daymonthsep}% + {\renewcommand*{\DTMsr-Latn-RSdaymonthsep}{#1}} +\DTMdefkey{sr-Latn-RS}{monthyearsep}% + {\renewcommand*{\DTMsr-Latn-RSmonthyearsep}{#1}} +\DTMdefkey{sr-Latn-RS}{datetimesep}% + {\renewcommand*{\DTMsr-Latn-RSdatetimesep}{#1}} +\DTMdefkey{sr-Latn-RS}{timezonesep}% + {\renewcommand*{\DTMsr-Latn-RStimezonesep}{#1}} +\DTMdefkey{sr-Latn-RS}{datesep}% + {\renewcommand*{\DTMsr-Latn-RSdatesep}{#1}} +\DTMdefkey{sr-Latn-RS}{timesep}% + {\renewcommand*{\DTMsr-Latn-RStimesep}{#1}} +\newcommand*{\DTMsrLatnRSweekdayname}% +{\DTMserbianlatekweekdayname} + +\newcommand*{\DTMsrLatnRSWeekdayname}% + {\DTMserbianlatekWeekdayname} +\DTMdefchoicekey{sr-Latn-RS}% + {pronunciation}[\@dtm@val\@dtm@nr]{ekavian,ijekavian}{% + \ifcase\@dtm@nr\relax + \renewcommand*{\DTMsrLatnRSweekdayname}% + {\DTMserbianlatekweekdayname}% + \renewcommand*{\DTMsrLatnRSWeekdayname}% + {\DTMserbianlatekWeekdayname}% + \or% + \renewcommand*{\DTMsrLatnRSweekdayname}% + {\DTMserbianlatijweekdayname}% + \renewcommand*{\DTMsrLatnRSWeekdayname} + {\DTMserbianlatijWeekdayname}% + \fi +} +\DTMdefboolkey{sr-Latn-RS}{monthi}[true]{} +\DTMsetbool{sr-Latn-RS}{monthi}{false} +\DTMdefboolkey{sr-Latn-RS}{leadingzero}[true]{} +\DTMsetbool{sr-Latn-RS}{leadingzero}{false} + \newcommand*{\DTMsrLatnRSdayordinal}[1]{% + \DTMifbool{sr-Latn-RS}{leadingzero}% + {\DTMtwodigits{#1}}% + {\number#1}\DTMsrLatnRSdatesep}% + \newcommand*{\DTMsrLatnRSyearordinal}[1]{% + \number#1\DTMsrLatnRSdatesep}% +\newcommand*{\DTMsrLatnRSnoimonthname}{\DTMserbianlatnoimonthname} +\newcommand*{\DTMsrLatnRSnoiMonthname}{\DTMserbianlatnoiMonthname} +\newcommand*{\DTMsrLatnRSimonthname}{\DTMserbianlatimonthname} +\newcommand*{\DTMsrLatnRSiMonthname}{\DTMserbianlatiMonthname} +\DTMdefboolkey{sr-Latn-RS}{mapzone}[true]{} +\DTMsetbool{sr-Latn-RS}{mapzone}{true} +\DTMdefboolkey{sr-Latn-RS}{showdayofmonth}[true]{} +\DTMsetbool{sr-Latn-RS}{showdayofmonth}{true} +\DTMdefboolkey{sr-Latn-RS}{showyear}[true]{} +\DTMsetbool{sr-Latn-RS}{showyear}{true} +\DTMnewstyle% +{sr-Latn-RS}% label +{% date style + \renewcommand*\DTMdisplaydate[4]{% + \ifDTMshowdow% + \ifnum##4>-1 + \DTMsrLatnRSweekdayname{##4}% + \DTMsrLatnRSdowdaysep% + \fi + \fi + \DTMifbool{sr-Latn-RS}{showdayofmonth} + {\DTMsrLatnRSdayordinal{##3}\DTMsrLatnRSdaymonthsep}% + {}% + \DTMifbool{sr-Latn-RS}{monthi}% + {\DTMsrLatnRSimonthname{##2}}% + {\DTMsrLatnRSnoimonthname{##2}}% + \DTMifbool{sr-Latn-RS}{showyear}% + {% + \DTMsrLatnRSmonthyearsep% + \DTMsrLatnRSyearordinal{##1}% + }% + {}% + }% + \renewcommand*\DTMDisplaydate[4]{% + \ifDTMshowdow% + \ifnum##4>-1 + \DTMsrLatnRSWeekdayname{##4}% + \DTMsrLatnRSdowdaysep% + \fi + \fi + \DTMifbool{sr-Latn-RS}{showdayofmonth} + {% + \DTMsrLatnRSdayordinal{##3}\DTMsrLatnRSdaymonthsep% + \DTMifbool{sr-Latn-RS}{monthi}% + {\DTMsrLatnRSimonthname{##2}}% + {\DTMsrLatnRSnoimonthname{##2}}% + }% + {% + \DTMifbool{sr-Latn-RS}{monthi}% + {\DTMsrLatnRSiMonthname{##2}}% + {\DTMsrLatnRSnoiMonthname{##2}}% + }% + \DTMifbool{sr-Latn-RS}{showyear}% + {% + \DTMsrLatnRSmonthyearsep% + \DTMsrLatnRSyearordinal{##1}% + }% + {}% + }% +}% +{% time style + \renewcommand*\DTMdisplaytime[3]{% + \DTMifbool{sr-Latn-RS}{leadingzero}{\DTMtwodigits{##1}}{\number##1}% + \DTMsrLatnRStimesep\DTMtwodigits{##2}% + \ifDTMshowseconds\DTMsrLatnRStimesep\DTMtwodigits{##3}\fi + }% +}% +{% zone style + \DTMresetzones% + \DTMsrLatnRSzonemaps% + \renewcommand*{\DTMdisplayzone}[2]{% + \DTMifbool{sr-Latn-RS}{mapzone}% + {\DTMusezonemapordefault{##1}{##2}}% + {% + \ifnum##1<0 + \else+\fi\DTMtwodigits{##1}% + \ifDTMshowzoneminutes\DTMsrLatnRStimesep\DTMtwodigits{##2}\fi + }% + }% +}% +{% full style + \renewcommand*{\DTMdisplay}[9]{% + \ifDTMshowdate% + \DTMdisplaydate{##1}{##2}{##3}{##4}% + \DTMsrLatnRSdatetimesep% + \fi + \DTMdisplaytime{##5}{##6}{##7}% + \ifDTMshowzone% + \DTMsrLatnRStimezonesep% + \DTMdisplayzone{##8}{##9}% + \fi + }% + \renewcommand*{\DTMDisplay}[9]{% + \ifDTMshowdate% + \DTMDisplaydate{##1}{##2}{##3}{##4}% + \DTMsrLatnRSdatetimesep% + \fi + \DTMdisplaytime{##5}{##6}{##7}% + \ifDTMshowzone% + \DTMsrLatnRStimezonesep% + \DTMdisplayzone{##8}{##9}% + \fi + }% +}% + \newcommand*{\DTMsrLatnRSmonthordinal}[1]{% + \DTMifbool{sr-Latn-RS}{leadingzero}{\DTMtwodigits{#1}}{\number#1}.}% +\DTMdefchoicekey{sr-Latn-RS}{monthord}% +[\@dtm@val\@dtm@nr]{arabic,roman,romanlsc}{% + \ifcase\@dtm@nr\relax + \renewcommand*{\DTMsrLatnRSmonthordinal}[1]{% + \DTMifbool{sr-Latn-RS}{leadingzero}% + {\DTMtwodigits{##1}}{\number##1}\DTMsrLatnRSdatesep}% + \or% + \renewcommand*{\DTMsrLatnRSmonthordinal}[1]{% + \DTMtexorpdfstring{\protect\DTMserbianordinalROMAN{##1}}% + {serbianordinalROMAN{##1}}}% + \or% + \renewcommand*{\DTMsrLatnRSmonthordinal}[1]{% + \DTMtexorpdfstring{\textsc{\protect\DTMserbianordinalroman{##1}}}% + {serbianordinalROMAN{##1}}}% + \fi +} +\DTMnewstyle% +{sr-Latn-RS-numeric}% label +{% date style + \renewcommand*\DTMdisplaydate[4]{% + \ifDTMshowdow% + \ifnum##4>-1 + \DTMsrLatnRSweekdayname{##4}% + \DTMsrLatnRSdowdaysep% + \fi + \fi + \DTMifbool{sr-Latn-RS}{showdayofmonth}% + {\DTMsrLatnRSdayordinal{##3}\DTMsrLatnRSdaymonthsep}% + {}% + \DTMsrLatnRSmonthordinal{##2}% + \DTMifbool{sr-Latn-RS}{showyear}% + {% + \DTMsrLatnRSmonthyearsep% + \DTMsrLatnRSyearordinal{##1}% + }% + {}% + }% + \renewcommand*\DTMDisplaydate[4]{% + \ifDTMshowdow% + \ifnum##4>-1 + \DTMsrLatnRSWeekdayname{##4}% + \DTMsrLatnRSdowdaysep% + \fi + \fi + \DTMifbool{sr-Latn-RS}{showdayofmonth}% + {\DTMsrLatnRSdayordinal{##3}\DTMsrLatnRSdaymonthsep}% + {}% + \DTMsrLatnRSmonthordinal{##2}% + \DTMifbool{sr-Latn-RS}{showyear}% + {% + \DTMsrLatnRSmonthyearsep% + \DTMsrLatnRSyearordinal{##1}% + }% + {}% + }% +}% +{% time style + \renewcommand*\DTMdisplaytime[3]{% + \DTMifbool{sr-Latn-RS}{leadingzero}{\DTMtwodigits{##1}}{\number##1}% + \DTMsrLatnRStimesep\DTMtwodigits{##2}% + \ifDTMshowseconds\DTMsrLatnRStimesep\DTMtwodigits{##3}\fi + }% +}% +{% zone style + \DTMresetzones% + \DTMsrLatnRSzonemaps% + \renewcommand*{\DTMdisplayzone}[2]{% + \DTMifbool{sr-Latn-RS}{mapzone}% + {\DTMusezonemapordefault{##1}{##2}}% + {% + \ifnum##1<0 + \else+\fi\DTMtwodigits{##1}% + \ifDTMshowzoneminutes\DTMsrLatnRStimesep\DTMtwodigits{##2}\fi + }% + }% +}% +{% full style + \renewcommand*{\DTMdisplay}[9]{% + \ifDTMshowdate% + \DTMdisplaydate{##1}{##2}{##3}{##4}% + \DTMsrLatnRSdatetimesep% + \fi + \DTMdisplaytime{##5}{##6}{##7}% + \ifDTMshowzone% + \DTMsrLatnRStimezonesep% + \DTMdisplayzone{##8}{##9}% + \fi + }% + \renewcommand*{\DTMDisplay}{\DTMdisplay}% +} +\newcommand*{\DTMsr-Latn-RSzonemaps}{% + \DTMdefzonemap{01}{00}{CET}% + \DTMdefzonemap{02}{00}{CEST}% +} + +\DTMifcaseregional% +{}% do nothing +{\DTMsetstyle{sr-Latn-RS}}% +{\DTMsetstyle{sr-Latn-RS-numeric}}% +\ifcsundef{date\CurrentTrackedDialect} +{% + \ifundef\dateserbian% + {% do nothing + }% + {% + \def\dateserbian{% + \DTMifcaseregional% + {}% do nothing + {\DTMsetstyle{sr-Latn-RS}}% + {\DTMsetstyle{sr-Latn-RS-numeric}}% + }% + }% +}% +{% + \csdef{date\CurrentTrackedDialect}{% + \DTMifcaseregional% + {}% do nothing + {\DTMsetstyle{sr-Latn-RS}}% + {\DTMsetstyle{sr-Latn-RS-numeric}}% + }% +}% +\endinput +%% +%% End of file `datetime2-sr-Latn-RS.ldf'. diff --git a/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-sr-Latn.ldf b/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-sr-Latn.ldf new file mode 100644 index 00000000000..5c8e0e372a5 --- /dev/null +++ b/Master/texmf-dist/tex/latex/datetime2-serbian/datetime2-sr-Latn.ldf @@ -0,0 +1,340 @@ +%% +%% This is file `datetime2-sr-Latn.ldf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% datetime2-serbian.dtx (with options: `datetime2-sr-Latn.ldf,package') +%% +%% datetime2-serbian.dtx +%% Copyright 2019 Andrej Radović +%% Copyright 2019 Nicola Talbot +%% +%% 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 `maintained'. +%% +%% The Current Maintainer of this work is Andrej Radović. +%% +%% This work consists of the files datetime2-serbian.dtx and +%% datetime2-serbian.ins and the derived files are as follows: +%% datetime2-serbian-base.ldf +%% datetime2-serbian-base-utf8.ldf +%% datetime2-serbian-base-ascii.ldf +%% datetime2-serbian.ldf +%% datetime2-sr-Latn.ldf +%% datetime2-sr-Latn-RS.ldf +%% datetime2-sr-Latn-ME.ldf +%% datetime2-sr-Latn-BA.ldf +%% datetime2-serbianc.ldf +%% datetime2-sr-Cyrl.ldf +%% datetime2-sr-Cyrl-RS.ldf +%% datetime2-sr-Cyrl-ME.ldf +%% datetime2-sr-Cyrl-BA.ldf +%% +%% +%% \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 \~} +\ProvidesDateTimeModule{sr-Latn}[2019/11/07 v2.0] +\RequireDateTimeModule{serbian-base} +\newcommand*{\DTMsrLatndowdaysep}{,\space} +\newcommand*{\DTMsrLatndaymonthsep}{% + \DTMtexorpdfstring{\protect~}{\space}% +} +\newcommand*{\DTMsrLatnmonthyearsep}{\space} +\newcommand*{\DTMsrLatndatetimesep}{\space} +\newcommand*{\DTMsrLatntimezonesep}{\space} +\newcommand*{\DTMsrLatndatesep}{.} +\newcommand*{\DTMsrLatntimesep}{.} +\DTMdefkey{sr-Latn}{dowdaysep}% + {\renewcommand*{\DTMsr-Latndowdaysep}{#1}} +\DTMdefkey{sr-Latn}{daymonthsep}% + {\renewcommand*{\DTMsr-Latndaymonthsep}{#1}} +\DTMdefkey{sr-Latn}{monthyearsep}% + {\renewcommand*{\DTMsr-Latnmonthyearsep}{#1}} +\DTMdefkey{sr-Latn}{datetimesep}% + {\renewcommand*{\DTMsr-Latndatetimesep}{#1}} +\DTMdefkey{sr-Latn}{timezonesep}% + {\renewcommand*{\DTMsr-Latntimezonesep}{#1}} +\DTMdefkey{sr-Latn}{datesep}% + {\renewcommand*{\DTMsr-Latndatesep}{#1}} +\DTMdefkey{sr-Latn}{timesep}% + {\renewcommand*{\DTMsr-Latntimesep}{#1}} +\newcommand*{\DTMsrLatnweekdayname}% +{\DTMserbianlatekweekdayname} + +\newcommand*{\DTMsrLatnWeekdayname}% + {\DTMserbianlatekWeekdayname} +\DTMdefchoicekey{sr-Latn}% + {pronunciation}[\@dtm@val\@dtm@nr]{ekavian,ijekavian}{% + \ifcase\@dtm@nr\relax + \renewcommand*{\DTMsrLatnweekdayname}% + {\DTMserbianlatekweekdayname}% + \renewcommand*{\DTMsrLatnWeekdayname}% + {\DTMserbianlatekWeekdayname}% + \or% + \renewcommand*{\DTMsrLatnweekdayname}% + {\DTMserbianlatijweekdayname}% + \renewcommand*{\DTMsrLatnWeekdayname} + {\DTMserbianlatijWeekdayname}% + \fi +} +\DTMdefboolkey{sr-Latn}{monthi}[true]{} +\DTMsetbool{sr-Latn}{monthi}{false} +\DTMdefboolkey{sr-Latn}{leadingzero}[true]{} +\DTMsetbool{sr-Latn}{leadingzero}{false} + \newcommand*{\DTMsrLatndayordinal}[1]{% + \DTMifbool{sr-Latn}{leadingzero}% + {\DTMtwodigits{#1}}% + {\number#1}\DTMsrLatndatesep}% + \newcommand*{\DTMsrLatnyearordinal}[1]{% + \number#1\DTMsrLatndatesep}% +\newcommand*{\DTMsrLatnnoimonthname}{\DTMserbianlatnoimonthname} +\newcommand*{\DTMsrLatnnoiMonthname}{\DTMserbianlatnoiMonthname} +\newcommand*{\DTMsrLatnimonthname}{\DTMserbianlatimonthname} +\newcommand*{\DTMsrLatniMonthname}{\DTMserbianlatiMonthname} +\DTMdefboolkey{sr-Latn}{mapzone}[true]{} +\DTMsetbool{sr-Latn}{mapzone}{true} +\DTMdefboolkey{sr-Latn}{showdayofmonth}[true]{} +\DTMsetbool{sr-Latn}{showdayofmonth}{true} +\DTMdefboolkey{sr-Latn}{showyear}[true]{} +\DTMsetbool{sr-Latn}{showyear}{true} +\DTMnewstyle% +{sr-Latn}% label +{% date style + \renewcommand*\DTMdisplaydate[4]{% + \ifDTMshowdow% + \ifnum##4>-1 + \DTMsrLatnweekdayname{##4}% + \DTMsrLatndowdaysep% + \fi + \fi + \DTMifbool{sr-Latn}{showdayofmonth} + {\DTMsrLatndayordinal{##3}\DTMsrLatndaymonthsep}% + {}% + \DTMifbool{sr-Latn}{monthi}% + {\DTMsrLatnimonthname{##2}}% + {\DTMsrLatnnoimonthname{##2}}% + \DTMifbool{sr-Latn}{showyear}% + {% + \DTMsrLatnmonthyearsep% + \DTMsrLatnyearordinal{##1}% + }% + {}% + }% + \renewcommand*\DTMDisplaydate[4]{% + \ifDTMshowdow% + \ifnum##4>-1 + \DTMsrLatnWeekdayname{##4}% + \DTMsrLatndowdaysep% + \fi + \fi + \DTMifbool{sr-Latn}{showdayofmonth} + {% + \DTMsrLatndayordinal{##3}\DTMsrLatndaymonthsep% + \DTMifbool{sr-Latn}{monthi}% + {\DTMsrLatnimonthname{##2}}% + {\DTMsrLatnnoimonthname{##2}}% + }% + {% + \DTMifbool{sr-Latn}{monthi}% + {\DTMsrLatniMonthname{##2}}% + {\DTMsrLatnnoiMonthname{##2}}% + }% + \DTMifbool{sr-Latn}{showyear}% + {% + \DTMsrLatnmonthyearsep% + \DTMsrLatnyearordinal{##1}% + }% + {}% + }% +}% +{% time style + \renewcommand*\DTMdisplaytime[3]{% + \DTMifbool{sr-Latn}{leadingzero}{\DTMtwodigits{##1}}{\number##1}% + \DTMsrLatntimesep\DTMtwodigits{##2}% + \ifDTMshowseconds\DTMsrLatntimesep\DTMtwodigits{##3}\fi + }% +}% +{% zone style + \DTMresetzones% + \DTMsrLatnzonemaps% + \renewcommand*{\DTMdisplayzone}[2]{% + \DTMifbool{sr-Latn}{mapzone}% + {\DTMusezonemapordefault{##1}{##2}}% + {% + \ifnum##1<0 + \else+\fi\DTMtwodigits{##1}% + \ifDTMshowzoneminutes\DTMsrLatntimesep\DTMtwodigits{##2}\fi + }% + }% +}% +{% full style + \renewcommand*{\DTMdisplay}[9]{% + \ifDTMshowdate% + \DTMdisplaydate{##1}{##2}{##3}{##4}% + \DTMsrLatndatetimesep% + \fi + \DTMdisplaytime{##5}{##6}{##7}% + \ifDTMshowzone% + \DTMsrLatntimezonesep% + \DTMdisplayzone{##8}{##9}% + \fi + }% + \renewcommand*{\DTMDisplay}[9]{% + \ifDTMshowdate% + \DTMDisplaydate{##1}{##2}{##3}{##4}% + \DTMsrLatndatetimesep% + \fi + \DTMdisplaytime{##5}{##6}{##7}% + \ifDTMshowzone% + \DTMsrLatntimezonesep% + \DTMdisplayzone{##8}{##9}% + \fi + }% +}% + \newcommand*{\DTMsrLatnmonthordinal}[1]{% + \DTMifbool{sr-Latn}{leadingzero}{\DTMtwodigits{#1}}{\number#1}.}% +\DTMdefchoicekey{sr-Latn}{monthord}% +[\@dtm@val\@dtm@nr]{arabic,roman,romanlsc}{% + \ifcase\@dtm@nr\relax + \renewcommand*{\DTMsrLatnmonthordinal}[1]{% + \DTMifbool{sr-Latn}{leadingzero}% + {\DTMtwodigits{##1}}{\number##1}\DTMsrLatndatesep}% + \or% + \renewcommand*{\DTMsrLatnmonthordinal}[1]{% + \DTMtexorpdfstring{\protect\DTMserbianordinalROMAN{##1}}% + {serbianordinalROMAN{##1}}}% + \or% + \renewcommand*{\DTMsrLatnmonthordinal}[1]{% + \DTMtexorpdfstring{\textsc{\protect\DTMserbianordinalroman{##1}}}% + {serbianordinalROMAN{##1}}}% + \fi +} +\DTMnewstyle% +{sr-Latn-numeric}% label +{% date style + \renewcommand*\DTMdisplaydate[4]{% + \ifDTMshowdow% + \ifnum##4>-1 + \DTMsrLatnweekdayname{##4}% + \DTMsrLatndowdaysep% + \fi + \fi + \DTMifbool{sr-Latn}{showdayofmonth}% + {\DTMsrLatndayordinal{##3}\DTMsrLatndaymonthsep}% + {}% + \DTMsrLatnmonthordinal{##2}% + \DTMifbool{sr-Latn}{showyear}% + {% + \DTMsrLatnmonthyearsep% + \DTMsrLatnyearordinal{##1}% + }% + {}% + }% + \renewcommand*\DTMDisplaydate[4]{% + \ifDTMshowdow% + \ifnum##4>-1 + \DTMsrLatnWeekdayname{##4}% + \DTMsrLatndowdaysep% + \fi + \fi + \DTMifbool{sr-Latn}{showdayofmonth}% + {\DTMsrLatndayordinal{##3}\DTMsrLatndaymonthsep}% + {}% + \DTMsrLatnmonthordinal{##2}% + \DTMifbool{sr-Latn}{showyear}% + {% + \DTMsrLatnmonthyearsep% + \DTMsrLatnyearordinal{##1}% + }% + {}% + }% +}% +{% time style + \renewcommand*\DTMdisplaytime[3]{% + \DTMifbool{sr-Latn}{leadingzero}{\DTMtwodigits{##1}}{\number##1}% + \DTMsrLatntimesep\DTMtwodigits{##2}% + \ifDTMshowseconds\DTMsrLatntimesep\DTMtwodigits{##3}\fi + }% +}% +{% zone style + \DTMresetzones% + \DTMsrLatnzonemaps% + \renewcommand*{\DTMdisplayzone}[2]{% + \DTMifbool{sr-Latn}{mapzone}% + {\DTMusezonemapordefault{##1}{##2}}% + {% + \ifnum##1<0 + \else+\fi\DTMtwodigits{##1}% + \ifDTMshowzoneminutes\DTMsrLatntimesep\DTMtwodigits{##2}\fi + }% + }% +}% +{% full style + \renewcommand*{\DTMdisplay}[9]{% + \ifDTMshowdate% + \DTMdisplaydate{##1}{##2}{##3}{##4}% + \DTMsrLatndatetimesep% + \fi + \DTMdisplaytime{##5}{##6}{##7}% + \ifDTMshowzone% + \DTMsrLatntimezonesep% + \DTMdisplayzone{##8}{##9}% + \fi + }% + \renewcommand*{\DTMDisplay}{\DTMdisplay}% +} +\newcommand*{\DTMsr-Latnzonemaps}{% + \DTMdefzonemap{01}{00}{CET}% + \DTMdefzonemap{02}{00}{CEST}% +} + +\DTMifcaseregional% +{}% do nothing +{\DTMsetstyle{sr-Latn}}% +{\DTMsetstyle{sr-Latn-numeric}}% +\ifcsundef{date\CurrentTrackedDialect} +{% + \ifundef\dateserbian% + {% do nothing + }% + {% + \def\dateserbian{% + \DTMifcaseregional% + {}% do nothing + {\DTMsetstyle{sr-Latn}}% + {\DTMsetstyle{sr-Latn-numeric}}% + }% + }% +}% +{% + \csdef{date\CurrentTrackedDialect}{% + \DTMifcaseregional% + {}% do nothing + {\DTMsetstyle{sr-Latn}}% + {\DTMsetstyle{sr-Latn-numeric}}% + }% +}% +\endinput +%% +%% End of file `datetime2-sr-Latn.ldf'. |