You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
tex-compiler/texmf-dist/tex/latex/polyglossia/gloss-syriac.ldf

181 lines
5.3 KiB

\ProvidesFile{gloss-syriac.ldf}[polyglossia: module for syriac]
\ifluatex
\xpg@warning{Syriac is not supported with LuaTeX.\MessageBreak
I will proceed with the compilation, but\MessageBreak
the output is not guaranteed to be correct\MessageBreak
and may look very wrong.}
\fi
\RequireBidi
\RequirePackage{arabicnumbers}
\PolyglossiaSetup{syriac}{
bcp47=syr,
script=Syriac,
scripttag=syrc,
langtag=SYR,
direction=RL,
hyphennames={syriac,nohyphenation},
fontsetup=true,
localnumeral=syriacnumerals
%TODO localalph
}
% BCP-47 compliant aliases
\setlanguagealias*{syriac}{syr}
\def\syriacnumber#1{\@syriacnumber{#1}}%
\newif\if@eastern@numerals
\def\tmp@eastern{eastern}
\def\tmp@abjad{abjad}
\define@key{syriac}{numerals}[western]{%
\def\@tmpa{#1}%
\ifx\@tmpa\tmp@abjad
\let\syriacnumber\abjadsyriac
\else
\ifx\@tmpa\tmp@eastern
\@eastern@numeralstrue
\else
\@eastern@numeralsfalse
\fi
\fi}
% Register default options
\xpg@initialize@gloss@options{syriac}{numerals=western}
%\define@key{polyglossia}{syriaclocale}[default]{%
% \def\@syriac@locale{#1}}
%
%\def\captionssyriac{%
%\def\prefacename{\@ensure@RTL{}}%
%\def\refname{\@ensure@RTL{}}
%\def\abstractname{\@ensure@RTL{}}%
%\def\bibname{\@ensure@RTL{}}%
%\def\chaptername{\@ensure@RTL{}}%
%\def\appendixname{\@ensure@RTL{}}%
%\def\contentsname{\@ensure@RTL{}}
%\def\listfigurename{\@ensure@RTL{}}%
%\def\listtablename{\@ensure@RTL{}}%
%\def\indexname{\@ensure@RTL{}}%
%\def\figurename{\@ensure@RTL{}}%
%\def\tablename{\@ensure@RTL{}}%
%\def\partname{\@ensure@RTL{}}%
%\def\enclname{\@ensure@RTL{}}%
%\def\ccname{\@ensure@RTL{}}%
%\def\headtoname{\@ensure@RTL{}}%
%\def\pagename{\@ensure@RTL{}}%
%\def\seename{\@ensure@RTL{}}%
%\def\alsoname{\@ensure@RTL{}}%
%\def\proofname{\@ensure@RTL{}}%
%\def\glossaryname{\@ensure@RTL{}}%
%}
\def\datesyriac{%
\def\syriac@month##1{\ifcase##1%
\or ܟܢܘܢ ܐܚܪܝ\or ܫܒܛ\or ܐܕܪ\or ܢܝܣܢ\or ܐܝܪ\or ܚܙܝܪܢ\or ܬܡܘܙ\or ܐܒ\or ܐܝܠܘܠ% ܐܠܘܠ
\or ܬܫܪܝܢ ܩܕܡ% ܬܫܪܝܢ ܩܕܝܡ
\or ܬܫܪܝܢ ܐܚܪܝ\or ܟܢܘܢ ܩܕܡ% ܟܢܘܢ ܩܕܝܡ
\fi}%
\def\today{\@ensure@RTL{\syriacnumber\day{\space}%
\syriac@month{\month}{\space}\syriacnumber\year}}%
}
\def\syriac@zero{}
\def\abjadsyriac#1{%
\ifnum#1>9999\xpg@ill@value{#1}{abjadsyriac}%
\else%
\ifnum#1<\z@\space\xpg@ill@value{#1}{abjadsyriac}%
\else%
\ifnum#1<10\expandafter\abj@syr@num@i\number#1%
\else%
\ifnum#1<100\expandafter\abj@syr@num@ii\number#1%
\else%
\ifnum#1<1000\expandafter\abj@syr@num@iii\number#1%
\else%
\expandafter\abj@syr@num@iv\number#1%
\fi%
\fi%
\fi%
\fi%
\fi%
}
\def\abj@syr@num@i#1{%
\ifcase#1\or\char"0710\or\char"0712\or\char"0713\or\char"0715%
\or\char"0717\or\char"0718\or\char"0719\or\char"071A\or\char"071B\fi
\ifnum#1=\z@\syriac@zero\fi}
\def\abj@syr@num@ii#1{%
\ifcase#1\or\char"071D\or\char"071F\or\char"0720\or\char"0721\or\char"0722%
\or\char"0723\or\char"0725\or\char"0726\or\char"0728\fi
\ifnum#1=\z@\fi\abj@syr@num@i}
\def\abj@syr@num@iii#1{%
\ifcase#1\or\char"0729\or\char"072A\or\char"072B\or\char"072C%
\or\char"0722\char"0307\or\char"0723\char"0307\or\char"0725\char"0307%
\or\char"0726\char"0307\or\char"0728\char"0307\fi
\ifnum#1=\z@\fi\abj@syr@num@ii}
\def\abj@syr@num@iv#1{%
\ifcase#1\or\char"0710\char"0748\or\char"0712\char"0748%
\or\char"0713\char"0748\or\char"0715\char"0748%
\or\char"0717\char"0748\or\char"0718\char"0748%
\or\char"0719\char"0748\or\char"071A\char"0748\or\char"071B\char"0748\fi
\ifnum#1=\z@\fi\abj@syr@num@iii}
\def\@syriacnumber#1{%
\if@eastern@numerals
%%% we test for the presence of one of ١٢٣٤٥٦٧٨٩٠ in the Syriac font,
%%% else we try \arabicfont if defined (and give a warning),
%%% else we fall back to the Western numerals.
\xpg@if@char@available{0661}%
{\protect\arabicdigits{\number#1}}%
{\arabicdigits{\number#1}
\ifcsdef{arabicfont}%
{\protect\arabicdigits{\number#1}%
\xpg@warning{You have specified the option numerals=eastern for Syriac, but the Syriac font does not contain the appropriate glyphs:
I am using \string\arabicfont instead}}%
{\number#1%%% <---changed from \RL{\protect\reset@font\protect\number#1}%
\xpg@warning{You have specified the option numerals=eastern for Syriac, but the Syriac font does not contain the appropriate glyphs:
since \string\arabicfont is not defined, we'll use Western numerals instead}}%
}%
\else
%%\RL{\protect\reset@font\number#1}%
\number#1%
\fi%
}
\def\syriac@numbers{%
\let\@alph\abjadsyriac%
\let\@Alph\abjadsyriac%
}
\def\nosyriac@numbers{%
\let\@alph\latin@alph%
\let\@Alph\latin@Alph%
}
\newcommand{\syriacnumerals}[2]{\syriacnumber{#2}}
% Store original definition
\let\xpg@save@arabic\@arabic
\def\syriac@globalnumbers{%
\let\@arabic\syriacnumber%
\renewcommand\thefootnote{\localnumeral*{footnote}}%
}
\def\nosyriac@globalnumbers{%
\let\@arabic\xpg@save@arabic%
}
% Save original \MakeUppercase definition
\let\xpg@save@MakeUppercase\MakeUppercase
\def\blockextras@syriac{%
\def\MakeUppercase##1{##1}%
}
\def\noextras@syriac{%
% restore original \MakeUppercase definition
\let\MakeUppercase\xpg@save@MakeUppercase%
}
\endinput