summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/polyglossia/gloss-serbian.ldf
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2020-01-29 22:37:53 +0000
committerKarl Berry <karl@freefriends.org>2020-01-29 22:37:53 +0000
commit015c5f064b14e4a79f151b46a6dd46b150520c81 (patch)
treecc3434d0ae73900950b37bc952816286d4d76d5c /Master/texmf-dist/tex/latex/polyglossia/gloss-serbian.ldf
parente9549ffe43d42fda4e5d3778e1d26fbd95e4ae9f (diff)
polyglossia (29jan20)
git-svn-id: svn://tug.org/texlive/trunk@53592 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/polyglossia/gloss-serbian.ldf')
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-serbian.ldf98
1 files changed, 67 insertions, 31 deletions
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-serbian.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-serbian.ldf
index b06adb1f46d..11c774e5fe1 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-serbian.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-serbian.ldf
@@ -7,6 +7,7 @@
\RequirePackage{xpg-cyrillicnumbers}
\PolyglossiaSetup{serbian}{
+ bcp47=sr-Latn,
langtag=SRB,
hyphennames={serbian},
hyphenmins={2,2},
@@ -17,6 +18,11 @@
%TODO localalph
}
+% BCP-47 compliant aliases
+\setlanguagealias*{serbian}{sr}
+\setlanguagealias*[script=Cyrillic]{serbian}{sr-Cyrl}
+\setlanguagealias*[script=Latin]{serbian}{sr-Latn}
+
% Babel aliases
\setlanguagealias[script=Cyrillic]{serbian}{serbianc}
@@ -25,12 +31,12 @@
\ifcase\nr\relax
% cyrillic:
\@serbian@cyrtrue
- \SetLanguageKeys{serbian}{scripttag=cyrl,script=Cyrillic,babelname=serbianc}
+ \SetLanguageKeys{serbian}{scripttag=cyrl,script=Cyrillic,babelname=serbianc,bcp47=sr-Cyrl}
\xpg@fontsetup@nonlatin{serbian}%
\or
% latin:
\@serbian@cyrfalse
- \SetLanguageKeys{serbian}{scripttag=latn,script=Latin}
+ \SetLanguageKeys{serbian}{scripttag=latn,script=Latin,bcp47=sr-Latn}
\xpg@fontsetup@latin{serbian}%
%TODO \def\serbian@language{\language=\l@serbianlat}%
% or should we use Croatian patterns as a fallback for the time being???
@@ -40,17 +46,34 @@
\define@key{serbian}{script}[Cyrillic]{\setkeys{serbian}{Script=#1}}
-\newif\ifserbian@numerals
-\define@key{serbian}{numerals}[arabic]{%
- \ifstrequal{#1}{latin}{\serbian@numeralsfalse}{%
- \ifstrequal{#1}{cyrillic}%
- {\serbian@numeralstrue}
- {\serbian@numeralsfalse}%
- }%
-}
+\newif\ifcyrillic@numerals
+\newif\ifcyrillic@asbuk@numerals
+\define@choicekey*+{serbian}{numerals}[\val\nr]{arabic,cyrillic,cyrillic-trad,cyrillic-alph}[arabic]{%
+ \ifcase\nr\relax
+ % arabic:
+ \cyrillic@numeralsfalse%
+ \cyrillic@asbuk@numeralsfalse%
+ \or
+ % cyrillic:
+ \cyrillic@numeralstrue%
+ \cyrillic@asbuk@numeralsfalse%
+ \or
+ % cyrillic-trad:
+ \cyrillic@numeralstrue%
+ \cyrillic@asbuk@numeralsfalse%
+ \or
+ % cyrillic-alph:
+ \cyrillic@numeralstrue%
+ \cyrillic@asbuk@numeralstrue%
+ \fi
+ \xpg@info{Option: Serbian, numerals=\val}%
+}{\xpg@warning{Unknown Serbian numerals value `#1'}}
\setkeys{serbian}{Script,numerals}
+% Register default options
+\xpg@initialize@gloss@options{serbian}{script=Cyrillic,numerals=arabic}
+
\def\captionsserbian{%
\if@serbian@cyr\captionsserbian@cyr\else\captionsserbian@lat\fi
}
@@ -135,19 +158,27 @@
\newcommand{\Serbiannumerals}[2]{\Serbiannumber{#2}}
\def\serbiannumber#1{%
- \ifserbian@numerals
- \cyr@alph{#1}%
+ \ifcyrillic@numerals
+ \ifcyrillic@asbuk@numerals
+ \serbian@asbuk@alph{#1}%
+ \else
+ \cyr@alph{#1}%
+ \fi
\else
\number#1%
- \fi
+ \fi%
}
\def\Serbiannumber#1{%
- \ifserbian@numerals
- \cyr@Alph{#1}%
+ \ifcyrillic@numerals
+ \ifcyrillic@asbuk@numerals
+ \serbian@asbuk@Alph{#1}%
+ \else
+ \cyr@Alph{#1}%
+ \fi
\else
\number#1%
- \fi
+ \fi%
}
\let\serbiannumeral=\serbiannumber
@@ -177,24 +208,29 @@
\ifserbian@numerals\noserbian@numbers\fi
}
-\def\Asbuk#1{\expandafter\cyr@Alph\csname c@#1\endcsname}
+\def\Asbuk#1{\expandafter\serbian@asbuk@Alph\csname c@#1\endcsname}
+\def\asbuk#1{\expandafter\serbian@asbuk@alph\csname c@#1\endcsname}
-\def\asbuk#1{\expandafter\cyr@alph\csname c@#1\endcsname}
+\def\AsbukTrad#1{\expandafter\cyr@Alph\csname c@#1\endcsname}
+\def\asbukTrad#1{\expandafter\cyr@alph\csname c@#1\endcsname}
% This is a poor man's cyrillic alphanumeric. It just uses the alphabet and
-% thus ends at 30. We now use proper cyrillic numbering.
-
-%\def\cyr@Alph#1{\ifcase#1\or
-% А\or Б\or В\or Г\or Д\or Ђ\or Е\or Ж\or
-% З\or И\or Ј\or К\or Л\or Љ\or М\or Н\or
-% Њ\or О\or П\or Р\or С\or Т\or Ћ\or У\or
-% Ф\or Х\or Ц\or Ч\or Џ\or Ш\else\xpg@ill@value{#1}{cyr@Alph}\fi}
-
-%\def\cyr@alph#1{\ifcase#1\or
-% а\or б\or в\or г\or д\or ђ\or е\or ж\or
-% з\or и\or ј\or к\or л\or љ\or м\or н\or
-% њ\or о\or п\or р\or с\or т\or ћ\or у\or
-% ф\or х\or ц\or ч\or џ\or ш\else\xpg@ill@value{#1}{cyr@alph}\fi}
+% thus ends at 30.
+\def\serbian@asbuk@Alph#1{\ifcase#1\or
+ А\or Б\or В\or Г\or Д\or Е\or Ж\or
+ З\or И\or К\or Л\or М\or Н\or О\or
+ П\or Р\or С\or Т\or У\or Ф\or Х\or
+ Ц\or Ч\or Ш\or Щ\or Э\or Ю\or Я%
+ \else\xpg@ill@value{#1}{serbian@asbuk@Alph}\fi%
+}
+
+\def\serbian@asbuk@alph#1{\ifcase#1\or
+ а\or б\or в\or г\or д\or е\or ж\or
+ з\or и\or к\or л\or м\or н\or о\or
+ п\or р\or с\or т\or у\or ф\or х\or
+ ц\or ч\or ш\or щ\or э\or ю\or я%
+ \else\xpg@ill@value{#1}{serbian@asbuk@alph}\fi%
+}
\endinput