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.
181 lines
5.3 KiB
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
|
|
|