summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source')
-rw-r--r--Master/texmf-dist/source/latex/polyglossia/polyglossia.dtx (renamed from Master/texmf-dist/source/xelatex/polyglossia/polyglossia.dtx)3663
1 files changed, 1211 insertions, 2452 deletions
diff --git a/Master/texmf-dist/source/xelatex/polyglossia/polyglossia.dtx b/Master/texmf-dist/source/latex/polyglossia/polyglossia.dtx
index 0a756444561..dba795045a2 100644
--- a/Master/texmf-dist/source/xelatex/polyglossia/polyglossia.dtx
+++ b/Master/texmf-dist/source/latex/polyglossia/polyglossia.dtx
@@ -2,7 +2,8 @@
% polyglossia.dtx generated using mkpolyglossiadtx.pl
% (derived from makedtx.pl version 0.94b (c) Nicola Talbot)
%
-% Created on 2012/4/29 23:15
+% To extract the files, use xetex polyglossia.dtx or luatex polyglossia.dtx
+%
%<*internal>
\iffalse
%</internal>
@@ -10,14 +11,16 @@
¦----------------------------------------------¦
¦ ¦
- ¦ THE POLYGLOSSIA PACKAGE v1.2.1 ¦
+ ¦ THE POLYGLOSSIA PACKAGE v1.3 ¦
¦ ¦
- ¦ Modern multilingual typesetting with XeLaTeX ¦
+ ¦ Modern multilingual typesetting ¦
+ ¦ with XeLaTeX and LuaLaTeX ¦
¦ ¦
¦----------------------------------------------¦
-This package for provides a complete Babel replacement for users of XeLaTeX.
-This version includes support for 68 different languages.
+This package provides a complete Babel replacement for users of XeLaTeX and
+(at an early stage) LuaLaTeX. This version includes support for 74 different
+languages.
Polyglossia makes it possible to automate the following tasks:
@@ -39,7 +42,8 @@ Polyglossia makes it possible to automate the following tasks:
Several features of Babel that do not make sense in the XeTeX world (like font
encodings, shorthands, etc) are not supported. For German however, several
-shorthands do make sense and can be activated with the language option babelshorthands=true.
+shorthands do make sense and can be activated with the language option
+babelshorthands=true.
Polyglossia is distributed in the traditional way with *.dtx and *.ins files,
and also comes with a TDS-conformant ready-to-unpack zip file.
@@ -60,6 +64,12 @@ http://github.com/reutenauer/polyglossia/issues
CHANGES
+1.3 (11-05-2013)
+ * Several bugfixes.
+ * Sync with Babel 3.9.
+ * Added support for LuaTeX.
+ * Added support for Tibetan (end of lines are experimental).
+
1.2.0e (28-04-2012)
* Fixed a number of outstanding and not very interesting bugs.
* Added gloss files for Romansh and Friulan, contributed by Claudio
@@ -212,16 +222,6 @@ CHANGES
1.0
* Initial release on CTAN
-
-
- ------------------------------
- Arthur Reutenauer, April 2012
- <arthur 'dot' reutenauer 'at' normalesup 'dot' org>
-
- Original author:
- François Charette
- <firmicus ατ gmx δοτ net>
- ------------------------------
%</README>
%<*internal>
\fi
@@ -233,19 +233,21 @@ CHANGES
%<*batchfile>
\input docstrip.tex
\keepsilent
+\let\MetaPrefix\relax
\preamble
____________________________
The polyglossia package
(C) 2008–2010 François Charette
- (C) 2012 Arthur Reutenauer
+ (C) 2010-2013 Arthur Reutenauer
+ (C) 2013 Elie Roux
License information appended
\endpreamble
\postamble
- Copyright (C) 2012 by Arthur Reutenauer <arthur 'dot' reutenauer 'at' normalesup 'dot' org>
+ Copyright (C) 2013 by Arthur Reutenauer <arthur 'dot' reutenauer 'at' normalesup 'dot' org>
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either version 1.3
@@ -261,15 +263,8 @@ CHANGES
\endpostamble
+\let\MetaPrefix\DoubleperCent
\askforoverwritefalse
-\generate{\file{polyglossia.sty}{\from{polyglossia.dtx}{polyglossia.sty}}}
-\generate{\file{farsical.sty}{\from{polyglossia.dtx}{farsical.sty}}}
-\generate{\file{hebrewcal.sty}{\from{polyglossia.dtx}{hebrewcal.sty}}}
-\generate{\file{hijrical.sty}{\from{polyglossia.dtx}{hijrical.sty}}}
-\generate{\file{babel-hebrewalph.def}{\from{polyglossia.dtx}{babel-hebrewalph.def}}}
-\generate{\file{babelsh.def}{\from{polyglossia.dtx}{babelsh.def}}}
-\generate{\file{cal-util.def}{\from{polyglossia.dtx}{cal-util.def}}}
-\generate{\file{xgreek-fixes.def}{\from{polyglossia.dtx}{xgreek-fixes.def}}}
\generate{\file{gloss-albanian.ldf}{\from{polyglossia.dtx}{gloss-albanian.ldf}}}
\generate{\file{gloss-amharic.ldf}{\from{polyglossia.dtx}{gloss-amharic.ldf}}}
\generate{\file{gloss-arabic.ldf}{\from{polyglossia.dtx}{gloss-arabic.ldf}}}
@@ -298,6 +293,7 @@ CHANGES
\generate{\file{gloss-friulan.ldf}{\from{polyglossia.dtx}{gloss-friulan.ldf}}}
\generate{\file{gloss-galician.ldf}{\from{polyglossia.dtx}{gloss-galician.ldf}}}
\generate{\file{gloss-german.ldf}{\from{polyglossia.dtx}{gloss-german.ldf}}}
+\generate{\file{gloss-greek-new.ldf}{\from{polyglossia.dtx}{gloss-greek-new.ldf}}}
\generate{\file{gloss-greek.ldf}{\from{polyglossia.dtx}{gloss-greek.ldf}}}
\generate{\file{gloss-hebrew.ldf}{\from{polyglossia.dtx}{gloss-hebrew.ldf}}}
\generate{\file{gloss-hindi.ldf}{\from{polyglossia.dtx}{gloss-hindi.ldf}}}
@@ -317,6 +313,7 @@ CHANGES
\generate{\file{gloss-norsk.ldf}{\from{polyglossia.dtx}{gloss-norsk.ldf}}}
\generate{\file{gloss-nynorsk.ldf}{\from{polyglossia.dtx}{gloss-nynorsk.ldf}}}
\generate{\file{gloss-occitan.ldf}{\from{polyglossia.dtx}{gloss-occitan.ldf}}}
+\generate{\file{gloss-piedmontese.ldf}{\from{polyglossia.dtx}{gloss-piedmontese.ldf}}}
\generate{\file{gloss-polish.ldf}{\from{polyglossia.dtx}{gloss-polish.ldf}}}
\generate{\file{gloss-portuges.ldf}{\from{polyglossia.dtx}{gloss-portuges.ldf}}}
\generate{\file{gloss-romanian.ldf}{\from{polyglossia.dtx}{gloss-romanian.ldf}}}
@@ -334,6 +331,7 @@ CHANGES
\generate{\file{gloss-tamil.ldf}{\from{polyglossia.dtx}{gloss-tamil.ldf}}}
\generate{\file{gloss-telugu.ldf}{\from{polyglossia.dtx}{gloss-telugu.ldf}}}
\generate{\file{gloss-thai.ldf}{\from{polyglossia.dtx}{gloss-thai.ldf}}}
+\generate{\file{gloss-tibetan.ldf}{\from{polyglossia.dtx}{gloss-tibetan.ldf}}}
\generate{\file{gloss-turkish.ldf}{\from{polyglossia.dtx}{gloss-turkish.ldf}}}
\generate{\file{gloss-turkmen.ldf}{\from{polyglossia.dtx}{gloss-turkmen.ldf}}}
\generate{\file{gloss-ukrainian.ldf}{\from{polyglossia.dtx}{gloss-ukrainian.ldf}}}
@@ -346,6 +344,10 @@ CHANGES
\generate{\file{devanagaridigits.map}{\from{polyglossia.dtx}{devanagaridigits.map}}}
\generate{\file{farsidigits.map}{\from{polyglossia.dtx}{farsidigits.map}}}
\generate{\file{thaidigits.map}{\from{polyglossia.dtx}{thaidigits.map}}}
+\def\MetaPrefix{-- }
+\generate{\file{polyglossia-frpt.lua}{\from{polyglossia.dtx}{polyglossia-frpt.lua}}}
+\generate{\file{polyglossia.lua}{\from{polyglossia.dtx}{polyglossia.lua}}}
+\let\MetaPrefix\DoubleperCent
%</batchfile>
%<batchfile>\endbatchfile
%<*internal>
@@ -360,16 +362,12 @@ CHANGES
%
%<*driver>
\documentclass[11pt]{ltxdoc}
-\usepackage[dvipdfm]{color}
-\usepackage{xltxtra}
+\usepackage{color}
\usepackage{xspace,fancyvrb}
\usepackage[neverdecrease]{paralist}
\definecolor{myblue}{rgb}{0.02,0.04,0.48}
\definecolor{lightblue}{rgb}{0.61,.8,.8}
\definecolor{myred}{rgb}{0.65,0.04,0.07}
-\definecolor{darkgray}{gray}{0.3}
-\definecolor{lightgray}{gray}{0.6}
-\definecolor{mygreen}{rgb}{0,.43,0}
\usepackage[
bookmarks=true,
colorlinks=true,
@@ -378,14 +376,16 @@ CHANGES
citecolor=myblue,
hyperindex=false,
hyperfootnotes=false,
- pdftitle={Polyglossia: A Babel replacement for XeLaTeX},
- pdfauthor={F Charette <firmicus · gmx · net>},
- pdfkeywords={xetex, xelatex, multilingual, babel, hyphenation}
+ pdftitle={Polyglossia: A Babel replacement for XeLaTeX and LuaLaTeX},
+ pdfauthor={F Charette, A Reutenauer},
+ pdfkeywords={xetex, xelatex, luatex, lualatex, multilingual, babel, hyphenation}
]{hyperref}
\usepackage[babelshorthands]{polyglossia}
-%\usepackage{farsical} <<< needs to be disabled otherwise we have too many counters!
+\usepackage{farsical}
\setmainlanguage[variant=british,ordinalmonthday=false]{english}
\setotherlanguages{arabic,hebrew,syriac,greek,russian,catalan}
+\usepackage{metalogo}
+\usepackage[protrusion]{microtype}
\newcommand*\Cmd[1]{\cmd{#1}\DescribeMacro{#1}\xspace}
\newcommand*\pkg[1]{\textsf{\color{myblue}#1}}
\newcommand*\file[1]{\texttt{\color{myblue}#1}}
@@ -401,43 +401,26 @@ CHANGES
\def\etc{\@ifnextchar.{\textit{etc}}{\textit{etc.}\@\xspace}}
%% Sidenotes << copied from fontspec.dtx
-\newcommand\warn[2]{%
- \edef\thisversion{#1}%
- \ifhmode\unskip~\fi{\ifx\thisversion\fileversion\color{red}\fi
- $\leftarrow$}%
- \marginpar{\raggedleft
- \small%
- \ifx\thisversion\fileversion\color{red}\fi
- \notefont #1:~#2}}
-
\newcommand\new[1]{%
\edef\thisversion{#1}%
\ifhmode\unskip~\fi{\ifx\thisversion\fileversion\color{blue}\else\color[gray]{0.5}\fi
$\leftarrow$}%
\marginpar{\centering
\small\ifx\thisversion\fileversion\color{blue}\else\color[gray]{0.5}\fi
- \notefont #1}}
+ \textsf{#1}}}
\newcommand\displaycmd[2]{%
\\\DescribeMacro{#2}\centerline{\cmd{#1}}}
\renewenvironment{itemize}{\begin{compactitem}[\char"2023]}%[{\fontspec{DejaVu Sans}\char"25BB}]}%
{\end{compactitem}}
\renewenvironment{enumerate}{\begin{compactenum}}{\end{compactenum}}
-%% Sidenote font
-\newfontfamily\notefont[Scale=MatchLowercase]{Lucida Sans Unicode}
-%%%
-
%% fontspec declarations:
-\setromanfont[Mapping=tex-text]{Linux Libertine O}
-\defaultfontfeatures{Scale=MatchLowercase}
-\setmonofont{DejaVu Sans Mono}
-\setsansfont{Lucida Sans Unicode}
-\newfontfamily\arabicfont[Script=Arabic]{Scheherazade}
-\newfontfamily\farsifont[Script=Arabic]{Farsi Simple Bold}
+\setmainfont{Linux Libertine O}
+\setsansfont{Linux Biolinum O}
+\setmonofont[Scale=MatchLowercase]{DejaVu Sans Mono}
+\newfontfamily\arabicfont[Script=Arabic]{Amiri}
\newfontfamily\syriacfont[Script=Syriac]{Serto Jerusalem}
-\newfontfamily\hebrewfont[Script=Hebrew]{SBL Hebrew}
-
-\newcommand\Babel{\pkg{Babel}\xspace}
+\newfontfamily\hebrewfont[Script=Hebrew]{Ezra SIL}
\linespread{1.05}
\frenchspacing
@@ -460,10 +443,9 @@ CHANGES
%
% \GetFileInfo{polyglossia.sty}
%
-% \title{\textcolor{lightblue}{\huge
-% \fontspec{GFS Ambrosia}
-% Π$\;\,$ο$\;\,$λ$\;\,$υ$\;\,$γ$\;\,$λ$\;\,$ω$\;\,$σ$\;\,$σ$\;\,$ι$\;\,$α}\\[16pt]
-% \color{myblue}Polyglossia: A Babel Replacement for \XeLaTeX}
+% \title{\textcolor{lightblue}{\Huge\fontspec[Script=Greek,Language=Polytonic Greek,LetterSpace=40]{GFS Ambrosia} Πολυγλωσσια}
+% \\[16pt]
+% \color{myblue}Polyglossia: A Babel Replacement for \XeLaTeX\ and \LuaLaTeX}
% \author{\scshape\color{myblue}François Charette\\\color{myblue}Current maintainer: \scshape Arthur Reutenauer}
% \date{\filedate \qquad \fileversion\\
% \footnotesize (\textsc{pdf} file generated on \today)}
@@ -482,9 +464,10 @@ CHANGES
%
% \section{Introduction}
%
-% Polyglossia is a package for facilitating multilingual typesetting with \XeLaTeX.
-% Basically, it can be used as a replacement of \Babel for performing the
-% following tasks automatically:
+% Polyglossia is a package for facilitating multilingual typesetting with
+% \XeLaTeX\ and (at an early stage) \LuaLaTeX. Basically, it
+% can be used as a replacement of \pkg{babel} for performing the following
+% tasks automatically:
%
% \begin{enumerate}
% \item Loading the appropriate hyphenation patterns.
@@ -507,16 +490,16 @@ CHANGES
% available separately).
% \end{enumerate}
%
-% Several features of \Babel that do not make sense in the \XeTeX\ world (like font
+% Several features of \pkg{babel} that do not make sense in the \XeTeX\ world (like font
% encodings, shorthands, etc.) are not supported.
% Generally speaking, \pkg{polyglossia} aims to remain as compatible as possible
-% with the fundamental features of \Babel while being cleaner, light-weight,
+% with the fundamental features of \pkg{babel} while being cleaner, light-weight,
% and modern. The package \pkg{antomega} has been very beneficial in our attempt to
% reach this objective.
%
% \paragraph{Requirements:} The current version of \pkg{polyglossia} makes use of some convenient
% macros defined in the \pkg{etoolbox} package by Philipp Lehmann. Being designed
-% specifically for \XeLaTeX, it obviously also relies on \pkg{fontspec} by Will
+% for \XeLaTeX\ and \LuaLaTeX, it obviously also relies on \pkg{fontspec} by Will
% Robertson. For languages written from right to left, it needs the package \pkg{bidi}
% by Vafa Khalighi (\textarabic{وفا خليقي}). Polyglossia also bundles three packages for calendaric
% computations (\pkg{hebrewcal}, \pkg{hijrical}, and \pkg{farsical}).
@@ -528,26 +511,26 @@ CHANGES
% \displaycmd{\setdefaultlanguage[⟨options⟩]\{lang\}}{\setdefaultlanguage}
% (or equivalently \Cmd\setmainlanguage).
% Secondary languages can be loaded with
-% \displaycmd{\setotherlanguage[⟨options⟩]\{lang\}}{\setotherlanguage}.
+% \displaycmd{\setotherlanguage[⟨options⟩]\{lang\}.}{\setotherlanguage}
% These commands have the advantage of being explicit and of allowing you to set
% language-specific options.\footnote{ %
% More on language-specific options below.}
% It is also possible to load a series of secondary languages at once using
-% \displaycmd{\setotherlanguages\{lang1,lang2,lang3,…\}}{\setotherlanguages}.
+% \displaycmd{\setotherlanguages\{lang1,lang2,lang3,…\}.}{\setotherlanguages}
% Language-specific options can be set or changed at any time by means of
-% \displaycmd{\setkeys\{⟨lang⟩\}\{opt1=value1,opt2=value2,…\}}{\setkeys}.
+% \displaycmd{\setkeys\{⟨lang⟩\}\{opt1=value1,opt2=value2,…\}.}{\setkeys}
%
%
% \subsection{The “Babel way”}
% \new{v1.2.0}
% {\color{red}\bfseries Warning}: \pkg{polyglossia} no longer supports loading
% language definition files as package options!
-% ^^AAs with \Babel, \pkg{polyglossia} also allows you to load language definition files
+% ^^AAs with \pkg{babel}, \pkg{polyglossia} also allows you to load language definition files
% ^^Aas package options. In most cases, option \texttt{⟨lang⟩} will load the file
% ^^A\file{gloss-⟨lang⟩.ldf}. Note however that the \textit{first} language listed in \\
% ^^A\centerline{\cmd{\usepackage[lang1,lang2,…]{polyglossia}}}
% ^^Awill be the default language for the document, which
-% ^^Ais the opposite convention of \Babel.
+% ^^Ais the opposite convention of \pkg{babel}.
% ^^ANote also that this method may not work in some cases, and should be
% ^^Aconsidered deprecated.
%
@@ -634,15 +617,15 @@ CHANGES
% amharic & czech & \TX{hindi} & nynorsk & \TX{syriac} \\
% \TX{arabic} & danish & icelandic & occitan & tamil \\
% armenian & divehi & interlingua & polish & telugu \\
-% asturian & \TX{dutch} & irish & portuges & \TX{thai} \\
-% bahasai & \TX{english} & \TX{italian} & romanian & turkish \\
-% bahasam & \TX{esperanto} & \TX{lao} & \TX{russian} & turkmen \\
-% basque & estonian & latin & samin & ukrainian \\
-% \TX{bengali} & \TX{farsi} & latvian & \TX{sanskrit}& urdu \\
-% brazil[ian] & finnish & lithuanian & scottish & \TX{usorbian} \\
-% breton & french & \TX{lsorbian} & \TX{serbian} & vietnamese \\
-% bulgarian & galician & \TX{magyar} & slovak & welsh \\
-% \TX{catalan} & \TX{german} & malayalam & slovenian & \\
+% asturian & \TX{dutch} & irish & portuges & tibetan \\
+% bahasai & \TX{english} & \TX{italian} & romanian & \TX{thai} \\
+% bahasam & \TX{esperanto} & \TX{lao} & \TX{russian} & turkish \\
+% basque & estonian & latin & samin & turkmen \\
+% \TX{bengali} & \TX{farsi} & latvian & \TX{sanskrit}& ukrainian \\
+% brazil[ian] & finnish & lithuanian & scottish & urdu \\
+% breton & french & \TX{lsorbian} & \TX{serbian} & \TX{usorbian} \\
+% bulgarian & galician & \TX{magyar} & slovak & vietnamese \\
+% \TX{catalan} & \TX{german} & malayalam & slovenian & welsh \\
% coptic & \TX{greek} & marathi & spanish & \\
% \hline
% \end{tabular}
@@ -662,7 +645,7 @@ CHANGES
%
%
% Polyglossia can also be loaded with the option
-% ‘babelshorthands’\new{v1.1.1}, which globally activates \Babel
+% ‘babelshorthands’\new{v1.1.1}, which globally activates \pkg{babel}
% shorthands whenever available. Currently shorthands are implemented for
% Catalan, Dutch, German, Italian, and Russian: see these respective
% languages for details.
@@ -708,25 +691,6 @@ CHANGES
% Note that for Arabic one cannot use the environment ¦arabic¦,
% as \cmd\arabic\ is defined internally by \LaTeX. In this case
% we need to use the environment ¦Arabic¦ instead\DescribeEnv{Arabic}.
-% This is the beginning of Ibn Khaldūn’s \textit{Muqaddima}:
-%
-% ^^A TODO: convince XeTeX to typeset right-to-left, even in verbatim.
-% ^^A The individual words are set correctly, but the whole paragraph is
-% ^^A left-to-right!
-% \begin{Verbatim}[formatcom={\color{myblue}\addfontfeature{Script=Arabic}}]
-% \begin{Arabic}
-% اعلم أنّ فنّ التاريخ فنّ عزيز المذهب، جمّ الفوائد، شريف الغاية؛ إذ هو
-% يوقفنا على أحوال الماضين من الأمم في أخلاقهم، والأنبياء في سيرهم، والملوك
-% في دولهم وسياستهم؛ حتّى تتمّ فائدة الإقتداء في ذلك لمن يرومه في أحوال
-% الدين والدنيا.
-% \end{Arabic}
-% \end{Verbatim}
-%
-% \begin{Arabic}
-% اعلم أنّ فنّ التاريخ فنّ عزيز المذهب، جمّ الفوائد، شريف الغاية؛ إذ هو يوقفنا على
-% أحوال الماضين من الأمم في أخلاقهم، والأنبياء في سيرهم، والملوك في دولهم
-% وسياستهم؛ حتّى تتمّ فائدة الإقتداء في ذلك لمن يرومه في أحوال الدين والدنيا.
-% \end{Arabic}
%
% \subsection{Other commands}
% The following commands are probably of lesser interest to the end user, but
@@ -740,33 +704,26 @@ CHANGES
% to another one in the middle of a document: \textit{this may have adverse effects}!
%
% \item \Cmd\normalfontlatin: in an environment where \cmd\normalfont\ has been redefined
-% to a non-latin script, this will call the font defined with \cmd\setromanfont\ etc.
+% to a non-latin script, this will call the font defined with \cmd\setmainfont\ etc.
% Likewise it is possible to use \Cmd\rmfamilylatin, \Cmd\sffamilylatin,
% and \Cmd\ttfamilylatin.
%
-% \item Some macros defined in \Babel’s \file{hyphen.cfg} (and thus usually
-% compiled into the xelatex format) are redefined, but keep a similar
+% \item Some macros defined in \pkg{babel}’s \file{hyphen.cfg} (and thus usually
+% compiled into the \XeLaTeX\ and \LuaLaTeX\ format) are redefined, but keep a similar
% behaviour, namely \Cmd\selectlanguage, \Cmd\foreignlanguage,
% and the environment ¦otherlanguage¦\DescribeEnv{otherlanguage}.
% \end{itemize}
% ^^A
-% Since the \XeLaTeX\ format incorporates \Babel’s \file{hyphen.cfg},
+% Since the \XeLaTeX\ and \LuaLaTeX\ format incorporate \pkg{babel}’s \file{hyphen.cfg},
% the low-level commands for hyphenation and language switching
% defined there are also accessible.
-% ^^A\footnote{ %
-% ^^A The file \file{hyphen\_cfg} (available on the
-% ^^A \href{http://scripts.sil.org/svn-view/xetex/TRUNK/texmf/tex/xelatex/polyglossia/hyphen\_cfg}{\XeTeX\ subversion repository})
-% ^^A is meant to eventually replace \Babel’s \file{hyphen.cfg}. If you want
-% ^^A to experiment with it, rename it into \file{hyphen.cfg}, copy it to
-% ^^A \texttt{…/tex/xelatex/polyglossia/} and rebuild the xelatex format.}
-%
%
% \section{Font setup}
%
% With polyglossia it is possible to associate a specific font with any script or language
% that occurs in the document. That font should always be defined as
% ¦\⟨script⟩font¦\ or ¦\⟨language⟩font¦.
-% For instance, if the default roman font defined by \cmd\setromanfont\
+% For instance, if the default font defined by \cmd\setmainfont\
% does not support Greek, then one can define the font used to display Greek with:\\
% \centerline{ \cmd\newfontfamily\cmd{\greekfont[Script=Greek,⟨…⟩]\{⟨font⟩\}}. }
% Note that polyglossia will use the font thus defined as is.
@@ -807,13 +764,13 @@ CHANGES
% \item \TB{numerals} = \textit{mashriq} or maghrib
% (the latter is the default when locale = algeria, tunisia or morocco)
% \item \TB{abjadjimnotail} = \textit{false} or true. \new{v1.0.3}
-% Set this to true if you want the \textit{abjad} form of the number three to be \textarabic{ج‍}\ – as in the manuscript tradition – instead of the modern usage \textarabic{ج}.
+% Set this to true if you want the \textit{abjad} form of the number three to be \textarabic{ج‍} – as in the manuscript tradition – instead of the modern usage \textarabic{ج}.
% \end{itemize}
% \textbf{Commands}:
% \begin{itemize}
% \item \Cmd\abjad and \Cmd\abjadmaghribi (see section \ref{abjad})
-% \item \Cmd\aemph to emphasize Arabic text with ¦\overline¦:\new{v1.2.0}
-% ¦\textarabic{مثال: \aemph{اب}}¦ yields \textarabic{مثال: \aemph{اب}}.
+% \item \Cmd\aemph to emphasize text with ¦\overline¦.\new{v1.2.0}
+% ¦\textarabic{\aemph{اب}}¦ yields \textarabic{\aemph{اب}}.
% This command is also available for Farsi, Urdu, etc.
% \end{itemize}
%
@@ -831,7 +788,7 @@ CHANGES
% \end{itemize}
% \textbf{Commands}:
% \begin{itemize}
-% \item \Cmd{\l.l} and \Cmd{\L.L} behave as in \Babel to type a geminated l, as in \textit{co\l.laborar}. \new{v1.1.1}
+% \item \Cmd{\l.l} and \Cmd{\L.L} behave as in \pkg{babel} to type a geminated l, as in \textit{co\l.laborar}. \new{v1.1.1}
% In polyglossia the same can also be achieved with \Cmd{\l·l} and \Cmd{\L·L}.\footnote{ %
% NB: · is the glyph U+00B7 MIDDLE DOT.}
% \end{itemize}
@@ -840,7 +797,7 @@ CHANGES
% \textbf{Options:}
% \begin{itemize}
% \item \TB{babelshorthands} = \textit{false} or true. \new{v1.1.1}
-% if this is turned on, all shorthands defined in \Babel
+% if this is turned on, all shorthands defined in \pkg{babel}
% for fine-tuning the hyphenation of Dutch words are activated.
% \begin{itemize}
% \item ¦"-¦ for an explicit hyphen sign, allowing hyphenation in the rest of the word
@@ -863,7 +820,7 @@ CHANGES
% \subsection{esperanto}\label{esperanto}
% \textbf{Commands}:
% \begin{itemize}
-% \item \Cmd\hodiau\ and \Cmd\hodiaun are special forms of \cmd\today\ (see the \Babel documentation)
+% \item \Cmd\hodiau\ and \Cmd\hodiaun are special forms of \cmd\today\ (see the \pkg{babel} documentation)
% \end{itemize}
%
% \subsection{farsi}\label{farsi}
@@ -899,7 +856,7 @@ CHANGES
% will be loaded instead of ‘german’ or ‘ngerman’. NB: This is based on
% the file \texttt{language.dat} that comes with \TeX Live 2008 and later.
% \item\TB{babelshorthands} = \textit{false} or true: \new{v1.0.3}
-% if this is turned on, all shorthands defined in \Babel
+% if this is turned on, all shorthands defined in \pkg{babel}
% for fine-tuning the hyphenation of German words are activated.
% \begin{itemize}
% \item ¦"ck¦ for ¦ck¦ to be hyphenated as ¦k-k¦
@@ -983,14 +940,14 @@ CHANGES
% \subsection{lsorbian and usorbian}\label{lsorbian}\label{usorbian}
% \textbf{Commands}:
% \begin{itemize}
-% \item \Cmd\oldtoday : see the \Babel documentation.
+% \item \Cmd\oldtoday : see the \pkg{babel} documentation.
% \end{itemize}
%
% \subsection{magyar}\label{magyar}
% \textbf{Commands}:
% \begin{itemize}
% \item \Cmd\ontoday\ (= \Cmd\ondatemagyar): special forms of \cmd\today\
-% (see the \Babel documentation).
+% (see the \pkg{babel} documentation).
% \end{itemize}
%
%
@@ -1043,7 +1000,7 @@ CHANGES
% \section{Modifying or extending captions and date formats}
%
% To redefine internal macros, you can use the command ¦\gappto¦ from the package
-% \pkg{etoolbox}. For compatibility with \Babel the command ¦\addto¦ is also available
+% \pkg{etoolbox}. For compatibility with \pkg{babel} the command ¦\addto¦ is also available
% with the same effect. For instance, to change the ¦\chaptername¦ for language ¦lingua¦,
% you can do this:
% \begin{verbatim}
@@ -1054,12 +1011,12 @@ CHANGES
%
% Several scripts have their own versions of the decimal digits commonly called
% ‘Arabic numerals’. With the appropriate language option set, \pkg{polyglossia}
-% will automatically convert the output of internal LaTeX counters to their
+% will automatically convert the output of internal \LaTeX\ counters to their
% localized forms, for instance to display page, chapter and section numbers.
%
% In previous versions this conversion was achieved my means of TECKit fontmappings.
-% If needed they can be activated with the fontspec option
-% ¦Mapping=arabicdigits¦ (or ¦farsidigits¦ or ¦thaidigits¦).
+% If needed they can be activated with the fontspec ¦Mapping¦ option,
+% using ¦arabicdigits¦, ¦farsidigits¦ or ¦thaidigits¦.
% For instance if \cmd\arabicfont\ is defined with the option ¦Mapping=arabicdigits¦,
% then by typing ¦\textarabic{2010}¦ one will obtain \textarabic{٢٠١٠}.
%
@@ -1086,34 +1043,34 @@ CHANGES
% Example: ¦\greeknumeral{1863}¦ yields \textgreek{\greeknumeral{1863}}.
%
% The Arabic \textit{abjad} numbers can be generated with the command \Cmd\abjad.
-% Example: ¦\abjad{1863}¦ yields {\arabicfont\abjad{1863}}.
+% Example: ¦\abjad{1863}¦ yields \textarabic{\abjad{1863}}.
% In the Maghrib the conventions are somewhat different, and the maghribi forms
% of the \textit{abjad} numerals are obtained with the \Cmd\abjadmaghribi\ command.
-% Example: ¦\abjadmaghribi{1863}¦ yields {\arabicfont\abjadmaghribi{1863}}.
+% Example: ¦\abjadmaghribi{1863}¦ yields \textarabic{\abjadmaghribi{1863}}.
%
% The code for Hebrew numerals, which was incorrect in previous versions, was
-% ported from the implementation in \Babel with v1.1.1\new{v1.1.1}, and the
-% user interface is identical to the one in \Babel.
+% ported from the implementation in \pkg{babel} with v1.1.1\new{v1.1.1}, and the
+% user interface is identical to the one in \pkg{babel}.
% The commands \Cmd\hebrewnumeral, \Cmd\Hebrewnumeral and \Cmd\Hebrewnumeralfinal\ behave exactly
-% as they do in \Babel: the second command prints the number with \textit{gereshayim} before
+% as they do in \pkg{babel}: the second command prints the number with \textit{gereshayim} before
% the last letter, and the latter uses in addition the final forms of Hebrew letters.
% Examples:
-% ¦\hebrewnumeral{1750}¦ yields {\hebrewfont\hebrewnumeral{1750}}.
-% ¦\Hebrewnumeral{1750}¦ yields {\hebrewfont\Hebrewnumeral{1750}}.
-% ¦\Hebrewnumeralfinal{1750}¦ yields {\hebrewfont\Hebrewnumeralfinal{1750}}.
+% ¦\hebrewnumeral{1750}¦ yields \texthebrew{\hebrewnumeral{1750}},
+% ¦\Hebrewnumeral{1750}¦ yields \texthebrew{\Hebrewnumeral{1750}},
+% and ¦\Hebrewnumeralfinal{1750}¦ yields \texthebrew{\Hebrewnumeralfinal{1750}}.
%
%
% Support is also provided for Syriac abjad numerals, which can be generated
% with \Cmd\abjadsyriac.\footnote{ %
% A fine guide to numerals in Syriac can be found at \link{http://www.garzo.co.uk/documents/syriac-numerals.pdf}.}
-% Example: ¦\abjadsyriac{463}¦ yields {\syriacfont\abjadsyriac{463}}.
+% Example: ¦\abjadsyriac{463}¦ yields \textsyriac{\abjadsyriac{463}}.
%
%
% \section{Calendars}
%
% \subsection{Hebrew calendar (hebrewcal.sty)}
% The package \file{hebrewcal.sty} is almost a verbatim copy of \file{hebcal.sty}
-% that comes with \Babel.
+% that comes with \pkg{babel}.
% The command \Cmd\Hebrewtoday\ formats the current date in the Hebrew calendar
% (depending of the current writing direction this will automatically set either
% in Hebrew script or in roman transliteration).
@@ -1135,7 +1092,7 @@ CHANGES
% If the formatting macro for the current language is undefined, the Hijri date will be formatted
% in Arabic or in roman transliteration, depending of the current writing direction.
% You can define a new format or redefine one with the command
-% \displaycmd{\DefineHijriDateFormat\{<lang>\}\{<code>\}}{\DefineHijriDateFormat}.
+% \displaycmd{\DefineHijriDateFormat\{<lang>\}\{<code>\}.}{\DefineHijriDateFormat}
%
% The command ¦\Hijritoday¦ also accepts an optional argument to add or subtract a correction
% (in days) to the date computed by the arithmetical algorithm.\footnote{ %
@@ -1155,7 +1112,7 @@ CHANGES
% Reingold \& Gershowitz (ref.~n.~\ref{reingold}).}
% Here we have renamed the command \cmd\ftoday\ to
% \Cmd\Jalalitoday.
-% ^^AExample: today is \Jalalitoday.
+% Example: today is \Jalalitoday.
%
%
% ^^A\section{Varia}
@@ -1165,7 +1122,7 @@ CHANGES
% \pkg{Polyglossia} is notable for being a recycle box of previous contributions
% by other people. I take this opportunity to thank the following individuals,
% whose splendid work has made my task almost trivial in comparision: Johannes
-% Braams and the numerous contributors to the \Babel{} package (in particular
+% Braams and the numerous contributors to the \pkg{babel}{} package (in particular
% Boris Lavva and others for its Hebrew support), Alexej Kryukov (\pkg{antomega}), Will
% Robertson (\pkg{fontspec}), Apostolos Syropoulos (\pkg{xgreek}), Youssef Jabri
% (\pkg{arabi}), and Vafa Khalighi (\pkg{xepersian} and \pkg{bidi}).
@@ -1191,2235 +1148,6 @@ CHANGES
% \StopEventually{}
% \section{Implementation}
% \iffalse
-%<*polyglossia.sty>
-% \fi
-% \clearpage
-%
-% \subsection{polyglossia.sty}
-% \begin{macrocode}
-\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{polyglossia}[2012/04/29 v1.2.1
- Babel replacement for XeLaTeX]
-\RequirePackage{etoolbox}
-\RequirePackage{makecmds}
-\RequirePackage{xkeyval}[2008/08/13]
-\RequirePackage{fontspec}[2010/06/08]% v2.0
-% fontspec now uses LaTeX3 packages such as expl3, so we need this:
-\ExplSyntaxOn
-
-\ifcsundef{newXeTeXintercharclass}{%
- \xpg@error{Your~ xelatex~ format~ appears~ to~ be~ outdated!^^J
-~~~~Please~ update~ your~ system~ and~ recreate~ it~ with~ fmtutil.}
- }{}
-
-%% This is for compatibility with Babel-aware package:
-\cslet{ver@babel.sty}{\@empty} % this "fakes" babel
-\def\languageshorthands#1{\relax} %this is for scrlttr2 class
-\AtEndPreamble{\let\bbl@set@language\xpg@set@language} %for biblatex
-\AtEndPreamble{\let\bbl@main@language\xpg@main@language} %for biblatex
-
-%% for \docvslist (etoolbox)
-\providecommand*{\do}[1]{}%
-
-%% custom message macros
-\providecommand*{\xpg@error}[1]{%
- \PackageError{polyglossia}{#1}{}%
-}
-
-\providecommand*{\xpg@warning}[1]{%
- \PackageWarning{polyglossia}{#1}%
-}
-
-\providecommand*{\xpg@info}[1]{%
- \PackageInfo{polyglossia}%
- {#1\@gobble}%
-} %% the \@gobble is to prevent displaying the line nr
-
-%TODO change all instances of \xpg@nopatterns in gloss-*.ldf files
-\providecommand*{\xpg@nopatterns@fallback}[2][nohyphenation]{%
- \xpg@warning{No~ hyphenation~ patterns~ were~ loaded~ for~ `#2'\MessageBreak
- I~ will~ use~ \string\language=\string\l@ #1\space instead}%
- \expandafter\adddialect\csname l@#2\expandafter\endcsname\csname l@#1\endcsname\relax}
-
- \providecommand*{\xpg@nopatterns}[1]{%
- \xpg@warning{No~ hyphenation~ patterns~ were~ loaded~ for~ `#1'\MessageBreak
- I~ will~ use~ \string\language=\string\l@nohyphenation\space instead}%
- %%TODO? \expandafter\adddialect\csname l@#1\endcsname\l@nohyphenation\relax
- }
-
-\def\xpg@ill@value#1#2{%
- \xpg@warning{Illegal~ value~ (#1)~ for~ #2}}
-
-%% use macro if defined, else warn that it is not
-\def\csuse@warn#1{%
- \ifcsundef{#1}{\xpg@warning{ \expandafter\string\csname #1\endcsname\space is~ not~ defined}}%
- {\csname #1\endcsname}}
-
-%% ensure directionality if bidi is loaded, else ignore
-\def\@@ensure@dir#1{\ifcsundef{@ensure@dir}{#1}{\@ensure@dir{#1}}}
-\def\@@ensure@maindir#1{\ifcsundef{@ensure@maindir}{#1}{\@ensure@maindir{#1}}}
-
-%% compatibility with babel
-\let\addto\gappto% gappto is defined in etoolbox
-
-%% == Utility macros ==
-%% They are needed because \MakeUppercase and \MakeLowercase are protected,
-%% but we need to change case while defining csnames when setting up fonts for
-%% non-Latin scripts. For instance with "Script=Arabic" we need to lowercase
-%% "Arabic" to create \arabicfont.
-\def\xpg@uppercasefirst#1{\expandafter\xpg@@uppercasefirst #1}
-\def\xpg@@uppercasefirst#1{%
- \if a#1A\else
- \if b#1B\else
- \if c#1C\else
- \if d#1D\else
- \if e#1E\else
- \if f#1F\else
- \if g#1G\else
- \if h#1H\else
- \if i#1I\else
- \if j#1J\else
- \if k#1K\else
- \if l#1L\else
- \if m#1M\else
- \if n#1N\else
- \if o#1O\else
- \if p#1P\else
- \if q#1Q\else
- \if r#1R\else
- \if s#1S\else
- \if t#1T\else
- \if u#1U\else
- \if v#1V\else
- \if w#1W\else
- \if x#1X\else
- \if y#1Y\else
- \if z#1Z\else
- \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
-}
-
-\def\xpg@lowercasefirst#1{\expandafter\xpg@@lowercasefirst #1}
-\def\xpg@@lowercasefirst#1{%
- \if A#1a\else
- \if B#1b\else
- \if C#1c\else
- \if D#1d\else
- \if E#1e\else
- \if F#1f\else
- \if G#1g\else
- \if H#1h\else
- \if I#1i\else
- \if J#1j\else
- \if K#1k\else
- \if L#1l\else
- \if M#1m\else
- \if N#1n\else
- \if O#1o\else
- \if P#1p\else
- \if Q#1q\else
- \if R#1r\else
- \if S#1s\else
- \if T#1t\else
- \if U#1u\else
- \if V#1v\else
- \if W#1w\else
- \if X#1x\else
- \if Y#1y\else
- \if Z#1z\else
- \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
-}
-
-%% NEW EXPERIMENTAL SETUP INTERFACE FOR GLOSS FILES
-%% options currently available:
-%% language : the name of the language (as understood by fontspec)
-%% hyphennames : the different hyphenation patterns to try (comma separated list)
-%%% TODO: if pattern is prefixed by !, then it should be loaded as a fallback, with \xpg@nopatterns@fallback - i.e. with a warning: e.g. sanskrit for hindi, or catalan for asturian.
-%% script : the name of the script (as understood by fontspec) – default is Latin
-%% direction : the direction of the script: LR or RL
-%% scripttag : the OpenType tag for the script
-%% langtag : the OpenType tag for the language
-%% hyphenmins : the hyphenmins for this language (comma-sep list of two integers)
-%% frenchspacing : boolean
-%% indentfirst : boolean
-%% fontsetup : boolean
-%% TODO: nouppercase : boolean (for scripts like Arabic, Devanagari, etc which have no concept of uppercase/lowercase)
-%% TODO: localalph = {<alph_csname>,<Alph_csname>}
-%% TODO: localnumber = <csname>
-%% or even better localdigits = {0123456789} for fully automatic setup
-
-\newcommand*\PolyglossiaSetup[2]{%
- %define booleans etoolbox style and set defaults
- %% TODO ? \providetoggle{#1@setup@done}%
- \providetoggle{#1@RL}%
- \providetoggle{#1@latin}\toggletrue{#1@latin}%
- \providetoggle{#1@scriptlangequal}% whether lang and script names are same: e.g. Hebrew, Arabic
- \providebool{#1@fontsetup}%
- \providebool{#1@indentfirst}%
- \providebool{#1@frenchspacing}%
- % we initialize these so that we can use \gappto below
- \csgdef{init@extras@#1}{}%
- \csgdef{init@noextras@#1}{}% we don't use this yet: remove?
- \csgdef{xpg@langname@#1}{\xpg@uppercasefirst{#1}}%
- %needed for docvslist with hyphennames key:
- \renewcommand*{\do}[1]{%
- \ifcsdef{l@#1}{}{%
- \ifstrequal{#1}{##1}{}%
- {\ifcsdef{l@##1}%
- {\csletcs{l@#1}{l@##1}\listbreak}%
- {}%
- }%
- }%
- }%
- %define all keys:
- \xpg@define@keys{#1}%
- \setkeys[xpg@setup]{#1}{#2}%
- % here we do the fontsetup:
- \ifbool{#1@fontsetup}%
- {\xpg@fontsetup@auto{#1}}%
- {\xpg@info{Skipping~ automatic~ font~ setup~ for~ language~ #1}}%
- %% TODO? \toggletrue{#1@setup@done}%
- % reinit \do
- \renewcommand*{\do}[1]{\setotherlanguage{##1}}%
-}
-
-\def\xpg@first#1,#2{#1}
-\def\xpg@second#1,#2{#2}
-
-\def\xpg@define@keys#1{%
- \define@key[xpg@setup]{#1}{script}{%
- \ifstrequal{##1}{Latin}%
- {\toggletrue{#1@latin}}%
- {\togglefalse{#1@latin}}%
- \csgdef{xpg@scriptname@#1}{##1}%
- \csgdef{xpg@scriptname@#1@lc}{\xpg@lowercasefirst{##1}}}%
- \define@key[xpg@setup]{#1}{scripttag}{%
- \csgdef{xpg@scripttag@#1}{##1}}%
- \define@key[xpg@setup]{#1}{language}{%
- \csgdef{xpg@langname@#1}{##1}}%
- \define@key[xpg@setup]{#1}{langtag}{%
- \csgdef{xpg@langtag@#1}{##1}}%
- \define@key[xpg@setup]{#1}{hyphennames}[{#1}]{%
- \docsvlist{##1}%
- % if l@#1 does not yet exist,
- % we assign it to nohyphenation
- % we do this here in case the hyphennames key was omitted
- \ifcsundef{l@#1}%
- {\xpg@nopatterns{\csname xpg@langname@#1\endcsname}%
- \expandafter\adddialect\csname l@#1\endcsname\l@nohyphenation\relax}{}%
- \csdef{#1@language}{\language=\csname l@#1\endcsname}%
- }%
- \define@choicekey+[xpg@setup]{#1}{direction}[\val\nr]{LR,RL}[LR]%
- {\ifcase\nr\relax
- \togglefalse{#1@RL}%
- \or
- \toggletrue{#1@RL}%
- \ifcsundef{RTL}{\RequirePackage{bidi}}{}%
- \fi}%
- {\xpg@warning{#1: Invalid value \val\space for key "direction"}}%
- \define@key[xpg@setup]{#1}{hyphenmins}[{2,3}]%
- {\begingroup\edef\x{\endgroup
- \noexpand\setlocalhyphenmins{#1}{\xpg@first##1}{\xpg@second##1}}\x}
- \define@boolkey[xpg@setup]{#1}[#1@]{frenchspacing}[true]{%
- \ifbool{#1@frenchspacing}%
- {\csgappto{init@extras@#1}{\frenchspacing}}%
- {\csgappto{init@extras@#1}{\nonfrenchspacing}}}%
- \define@boolkey[xpg@setup]{#1}[#1@]{indentfirst}[true]{%
- \ifbool{#1@indentfirst}%
- {\csgappto{init@extras@#1}{\french@indent}}%
- {\csgappto{init@extras@#1}{\nofrench@indent}}}%
-% \define@choicekey*+[xpg@setup]{#1}{fontsetup}[\val\nr]{none,custom,auto}[none]%
-% %{\csgdef{#1@fontsetup}{\val}}%
-% {\xpg@fontsetup{\val}{#1}}%
-% {\xpg@warning{Invalid value \val\space for key "fontsetup" in module "#1"}}%
- \define@boolkey[xpg@setup]{#1}[#1@]{fontsetup}[true]{}%
- %TODO assign csnames corr. to localized alph and Alph
- % \define@key[xpg@setup]{#1}{localalph}[{#1@alph,#1@Alph}]{%
- % \cslet{xpg@localalph@#1}{\expandafter\csname\xpg@first##1\endcsname}%
- % \cslet{xpg@localAlph@#1}{\expandafter\csname\xpg@second##1\endcsname}%
- %}%
- %TODO same thing with localdigits
-}
-
-%\def\xpg@fontsetup#1{\xpg@csifdef@warn{xpg@fontsetup@#1}}
-%\def\xpg@fontsetup@none#1{\csgdef{#1@font}{\ifcsdef{#1font}{\csname #1font\endcsname}{}}} %<-- simplistic
-%\def\xpg@fontsetup@custom#1{\csuse{#1@font}}
-
-\def\xpg@fontsetup@auto#1{\iftoggle{#1@latin}%
- {\xpg@fontsetup@latin{#1}}%
- {\xpg@fontsetup@nonlatin{#1}}%
-}
-
-\def\xpg@addfontfeature@lang#1#2{% #1 is langtag, #2 is langname
- % Turkish is a special case: tag can be TRK or TUR
- \edef\tmp@Turkish{Turkish}%
- \edef\tmp@@langname{#2}%
- % \ifstrequal{#2}{Turkish}%
- \ifx\tmp@@langname\tmp@Turkish
- \fontspec_if_language:nTF {TRK}%
- {\addfontfeature{Language=Turkish}}%
- {\fontspec_if_language:nTF {TUR}%
- {\addfontfeature{Language=Turkish}}%
- {}}%
- % else not Turkish
- \else
- \edef\tmp@@langparam{Language=#2}%
- \expandafter\expandafter\expandafter\fontspec_if_language:nTF \expandafter{#1}%
- {\expandafter\expandafter\expandafter\addfontfeature\expandafter{\tmp@@langparam}}%
- {}%
- \fi
-}
-
-\def\xpg@addfontfeature@script#1#2{% #1 is scripttag, #2 is scriptname
- \edef\tmp@@scriptparam{Script=#2}%
- \expandafter\expandafter\expandafter\fontspec_if_script:nTF \expandafter{#1}%
- {\expandafter\expandafter\expandafter\addfontfeature\expandafter{\tmp@@scriptparam}}%
- {\xpg@error{^^J
- The~ current~ roman~ font~ does~ not~ contain~ the~ \expandafter\noexpand#2 ~ script!^^J
- Please~ define~ \expandafter\string\csname \xpg@lowercasefirst{#2}font\endcsname\space with~ \string\newfontfamily}}%
-}
-
-\def\xpg@fontsetup@latin#1{%
- \begingroup
- \csgdef{#1@font@rm}{%
- \ifcsdef{#1font}{\csname #1font\endcsname}%
- {\edef\tmp@langtag{\csuse{xpg@langtag@#1}}%
- \edef\tmp@langname{\csuse{xpg@langname@#1}}%
- \rmfamilylatin%
- \ifcsvoid{xpg@langtag@#1}{}{%
- \ifcsvoid{xpg@langname@#1}{}{%
- \xpg@addfontfeature@lang{\tmp@langtag}{\tmp@langname}}%
- }}}%
- \csgdef{#1@font@sf}{%
- \ifcsdef{#1fontsf}{\csname #1fontsf\endcsname}%
- {\edef\tmp@langtag{\csuse{xpg@langtag@#1}}%
- \edef\tmp@langname{\csuse{xpg@langname@#1}}%
- \sffamilylatin%
- \ifcsvoid{xpg@langtag@#1}{}{%
- \ifcsvoid{xpg@langname@#1}{}{%
- \xpg@addfontfeature@lang{\tmp@langtag}{\tmp@langname}}%
- }}}%
- \csgdef{#1@font@tt}{%
- \ifcsdef{#1fonttt}{\csname #1fonttt\endcsname}%
- {\edef\tmp@langtag{\csuse{xpg@langtag@#1}}%
- \edef\tmp@langname{\csuse{xpg@langname@#1}}%
- \ttfamilylatin%
- \ifcsvoid{xpg@langtag@#1}{}{%
- \ifcsvoid{xpg@langname@#1}{}{%
- \xpg@addfontfeature@lang{\tmp@langtag}{\tmp@langname}}%
- }}}%
- \endgroup
-}
-
-\def\xpg@fontsetup@nonlatin#1{%
- \begingroup
- \edef\tmp@langname@lc{#1}% eg ukrainian
- \edef\tmp@scriptname@lc{\csuse{xpg@scriptname@#1@lc}}% eg cyrillic
- \ifx\tmp@scriptname@lc\tmp@langname@lc
- \toggletrue{#1@scriptlangequal}%
- \else
- \togglefalse{#1@scriptlangequal}%
- \fi
- \csgdef{#1@font@rm}{%
- \ifcsdef{#1font}%
- {\@nameuse{#1font}}%
- {\edef\tmp@scripttag{\csuse{xpg@scripttag@#1}}% eg cyrl
- \edef\tmp@scriptname{\csuse{xpg@scriptname@#1}}% eg Cyrillic
- \edef\tmp@langtag{\csuse{xpg@langtag@#1}}% eg UKR
- \edef\tmp@langname{\csuse{xpg@langname@#1}}% eg Ukrainian
- \providetoggle{#1@use@script@font}%
- \iftoggle{#1@scriptlangequal}%
- {\rmfamilylatin}%
- {\expandafter\ifcsname\csuse{xpg@scriptname@#1@lc} font\endcsname% eg \cyrillicfont
- \toggletrue{#1@use@script@font}%
- \expandafter\csname\csuse{xpg@scriptname@#1@lc} font\endcsname
- \else
- \rmfamilylatin
- \fi}
- \iftoggle{#1@use@script@font}{}{%
- \ifcsvoid{xpg@scripttag@#1}{}{%
- \ifcsvoid{xpg@scriptname@#1}{}{%
- \xpg@addfontfeature@script{\tmp@scripttag}{\tmp@scriptname}}}}%
- \ifcsvoid{xpg@langtag@#1}{}{%
- \ifcsvoid{xpg@langname@#1}{}{%
- \xpg@addfontfeature@lang{\tmp@langtag}{\tmp@langname}}}%
- }}%
- \csgdef{#1@font@sf}{%
- \ifcsdef{#1fontsf}%
- {\@nameuse{#1fontsf}}%
- {\edef\tmp@scripttag{\csuse{xpg@scripttag@#1}}% eg cyrl
- \edef\tmp@scriptname{\csuse{xpg@scriptname@#1}}% eg Cyrillic
- \edef\tmp@langtag{\csuse{xpg@langtag@#1}}% eg UKR
- \edef\tmp@langname{\csuse{xpg@langname@#1}}% eg Ukrainian
- \providetoggle{#1@use@script@fontsf}%
- \iftoggle{#1@scriptlangequal}%
- {\sffamilylatin}%
- {\expandafter\ifcsname\csuse{xpg@scriptname@#1@lc} fontsf\endcsname% eg \cyrillicfontsf
- \toggletrue{#1@use@script@fontsf}%
- \expandafter\csname\csuse{xpg@scriptname@#1@lc} fontsf\endcsname
- \else
- \sffamilylatin
- \fi}
- \iftoggle{#1@use@script@fontsf}{}{%
- \ifcsvoid{xpg@scripttag@#1}{}{%
- \ifcsvoid{xpg@scriptname@#1}{}{%
- \xpg@addfontfeature@script{\tmp@scripttag}{\tmp@scriptname}}}}%
- \ifcsvoid{xpg@langtag@#1}{}{%
- \ifcsvoid{xpg@langname@#1}{}{%
- \xpg@addfontfeature@lang{\tmp@langtag}{\tmp@langname}}}%
- }}%
- \csgdef{#1@font@tt}{%
- \ifcsdef{#1fonttt}%
- {\@nameuse{#1fonttt}}%
- {\edef\tmp@scripttag{\csuse{xpg@scripttag@#1}}% eg cyrl
- \edef\tmp@scriptname{\csuse{xpg@scriptname@#1}}% eg Cyrillic
- \edef\tmp@langtag{\csuse{xpg@langtag@#1}}% eg UKR
- \edef\tmp@langname{\csuse{xpg@langname@#1}}% eg Ukrainian
- \providetoggle{#1@use@script@fonttt}%
- \iftoggle{#1@scriptlangequal}%
- {\ttfamilylatin}%
- {\expandafter\ifcsname\csuse{xpg@scriptname@#1@lc} fonttt\endcsname% eg \cyrillicfonttt
- \toggletrue{#1@use@script@fonttt}%
- \expandafter\csname\csuse{xpg@scriptname@#1@lc} fonttt\endcsname
- \else
- \ttfamilylatin
- \fi}
- \iftoggle{#1@use@script@fonttt}{}{%
- \ifcsvoid{xpg@scripttag@#1}{}{%
- \ifcsvoid{xpg@scriptname@#1}{}{%
- \xpg@addfontfeature@script{\tmp@scripttag}{\tmp@scriptname}}}}%
- \ifcsvoid{xpg@langtag@#1}{}{%
- \ifcsvoid{xpg@langname@#1}{}{%
- \xpg@addfontfeature@lang{\tmp@langtag}{\tmp@langname}}}%
- }}%
- \endgroup
-}
-
-%%% END OF PolyglossiaSetup
-
-%% ensure localization of \markright and \markboth commands
-%%% THIS IS NOW DISABLED BY DEFAULT
-\define@boolkey{polyglossia}[xpg@]{localmarks}[false]{%
- \ifbool{xpg@localmarks}{%
- \xpg@info{Option:~ localmarks}%
- \def\local@marks##1{%
- \def\markboth####1####2{%
- \begingroup
- \let\label\relax \let\index\relax \let\glossary\relax
- \unrestored@protected@xdef\@themark
- {{\foreignlanguage{##1}{%
- \protect\@@ensure@maindir{####1}}}%
- {\foreignlanguage{##1}{%
- \protect\@@ensure@maindir{####2}}}}%
- \@temptokena \expandafter{\@themark}%
- \mark{\the\@temptokena}%
- \endgroup
- \if@nobreak\ifvmode\nobreak\fi\fi}%
- \def\markright####1{%
- \begingroup
- \let\label\relax \let\index\relax \let\glossary\relax
- \expandafter\@markright\@themark
- {\foreignlanguage{##1}{\protect\@@ensure@maindir{####1}}}%
- \@temptokena \expandafter{\@themark}%
- \mark{\the\@temptokena}%
- \endgroup
- \if@nobreak\ifvmode\nobreak\fi\fi}%
- \def\@markright####1####2####3{\@temptokena{\protect\@@ensure@maindir{####1}}%
- \unrestored@protected@xdef\@themark{{\the\@temptokena}%
- {\protect\@@ensure@maindir{####3}}}}}%
- }{% else
- \def\local@marks##1{}%
- }%
-}
-\setkeys{polyglossia}{localmarks=false}
-
-% to reset the intercharclass of a character to "normal"
-\newXeTeXintercharclass\xpg@normalclass %TODO
-
-%% when no patterns are available, we use \l@nohyphenation, assigned to 255
-%% (suggestion by Enrico Gregorio)
-\@ifundefined{l@nohyphenation}{\chardef\l@nohyphenation=255 }{}
-
-%we call this macro when a gloss file is not found for a given language
-\def\xpg@nogloss#1{%
- \xpg@warning{File~ gloss-#1.ldf~ does~ not~ exist!^^J
- I~ will~ nevertheless~ try~ to~ use~ hyphenation~ patterns~ for~ #1.}%
- \PolyglossiaSetup{#1}{hyphenmins,hyphennames={#1},fontsetup=true}%
- % the above amounts to:
- %\ifcsundef{l@#1}%
- % {\expandafter\adddialect\csname l@#1\endcsname\l@nohyphenation\relax}%
- % {\setlocalhyphenmins{#1}{2}{3}}%
- %\csdef{#1@language}{\language=\csname l@#1\endcsname}%
-}
-
-\newcommand{\xpg@input}[1]{%
- \chardef\xpg@atcatcode\catcode`\@
- \makeatletter
- \input{#1}\catcode`\@=\xpg@atcatcode}
-
-\newcommand{\setdefaultlanguage}[2][]{%
- \IfFileExists{gloss-#2.ldf}%
- {\ifcsundef{#2@loaded}%
- {\xpg@input{gloss-#2.ldf}%
- \xpg@info{Default~ language~ is~ #2}%
- \def\languagename{#2}%
- % This is needed because \arabic is a built-in LaTeX command:
- % so now we have \begin{Arabic}... instead of \begin{arabic}...
- \ifstrequal{#2}{arabic}%
- {\newenvironment{Arabic}[1][]{\begin{otherlanguage}[####1]{arabic}}%
- {\end{otherlanguage}}}%
- {\newenvironment{#2}[1][]{\begin{otherlanguage}[####1]{#2}}%
- {\end{otherlanguage}}}%
- \expandafter\newcommand\csname text#2\endcsname[2][]{%
- \ifcsdef{RTL}%
- {\iftoggle{#2@RL}%
- {\@ensure@RTL{\foreignlanguage[####1]{#2}{####2}}}%
- {\@ensure@LTR{\foreignlanguage[####1]{#2}{####2}}}%
- }% else bidi not loaded
- {\iftoggle{#2@RL}%
- {\xpg@error{Language~ #2~ is~ right-to-left,~ but~ bidi~ package~ was~ not~ loaded!}}%
- {\foreignlanguage[####1]{#2}{####2}}%
- }%
- }%
- \csletcs{local#2}{text#2}%
- \csgdef{#2@loaded}{}%
- \gdef\xpg@main@language{#2}%
- }%
- {\xpg@warning{gloss-#2.ldf~ is~ already~ loaded!}}%:
- %% The following settings are for the default language and script:
- \iftoggle{#2@RL}{\@RTLmaintrue}{}% this tells bidi.sty that the document is RTL
- \AtBeginDocument{%
- \selectlanguage[#1]{#2}%
- \selectbackgroundlanguage{#2}}%
- }%
- %ELSE
- {\xpg@nogloss{#2}}%
-}
-
-\let\setmainlanguage=\setdefaultlanguage
-
-\newcommand{\resetdefaultlanguage}[2][]{%
- \ifcsundef{#2@loaded}{%
- \xpg@error{gloss-#2.ldf~ is~ not~ loaded!}}%
- {\csuse{no\xpg@main@language @globalnumbers}% disable globalnumbers of previously defined default language
- \csuse{noextras@\xpg@main@language}%
- \csuse{init@noextras@\xpg@main@language}%
- \def\languagename{#2}%
- \iftoggle{#2@RL}{\@rlmaintrue\@rl@footnotetrue}{}%
- \selectlanguage[#1]{#2}%
- \selectbackgroundlanguage{#2}}}
-
-\expandafter\ifx\familydefault\sfdefault
- \def\familytype{sf}
-\else\expandafter\ifx\familydefault\ttdefault
- \def\familytype{tt}
-\else
- \def\familytype{rm}
-\fi\fi
-% This robustifies the redefinitions of \<xx>family (suggestion by Enrico Gregorio)
-% e.g. to prevent expansion of the \familytype redefinition in auxiliary files
-\csgappto{rmfamily }{\def\familytype{rm}}
-\csgappto{sffamily }{\def\familytype{sf}}
-\csgappto{ttfamily }{\def\familytype{tt}}
-% This saves the normalfont for the latin script since we may change normalfont in other scripts
-\let\normalfontlatin=\normalfont%
-\let\rmfamilylatin=\rmfamily%
-\let\sffamilylatin=\sffamily%
-\let\ttfamilylatin=\ttfamily%
-
-\def\resetfontlatin{%
- \let\rmfamily=\rmfamilylatin%
- \let\sffamily=\sffamilylatin%
- \let\ttfamily=\ttfamilylatin%
- \let\normalfont=\normalfontlatin}
-
-\def\selectfontfamilylatin{%
- \def\tmp@tt{tt}\def\tmp@sf{sf}%
- \ifx\familytype\tmp@tt%
- \ttfamilylatin%
- \else\ifx\familytype\tmp@sf%
- \sffamilylatin%
- \else\rmfamilylatin\fi\fi}
-
-\def\xpg@select@fontfamily#1{%
- \def\tmp@tt{tt}\def\tmp@sf{sf}%
- \ifx\familytype\tmp@tt
- \csuse@warn{#1@font@tt}%
- \else\ifx\familytype\tmp@sf
- \csuse@warn{#1@font@sf}%
- \else\csuse@warn{#1@font@rm}\fi\fi}
-
-\def\xpg@set@normalfont#1{%
- \letcs{\rmfamily}{#1@font@rm}%
- \letcs{\sffamily}{#1@font@sf}%
- \letcs{\ttfamily}{#1@font@tt}%
- \gdef\normalfont{\protect\xpg@select@fontfamily{#1}}%
- \gdef\reset@font{\protect\normalfont}%
-}
-
-\let\@@fterindentfalse\@afterindentfalse
-\def\french@indent{\let\@afterindentfalse\@afterindenttrue
- \@afterindenttrue}
-\def\nofrench@indent{\let\@afterindentfalse\@@fterindentfalse
- \@afterindentfalse}
-
-\newcommand{\selectbackgroundlanguage}[1]{%
- \iftoggle{#1@latin}{}{\xpg@set@normalfont{#1}}%
- \csuse{#1@globalnumbers}%
- }
-
-\newcommand{\setotherlanguage}[2][]{%
- \IfFileExists{gloss-#2.ldf}%
- {\ifcsundef{#2@loaded}%
- {\xpg@input{gloss-#2.ldf}%
- \setkeys{#2}{#1}%
- \edef\@tmpa{arabic}%
- \edef\@tmpb{#2}%
- \ifx\@tmpb\@tmpa%
- \newenvironment{Arabic}[1][]{\begin{otherlanguage}[####1]{arabic}}%
- {\end{otherlanguage}}%
- \else
- \newenvironment{#2}[1][]{\begin{otherlanguage}[####1]{#2}}%
- {\end{otherlanguage}}%
- \fi
- \expandafter\newcommand\csname text#2\endcsname[2][]{%
- \ifcsdef{RTL}%
- {\iftoggle{#2@RL}%
- {\@ensure@RTL{\foreignlanguage[####1]{#2}{####2}}}%
- {\@ensure@LTR{\foreignlanguage[####1]{#2}{####2}}}%
- }% else bidi not loaded
- {\iftoggle{#2@RL}%
- {\xpg@error{Language~ #2~ is~ right-to-left,~ but~ bidi~ package~ was~ not~ loaded!}}%
- {\foreignlanguage[####1]{#2}{####2}}%
- }%
- }%
- \csletcs{local#2}{text#2}%
- \csgdef{#2@loaded}{}%
- }%
- {\xpg@warning{gloss-#2.ldf~ is~ already~ loaded!}}%
- }%
- %ELSE
- {\xpg@nogloss{#2}}%
-}
-
-\newcommand\setotherlanguages[1]{%
- \renewcommand*{\do}[1]{\setotherlanguage{##1}}%
- \docsvlist{#1}}%
-
-\def\common@language{% FIXME is this really needed???
- \language=\z@
- \lefthyphenmin=\tw@
- \righthyphenmin=\thr@@}
-
-\def\noextrascurrent#1{\csuse{noextras@#1}}
-
-\def\xpg@initial@setup{\ifcsundef{languagename}{}%
- {\noextrascurrent{\languagename}}%
- \common@language}
-
-\AtBeginDocument{\xpg@initial@setup}
-
-\providecommand{\foreignlanguage}{}
-
-\renewcommand{\foreignlanguage}[3][]{%
- \ifcsundef{#2@loaded}%
- {\xpg@nogloss{#2}}%
- {{\select@@language{#2}%
- \setkeys{#2}{#1}%
- \use@localhyphenmins{#2}%
- \ifbool{#2@frenchspacing}{\frenchspacing}{\nonfrenchspacing}%
- \csuse{inlineextras@#2}%
- #3}%
- }%
-}
-
-% otherlanguage* is the environment equivalent of \foreignlanguage
-\expandafter\providecommand\csname otherlanguage*\endcsname{}
-\renewenvironment{otherlanguage*}[2][]{%
- \ifcsundef{#2@loaded}%
- {\xpg@nogloss{#2}}%
- {\select@@language{#2}%
- \setkeys{#2}{#1}%
- \use@localhyphenmins{#2}%
- \ifbool{#2@frenchspacing}{\frenchspacing}{\nonfrenchspacing}%
- \csuse{inlineextras@#2}\csuse{date#2}%
- }%
-}{}
-
-%Hook that other package authors can use
-%(for instance biblatex):
-\newcommand*{\xpg@hook@setlanguage}{}
-
-\providecommand{\selectlanguage}{}
-\renewcommand{\selectlanguage}[2][]{%
- \ifcsundef{#2@loaded}%
- {\xpg@nogloss{#2}}%
- {\def\xpg@pop@language{%
- \xpg@set@language{\languagename}%
- \xpg@hook@setlanguage%
- \let\emp@langname\@undefined}%
- \aftergroup\xpg@pop@language%
- \setkeys{#2}{#1}%
- \xpg@set@language{#2}%
- }%
-}
-
-\newcommand{\xpg@set@language}[1]{%
- \select@language{#1}%
- \if@filesw%
- \protected@write\@auxout{}{\protect\select@language{#1}}%
- \addtocontents{toc}{\protect\select@language{#1}}%
- \addtocontents{lof}{\protect\select@language{#1}}%
- \addtocontents{lot}{\protect\select@language{#1}}%
- \fi
-}
-
-\def\select@language#1{%
- \xpg@initial@setup%
- \select@@language{#1}%
- \ifcsundef{setRL}{}%
- {\iftoggle{#1@RL}{\setRL}{\setLR}}%
- \csuse{captions#1}%
- \local@marks{#1}%
- \csuse{init@extras@#1}%
- \csuse{blockextras@#1}%
-}
-
-% Common code for `\select@language' and `\foreignlanguage'.
-\newcommand{\select@@language}[1]{%
- \edef\languagename{#1}%
- \xpg@select@fontfamily{#1}%
- \csuse@warn{#1@language}%
- \csuse{date#1}%
- \csuse{#1@numbers}%
- \use@localhyphenmins{#1}%
-}
-
-
-\let\xpg@pop@language\relax
-
-\provideenvironment{otherlanguage}{}{}
-
-\renewenvironment{otherlanguage}[2][]
- {\selectlanguage[#1]{#2}}
- {}
-
-\newcommand{\setlocalhyphenmins}[3]{%
- \expandafter\ifx\csname l@#1\endcsname\relax%
- \xpg@warning{\string\setlocalhyphenmin\space~ useless~ for~ unknown~ language~ #1}%
- \else
- \expandafter\ifx\csname l@#1\endcsname\l@nohyphenation%
- \xpg@warning{\string\setlocalhyphenmin\space~ useless~ for~ unhyphenated~ language~ #1}%
- \else
- \providehyphenmins{#1}{#2#3}%
- \fi
- \fi}
-
-\def\use@localhyphenmins#1{%
- \ifcsundef{#1hyphenmins}{}%
- {\expandafter\expandafter\expandafter\set@hyphenmins\csname #1hyphenmins\endcsname\relax}}
-
-\define@boolkey{polyglossia}[system@]{babelshorthands}[false]{}
-
-\AtEndPreamble{\@ifpackageloaded{bidi}{\newcommand*{\aemph}[1]{$\overline{\hboxR{#1}}$}}{}}
-
-%% Package Options %%
-\DeclareOption{nolocalmarks}{\setkeys{polyglossia}{localmarks=false}}
-\DeclareOption{localmarks}{\setkeys{polyglossia}{localmarks=true}}
-\DeclareOption{babelshorthands}{\setkeys{polyglossia}{babelshorthands=true}}
-\DeclareOption{quiet}{%
- \gdef\@latex@info#1{\relax}% no latex info
- \gdef\@font@info#1{\relax}% no latex font info
- \gdef\@font@warning#1{\relax}% no latex font warnings
- \gdef\zf@PackageInfo#1{\relax}% no fontspec info
- \gdef\xpg@info#1{\relax}}% no polyglossia info
-%
-% FIXME these should also be loaded \AtEndOfPackage !!!
-\def\xpg@option#1#2{%
- \ifcsundef{xpg@main@language}{\setdefaultlanguage}{\setotherlanguage}%
- [#1]{#2}}
-%\DeclareOption{USenglish}{\xpg@option{variant=american}{english}}
-%\DeclareOption{american}{\xpg@option{variant=american}{english}}
-%\DeclareOption{UKenglish}{\xpg@option{variant=british}{english}}
-%\DeclareOption{british}{\xpg@option{variant=british}{english}}
-%\DeclareOption{australian}{\xpg@option{variant=australian}{english}}
-%\DeclareOption{newzealand}{\xpg@option{variant=newzealand}{english}}
-%\DeclareOption{ngerman}{\xpg@option{spelling=new}{german}}
-%\DeclareOption{polygreek}{\xpg@option{variant=poly}{greek}}
-%\DeclareOption{monogreek}{\xpg@option{variant=mono}{greek}}
-%\DeclareOption{ancientgreek}{\xpg@option{variant=ancient}{greek}}
-%%% TODO add warning message that this approach is deprecated <<<<<<<<<<<<<<
-%\DeclareOption*{%
-% \edef\@temp{%
-% \noexpand\ifcsundef{xpg@main@language}%
-% \noexpand\setdefaultlanguage
-% \noexpand\setotherlanguage
-% {\CurrentOption}%
-% }%
-% \expandafter\AtEndOfPackage\expandafter{\@temp}%
-%}
-\ExplSyntaxOff
-\ProcessOptions*
-% \end{macrocode}
-% \iffalse
-%</polyglossia.sty>
-%<*farsical.sty>
-% \fi
-% \clearpage
-%
-% \subsection{farsical.sty}
-% \begin{macrocode}
-\ProvidesPackage{farsical}
- [2008/07/02 v0.1 %
- Farsi (jalali) calendar]
-\RequirePackage{bidi,calc,arabicnumbers}
-
-%TODO - rewrite completely using calc
-%% - use Reingold & Dershowitz ME
-%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% Modified from Arabiftoday.sty which is part of the Arabi package:
-%%% Copyright (C) 2006 Youssef Jabri
-%%% itself a modification of the code in the FarsiTeX system:
-%%% Copyright (C) 1996 Hassan Abolhassani
-%%% Copyright (C) 1996-2001 Roozbeh Pournader <roozbeh@sharif.edu>
-%%% Copyright (C) 2000-2001 Behdad Esfahbod <behdad@bamdad.org>
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\newif\ifJALALI@leap \newif\ifJALALI@kabiseh
-\newcount\JALALI@i \newcount\JALALI@y \newcount\JALALI@m \newcount\JALALI@d
-\newcount\JALALI@latini \newcount\JALALI@farsii
-\newcount\JALALI@latinii \newcount\JALALI@farsiii
-\newcount\JALALI@latiniii \newcount\JALALI@farsiiii
-\newcount\JALALI@latiniv \newcount\JALALI@farsiiv
-\newcount\JALALI@latinv \newcount\JALALI@farsiv
-\newcount\JALALI@latinvi \newcount\JALALI@farsivi
-\newcount\JALALI@latinvii \newcount\JALALI@farsivii
-\newcount\JALALI@latinviii \newcount\JALALI@farsiviii
-\newcount\JALALI@latinix \newcount\JALALI@farsiix
-\newcount\JALALI@latinx \newcount\JALALI@farsix
-\newcount\JALALI@latinxi \newcount\JALALI@farsixi
-\newcount\JALALI@latinxii \newcount\JALALI@farsixii
- \newcount\JALALI@farsixiii
-
-\newcount\JALALI@temp
-\newcount\JALALI@temptwo
-\newcount\JALALI@tempthree
-\newcount\JALALI@yModHundred
-\newcount\JALALI@thirtytwo
-\newcount\JALALI@dn
-\newcount\JALALI@sn
-\newcount\JALALI@mminusone
-
-% \ftoday renamed to \Jalalitoday - FC
-\def\Jalalitoday{%
-\JALALI@y=\year \JALALI@m=\month \JALALI@d=\day
-%
-\JALALI@temp=\JALALI@y
-\divide\JALALI@temp by 100\relax
-\multiply\JALALI@temp by 100\relax
-\JALALI@yModHundred=\JALALI@y
-\advance\JALALI@yModHundred by -\JALALI@temp\relax
-%
-\ifodd\JALALI@yModHundred
- \JALALI@leapfalse
-\else
- \JALALI@temp=\JALALI@yModHundred
- \divide\JALALI@temp by 2\relax
- \ifodd\JALALI@temp\JALALI@leapfalse
- \else
- \ifnum\JALALI@yModHundred=0%
- \JALALI@temp=\JALALI@y
- \divide\JALALI@temp by 400\relax
- \multiply\JALALI@temp by 400\relax
- \ifnum\JALALI@y=\JALALI@temp\JALALI@leaptrue\else\JALALI@leapfalse\fi
- \else\JALALI@leaptrue
- \fi
- \fi
-\fi
-%
-\JALALI@latini=31\relax
-\ifJALALI@leap
- \JALALI@latinii = 29\relax
-\else
- \JALALI@latinii = 28\relax
-\fi
-\JALALI@latiniii = 31\relax
-\JALALI@latiniv = 30\relax
-\JALALI@latinv = 31\relax
-\JALALI@latinvi = 30\relax
-\JALALI@latinvii = 31\relax
-\JALALI@latinviii = 31\relax
-\JALALI@latinix = 30\relax
-\JALALI@latinx = 31\relax
-\JALALI@latinxi = 30\relax
-\JALALI@latinxii = 31\relax
-%
-\JALALI@thirtytwo=32\relax
-%
-\JALALI@temp=\JALALI@y
-\advance\JALALI@temp by -17\relax
-\JALALI@temptwo=\JALALI@temp
-\divide\JALALI@temptwo by 33\relax
-\multiply\JALALI@temptwo by 33\relax
-\advance\JALALI@temp by -\JALALI@temptwo
-\ifnum\JALALI@temp=\JALALI@thirtytwo\JALALI@kabisehfalse
-\else
- \JALALI@temptwo=\JALALI@temp
- \divide\JALALI@temptwo by 4\relax
- \multiply\JALALI@temptwo by 4\relax
- \advance\JALALI@temp by -\JALALI@temptwo
- \ifnum\JALALI@temp=\z@\JALALI@kabisehtrue\else\JALALI@kabisehfalse\fi
-\fi
-%
-% --BE
-% In fact farsii is equal to the Leap years from a fixed year to the last
-% year minus the Kabise years from a fixed year to the last year plus a const.
-%
-\JALALI@tempthree=\JALALI@y % Number of Leap years
-\advance\JALALI@tempthree by -1
-\JALALI@temp=\JALALI@tempthree % T := (MY-1) div 4
-\divide\JALALI@temp by 4\relax
-\JALALI@temptwo=\JALALI@tempthree % T := T - ((MY-1) div 100)
-\divide\JALALI@temptwo by 100\relax
-\advance\JALALI@temp by -\JALALI@temptwo
-\JALALI@temptwo=\JALALI@tempthree % T := T + ((MY-1) div 400)
-\divide\JALALI@temptwo by 400\relax
-\advance\JALALI@temp by \JALALI@temptwo
-\advance\JALALI@tempthree by -611 % Number of Kabise years
-\JALALI@temptwo=\JALALI@tempthree % T := T - ((SY+10) div 33) * 8
-\divide\JALALI@temptwo by 33\relax
-\multiply\JALALI@temptwo by 8\relax
-\advance\JALALI@temp by -\JALALI@temptwo
-\JALALI@temptwo=\JALALI@tempthree %
-\divide\JALALI@temptwo by 33\relax
-\multiply\JALALI@temptwo by 33\relax
-\advance\JALALI@tempthree by -\JALALI@temptwo
-\ifnum\JALALI@tempthree=32\advance\JALALI@temp by 1\fi % if (SY+10) mod 33=32 then Inc(T);
-\divide\JALALI@tempthree by 4\relax % T := T - ((SY+10) mod 33) div 4
-\advance\JALALI@temp by -\JALALI@tempthree
-\advance\JALALI@temp by -137 % T := T - 137 Adjust the value
-\JALALI@farsii=31
-\advance\JALALI@farsii by -\JALALI@temp % now 31 - T is the farsii
-%
-\JALALI@farsiii = 30\relax
-\ifJALALI@kabiseh
- \JALALI@farsiiii = 30\relax
-\else
- \JALALI@farsiiii = 29\relax
-\fi
-\JALALI@farsiiv = 31\relax
-\JALALI@farsiv = 31\relax
-\JALALI@farsivi = 31\relax
-\JALALI@farsivii = 31\relax
-\JALALI@farsiviii= 31\relax
-\JALALI@farsiix = 31\relax
-\JALALI@farsix = 30\relax
-\JALALI@farsixi = 30\relax
-\JALALI@farsixii = 30\relax
-\JALALI@farsixiii= 30\relax
-%
-\JALALI@dn= 0\relax
-\JALALI@sn= 0\relax
-\JALALI@mminusone=\JALALI@m
-\advance\JALALI@mminusone by -1\relax
-%
-\JALALI@i=0\relax
-\ifnum\JALALI@i < \JALALI@mminusone
-\loop
-\advance \JALALI@i by 1\relax
-\advance\JALALI@dn by \csname JALALI@latin\romannumeral\the\JALALI@i\endcsname
-\ifnum\JALALI@i<\JALALI@mminusone \repeat
-\fi
-\advance \JALALI@dn by \JALALI@d
-%
-\JALALI@i=1\relax
-\JALALI@sn = \JALALI@farsii
-\ifnum \JALALI@sn<\JALALI@dn
-\loop
-\advance \JALALI@i by 1\relax
-\advance\JALALI@sn by \csname JALALI@farsi\romannumeral\the\JALALI@i\endcsname
-\ifnum \JALALI@sn<\JALALI@dn \repeat
-\fi
-\ifnum \JALALI@i < 4
- \JALALI@m = 9 \advance\JALALI@m by \JALALI@i
- \advance \JALALI@y by -622\relax
-\else
- \JALALI@m = \JALALI@i \advance \JALALI@m by -3\relax
- \advance \JALALI@y by -621\relax
-\fi
-\advance\JALALI@sn by -\csname JALALI@farsi\romannumeral\the\JALALI@i%
-\endcsname
-\ifnum\JALALI@i = 1
- \JALALI@d = \JALALI@dn \advance \JALALI@d by 30 \advance\JALALI@d by -\JALALI@farsii
-\else
- \JALALI@d = \JALALI@dn \advance \JALALI@d by -\JALALI@sn
-\fi
-%% DATE FORMATTING
-\if@RTL{\farsidigits{\number\JALALI@d}\space%
-\Jalalimonth{\JALALI@m}\space\farsidigits{\number\JALALI@y}}%
-\else
-\number\JALALI@d\space\JalalimonthEnglish{\JALALI@m}%
-\space\number\JALALI@y%
-\fi}
-%%%
-\def\Jalalimonth#1{\ifcase#1\or فروردین\or
-اردیبهشت\or خرداد\or تیر\or مرداد\or شهریور%
-\or مهر\or آبان\or آذر\or دی\or بهمن\or اسفند%
-\fi}
-\def\JalalimonthEnglish#1{\ifcase#1%
-\or Farvardīn\or Ordībehesht\or Khordād\or Tīr
-\or Mordād\or Shahrīvar\or Mihr\or Ābān\or Āzar
-\or Dai\or Bahman\or Esfand\fi}
-% \end{macrocode}
-% \iffalse
-%</farsical.sty>
-%<*hebrewcal.sty>
-% \fi
-% \clearpage
-%
-% \subsection{hebrewcal.sty}
-% \begin{macrocode}
-\ProvidesPackage{hebrewcal}
- [2012/04/29 v2.5 %
- Hebrew calendar for polyglossia (adapted from hebcal.sty in Babel)]
-\RequirePackage{xkeyval}
-\RequirePackage{bidi}
-
-\newif\if@xpg@hebrewcal@marcheshvan
-\DeclareOption{marcheshvan}{\@xpg@hebrewcal@marcheshvantrue}
-\ifx\if@xpg@hebrew@marcheshvan\undefined
- \newif\if@xpg@hebrew@marcheshvan
- \@xpg@hebrew@marcheshvanfalse
-\fi
-
-%% TODO rewrite this on the basis of Reingold & Dershowitz
-%% on the model of hijrical (using calc)
-
-\@ifundefined{@Remainder}{\input{cal-util.def}}{}
-
-\define@boolkey{hebrew}[@hebrew@]{fullyear}[false]{}
-\setkeys{hebrew}{fullyear}
-
-\newcount\hebrewday \newcount\hebrewmonth \newcount\hebrewyear
-\def\hebrewdate#1#2#3{%
- \HebrewFromGregorian{#1}{#2}{#3}%
- {\hebrewday}{\hebrewmonth}{\hebrewyear}%
- \if@RTL%
- \@FormatForHebrew{\hebrewday}{\hebrewmonth}{\hebrewyear}%
- \else%
- \@FormatForEnglish{\hebrewday}{\hebrewmonth}{\hebrewyear}%
- \fi}
-\def\hebrewtoday{\hebrewdate{\day}{\month}{\year}}
-% The command name is capitalised in the doc, and this is consistent
-% with other names such as \Hijritoday and \Jalalitoday.
-\let\Hebrewtoday=\hebrewtoday
-\def\hebrewsetreg{%
- \HebrewFromGregorian{\day}{\month}{\year}%
- {\hebrewday}{\hebrewmonth}{\hebrewyear}}
-\def\HebrewYearName#1{{%
- \@tempcnta=#1\divide\@tempcnta by 1000\multiply\@tempcnta by 1000
- \ifnum#1=\@tempcnta\relax % divisible by 1000: disambiguate
- \hebrewnumeral{#1}\ (לפ"ג)%
- \else % not divisible by 1000
- \ifnum#1<1000\relax % first millennium: disambiguate
- \hebrewnumeral{#1}\ (לפ"ג)%
- \else
- \ifnum#1<5000
- \hebrewnumeral{#1}%
- \else
- \ifnum#1<6000 % current millenium, print without thousands
- \@tempcnta=#1\relax
- \if@hebrew@fullyear\else\advance\@tempcnta by -5000\fi
- \hebrewnumeral{\@tempcnta}%
- \else % #1>6000
- \hebrewnumeral{#1}%
- \fi
- \fi
- \fi
- \fi}}
-\def\HebrewMonthName#1#2{%
- \ifnum #1 = 7 %
- \@CheckLeapHebrewYear{#2}%
- \if@HebrewLeap אדר\ ב'%
- \else אדר%
- \fi%
- \else%
- \ifcase#1%
- % nothing for 0
- \or תשרי%
- \or\if@xpg@hebrewcal@marcheshvan מרחשון\else\if@xpg@hebrew@marcheshvan מרחשון\else חשון\fi\fi%
- \or כסלו%
- \or טבת%
- \or שבט%
- \or אדר\ א'%
- \or אדר\ ב'%
- \or ניסן%
- \or אייר%
- \or סיון%
- \or תמוז%
- \or אב%
- \or אלול%
- \fi%
- \fi}
-\def\@FormatForHebrew#1#2#3{%
- \hebrewnumeral{#1}~ב\HebrewMonthName{#2}{#3}~%
- \HebrewYearName{#3}}
-\def\HebrewMonthNameInEnglish#1#2{%
- \ifnum #1 = 7%
- \@CheckLeapHebrewYear{#2}%
- \if@HebrewLeap Adar II\else Adar\fi%
- \else%
- \ifcase #1%
- % nothing for 0
- \or Tishrei%
- % \or\if@xpg@hebrewcal@marcheshvan Marcheshvan\else\if@xpg@hebrew@marcheshvan Marcheshvan\else Heshvan\fi\fi%
- \or\if@xpg@hebrewcal@marcheshvan Marcheshvan\else\if@xpg@hebrew@marcheshvan Marcheshvan\else Heshvan\fi\fi%
- \or Kislev%
- \or Tebeth%
- \or Shebat%
- \or Adar I%
- \or Adar II%
- \or Nisan%
- \or Iyar%
- \or Sivan%
- \or Tammuz%
- \or Av%
- \or Elul%
- \fi
- \fi}
-\def\@FormatForEnglish#1#2#3{%
- \HebrewMonthNameInEnglish{#2}{#3} \number#1,\ \number#3}
-\newcount\@common
-\newif\if@HebrewLeap
-\def\@CheckLeapHebrewYear#1{%
- {%
- \countdef\tmpa = 0% % \tmpa==\count0
- \countdef\tmpb = 1% % \tmpb==\count1
- \tmpa = #1%
- \multiply \tmpa by 7%
- \advance \tmpa by 1%
- \@Remainder{\tmpa}{19}{\tmpb}%
- \ifnum \tmpb < 7% % \tmpb = (7*year+1)%19
- \global\@HebrewLeaptrue%
- \else%
- \global\@HebrewLeapfalse%
- \fi}}
-\def\@HebrewElapsedMonths#1#2{%
- {%
- \countdef\tmpa = 0% % \tmpa==\count0
- \countdef\tmpb = 1% % \tmpb==\count1
- \countdef\tmpc = 2% % \tmpc==\count2
- \tmpa = #1% %
- \advance \tmpa by -1% %
- #2 = \tmpa% % #2 = \tmpa = year-1
- \divide #2 by 19% % Number of complete Meton cycles
- \multiply #2 by 235% % #2 = 235*((year-1)/19)
- \@Remainder{\tmpa}{19}{\tmpb}% \tmpa = years%19-years this cycle
- \tmpc = \tmpb% %
- \multiply \tmpb by 12% %
- \advance #2 by \tmpb% % add regular months this cycle
- \multiply \tmpc by 7% %
- \advance \tmpc by 1% %
- \divide \tmpc by 19% % \tmpc = (1+7*((year-1)%19))/19 -
- \advance #2 by \tmpc% % add leap months
- \global\@common = #2}%
- #2 = \@common}
-\def\@HebrewElapsedDays#1#2{%
- {%
- \countdef\tmpa = 0% % \tmpa==\count0
- \countdef\tmpb = 1% % \tmpb==\count1
- \countdef\tmpc = 2% % \tmpc==\count2
- \@HebrewElapsedMonths{#1}{#2}%
- \tmpa = #2% %
- \multiply \tmpa by 13753% %
- \advance \tmpa by 5604% % \tmpa=MonthsElapsed*13758 + 5604
- \@Remainder{\tmpa}{25920}{\tmpc}% \tmpc == ConjunctionParts
- \divide \tmpa by 25920%
- \multiply #2 by 29%
- \advance #2 by 1%
- \advance #2 by \tmpa% % #2 = 1 + MonthsElapsed*29 +
- \@Remainder{#2}{7}{\tmpa}% % \tmpa == DayOfWeek
- \ifnum \tmpc < 19440%
- \ifnum \tmpc < 9924%
- \else% % New moon at 9 h. 204 p. or later
- \ifnum \tmpa = 2% % on Tuesday ...
- \@CheckLeapHebrewYear{#1}% of a common year
- \if@HebrewLeap%
- \else%
- \advance #2 by 1%
- \fi%
- \fi%
- \fi%
- \ifnum \tmpc < 16789%
- \else% % New moon at 15 h. 589 p. or later
- \ifnum \tmpa = 1% % on Monday ...
- \advance #1 by -1%
- \@CheckLeapHebrewYear{#1}% at the end of leap year
- \if@HebrewLeap%
- \advance #2 by 1%
- \fi%
- \fi%
- \fi%
- \else%
- \advance #2 by 1% % new moon at or after midday
- \fi%
- \@Remainder{#2}{7}{\tmpa}% % \tmpa == DayOfWeek
- \ifnum \tmpa = 0% % if Sunday ...
- \advance #2 by 1%
- \else% %
- \ifnum \tmpa = 3% % Wednesday ...
- \advance #2 by 1%
- \else%
- \ifnum \tmpa = 5% % or Friday
- \advance #2 by 1%
- \fi%
- \fi%
- \fi%
- \global\@common = #2}%
- #2 = \@common}
-\def\@DaysInHebrewYear#1#2{%
- {%
- \countdef\tmpe = 12% % \tmpe==\count12
- \@HebrewElapsedDays{#1}{\tmpe}%
- \advance #1 by 1%
- \@HebrewElapsedDays{#1}{#2}%
- \advance #2 by -\tmpe%
- \global\@common = #2}%
- #2 = \@common}
-\def\@HebrewDaysInPriorMonths#1#2#3{%
- {%
- \countdef\tmpf= 14% % \tmpf==\count14
- #3 = \ifcase #1% % Days in prior month of regular year
- 0 \or% % no month number 0
- 0 \or% % Tishri
- 30 \or% % Heshvan
- 59 \or% % Kislev
- 89 \or% % Tebeth
- 118 \or% % Shebat
- 148 \or% % Adar I
- 148 \or% % Adar II
- 177 \or% % Nisan
- 207 \or% % Iyar
- 236 \or% % Sivan
- 266 \or% % Tammuz
- 295 \or% % Av
- 325 \or% % Elul
- 400% % Dummy
- \fi%
- \@CheckLeapHebrewYear{#2}%
- \if@HebrewLeap% % in leap year
- \ifnum #1 > 6% % if month after Adar I
- \advance #3 by 30% % add 30 days
- \fi%
- \fi%
- \@DaysInHebrewYear{#2}{\tmpf}%
- \ifnum #1 > 3%
- \ifnum \tmpf = 353% %
- \advance #3 by -1% %
- \fi% % Short Kislev
- \ifnum \tmpf = 383% %
- \advance #3 by -1% %
- \fi% %
- \fi%
- \ifnum #1 > 2%
- \ifnum \tmpf = 355% %
- \advance #3 by 1% %
- \fi% % Long Heshvan
- \ifnum \tmpf = 385% %
- \advance #3 by 1% %
- \fi% %
- \fi%
- \global\@common = #3}%
- #3 = \@common}
-\def\@FixedFromHebrew#1#2#3#4{%
- {%
- #4 = #1%
- \@HebrewDaysInPriorMonths{#2}{#3}{#1}%
- \advance #4 by #1% % Add days in prior months this year
- \@HebrewElapsedDays{#3}{#1}%
- \advance #4 by #1% % Add days in prior years
- \advance #4 by -1373429% % Subtract days before Gregorian
- \global\@common = #4}% % 01.01.0001
- #4 = \@common}
-\def\@GregorianDaysInPriorMonths#1#2#3{%
- {%
- #3 = \ifcase #1%
- 0 \or% % no month number 0
- 0 \or%
- 31 \or%
- 59 \or%
- 90 \or%
- 120 \or%
- 151 \or%
- 181 \or%
- 212 \or%
- 243 \or%
- 273 \or%
- 304 \or%
- 334%
- \fi%
- \@CheckIfGregorianLeap{#2}%
- \if@GregorianLeap%
- \ifnum #1 > 2% % if month after February
- \advance #3 by 1% % add leap day
- \fi%
- \fi%
- \global\@common = #3}%
- #3 = \@common}
-\def\@GregorianDaysInPriorYears#1#2{%
- {%
- \countdef\tmpc = 4% % \tmpc==\count4
- \countdef\tmpb = 2% % \tmpb==\count2
- \tmpb = #1% %
- \advance \tmpb by -1% %
- \tmpc = \tmpb% % \tmpc = \tmpb = year-1
- \multiply \tmpc by 365% % Days in prior years =
- #2 = \tmpc% % = 365*(year-1) ...
- \tmpc = \tmpb% %
- \divide \tmpc by 4% % \tmpc = (year-1)/4
- \advance #2 by \tmpc% % ... plus Julian leap days ...
- \tmpc = \tmpb% %
- \divide \tmpc by 100% % \tmpc = (year-1)/100
- \advance #2 by -\tmpc% % ... minus century years ...
- \tmpc = \tmpb% %
- \divide \tmpc by 400% % \tmpc = (year-1)/400
- \advance #2 by \tmpc% % ... plus 4-century years.
- \global\@common = #2}%
- #2 = \@common}
-\def\@AbsoluteFromGregorian#1#2#3#4{%
- {%
- \countdef\tmpd = 0% % \tmpd==\count0
- #4 = #1% % days so far this month
- \@GregorianDaysInPriorMonths{#2}{#3}{\tmpd}%
- \advance #4 by \tmpd% % add days in prior months
- \@GregorianDaysInPriorYears{#3}{\tmpd}%
- \advance #4 by \tmpd% % add days in prior years
- \global\@common = #4}%
- #4 = \@common}
-\def\HebrewFromGregorian#1#2#3#4#5#6{%
- {%
- \countdef\tmpx= 17% % \tmpx==\count17
- \countdef\tmpy= 18% % \tmpy==\count18
- \countdef\tmpz= 19% % \tmpz==\count19
- #6 = #3% %
- \global\advance #6 by 3761% approximation from above
- \@AbsoluteFromGregorian{#1}{#2}{#3}{#4}%
- \tmpz = 1 \tmpy = 1%
- \@FixedFromHebrew{\tmpz}{\tmpy}{#6}{\tmpx}%
- \ifnum \tmpx > #4% %
- \global\advance #6 by -1% Hyear = Gyear + 3760
- \@FixedFromHebrew{\tmpz}{\tmpy}{#6}{\tmpx}%
- \fi% %
- \advance #4 by -\tmpx% % Days in this year
- \advance #4 by 1% %
- #5 = #4% %
- \divide #5 by 30% % Approximation for month from below
- \loop% % Search for month
- \@HebrewDaysInPriorMonths{#5}{#6}{\tmpx}%
- \ifnum \tmpx < #4%
- \advance #5 by 1%
- \tmpy = \tmpx%
- \repeat%
- \global\advance #5 by -1%
- \global\advance #4 by -\tmpy}}
-\ProcessOptions*
-% \end{macrocode}
-% \iffalse
-%</hebrewcal.sty>
-%<*hijrical.sty>
-% \fi
-% \clearpage
-%
-% \subsection{hijrical.sty}
-% \begin{macrocode}
-\ProvidesPackage{hijrical}
- [2010/07/12 v0.2 %
- Islamic calendar]
-\RequirePackage{calc}
-\RequirePackage{arabicnumbers}
-\@ifpackageloaded{bidi}{}{\newif\if@RTL\@RTLfalse}
-\@ifpackageloaded{l3calc}{\PackageError{hijrical}{\MessageBreak
-Package l3calc is loaded, which replaces the functionality of
-calc. Computation of Hijri dates will not work properly with
-% FIXME by Arthur: François couldn’t possibly mean ‘l3calc’ on the
-% following line :-) Find out if he meant ‘calc’.
-l3calc! The latest version of expl3 on CTAN no longer loads
-l3calc. Please update expl3!
-}{}}{}
-
-\@ifundefined{@Remainder}{\input{cal-util.def}}{}
-
-%% The following functions are straightforward implementation
-%% of Reingold & Dershowitz, Calendrical Calculations, The Millenium Edition
-%%
-
-\def\@FixedFromHijri#1#2#3#4{% year,month,day,counter
-\@ifundefined{c@#4}{\newcounter{#4}}{}%
-\setcounter{tmpA}{#2/2}% see errata of Reingold+Dershowitz
-%\message{tmpA is \thetmpA}%
-\setcounter{tmpB}{(3+11*#1)/30}%
-%\message{tmpB is \thetmpB}%
-\setcounter{#4}{227014+(#1-1)*354+\value{tmpB}+(29*(#2-1))+\value{tmpA}+#3}%
-}
-
-\newcounter{Hijriday}\newcounter{Hijrimonth}\newcounter{Hijriyear}
-
-\def\HijriFromGregorian#1#2#3{% year,month,day
-\@FixedFromGregorian{#1}{#2}{#3}{RDdate}%
-\setcounter{Hijriyear}{(30*(\value{RDdate}-227015)+10646)/10631}%
-\@FixedFromHijri{\value{Hijriyear}}{1}{1}{tmpx}%
-%\message{tmpx is \thetmpx}%
-\setcounter{tmpB}{\value{RDdate}-\value{tmpx}}%
-%\message{tmpB is \thetmpB}%
-\setcounter{Hijrimonth}{((11*\value{tmpB})+330)/325}%
-\@FixedFromHijri{\value{Hijriyear}}{\value{Hijrimonth}}{1}{tmpy}%
-%\message{tmpy is \thetmpy}%
-\setcounter{Hijriday}{1+\value{RDdate}-\value{tmpy}}%
-}
-
-%\HijriFromGregorian{\year}{\month}{\day}%
-
-%\def\PlainHijritoday{%
-%\theHijriday.\theHijrimonth.\theHijriyear}
-
-\def\Hijridate#1#2#3{%
- \HijriFromGregorian{#1}{#2}{#3}%
- \FormatHijriDate}
-
-% added option \Hijritoday[n] (default 0) for adjusting the date + n days
-\@ifundefined{@hijri@correction}{\gdef\@hijri@correction{0}}{}
-\newcommand\Hijritoday[1][\@hijri@correction]{%
- \@ifundefined{c@adj@day}{\global\newcounter{adj@day}}{}%
- \setcounter{adj@day}{\the\day+#1}%
- \Hijridate{\year}{\month}{\value{adj@day}}}
-%\def\Hijritoday{\Hijridate{\year}{\month}{\day}}
-\let\hijritoday=\Hijritoday
-%FIXME necessary?
-%\def\Hijrisetreg{%
-% \HijriFromGregorian{\year}{\month}{\day}}
-
-\def\HijriMonthTranslit#1{\ifcase#1\or Muḥarram\or Ṣafar\or Rabīʿ I\or Rabīʿ II\or%
-Jumādā I\or Jumādā II\or Rajab\or Shaʿbān\or Ramaḍān\or%
-Shawwāl\or Dhū ’l-Qaʿda\or Dhū ’l-Ḥijja\fi}
-
-\def\HijriMonthArabic#1{\ifcase#1\or محرم\or صفر\or ربيع الأول\or ربيع الآخر\or%
-جمادى الأولى\or جمادى الآخرة\or رجب\or شعبان\or رمضان\or%
-شوال\or ذو القعدة\or ذو الحجة\fi}
-
-%% This macro is now locale-aware!
-\def\FormatHijriDate{%
- \@ifundefined{FormatHijriDate@\languagename}%
- {\if@RTL\FormatHijriDate@defaultRTL\else\FormatHijriDate@defaultLTR\fi}%
- {\csname FormatHijriDate@\languagename\endcsname}}
-
-\newcommand\DefineFormatHijriDate[2]{%
- \@namedef{FormatHijriDate@#1}{#2}}
-
-% we provide this as a reasonable default.
-% Further definitions are in polyglossia’s language definition files.
-\DefineFormatHijriDate{defaultRTL}{\@ensure@RTL{%
-\arabicdigits{\value{Hijriday}}\space\HijriMonthArabic{\value{Hijrimonth}}\space\arabicdigits{\value{Hijriyear}}}}
-
-\DefineFormatHijriDate{defaultLTR}{%
-\number\value{Hijriday}\space\HijriMonthTranslit{\value{Hijrimonth}}\space\number\value{Hijriyear}}
-% \end{macrocode}
-% \iffalse
-%</hijrical.sty>
-%<*babel-hebrewalph.def>
-% \fi
-% \clearpage
-%
-% \subsection{babel-hebrewalph.def}
-% \begin{macrocode}
-\ProvidesFile{babel-hebrewalph.def}
- [2010/03/02 %
- Babel definitions for Hebrew numerals^^J
- Adapted from hebrew.ldf (2005/03/30 v2.3h)]
-\newif\if@gim@apost % whether we print apostrophes (gereshayim)
-\newif\if@gim@final % whether we use final or initial letters
-\newrobustcmd*{\hebrewnumeral}[1] % no apostrophe, no final letters
- {{\@gim@finalfalse\@gim@apostfalse\@hebrew@numeral{#1}}}
-\newrobustcmd*{\Hebrewnumeral}[1] % apostrophe, no final letters
- {{\@gim@finalfalse\@gim@aposttrue\@hebrew@numeral{#1}}}
-\newrobustcmd*{\Hebrewnumeralfinal}[1] % apostrophe, final letters
- {{\@gim@finaltrue\@gim@aposttrue\@hebrew@numeral{#1}}}
-\newcommand*{\@hebrew@numeral}[1]{%
- \ifnum#1<\z@\space\xpg@warning{Illegal value (#1) for Hebrew numeral}%
- \else
- \@tempcnta=#1\@tempcntb=#1\relax
- \divide\@tempcntb by 1000
- \ifnum\@tempcntb=0\gim@nomil\@tempcnta\relax
- \else{\@gim@apostfalse\@gim@finalfalse\@hebrew@numeral\@tempcntb}׳%
- \multiply\@tempcntb by 1000\relax
- \advance\@tempcnta by -\@tempcntb\relax
- \gim@nomil\@tempcnta\relax
- \fi
- \fi
-}
-\def\hebrew@alph@zero{}
-\newcommand*{\gim@nomil}[1]{\@tempcnta=#1\@gim@prevfalse
- \@tempcntb=\@tempcnta\divide\@tempcntb by 100\relax % hundreds digit
- \ifcase\@tempcntb % print nothing if no hundreds
- \or\gim@print{100}{ק}%
- \or\gim@print{200}{ר}%
- \or\gim@print{300}{ש}%
- \or\gim@print{400}{ת}%
- \or ת\@gim@prevtrue\gim@print{500}{ק}%
- \or ת\@gim@prevtrue\gim@print{600}{ר}%
- \or ת\@gim@prevtrue\gim@print{700}{ש}%
- \or ת\@gim@prevtrue\gim@print{800}{ת}%
- \or ת\@gim@prevtrue ת\gim@print{900}{ק}%
- \fi
- \@tempcntb=\@tempcnta\divide\@tempcntb by 10\relax % tens digit
- \ifcase\@tempcntb % print nothing if no tens
- \or % number between 10 and 19
- \ifnum\@tempcnta = 16 \gim@print {9}{ט}% tet-zayin
- \else\ifnum\@tempcnta = 15 \gim@print {9}{ט}% tet-vav
- \else \gim@print{10}{י}%
- \fi % \@tempcnta = 15
- \fi % \@tempcnta = 16
- \or\gim@print{20}{\if@gim@final ך\else כ\fi}%
- \or\gim@print{30}{ל}%
- \or\gim@print{40}{\if@gim@final ם\else מ\fi}%
- \or\gim@print{50}{\if@gim@final ן\else נ\fi}%
- \or\gim@print{60}{ס}%
- \or\gim@print{70}{ע}%
- \or\gim@print{80}{\if@gim@final ף\else פ\fi}%
- \or\gim@print{90}{\if@gim@final ץ\else צ\fi}%
- \fi
- \ifcase\@tempcnta
- \hebrew@alph@zero% empty but can be defined if desired
- \or\gim@print{1}{א}%
- \or\gim@print{2}{ב}%
- \or\gim@print{3}{ג}%
- \or\gim@print{4}{ד}%
- \or\gim@print{5}{ה}%
- \or\gim@print{6}{ו}%
- \or\gim@print{7}{ז}%
- \or\gim@print{8}{ח}%
- \or\gim@print{9}{ט}%
- \fi
-}
-\newif\if@gim@prev % flag if a previous letter has been typeset
-\newcommand*{\gim@print}[2]{% #2 is a letter, #1 is its value.
- \advance\@tempcnta by -#1\relax% deduct the value from the remainder
- \ifnum\@tempcnta=0% if this is the last letter
- \if@gim@prev\if@gim@apost ״\fi#2%
- \else#2\if@gim@apost ׳\fi\fi%
- \else{\@gim@finalfalse#2}\@gim@prevtrue\fi}
-\def\Alphfinal#1{\expandafter\@Alphfinal\csname c@#1\endcsname}%
-\providecommand*{\@Alphfinal}[1]{\protect\Hebrewnumeralfinal{\number#1}}
-% \end{macrocode}
-% \iffalse
-%</babel-hebrewalph.def>
-%<*babelsh.def>
-% \fi
-% \clearpage
-%
-% \subsection{babelsh.def}
-% \begin{macrocode}
-\ifx\initiate@active@char\@undefined
-\else
- \bbl@afterfi\endinput
-\fi
-\ProvidesFile{babelsh.def}
- [2009/05/07 %
- Babel common definitions for shorthands^^J
- Taken verbatim from babel.def (2008/07/06 v3.8l)]
-\def\bbl@add@special#1{\begingroup
- \def\do{\noexpand\do\noexpand}%
- \def\@makeother{\noexpand\@makeother\noexpand}%
- \edef\x{\endgroup
- \def\noexpand\dospecials{\dospecials\do#1}%
- \expandafter\ifx\csname @sanitize\endcsname\relax \else
- \def\noexpand\@sanitize{\@sanitize\@makeother#1}%
- \fi}%
- \x}
-\def\bbl@remove@special#1{\begingroup
- \def\x##1##2{\ifnum`#1=`##2\noexpand\@empty
- \else\noexpand##1\noexpand##2\fi}%
- \def\do{\x\do}%
- \def\@makeother{\x\@makeother}%
- \edef\x{\endgroup
- \def\noexpand\dospecials{\dospecials}%
- \expandafter\ifx\csname @sanitize\endcsname\relax \else
- \def\noexpand\@sanitize{\@sanitize}%
- \fi}%
- \x}
-\long\def\bbl@afterelse#1\else#2\fi{\fi#1}
-\long\def\bbl@afterfi#1\fi{\fi#1}
-\def\initiate@active@char#1{%
- \expandafter\ifx\csname active@char\string##1\endcsname\relax
- \bbl@afterfi{\@initiate@active@char{#1}}%
- \fi}
-\begingroup
- \catcode`\~\active
- \def\x{\endgroup
- \def\@initiate@active@char##1{%
- \ifcat\noexpand##1\noexpand~\relax
- \@ifundefined{normal@char\string##1}{%
- \expandafter\let\csname normal@char\string##1\endcsname##1%
- \expandafter\gdef
- \expandafter##1%
- \expandafter{%
- \expandafter\active@prefix\expandafter##1%
- \csname normal@char\string##1\endcsname}}{}%
- \else
- \@activated{##1}%
- \@namedef{normal@char\string##1}{##1}%
- \ifx##1'%
- \let\prim@s\bbl@prim@s
- \@namedef{normal@char\string##1}{%
- \textormath{##1}{^\bgroup\prim@s}}%
- \fi
- \ifx##1^%
- \gdef\bbl@act@caret{%
- \ifmmode
- \csname normal@char\string^\endcsname
- \else
- \bbl@afterfi
- {\if@safe@actives
- \bbl@afterelse\csname normal@char\string##1\endcsname
- \else
- \bbl@afterfi\csname user@active\string##1\endcsname
- \fi}%
- \fi}
- \fi
- %%\@ifpackagewith{babel}{KeepShorthandsActive}{}{%
- \edef\bbl@tempa{\catcode`\noexpand##1\the\catcode`##1}%
- \expandafter\AtEndOfPackage\expandafter{\bbl@tempa}%
- %%}%
- \@tempcnta=\lccode`\~
- \lccode`~=`##1%
- \lowercase{%
- \catcode`~\active
- \expandafter\bbl@add@special
- \csname \string##1\endcsname
- \AtBeginDocument{%
- \catcode`##1\active
- \if@filesw
- \immediate\write\@mainaux{%
- \string\catcode`##1\string\active}%
- \fi}%
- \expandafter\gdef
- \expandafter~%
- \expandafter{%
- \expandafter\active@prefix\expandafter##1%
- \csname normal@char\string##1\endcsname}}%
- \lccode`\~\@tempcnta
- \fi
- \ifx##1^%
- \@namedef{active@char\string##1}{\bbl@act@caret}%
- \else
- \@namedef{active@char\string##1}{%
- \if@safe@actives
- \bbl@afterelse\csname normal@char\string##1\endcsname
- \else
- \bbl@afterfi\csname user@active\string##1\endcsname
- \fi}%
- \fi
- \@namedef{user@active\string##1}{%
- \expandafter\ifx
- \csname \user@group @sh@\string##1@\endcsname
- \relax
- \bbl@afterelse\bbl@sh@select\user@group##1%
- {user@active@arg\string##1}{language@active\string##1}%
- \else
- \bbl@afterfi\csname \user@group @sh@\string##1@\endcsname
- \fi}%
- \long\@namedef{user@active@arg\string##1}####1{%
- \expandafter\ifx
- \csname \user@group @sh@\string##1@\string####1@\endcsname
- \relax
- \bbl@afterelse
- \csname language@active\string##1\endcsname####1%
- \else
- \bbl@afterfi
- \csname \user@group @sh@\string##1@\string####1@%
- \endcsname
- \fi}%
- \@namedef{\user@group @sh@\string##1@@}{%
- \csname normal@char\string##1\endcsname}
- \@namedef{language@active\string##1}{%
- \expandafter\ifx
- \csname \language@group @sh@\string##1@\endcsname
- \relax
- \bbl@afterelse\bbl@sh@select\language@group##1%
- {language@active@arg\string##1}{system@active\string##1}%
- \else
- \bbl@afterfi
- \csname \language@group @sh@\string##1@\endcsname
- \fi}%
- \long\@namedef{language@active@arg\string##1}####1{%
- \expandafter\ifx
- \csname \language@group @sh@\string##1@\string####1@\endcsname
- \relax
- \bbl@afterelse
- \csname system@active\string##1\endcsname####1%
- \else
- \bbl@afterfi
- \csname \language@group @sh@\string##1@\string####1@%
- \endcsname
- \fi}%
- \@namedef{system@active\string##1}{%
- \expandafter\ifx
- \csname \system@group @sh@\string##1@\endcsname
- \relax
- \bbl@afterelse\bbl@sh@select\system@group##1%
- {system@active@arg\string##1}{normal@char\string##1}%
- \else
- \bbl@afterfi\csname \system@group @sh@\string##1@\endcsname
- \fi}%
- \long\@namedef{system@active@arg\string##1}####1{%
- \expandafter\ifx
- \csname \system@group @sh@\string##1@\string####1@\endcsname
- \relax
- \bbl@afterelse\csname normal@char\string##1\endcsname####1%
- \else
- \bbl@afterfi
- \csname \system@group @sh@\string##1@\string####1@\endcsname
- \fi}%
- \@namedef{user@sh@\string##1@\string\protect@}{%
- \csname user@active\string##1\endcsname}%
- }%
- }\x
-\def\bbl@sh@select#1#2{%
- \expandafter\ifx\csname#1@sh@\string#2@sel\endcsname\relax
- \bbl@afterelse\bbl@scndcs
- \else
- \bbl@afterfi\csname#1@sh@\string#2@sel\endcsname
- \fi
-}
-\def\active@prefix#1{%
- \ifx\protect\@typeset@protect
- \else
- \ifx\protect\@unexpandable@protect
- \bbl@afterelse\bbl@afterfi\noexpand#1\@gobble
- \else
- \bbl@afterfi\bbl@afterfi\protect#1\@gobble
- \fi
- \fi}
-\newif\if@safe@actives
-\@safe@activesfalse
-\def\bbl@restore@actives{\if@safe@actives\@safe@activesfalse\fi}
-\def\bbl@activate#1{%
- \expandafter\def
- \expandafter#1\expandafter{%
- \expandafter\active@prefix
- \expandafter#1\csname active@char\string#1\endcsname}%
-}
-\def\bbl@deactivate#1{%
- \expandafter\def
- \expandafter#1\expandafter{%
- \expandafter\active@prefix
- \expandafter#1\csname normal@char\string#1\endcsname}%
-}
-\def\bbl@firstcs#1#2{\csname#1\endcsname}
-\def\bbl@scndcs#1#2{\csname#2\endcsname}
-\def\declare@shorthand#1#2{\@decl@short{#1}#2\@nil}
-\def\@decl@short#1#2#3\@nil#4{%
- \def\bbl@tempa{#3}%
- \ifx\bbl@tempa\@empty
- \expandafter\let\csname #1@sh@\string#2@sel\endcsname\bbl@scndcs
- \@namedef{#1@sh@\string#2@}{#4}%
- \else
- \expandafter\let\csname #1@sh@\string#2@sel\endcsname\bbl@firstcs
- \@namedef{#1@sh@\string#2@\string#3@}{#4}%
- \fi}
-\def\textormath#1#2{%
- \ifmmode
- \bbl@afterelse#2%
- \else
- \bbl@afterfi#1%
- \fi}
-\def\user@group{user}
-\def\language@group{english}
-\def\system@group{system}
-\def\useshorthands#1{%
- \def\user@group{user}%
- \initiate@active@char{#1}%
- \@tempcnta\lccode`\~
- \lccode`~=`#1%
- \lowercase{\catcode`~\active\bbl@activate{~}}%
- \lccode`\~\@tempcnta}
-\def\defineshorthand{\declare@shorthand{user}}
-\def\languageshorthands#1{\def\language@group{#1}}
-\def\aliasshorthand#1#2{%
- \expandafter\ifx\csname active@char\string#2\endcsname\relax
- \ifx\document\@notprerr
- \@notshorthand{#2}
- \else
- \initiate@active@char{#2}%
- \@tempcnta\lccode`\~
- \lccode`~=`#2%
- \lowercase{\let~#1}%
- \lccode`\~\@tempcnta
- \fi
- \fi
-}
-\def\@notshorthand#1{%
- \PackageError{polyglossia}{%
- The character `\string #1' should be made
- a shorthand character;\MessageBreak
- add the command \string\useshorthands\string{#1\string} to
- the preamble.\MessageBreak
- I will ignore your instruction}{}%
- }
-\newcommand*\shorthandon[1]{\bbl@switch@sh{on}#1\@nil}
-\newcommand*\shorthandoff[1]{\bbl@switch@sh{off}#1\@nil}
-\def\bbl@switch@sh#1#2#3\@nil{%
- \@ifundefined{active@char\string#2}{%
- \PackageError{polyglossia}{%
- The character '\string #2' is not a shorthand character
- in \languagename}{%
- Maybe you made a typing mistake?\MessageBreak
- I will ignore your instruction}}{%
- \csname bbl@switch@sh@#1\endcsname#2}%
- \ifx#3\@empty\else
- \bbl@afterfi\bbl@switch@sh{#1}#3\@nil
- \fi}
-\def\bbl@switch@sh@off#1{\catcode`#112\relax}
-\begingroup
- \catcode`\~\active
- \def\x{\endgroup
- \def\bbl@switch@sh@on##1{%
- \begingroup
- \lccode`~=`##1%
- \lowercase{\endgroup
- \catcode`~\active
- }%
- }%
- }
-\x
-\declare@shorthand{system}{"}{\csname normal@char\string"\endcsname}
-\declare@shorthand{system}{'}{%
- \textormath{\csname normal@char\string'\endcsname}%
- {\sp\bgroup\prim@s}}
-\declare@shorthand{system}{`}{\csname normal@char\string`\endcsname}
-\def\bbl@prim@s{%
- \prime\futurelet\@let@token\bbl@pr@m@s}
-\begingroup
- \catcode`\'\active\let'\relax
- \def\x{\endgroup
- \def\bbl@pr@m@s{%
- \ifx'\@let@token
- \expandafter\pr@@@s
- \else
- \ifx^\@let@token
- \expandafter\expandafter\expandafter\pr@@@t
- \else
- \egroup
- \fi
- \fi}%
- }
-\x
-\initiate@active@char{~}
-\declare@shorthand{system}{~}{\leavevmode\nobreak\ }
-\bbl@activate{~}
-\def\bbl@disc#1#2{%
- \nobreak\discretionary{#2-}{}{#1}\allowhyphens}
-\def\bbl@t@one{T1}
-\def\allowhyphens{%
- \ifx\cf@encoding\bbl@t@one\else\bbl@allowhyphens\fi}
-\def\bbl@allowhyphens{\nobreak\hskip\z@skip}
-%HERE ENDS THE CODE COPIED FROM babel.def --------------------
-\def\bbl@disc@german#1#2{%
- \nobreak\discretionary{#2-}{}{#1}}
-% \end{macrocode}
-% \iffalse
-%</babelsh.def>
-%<*cal-util.def>
-% \fi
-% \clearpage
-%
-% \subsection{cal-util.def}
-% \begin{macrocode}
-%%%%%%%%%%%%% cal-util.def %%%%%%%%%%%%%%%%
-% Macros shared by hijrical and hebrewcal %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% the following is adapted from hebcal.sty in babel
-\def\@Remainder#1#2#3{%
- #3 = #1% % c = a
- \divide #3 by #2% % c = a/b
- \multiply #3 by -#2% % c = -b(a/b)
- \advance #3 by #1}% % c = a - b(a/b)
-\newif\if@Divisible
-\def\@CheckIfDivisible#1#2{%
- {%
- \countdef\tmpx=0% % temporary variable
- \@Remainder{#1}{#2}{\tmpx}%
- \ifnum\tmpx=0%
- \global\@Divisibletrue%
- \else%
- \global\@Divisiblefalse%
- \fi}}
-\newif\if@GregorianLeap
-\def\@CheckIfGregorianLeap#1{%
- {%
- \@CheckIfDivisible{#1}{4}%
- \if@Divisible%
- \@CheckIfDivisible{#1}{100}%
- \if@Divisible%
- \@CheckIfDivisible{#1}{400}%
- \if@Divisible%
- \global\@GregorianLeaptrue%
- \else%
- \global\@GregorianLeapfalse%
- \fi%
- \else%
- \global\@GregorianLeaptrue%
- \fi%
- \else%
- \global\@GregorianLeapfalse%
- \fi%
- }}
-%%
-
-\newcounter{tmpA}\newcounter{tmpB}
-\newcounter{tmpC}\newcounter{tmpD}
-\newcounter{tmpE}\newcounter{tmpF}
-
-
-%% This is an algorithm from Reingold & Dershowitz,
-%% Calendrical Calculations, The Millenium Edition
-%%
-\def\@FixedFromGregorian#1#2#3#4{%
- \setcounter{tmpA}{(#1-1)*365}%
- \setcounter{tmpB}{(#1-1)/4}%
- \setcounter{tmpC}{(#1-1)/100}%
- \setcounter{tmpD}{(#1-1)/400}%
- \setcounter{tmpE}{(367*#2-362)/12}%
- \ifnum#2<3%
- \setcounter{tmpF}{0}%
- \else%
- \@CheckIfGregorianLeap{#1}%
- \if@GregorianLeap%
- \setcounter{tmpF}{-1}%
- \else%
- \setcounter{tmpF}{-2}%
- \fi%
- \fi%
- \@ifundefined{c@#4}{\global\newcounter{#4}}{}%
- \setcounter{#4}{\value{tmpA}+\value{tmpB}-\value{tmpC}+\value{tmpD}+\value{tmpE}+\value{tmpF}+#3}%
-}
-% \end{macrocode}
-% \iffalse
-%</cal-util.def>
-%<*xgreek-fixes.def>
-% \fi
-% \clearpage
-%
-% \subsection{xgreek-fixes.def}
-% \begin{macrocode}
-% the following fixes are taken verbatim from xgreek.sty:
-\global\lccode"0386="03AC \global\uccode"0386="0391
-\global\lccode"0388="03AD \global\uccode"0388="0395
-\global\lccode"0389="03AC \global\uccode"0389="0397
-\global\lccode"038A="03AF \global\uccode"038A="0399
-\global\lccode"038C="03CC \global\uccode"038C="039F
-\global\lccode"038E="03CD \global\uccode"038E="03A5
-\global\lccode"038F="03CE \global\uccode"038F="03A9
-\global\lccode"0390="0390 \global\uccode"0390="03AA
-\global\lccode"0391="03B1 \global\uccode"0391="0391
-\global\lccode"0392="03B2 \global\uccode"0392="0392
-\global\lccode"0393="03B3 \global\uccode"0393="0393
-\global\lccode"0394="03B4 \global\uccode"0394="0394
-\global\lccode"0395="03B5 \global\uccode"0395="0395
-\global\lccode"0396="03B6 \global\uccode"0396="0396
-\global\lccode"0397="03B7 \global\uccode"0397="0397
-\global\lccode"0398="03B8 \global\uccode"0398="0398
-\global\lccode"0399="03B9 \global\uccode"0399="0399
-\global\lccode"039A="03BA \global\uccode"039A="039A
-\global\lccode"039B="03BB \global\uccode"039B="039B
-\global\lccode"039C="03BC \global\uccode"039C="039C
-\global\lccode"039D="03BD \global\uccode"039D="039D
-\global\lccode"039E="03BE \global\uccode"039E="039E
-\global\lccode"039F="03BF \global\uccode"039F="039F
-\global\lccode"03A0="03C0 \global\uccode"03A0="03A0
-\global\lccode"03A1="03C1 \global\uccode"03A1="03A1
-\global\lccode"03A3="03C3 \global\uccode"03A3="03A3
-\global\lccode"03A4="03C4 \global\uccode"03A4="03A4
-\global\lccode"03A5="03C5 \global\uccode"03A5="03A5
-\global\lccode"03A6="03C6 \global\uccode"03A6="03A6
-\global\lccode"03A7="03C7 \global\uccode"03A7="03A7
-\global\lccode"03A8="03C8 \global\uccode"03A8="03A8
-\global\lccode"03A9="03C9 \global\uccode"03A9="03A9
-\global\lccode"03AA="03CA \global\uccode"03AA="03AA
-\global\lccode"03AB="03CB \global\uccode"03AB="03AB
-\global\lccode"03AC="03AC \global\uccode"03AC="0391
-\global\lccode"03AD="03AD \global\uccode"03AD="0395
-\global\lccode"03AE="03AE \global\uccode"03AE="0397
-\global\lccode"03AF="03AF \global\uccode"03AF="0399
-\global\lccode"03B0="03B0 \global\uccode"03B0="03AB
-\global\lccode"03B1="03B1 \global\uccode"03B1="0391
-\global\lccode"03B2="03B2 \global\uccode"03B2="0392
-\global\lccode"03B3="03B3 \global\uccode"03B3="0393
-\global\lccode"03B4="03B4 \global\uccode"03B4="0394
-\global\lccode"03B5="03B5 \global\uccode"03B5="0395
-\global\lccode"03B6="03B6 \global\uccode"03B6="0396
-\global\lccode"03B7="03B7 \global\uccode"03B7="0397
-\global\lccode"03B8="03B8 \global\uccode"03B8="0398
-\global\lccode"03B9="03B9 \global\uccode"03B9="0399
-\global\lccode"03BA="03BA \global\uccode"03BA="039A
-\global\lccode"03BB="03BB \global\uccode"03BB="039B
-\global\lccode"03BC="03BC \global\uccode"03BC="039C
-\global\lccode"03BD="03BD \global\uccode"03BD="039D
-\global\lccode"03BE="03BE \global\uccode"03BE="039E
-\global\lccode"03BF="03BF \global\uccode"03BF="039F
-\global\lccode"03C0="03C0 \global\uccode"03C0="03A0
-\global\lccode"03C1="03C1 \global\uccode"03C1="03A1
-\global\lccode"03C2="03C2 \global\uccode"03C2="03A3
-\global\lccode"03C3="03C3 \global\uccode"03C3="03A3
-\global\lccode"03C4="03C4 \global\uccode"03C4="03A4
-\global\lccode"03C5="03C5 \global\uccode"03C5="03A5
-\global\lccode"03C6="03C6 \global\uccode"03C6="03A6
-\global\lccode"03C7="03C7 \global\uccode"03C7="03A7
-\global\lccode"03C8="03C8 \global\uccode"03C8="03A8
-\global\lccode"03C9="03C9 \global\uccode"03C9="03A9
-\global\lccode"03CA="03CA \global\uccode"03CA="03AA
-\global\lccode"03CB="03CB \global\uccode"03CB="03AB
-\global\lccode"03CC="03CC \global\uccode"03CC="039F
-\global\lccode"03CD="03CD \global\uccode"03CD="03A5
-\global\lccode"03CE="03CE \global\uccode"03CE="03A9
-\global\lccode"03D0="03D0 \global\uccode"03D0="0392
-\global\lccode"03D1="03D1 \global\uccode"03D1="0398
-\global\lccode"03D2="03C5 \global\uccode"03D2="03A5
-\global\lccode"03D3="03CD \global\uccode"03D3="03A5
-\global\lccode"03D4="03CB \global\uccode"03D4="03AB
-\global\lccode"03D5="03C6 \global\uccode"03D5="03A6
-\global\lccode"03D6="03C0 \global\uccode"03D6="03A0
-\global\lccode"03DA="03DB \global\uccode"03DA="03DA
-\global\lccode"03DB="03DB \global\uccode"03DB="03DA
-\global\lccode"03DC="03DD \global\uccode"03DC="03DC
-\global\lccode"03DD="03DD \global\uccode"03DD="03DC
-\global\lccode"03DE="03DF \global\uccode"03DE="03DE
-\global\lccode"03DF="03DF \global\uccode"03DF="03DE
-\global\lccode"03E0="03E1 \global\uccode"03E0="039A
-\global\lccode"03E0="03E1 \global\uccode"03E1="03A1
-\global\lccode"03F0="03BA \global\uccode"03F0="039A
-\global\lccode"03F1="03C1 \global\uccode"03F1="03A1
-\global\lccode"03F2="03F2 \global\uccode"03F2="03F9
-\global\lccode"03F9="03F2 \global\uccode"03F9="03F9
-\global\lccode"1F00="1F00 \global\uccode"1F00="0391
-\global\lccode"1F01="1F01 \global\uccode"1F01="0391
-\global\lccode"1F02="1F02 \global\uccode"1F02="0391
-\global\lccode"1F03="1F03 \global\uccode"1F03="0391
-\global\lccode"1F04="1F04 \global\uccode"1F04="0391
-\global\lccode"1F05="1F05 \global\uccode"1F05="0391
-\global\lccode"1F06="1F06 \global\uccode"1F06="0391
-\global\lccode"1F07="1F07 \global\uccode"1F07="0391
-\global\lccode"1F08="1F00 \global\uccode"1F08="0391
-\global\lccode"1F09="1F01 \global\uccode"1F09="0391
-\global\lccode"1F0A="1F02 \global\uccode"1F0A="0391
-\global\lccode"1F0B="1F03 \global\uccode"1F0B="0391
-\global\lccode"1F0C="1F04 \global\uccode"1F0C="0391
-\global\lccode"1F0D="1F05 \global\uccode"1F0D="0391
-\global\lccode"1F0E="1F06 \global\uccode"1F0E="0391
-\global\lccode"1F0F="1F07 \global\uccode"1F0F="0391
-\global\lccode"1F10="1F10 \global\uccode"1F10="0395
-\global\lccode"1F11="1F11 \global\uccode"1F11="0395
-\global\lccode"1F12="1F12 \global\uccode"1F12="0395
-\global\lccode"1F13="1F13 \global\uccode"1F13="0395
-\global\lccode"1F14="1F14 \global\uccode"1F14="0395
-\global\lccode"1F15="1F15 \global\uccode"1F15="0395
-\global\lccode"1F18="1F10 \global\uccode"1F18="0395
-\global\lccode"1F19="1F11 \global\uccode"1F19="0395
-\global\lccode"1F1A="1F12 \global\uccode"1F1A="0395
-\global\lccode"1F1B="1F13 \global\uccode"1F1B="0395
-\global\lccode"1F1C="1F14 \global\uccode"1F1C="0395
-\global\lccode"1F1D="1F15 \global\uccode"1F1D="0395
-\global\lccode"1F20="1F20 \global\uccode"1F20="0397
-\global\lccode"1F21="1F21 \global\uccode"1F21="0397
-\global\lccode"1F22="1F22 \global\uccode"1F22="0397
-\global\lccode"1F23="1F23 \global\uccode"1F23="0397
-\global\lccode"1F24="1F24 \global\uccode"1F24="0397
-\global\lccode"1F25="1F25 \global\uccode"1F25="0397
-\global\lccode"1F26="1F26 \global\uccode"1F26="0397
-\global\lccode"1F27="1F27 \global\uccode"1F27="0397
-\global\lccode"1F28="1F20 \global\uccode"1F28="0397
-\global\lccode"1F29="1F21 \global\uccode"1F29="0397
-\global\lccode"1F2A="1F22 \global\uccode"1F2A="0397
-\global\lccode"1F2B="1F23 \global\uccode"1F2B="0397
-\global\lccode"1F2C="1F24 \global\uccode"1F2C="0397
-\global\lccode"1F2D="1F25 \global\uccode"1F2D="0397
-\global\lccode"1F2E="1F26 \global\uccode"1F2E="0397
-\global\lccode"1F2F="1F27 \global\uccode"1F2F="0397
-\global\lccode"1F30="1F30 \global\uccode"1F30="0399
-\global\lccode"1F31="1F31 \global\uccode"1F31="0399
-\global\lccode"1F32="1F32 \global\uccode"1F32="0399
-\global\lccode"1F33="1F33 \global\uccode"1F33="0399
-\global\lccode"1F34="1F34 \global\uccode"1F34="0399
-\global\lccode"1F35="1F35 \global\uccode"1F35="0399
-\global\lccode"1F36="1F36 \global\uccode"1F36="0399
-\global\lccode"1F37="1F37 \global\uccode"1F37="0399
-\global\lccode"1F38="1F30 \global\uccode"1F38="0399
-\global\lccode"1F39="1F31 \global\uccode"1F39="0399
-\global\lccode"1F3A="1F32 \global\uccode"1F3A="0399
-\global\lccode"1F3B="1F33 \global\uccode"1F3B="0399
-\global\lccode"1F3C="1F34 \global\uccode"1F3C="0399
-\global\lccode"1F3D="1F35 \global\uccode"1F3D="0399
-\global\lccode"1F3E="1F36 \global\uccode"1F3E="0399
-\global\lccode"1F3F="1F37 \global\uccode"1F3F="0399
-\global\lccode"1F40="1F40 \global\uccode"1F40="039F
-\global\lccode"1F41="1F41 \global\uccode"1F41="039F
-\global\lccode"1F42="1F42 \global\uccode"1F42="039F
-\global\lccode"1F43="1F43 \global\uccode"1F43="039F
-\global\lccode"1F44="1F44 \global\uccode"1F44="039F
-\global\lccode"1F45="1F45 \global\uccode"1F45="039F
-\global\lccode"1F48="1F40 \global\uccode"1F48="039F
-\global\lccode"1F49="1F41 \global\uccode"1F49="039F
-\global\lccode"1F4A="1F42 \global\uccode"1F4A="039F
-\global\lccode"1F4B="1F43 \global\uccode"1F4B="039F
-\global\lccode"1F4C="1F44 \global\uccode"1F4C="039F
-\global\lccode"1F4D="1F45 \global\uccode"1F4D="039F
-\global\lccode"1F50="1F50 \global\uccode"1F50="03A5
-\global\lccode"1F51="1F51 \global\uccode"1F51="03A5
-\global\lccode"1F52="1F52 \global\uccode"1F52="03A5
-\global\lccode"1F53="1F53 \global\uccode"1F53="03A5
-\global\lccode"1F54="1F54 \global\uccode"1F54="03A5
-\global\lccode"1F55="1F55 \global\uccode"1F55="03A5
-\global\lccode"1F56="1F56 \global\uccode"1F56="03A5
-\global\lccode"1F57="1F57 \global\uccode"1F57="03A5
-\global\lccode"1F59="1F51 \global\uccode"1F59="03A5
-\global\lccode"1F5B="1F53 \global\uccode"1F5B="03A5
-\global\lccode"1F5D="1F55 \global\uccode"1F5D="03A5
-\global\lccode"1F5F="1F57 \global\uccode"1F5F="03A5
-\global\lccode"1F60="1F60 \global\uccode"1F60="03A9
-\global\lccode"1F61="1F61 \global\uccode"1F61="03A9
-\global\lccode"1F62="1F62 \global\uccode"1F62="03A9
-\global\lccode"1F63="1F63 \global\uccode"1F63="03A9
-\global\lccode"1F64="1F64 \global\uccode"1F64="03A9
-\global\lccode"1F65="1F65 \global\uccode"1F65="03A9
-\global\lccode"1F66="1F66 \global\uccode"1F66="03A9
-\global\lccode"1F67="1F67 \global\uccode"1F67="03A9
-\global\lccode"1F68="1F60 \global\uccode"1F68="03A9
-\global\lccode"1F69="1F61 \global\uccode"1F69="03A9
-\global\lccode"1F6A="1F62 \global\uccode"1F6A="03A9
-\global\lccode"1F6B="1F63 \global\uccode"1F6B="03A9
-\global\lccode"1F6C="1F64 \global\uccode"1F6C="03A9
-\global\lccode"1F6D="1F65 \global\uccode"1F6D="03A9
-\global\lccode"1F6E="1F66 \global\uccode"1F6E="03A9
-\global\lccode"1F6F="1F67 \global\uccode"1F6F="03A9
-\global\lccode"1F70="1F70 \global\uccode"1F70="0391
-\global\lccode"1F71="1F71 \global\uccode"1F71="0391
-\global\lccode"1F72="1F72 \global\uccode"1F72="0395
-\global\lccode"1F73="1F73 \global\uccode"1F73="0395
-\global\lccode"1F74="1F74 \global\uccode"1F74="0397
-\global\lccode"1F75="1F75 \global\uccode"1F75="0397
-\global\lccode"1F76="1F76 \global\uccode"1F76="0399
-\global\lccode"1F77="1F77 \global\uccode"1F77="0399
-\global\lccode"1F78="1F78 \global\uccode"1F78="039F
-\global\lccode"1F79="1F79 \global\uccode"1F79="039F
-\global\lccode"1F7A="1F7A \global\uccode"1F7A="03A5
-\global\lccode"1F7B="1F7B \global\uccode"1F7B="03A5
-\global\lccode"1F7C="1F7C \global\uccode"1F7C="03A9
-\global\lccode"1F7D="1F7D \global\uccode"1F7D="03A9
-\global\lccode"1F80="1F80 \global\uccode"1F80="1FBC
-\global\lccode"1F81="1F81 \global\uccode"1F81="1FBC
-\global\lccode"1F82="1F82 \global\uccode"1F82="1FBC
-\global\lccode"1F83="1F83 \global\uccode"1F83="1FBC
-\global\lccode"1F84="1F84 \global\uccode"1F84="1FBC
-\global\lccode"1F85="1F85 \global\uccode"1F85="1FBC
-\global\lccode"1F86="1F86 \global\uccode"1F86="1FBC
-\global\lccode"1F87="1F87 \global\uccode"1F87="1FBC
-\global\lccode"1F88="1F80 \global\uccode"1F88="1FBC
-\global\lccode"1F89="1F81 \global\uccode"1F89="1FBC
-\global\lccode"1F8A="1F82 \global\uccode"1F8A="1FBC
-\global\lccode"1F8B="1F83 \global\uccode"1F8B="1FBC
-\global\lccode"1F8C="1F84 \global\uccode"1F8C="1FBC
-\global\lccode"1F8D="1F85 \global\uccode"1F8D="1FBC
-\global\lccode"1F8E="1F86 \global\uccode"1F8E="1FBC
-\global\lccode"1F8F="1F87 \global\uccode"1F8F="1FBC
-\global\lccode"1F90="1F90 \global\uccode"1F90="1FCC
-\global\lccode"1F91="1F91 \global\uccode"1F91="1FCC
-\global\lccode"1F92="1F92 \global\uccode"1F92="1FCC
-\global\lccode"1F93="1F93 \global\uccode"1F93="1FCC
-\global\lccode"1F94="1F94 \global\uccode"1F94="1FCC
-\global\lccode"1F95="1F95 \global\uccode"1F95="1FCC
-\global\lccode"1F96="1F96 \global\uccode"1F96="1FCC
-\global\lccode"1F97="1F97 \global\uccode"1F97="1FCC
-\global\lccode"1F98="1F90 \global\uccode"1F98="1FCC
-\global\lccode"1F99="1F91 \global\uccode"1F99="1FCC
-\global\lccode"1F9A="1F92 \global\uccode"1F9A="1FCC
-\global\lccode"1F9B="1F93 \global\uccode"1F9B="1FCC
-\global\lccode"1F9C="1F94 \global\uccode"1F9C="1FCC
-\global\lccode"1F9D="1F95 \global\uccode"1F9D="1FCC
-\global\lccode"1F9E="1F96 \global\uccode"1F9E="1FCC
-\global\lccode"1F9F="1F97 \global\uccode"1F9F="1FCC
-\global\lccode"1FA0="1FA0 \global\uccode"1FA0="1FFC
-\global\lccode"1FA1="1FA1 \global\uccode"1FA1="1FFC
-\global\lccode"1FA2="1FA2 \global\uccode"1FA2="1FFC
-\global\lccode"1FA3="1FA3 \global\uccode"1FA3="1FFC
-\global\lccode"1FA4="1FA4 \global\uccode"1FA4="1FFC
-\global\lccode"1FA5="1FA5 \global\uccode"1FA5="1FFC
-\global\lccode"1FA6="1FA6 \global\uccode"1FA6="1FFC
-\global\lccode"1FA7="1FA7 \global\uccode"1FA7="1FFC
-\global\lccode"1FA8="1FA0 \global\uccode"1FA8="1FFC
-\global\lccode"1FA9="1FA1 \global\uccode"1FA9="1FFC
-\global\lccode"1FAA="1FA2 \global\uccode"1FAA="1FFC
-\global\lccode"1FAB="1FA3 \global\uccode"1FAB="1FFC
-\global\lccode"1FAC="1FA4 \global\uccode"1FAC="1FFC
-\global\lccode"1FAD="1FA5 \global\uccode"1FAD="1FFC
-\global\lccode"1FAE="1FA6 \global\uccode"1FAE="1FFC
-\global\lccode"1FAF="1FA7 \global\uccode"1FAF="1FFC
-\global\lccode"1FB0="1FB0 \global\uccode"1FB0="1FB8
-\global\lccode"1FB1="1FB1 \global\uccode"1FB1="1FB9
-\global\lccode"1FB2="1FB2 \global\uccode"1FB2="1FBC
-\global\lccode"1FB3="1FB3 \global\uccode"1FB3="1FBC
-\global\lccode"1FB4="1FB4 \global\uccode"1FB4="1FBC
-\global\lccode"1FB6="1FB6 \global\uccode"1FB6="0391
-\global\lccode"1FB7="1FB7 \global\uccode"1FB7="1FBC
-\global\lccode"1FB8="1FB0 \global\uccode"1FB8="1FB8
-\global\lccode"1FB9="1FB1 \global\uccode"1FB9="1FB9
-\global\lccode"1FBA="1F70 \global\uccode"1FBA="0391
-\global\lccode"1FBB="1F71 \global\uccode"1FBB="0391
-\global\lccode"1FBC="1FB3 \global\uccode"1FBC="1FBC
-\global\lccode"1FBD="1FBD \global\uccode"1FBD="1FBD
-\global\lccode"1FC2="1FC2 \global\uccode"1FC2="1FCC
-\global\lccode"1FC3="1FC3 \global\uccode"1FC3="1FCC
-\global\lccode"1FC4="1FC4 \global\uccode"1FC4="1FCC
-\global\lccode"1FC6="1FC6 \global\uccode"1FC6="0397
-\global\lccode"1FC7="1FC7 \global\uccode"1FC7="1FCC
-\global\lccode"1FC8="1F72 \global\uccode"1FC8="0395
-\global\lccode"1FC9="1F73 \global\uccode"1FC9="0395
-\global\lccode"1FCA="1F74 \global\uccode"1FCA="0397
-\global\lccode"1FCB="1F75 \global\uccode"1FCB="0397
-\global\lccode"1FCC="1FC3 \global\uccode"1FCC="1FCC
-\global\lccode"1FD0="1FD0 \global\uccode"1FD0="1FD8
-\global\lccode"1FD1="1FD1 \global\uccode"1FD1="1FD9
-\global\lccode"1FD2="1FD2 \global\uccode"1FD2="03AA
-\global\lccode"1FD3="1FD3 \global\uccode"1FD3="03AA
-\global\lccode"1FD6="1FD6 \global\uccode"1FD6="0399
-\global\lccode"1FD7="1FD7 \global\uccode"1FD7="03AA
-\global\lccode"1FD8="1FD0 \global\uccode"1FD8="1FD8
-\global\lccode"1FD9="1FD1 \global\uccode"1FD9="1FD9
-\global\lccode"1FDA="1F76 \global\uccode"1FDA="0399
-\global\lccode"1FDB="1F77 \global\uccode"1FDB="0399
-\global\lccode"1FE0="1FE0 \global\uccode"1FE0="1FE8
-\global\lccode"1FE1="1FE1 \global\uccode"1FE1="1FE9
-\global\lccode"1FE2="1FE2 \global\uccode"1FE2="03AB
-\global\lccode"1FE3="1FE3 \global\uccode"1FE3="03AB
-\global\lccode"1FE4="1FE4 \global\uccode"1FE4="03A1
-\global\lccode"1FE5="1FE5 \global\uccode"1FE5="1FEC
-\global\lccode"1FE6="1FE6 \global\uccode"1FE6="03A5
-\global\lccode"1FE7="1FE7 \global\uccode"1FE7="03AB
-\global\lccode"1FE8="1FE0 \global\uccode"1FE8="1FE8
-\global\lccode"1FE9="1FE1 \global\uccode"1FE9="1FE9
-\global\lccode"1FEA="1F7A \global\uccode"1FEA="03A5
-\global\lccode"1FEB="1F7B \global\uccode"1FEB="03A5
-\global\lccode"1FEC="1FE5 \global\uccode"1FEC="1FEC
-\global\lccode"1FF2="1FF2 \global\uccode"1FF2="1FFC
-\global\lccode"1FF3="1FF3 \global\uccode"1FF3="1FFC
-\global\lccode"1FF4="1FF4 \global\uccode"1FF4="1FFC
-\global\lccode"1FF6="1FF6 \global\uccode"1FF6="03A9
-\global\lccode"1FF7="1FF7 \global\uccode"1FF7="1FFC
-\global\lccode"1FF8="1F78 \global\uccode"1FF8="039F
-\global\lccode"1FF9="1F79 \global\uccode"1FF9="039F
-\global\lccode"1FFA="1F7C \global\uccode"1FFA="03A9
-\global\lccode"1FFB="1F7D \global\uccode"1FFB="03A9
-\global\lccode"1FFC="1FF3 \global\uccode"1FFC="1FFC
-% \end{macrocode}
-% \iffalse
-%</xgreek-fixes.def>
%<*gloss-albanian.ldf>
% \fi
% \clearpage
@@ -4514,15 +2242,32 @@ Shawwāl\or Dhū ’l-Qaʿda\or Dhū ’l-Ḥijja\fi}
%%% adapted from Babel's catalan.ldf
\newdimen\leftllkern \newdimen\rightllkern \newdimen\raiselldim
% we check if char · exists, and use it instead of raised dot:
-\def\xpg@raiseddot{\ifnum\XeTeXcharglyph"00B7 > 0\hbox{\char"00B7}%
- \else\raise\raiselldim\hbox{.}\fi}
+\def\xpg@raiseddot{%
+ \ifluatex %
+ \expandafter\ifnum\directlua{polyglossia.check_char(183)} > 0\hbox{\char"00B7}%
+ \else\raise\raiselldim\hbox{.}%
+ \fi %
+ \else %
+ \ifnum\XeTeXcharglyph"00B7 > 0\hbox{\char"00B7}% why a hbox here?
+ \else\raise\raiselldim\hbox{.}%
+ \fi %
+ \fi %
+ }
\def\lgem{%
\ifmmode
\csname normal@char\string"\endcsname l%
\else
\leftllkern=0pt\rightllkern=0pt\raiselldim=0pt%
\setbox0\hbox{l}\setbox1\hbox{l\/}%
- \ifnum\XeTeXcharglyph"00B7 > 0\setbox2\hbox{\char"00B7}\else\setbox2\hbox{.}\fi
+ \ifluatex %
+ \expandafter\ifnum\directlua{polyglossia.check_char(183)} > 0\setbox2\hbox{\char"00B7}%
+ \else\setbox2\hbox{.}%
+ \fi %
+ \else %
+ \ifnum\XeTeXcharglyph"00B7 > 0\setbox2\hbox{\char"00B7}%
+ \else\setbox2\hbox{.}%
+ \fi %
+ \fi %
\advance\raiselldim by \the\fontdimen5\the\font
\advance\raiselldim by -\ht2%
\leftllkern=-.25\wd0%
@@ -4542,7 +2287,15 @@ Shawwāl\or Dhū ’l-Qaʿda\or Dhū ’l-Ḥijja\fi}
\else
\leftllkern=0pt\rightllkern=0pt\raiselldim=0pt%
\setbox0\hbox{L}\setbox1\hbox{L\/}%
- \ifnum\XeTeXcharglyph"00B7 > 0\setbox2\hbox{\char"00B7}\else\setbox2\hbox{.}\fi
+ \ifluatex %
+ \expandafter\ifnum\directlua{polyglossia.check_char(183)} > 0\setbox2\hbox{\char"00B7}%
+ \else\setbox2\hbox{.}%
+ \fi %
+ \else %
+ \ifnum\XeTeXcharglyph"00B7 > 0\setbox2\hbox{\char"00B7}%
+ \else\setbox2\hbox{.}%
+ \fi %
+ \fi %
\advance\raiselldim by .5\ht0%
\advance\raiselldim by -.5\ht2%
\leftllkern=-.125\wd0%
@@ -5384,59 +3137,81 @@ Shawwāl\or Dhū ’l-Qaʿda\or Dhū ’l-Ḥijja\fi}
hyphenmins={2,2},
fontsetup=true}
-\newXeTeXintercharclass\french@punctthin % ! ? ; et autres
-\newXeTeXintercharclass\french@punctthick % :
-\newXeTeXintercharclass\french@punctguillstart % « ‹
-\newXeTeXintercharclass\french@punctguillend % » ›
+\ifluatex
+ \newluatexattribute\xpg@frpt %
+ \directlua{polyglossia.load_frpt()}%
+ \global\newcount\xpg@interchartokenstate %
+\else
+ \newXeTeXintercharclass\french@punctthin % ! ? ; et autres
+ \newXeTeXintercharclass\french@punctthick % :
+ \newXeTeXintercharclass\french@punctguillstart % « ‹
+ \newXeTeXintercharclass\french@punctguillend % » ›
+\fi
\def\xpg@unskip{\ifhmode\ifdim\lastskip>\z@\unskip\fi\fi}
\def\xpg@nospace#1{#1}
\def\french@punctuation{%
\lccode"2019="2019
- \XeTeXinterchartokenstate=1
- \XeTeXcharclass `\! \french@punctthin
- \XeTeXcharclass `\? \french@punctthin
- \XeTeXcharclass `\‼ \french@punctthin
- \XeTeXcharclass `\⁇ \french@punctthin
- \XeTeXcharclass `\⁈ \french@punctthin
- \XeTeXcharclass `\⁉ \french@punctthin
- \XeTeXcharclass `\; \french@punctthin
- \XeTeXcharclass `\: \french@punctthick
- \XeTeXcharclass `\« \french@punctguillstart
- \XeTeXcharclass `\» \french@punctguillend
- \XeTeXcharclass `\‹ \french@punctguillstart
- \XeTeXcharclass `\› \french@punctguillend
- \XeTeXinterchartoks \z@ \french@punctthin = {\nobreak\thinspace}%
- \XeTeXinterchartoks \z@ \french@punctthick = {\nobreakspace}%
- \XeTeXinterchartoks 255 \french@punctthin = {\xpg@unskip\nobreak\thinspace}%
- \XeTeXinterchartoks 255 \french@punctthick = {\xpg@unskip\nobreakspace}%
- \XeTeXinterchartoks \french@punctguillstart \z@ = {\nobreakspace}% "«a" -> "« a"
-% \XeTeXinterchartoks \z@ \french@punctguillstart = {\nobreakspace}% "a«" unchanged?
-% \XeTeXinterchartoks \french@punctguillend \z@ = {\nobreakspace}% "»a" unchanged?
- \XeTeXinterchartoks \z@ \french@punctguillend = {\nobreakspace}% "a»" -> "a »"
- \XeTeXinterchartoks \french@punctguillstart 255 = {\nobreakspace\xpg@nospace}% "« " -> "«~"
- \XeTeXinterchartoks 255 \french@punctguillend = {\xpg@unskip\nobreakspace}% " »" -> "~»"
- \XeTeXinterchartoks \french@punctguillend \french@punctthin = {\nobreak\thinspace}% "»;" -> "» ;"
- \XeTeXinterchartoks \french@punctguillend \french@punctthick = {\nobreakspace}% "»:" -> "» :"
- \XeTeXinterchartoks \french@punctthin \french@punctguillend = {\nobreakspace}% "?»" -> "? »"
+ \ifluatex
+ \global\xpg@frpt=1\relax %
+ \directlua{polyglossia.activate_frpt()}%
+ \else
+ \XeTeXinterchartokenstate=1
+ \XeTeXcharclass `\! \french@punctthin
+ \XeTeXcharclass `\? \french@punctthin
+ \XeTeXcharclass `\‼ \french@punctthin
+ \XeTeXcharclass `\⁇ \french@punctthin
+ \XeTeXcharclass `\⁈ \french@punctthin
+ \XeTeXcharclass `\⁉ \french@punctthin
+ \XeTeXcharclass `\; \french@punctthin
+ \XeTeXcharclass `\: \french@punctthick
+ \XeTeXcharclass `\« \french@punctguillstart
+ \XeTeXcharclass `\» \french@punctguillend
+ \XeTeXcharclass `\‹ \french@punctguillstart
+ \XeTeXcharclass `\› \french@punctguillend
+ \XeTeXinterchartoks \z@ \french@punctthin = {\nobreak\thinspace}%
+ \XeTeXinterchartoks \z@ \french@punctthick = {\nobreakspace}%
+ \XeTeXinterchartoks 255 \french@punctthin = {\xpg@unskip\nobreak\thinspace}%
+ \XeTeXinterchartoks 255 \french@punctthick = {\xpg@unskip\nobreakspace}%
+ \XeTeXinterchartoks \french@punctguillstart \z@ = {\nobreakspace}% "«a" -> "« a"
+ % \XeTeXinterchartoks \z@ \french@punctguillstart = {\nobreakspace}% "a«" unchanged?
+ % \XeTeXinterchartoks \french@punctguillend \z@ = {\nobreakspace}% "»a" unchanged?
+ \XeTeXinterchartoks \z@ \french@punctguillend = {\nobreakspace}% "a»" -> "a »"
+ \XeTeXinterchartoks \french@punctguillstart 255 = {\nobreakspace\xpg@nospace}% "« " -> "«~"
+ \XeTeXinterchartoks 255 \french@punctguillend = {\xpg@unskip\nobreakspace}% " »" -> "~»"
+ \XeTeXinterchartoks \french@punctguillend \french@punctthin = {\nobreak\thinspace}% "»;" -> "» ;"
+ \XeTeXinterchartoks \french@punctguillend \french@punctthick = {\nobreakspace}% "»:" -> "» :"
+ \XeTeXinterchartoks \french@punctthin \french@punctguillend = {\nobreakspace}% "?»" -> "? »"
+ \fi
}
\def\nofrench@punctuation{%
\lccode"2019=\z@
- \XeTeXcharclass `\! \z@
- \XeTeXcharclass `\? \z@
- \XeTeXcharclass `\‼ \z@
- \XeTeXcharclass `\⁇ \z@
- \XeTeXcharclass `\⁈ \z@
- \XeTeXcharclass `\⁉ \z@
- \XeTeXcharclass `\; \z@
- \XeTeXcharclass `\: \z@
- \XeTeXcharclass `\« \z@
- \XeTeXcharclass `\» \z@
- \XeTeXcharclass `\‹ \z@
- \XeTeXcharclass `\› \z@
- \XeTeXinterchartokenstate=0
+ \ifluatex
+ \global\xpg@frpt=0\relax %
+ % Though it would make compilation slightly faster, it is not possible to
+ % safely uncomment the following line. Imagine the following case: you start
+ % a paragraph by some french text, then, in the same paragraph, you change
+ % the language to something else, and thus call the following line. This means
+ % that, at then end of the paragraph, the function won't be in the callback,
+ % so the beginning of the paragraph won't be processed by it.
+ %\directlua{polyglossia.desactivate_frpt()}
+ \else
+ \XeTeXcharclass `\! \z@
+ \XeTeXcharclass `\? \z@
+ \XeTeXcharclass `\‼ \z@
+ \XeTeXcharclass `\⁇ \z@
+ \XeTeXcharclass `\⁈ \z@
+ \XeTeXcharclass `\⁉ \z@
+ \XeTeXcharclass `\; \z@
+ \XeTeXcharclass `\: \z@
+ \XeTeXcharclass `\« \z@
+ \XeTeXcharclass `\» \z@
+ \XeTeXcharclass `\‹ \z@
+ \XeTeXcharclass `\› \z@
+ \XeTeXinterchartokenstate=0
+ \fi
}
\def\captionsfrench{%
@@ -5551,9 +3326,6 @@ Shawwāl\or Dhū ’l-Qaʿda\or Dhū ’l-Ḥijja\fi}
\def\noextras@friulan{%
\lccode\string"2019=\z@
- % TODO Figure out what the two lines below were supposed to be good for.
- % \noitalian@shorthands
- % \xpgit@savedvalues
}
\def\blockextras@friulan{%
@@ -5800,6 +3572,423 @@ Shawwāl\or Dhū ’l-Qaʿda\or Dhū ’l-Ḥijja\fi}
% \end{macrocode}
% \iffalse
%</gloss-german.ldf>
+%<*gloss-greek-new.ldf>
+% \fi
+% \clearpage
+%
+% \subsection{gloss-greek-new.ldf}
+% \begin{macrocode}
+\ProvidesFile{gloss-greek.ldf}[polyglossia: module for greek]
+\PolyglossiaSetup{greek}{
+ script=Greek,
+ scripttag=grek,
+ frenchspacing=true,
+ indentfirst=true,
+ fontsetup=true,
+ %TODO localalph={greek@alph,greek@Alph}
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% The code in this file was initially adapted from the antomega
+%% module for greek. Currently large parts of it derive from the
+%% package xgreek.sty (c) Apostolos Syropoulos
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% this file imported from xgreek fixes the \lccode and \uccode of Greek letters:
+\input{xgreek-fixes.def}
+
+%TODO: set these in \define@key instead:
+\ifx\l@greek\@undefined
+ \ifx\l@polygreek\@undefined
+ \xpg@nopatterns{Greek}%
+ \adddialect\l@greek\l@nohyphenation
+ \else
+ \let\l@greek\l@polygreek
+ \fi
+\fi
+\ifx\l@monogreek\@undefined
+ \xpg@warning{No hyphenation patterns were loaded for Monotonic Greek\MessageBreak
+ I will use the patterns loaded for \string\l@greek instead}
+ \adddialect\l@monogreek\l@greek
+\fi
+\ifx\l@ancientgreek\@undefined
+ \xpg@warning{No hyphenation patterns were loaded for Ancient Greek\MessageBreak
+ I will use the patterns loaded for \string\l@greek instead}
+ \adddialect\l@ancientgreek\l@greek
+\fi
+
+%set monotonic as default
+\def\greek@variant{\l@monogreek}% monotonic
+\def\captionsgreek{\monogreekcaptions}%
+\def\dategreek{\datemonogreek}%
+
+\def\tmp@mono{mono}
+\def\tmp@monotonic{monotonic}
+\def\tmp@poly{poly}
+\def\tmp@polytonic{polytonic}
+\def\tmp@ancient{ancient}
+\def\tmp@ancientgreek{ancientgreek}
+
+\define@key{greek}{variant}[monotonic]{%
+ \def\@tmpa{#1}%
+ \ifx\@tmpa\tmp@poly\def\@tmpa{polytonic}\fi
+ \ifx\@tmpa\tmp@ancientgreek\def\@tmpa{ancient}\fi
+ \ifx\@tmpa\tmp@polytonic%
+ \def\greek@variant{\l@polygreek}%
+ \def\captionsgreek{\polygreekcaptions}%
+ \def\dategreek{\datepolygreek}%
+ \xpg@info{Option: Polytonic Greek}%
+ \else
+ \ifx\@tmpa\tmp@ancient
+ \def\greek@variant{\l@ancientgreek}%
+ \def\captionsgreek{\ancientgreekcaptions}%
+ \def\dategreek{\dateancientgreek}%
+ \xpg@info{Option: Ancient Greek}%
+ \else %monotonic
+ \def\greek@variant{\l@monogreek}% monotonic
+ \def\captionsgreek{\monogreekcaptions}%
+ \def\dategreek{\datemonogreek}%
+ \xpg@info{Option: Monotonic Greek}%
+ \fi
+ \fi}
+
+\def\greek@language{\language=\greek@variant}
+
+\newif\if@greek@numerals
+\define@key{greek}{numerals}[greek]{%
+\ifstrequal{#1}{arabic}{\@greek@numeralsfalse}{\@greek@numeralstrue}}
+
+\define@boolkey{greek}{attic}[true]{\xpg@warning{Greek option `attic' is no longer required.}}
+
+% This sets the defaults
+\setkeys{greek}{numerals}
+
+\def\monogreekcaptions{%
+ \def\refname{Αναφορές}%
+ \def\abstractname{Περίληψη}%
+ \def\bibname{Βιβλιογραφία}%
+ \def\prefacename{Πρόλογος}%
+ \def\chaptername{Κεφάλαιο}%
+ \def\appendixname{Παράρτημα}%
+ \def\contentsname{Περιεχόμενα}%
+ \def\listfigurename{Κατάλογος σχημάτων}%
+ \def\listtablename{Κατάλογος πινάκων}%
+ \def\indexname{Ευρετήριο}%
+ \def\figurename{Σχήμα}%
+ \def\tablename{Πίνακας}%
+ \def\partname{Μέρος}%
+ \def\pagename{Σελίδα}%
+ \def\seename{βλέπε}%
+ \def\alsoname{βλέπε επίσης}%
+ \def\enclname{Συνημμένα}%
+ \def\ccname{Κοινοποίηση}%
+ \def\headtoname{Προς}%
+ \def\proofname{Απόδειξη}%
+ \def\glossaryname{Γλωσσάρι}}%
+
+\def\datemonogreek{%
+ \def\today{\number\day\space%
+ \greek@month%
+ \space\number\year}%
+ \def\greektoday{\greeknumber\day\space%
+ \greek@month%
+ \space\greeknumber\year}%
+ \def\Greektoday{\Greeknumber\day\space%
+ \greek@month%
+ \space\Greeknumber\year}%
+ \def\greek@month{\ifcase\month\or%
+ Ιανουαρίου\or
+ Φεβρουαρίου\or
+ Μαρτίου\or
+ Απριλίου\or
+ Μαΐου\or
+ Ιουνίου\or
+ Ιουλίου\or
+ Αυγούστου\or
+ Σεπτεμβρίου\or
+ Οκτωβρίου\or
+ Νοεμβρίου\or
+ Δεκεμβρίου\fi}}%
+
+\def\polygreekcaptions{%
+ \def\refname{Ἀναφορές}%
+ \def\abstractname{Περίληψη}%
+ \def\bibname{Βιβλιογραφία}%
+ \def\prefacename{Πρόλογος}%
+ \def\chaptername{Κεφάλαιο}%
+ \def\appendixname{Παράρτημα}%
+ \def\contentsname{Περιεχόμενα}%
+ \def\listfigurename{Κατάλογος σχημάτων}%
+ \def\listtablename{Κατάλογος πινάκων}%
+ \def\indexname{Εὑρετήριο}%
+ \def\figurename{Σχῆμα}%
+ \def\tablename{Πίνακας}%
+ \def\partname{Μέρος}%
+ \def\pagename{Σελίδα}%
+ \def\seename{βλέπε}%
+ \def\alsoname{βλέπε ἐπίσης}%
+ \def\enclname{Συνημμένα}%
+ \def\ccname{Κοινοποίηση}%
+ \def\headtoname{Πρὸς}%
+ \def\proofname{Ἀπόδειξη}}%
+
+\def\datepolygreek{%
+ \def\today{\number\day\space%
+ \greek@month%
+ \space\number\year}%
+ \def\greektoday{\greeknumber\day\space%
+ \greek@month%
+ \space\greeknumber\year}%
+ \def\Greektoday{\Greeknumber\day\space%
+ \greek@month%
+ \space\Greeknumber\year}%
+ \def\greek@month{\ifcase\month\or%
+ Ἰανουαρίου\or
+ Φεβρουαρίου\or
+ Μαρτίου\or
+ Ἀπριλίου\or
+ Μαΐου\or
+ Ἰουνίου\or
+ Ἰουλίου\or
+ Αὐγούστου\or
+ Σεπτεμβρίου\or
+ Ὀκτωβρίου\or
+ Νοεμβρίου\or
+ Δεκεμβρίου\fi}}%
+
+% this is copied verbatim from xgreek.sty:
+\def\ancientgreekcaptions{%
+ \def\prefacename{Προοίμιον}%
+ \def\refname{Αναφοραί}%
+ \def\abstractname{Περίληψις}%
+ \def\bibname{Βιβλιογραφία}%
+ \def\chaptername{Κεφάλαιον}%
+ \def\appendixname{Παράρτημα}%
+ \def\contentsname{Περιεχόμενα}%
+ \def\listfigurename{Κατάλογος σχημάτων}%
+ \def\listtablename{Κατάλογος πινάκων}%
+ \def\indexname{Εὑρετήριον}%
+ \def\figurename{Σχήμα}%
+ \def\tablename{Πίναξ}%
+ \def\partname{Μέρος}%
+ \def\enclname{Συνημμένως}%
+ \def\ccname{Κοινοποίησις}%
+ \def\headtoname{Πρὸς}%
+ \def\pagename{Σελὶς}%
+ \def\seename{ὃρα}%
+ \def\alsoname{ὃρα ὡσαύτως}%
+ \def\proofname{Ἀπόδειξις}%
+ \def\glossaryname{Γλωσσάριον}%
+ \def\refname{Ἀναφοραὶ}%
+ \def\indexname{Εὑρετήριο}%
+ \def\figurename{Σχῆμα}%
+ \def\headtoname{Πρὸς}}%
+
+\def\dateancientgreek{%
+ \def\today{\number\day\space%
+ \greek@month%
+ \space\number\year}%
+ \def\greektoday{\greeknumber\day\space%
+ \greek@month%
+ \space\greeknumber\year}%
+ \def\Greektoday{\Greeknumber\day\space%
+ \greek@month%
+ \space\Greeknumber\year}%
+ \def\greek@month{\ifcase\month\or%
+ Ἰανουαρίου\or
+ Φεβρουαρίου\or
+ Μαρτίου\or
+ Ἀπριλίου\or
+ Μαΐου\or
+ Ἰουνίου\or
+ Ἰουλίου\or
+ Αὐγούστου\or
+ Σεπτεμβρίου\or
+ Ὀκτωβρίου\or
+ Νοεμβρίου\or
+ Δεκεμβρίου\fi}}
+
+% the code for alphabetic numbers and attic numerals
+% is not copied verbatim from xgreek.sty any more
+% it has been proposed by eg9 on issue 36 of the repository
+% see https://github.com/reutenauer/polyglossia/issues/36
+\newrobustcmd\anw@print{}
+\newrobustcmd\anw@false{%
+\renewrobustcmd\anw@print{}}
+\newrobustcmd\anw@true{%
+\renewrobustcmd\anw@print{ʹ}}
+\anw@true
+
+\protected\def\greeknumber#1{\expandafter\@greeknumber\expandafter{\number#1}}
+
+\def\@greeknumber#1{%
+\ifnum#1<\@ne\space\gr@ill@value{#1}%
+\else %
+\ifnum#1<10 \gr@num@i#1%
+\else %
+\ifnum#1<100 \gr@num@ii#1%
+\else %
+\ifnum#1<\@m \gr@num@iii#1%
+\else %
+\ifnum#1<\@M \gr@num@iv#1%
+\else %
+\ifnum#1<100000 \gr@num@v#1%
+\else %
+\ifnum#1<1000000 \gr@num@vi#1%
+\else %
+\space\gr@ill@value{#1}%
+\fi %
+\fi %
+\fi %
+\fi %
+\fi %
+\fi %
+\fi %
+}
+
+\protected\def\Greeknumber#1{\expandafter\@Greeknumber\expandafter{\number#1}}
+\def\@Greeknumber#1{%
+\ifnum#1<\@ne\space\gr@ill@value{#1}%
+\else %
+\ifnum#1<10 \gr@Num@i#1%
+\else %
+\ifnum#1<100 \gr@Num@ii#1%
+\else %
+\ifnum#1<\@m\gr@Num@iii#1%
+\else %
+\ifnum#1<\@M\gr@Num@iv#1%
+\else %
+\ifnum#1<100000 \gr@Num@v#1%
+\else %
+\ifnum#1<1000000 \gr@Num@vi#1%
+\else %
+\space\gr@ill@value{#1}%
+\fi %
+\fi %
+\fi %
+\fi %
+\fi %
+\fi %
+\fi %
+}
+
+\let\greeknumeral=\greeknumber
+\let\Greeknumeral=\Greeknumber
+
+\def\gr@num@i#1{%
+\ifcase#1 \or α\or β\or γ\or δ\or ε\or Ϛ\or ζ\or η\or θ\fi %
+\ifnum#1=\z@\else\anw@true\fi\anw@print}
+
+\def\gr@num@ii#1{%
+\ifcase#1 \or ι\or κ\or λ\or μ\or ν\or ξ\or ο\or π\or ϟ\fi %
+\ifnum#1=\z@\else\anw@true\fi\gr@num@i}
+
+\def\gr@num@iii#1{%
+\ifcase#1 \or ρ\or σ\or τ\or υ\or φ\or χ\or ψ\or ω\or ϡ\fi %
+\ifnum#1=\z@\anw@false\else\anw@true\fi\gr@num@ii}
+
+\def\gr@num@iv#1{%
+\ifnum#1=\z@\else ͵\fi %
+\ifcase#1 \or α\or β\or γ\or δ\or ε\or Ϛ\or ζ\or η\or θ\fi %
+\gr@num@iii}
+
+\def\gr@num@v#1{%
+\ifnum#1=\z@\else ͵\fi %
+\ifcase#1 \or ι\or κ\or λ\or μ\or ν\or ξ\or ο\or π\or ϟ\fi %
+\gr@num@iv}
+
+\def\gr@num@vi#1{%
+͵\ifcase#1 \or ρ\or σ\or τ\or υ\or φ\or χ\or ψ\or ω\or ϡ\fi %
+\gr@num@v}%
+
+\def\gr@Num@i#1{%
+\ifcase#1 \or Α\or Β\or Γ\or Δ\or Ε\or \MakeUppercase{Ϛ}\or Ζ\or Η\or θ\fi %
+\ifnum#1=\z@\else\anw@true\fi\anw@print}
+
+\def\gr@Num@ii#1{%
+\ifcase#1 \or Ι\or Κ\or Λ\or Μ\or Ν\or Ξ\or Ο\or Π\or \MakeUppercase{ϟ}\fi %
+\ifnum#1=\z@\else\anw@true\fi\gr@Num@i}
+
+\def\gr@Num@iii#1{%
+\ifcase#1 \or Ρ\or Σ\or Τ\or Υ\or Φ\or Χ\or Ψ\or Ω\or \MakeUppercase{ϡ}\fi %
+\ifnum#1=\z@\anw@false\else\anw@true\fi\gr@Num@ii}
+
+\def\gr@Num@iv#1{%
+\ifnum#1=\z@\else ͵\fi %
+\ifcase#1 \or Α\or Β\or Γ\or Δ\or Ε\or \MakeUppercase{Ϛ}\or Ζ\or Η\or θ\fi %
+\gr@Num@iii}
+
+\def\gr@Num@v#1{%
+\ifnum#1=\z@\else ͵\fi %
+\ifcase#1 \or Ι\or Κ\or Λ\or Μ\or Ν\or Ξ\or Ο\or Π\or \MakeUppercase{ϟ}\fi %
+\gr@Num@iv}
+
+\def\gr@Num@vi#1{%
+͵ \ifcase#1 \or Ρ\or Σ\or Τ\or Υ\or Φ\or Χ\or Ψ\or Ω\or \MakeUppercase{ϡ}\fi %
+\gr@Num@v}
+
+\def\gr@ill@value#1{\xpg@warning{Illegal value (#1) for Greek numeral}[$#1$]}
+
+%%%% Attic numerals (no longer optional)
+\newcount\@attic@num
+\DeclareRobustCommand*{\@@atticnum}[1]{%
+ \@attic@num#1\relax
+ \ifnum\@attic@num<\@ne%
+ \space%
+ \xpg@warning{Illegal value (\the\@attic@num) for acrophonic Attic numeral}%
+ \else\ifnum\@attic@num>249999%
+ \space%
+ \xpg@warning{Illegal value (\the\@attic@num) for acrophonic Attic numeral}%
+ \else
+ \@whilenum\@attic@num>49999\do{%
+ \char"10147\advance\@attic@num-50000}%
+ \@whilenum\@attic@num>9999\do{%
+ M\advance\@attic@num-\@M}%
+ \ifnum\@attic@num>4999%
+ \char"10146\advance\@attic@num-5000%
+ \fi\relax
+ \@whilenum\@attic@num>999\do{%
+ Χ\advance\@attic@num-\@m}%
+ \ifnum\@attic@num>499%
+ \char"10145\advance\@attic@num-500%
+ \fi\relax
+ \@whilenum\@attic@num>99\do{%
+ Η\advance\@attic@num-100}%
+ \ifnum\@attic@num>49%
+ \char"10144\advance\@attic@num-50%
+ \fi\relax
+ \@whilenum\@attic@num>9\do{%
+ Δ\advance\@attic@num by-10}%
+ \@whilenum\@attic@num>4\do{%
+ Π\advance\@attic@num-5}%
+ \ifcase\@attic@num\or Ι\or ΙΙ\or ΙΙΙ\or ΙΙΙΙ\fi%
+ \fi\fi}
+\def\@atticnum#1{%
+ \expandafter\@@atticnum\expandafter{\the#1}}
+\def\atticnumeral#1{%
+ \@attic@num#1\relax
+ \@atticnum{\@attic@num}}
+\let\atticnum=\atticnumeral
+
+\def\greek@numbers{%
+ \let\latin@alph\@alph%
+ \let\latin@Alph\@Alph%
+ \if@greek@numerals
+ \def\greek@alph##1{\protect\greeknumber{##1}}%
+ \def\greek@Alph##1{\protect\Greeknumber{##1}}%
+ \let\@alph\greek@alph%
+ \let\@Alph\greek@Alph%
+ \fi}
+
+\def\nogreek@numbers{%
+ \let\@alph\latin@alph%
+ \let\@Alph\latin@Alph%
+ \let\greek@alph\@undefined%
+ \let\greek@Alph\@undefined%
+ }
+
+% \end{macrocode}
+% \iffalse
+%</gloss-greek-new.ldf>
%<*gloss-greek.ldf>
% \fi
% \clearpage
@@ -6657,6 +4846,7 @@ Shawwāl\or Dhū ’l-Qaʿda\or Dhū ’l-Ḥijja\fi}
%%% ORIGINAL END %%%
%%% CHANGES START %%% by Enrico Gregorio
+\let\xpgit@savedvalues\empty
\AtEndPreamble{% the user or the class might define different values
\edef\xpgit@savedvalues{%
\clubpenalty=\the\clubpenalty\space
@@ -7496,6 +5686,128 @@ Shawwāl\or Dhū ’l-Qaʿda\or Dhū ’l-Ḥijja\fi}
% \end{macrocode}
% \iffalse
%</gloss-occitan.ldf>
+%<*gloss-piedmontese.ldf>
+% \fi
+% \clearpage
+%
+% \subsection{gloss-piedmontese.ldf}
+% \begin{macrocode}
+% !TEX encoding = UTF-8 Unicode
+\ProvidesFile{gloss-piedmontese.ldf}[2013/02/12 v1.0 polyglossia: module for piedmontese]
+\makeatletter
+\PolyglossiaSetup{piedmontese}{
+ hyphennames={piedmontese},
+ hyphenmins={2,2},
+ frenchspacing=true,
+ fontsetup=true,
+}
+
+
+\define@boolkey{piedmontese}[piedmontese@]{babelshorthands}[true]{}
+
+\ifsystem@babelshorthands
+ \setkeys{piedmontese}{babelshorthands=true}
+\else
+ \setkeys{piedmontese}{babelshorthands=false}
+\fi
+
+\ifcsundef{initiate@active@char}{%
+\input{babelsh.def}%
+\initiate@active@char{"}%
+}{}
+
+\def\piedmontese@shorthands{%
+ \bbl@activate{"}%
+ \def\language@group{piedmontese}%
+ \declare@shorthand{piedmontese}{"}{%
+ \relax\ifmmode
+ \def\xpgpms@next{''}%
+ \else
+ \def\xpgpms@next{\futurelet\xpgpms@temp\xpgpms@cwm}%
+ \fi
+ \xpgpms@next}%
+}
+
+\def\xpgpms@@cwm{\nobreak\discretionary{-}{}{}\nobreak\hskip\z@skip}
+\def\xpgpms@cwm{\let\xpgpms@@next\relax
+\ifcat\noexpand\xpgpms@temp a%
+ \def\xpgpms@@next{\pms@@cwm}%
+\else
+ \ifx\xpgpms@temp/%
+ \def\xpgpms@@next{\bbl@allowhyphens/\bbl@allowhyphens\@gobble}%
+ \else
+ \ifx\xpgpms@temp-%
+ \def\xpgpms@@next{\bbl@allowhyphens-\bbl@allowhyphens\@gobble}%
+ \else
+ \ifx\xpgpms@temp"%
+ \def\xpgpms@@next{``\expandafter\@gobble\string}%
+ \fi
+ \fi
+ \fi
+\xpgpms@@next}
+
+\def\nopiedmontese@shorthands{%
+ \@ifundefined{initiate@active@char}{}{\bbl@deactivate{"}}%
+}
+\@namedef{captions\CurrentOption}{%
+ \def\prefacename{Prefassion}%
+ \def\refname{Riferiment}%
+ \def\abstractname{Somari}%
+ \def\bibname{Bibliografìa}%
+ \def\chaptername{Capìtol}%
+ \def\appendixname{Gionta}%
+ \def\contentsname{Tàula}%
+ \def\listfigurename{Lista dle figure}%
+ \def\listtablename{Lista dle tabele}%
+ \def\indexname{Tàula analìtica}%
+ \def\figurename{Figura}%
+ \def\tablename{Tabela}%
+ \def\partname{Part}%
+ \def\enclname{Gionta/e}%
+ \def\ccname{Con còpia a}%
+ \def\headtoname{Për}%
+ \def\pagename{Pàgina}%
+ \def\seename{vëd}%
+ \def\alsoname{vëd anche}%
+ \def\proofname{Dimostrassion}%
+ \def\glossaryname{Glossari}%
+}
+\@namedef{date\CurrentOption}{%
+ \def\today{\number\day\space\ifcase\month\or
+ ëd gené\or ëd fevré\or ëd mars\or d'avril\or ëd maj\or ëd giugn\or
+ ëd luj\or d'agost\or dë stèmber\or d'otóber\or ëd novèmber\or dë dzèmber%
+ \fi\space dal\space\number\year}}
+
+\AtEndPreamble{%
+ \edef\xpgpms@savedvalues{%
+ \clubpenalty=\the\clubpenalty\space
+ \@clubpenalty=\the\@clubpenalty\space
+ \widowpenalty=\the\widowpenalty\space
+ \finalhyphendemerits=\the\finalhyphendemerits}
+}
+
+
+\def\noextras@piedmontese{%
+ \lccode\string"2019=\z@
+ \nopiedmontese@shorthands
+ \xpgpms@savedvalues
+}
+
+\def\blockextras@piedmontese{%
+ \lccode\string"2019=\string"2019
+ \clubpenalty=3000 \@clubpenalty=3000 \widowpenalty=3000
+ \finalhyphendemerits=50000000
+ \ifpiedmontese@babelshorthands\piedmontese@shorthands\fi
+}
+
+\def\inlineextras@piedmontese{%
+ \lccode\string"2019=\string"2019
+ \ifpiedmontese@babelshorthands\piedmontese@shorthands\fi
+}
+%%% CHANGES END %%%
+% \end{macrocode}
+% \iffalse
+%</gloss-piedmontese.ldf>
%<*gloss-polish.ldf>
% \fi
% \clearpage
@@ -7538,7 +5850,7 @@ Shawwāl\or Dhū ’l-Qaʿda\or Dhū ’l-Ḥijja\fi}
\def\today{\number\day\space\ifcase\month\or
stycznia\or lutego\or marca\or kwietnia\or maja\or czerwca\or
lipca\or sierpnia\or września\or października\or
- listopada\or grudnia\fi
+ listopada\or grudnia\fi\space
\number\year}%
}
@@ -7750,7 +6062,7 @@ Shawwāl\or Dhū ’l-Qaʿda\or Dhū ’l-Ḥijja\fi}
% \declare@shorthand{russian}{">}{»}%
\declare@shorthand{russian}{""}{\hskip\z@skip}%
\declare@shorthand{russian}{"~}{\textormath{\leavevmode\hbox{-}}{-}}%
- \declare@shorthand{russian}{"=}{\nobreak\-\hskip\z@skip}%
+ \declare@shorthand{russian}{"=}{\nobreak-\hskip\z@skip}%
\declare@shorthand{russian}{"|}{\textormath{\nobreak\discretionary{-}{}{\kern.03em}\allowhyphens}{}}%
\declare@shorthand{russian}{"-}{%
\def\russian@sh@tmp{%
@@ -8367,7 +6679,7 @@ Shawwāl\or Dhū ’l-Qaʿda\or Dhū ’l-Ḥijja\fi}
\def\ccname{Kopije}%
\def\headtoname{Prejme}%
\def\proofname{Dokaz}%
- \def\glossaryname{Glosar}% <-- CHECK!
+ \def\glossaryname{Slovar}%
}
\def\dateslovenian{%
@@ -8423,7 +6735,7 @@ Shawwāl\or Dhū ’l-Qaʿda\or Dhū ’l-Ḥijja\fi}
\def\today{\number\day~de~\ifcase\month\or
enero\or febrero\or marzo\or abril\or mayo\or junio\or
julio\or agosto\or septiembre\or octubre\or noviembre\or
- diciembre\fi\space \number\year}%
+ diciembre\fi\space de~\number\year}%
}
% \end{macrocode}
@@ -8919,6 +7231,152 @@ Shawwāl\or Dhū ’l-Qaʿda\or Dhū ’l-Ḥijja\fi}
% \end{macrocode}
% \iffalse
%</gloss-thai.ldf>
+%<*gloss-tibetan.ldf>
+% \fi
+% \clearpage
+%
+% \subsection{gloss-tibetan.ldf}
+% \begin{macrocode}
+\ProvidesFile{gloss-tibetan.ldf}[polyglossia: module for tibetan]
+%% Copyright 2013 Elie Roux
+%% Under the CC0 license <http://creativecommons.org/publicdomain/zero/1.0/>
+%%
+%% A good font to make tests is \newfontfamily\tibetanfont{Tibetan Machine Uni}
+%%
+
+\PolyglossiaSetup{tibetan}{
+ script=Tibetan,
+ scripttag=tibt,
+ hyphennames={nohyphenation},
+ fontsetup=true
+ %TODO localalph={xxx@alph,xxx@Alph}
+ %TODO localdigits=tibetannumber
+}
+
+\newif\if@tibetan@numerals
+\def\tmp@tibetan{tibetan}
+\define@key{tibetan}{numerals}[tibetan]{%
+ \def\@tmpa{#1}%
+ \ifx\@tmpa\tmp@tibetan\@tibetan@numeralstrue\else
+ \@tibetan@numeralsfalse\fi
+}
+
+\setkeys{tibetan}{numerals}
+
+% some are known, but very few
+% a few come from "Standardizing Tibetan Terms of Information Technology"
+% from the China Tibetology Research Center
+\def\captionstibetan{%
+ %\def\refname{}%
+ \def\abstractname{གནད་བསྡུས།}%
+ \def\bibname{དཔེ་ཆའི་ཐོ་གཞུང་།}% or dpe deb kyi re'u mig?
+ \def\prefacename{དཔེ་དེབ་ཀྱི་གླེང་བརྗོད།}% or gleng brjod 'god pa or ngo sprod?
+ \def\chaptername{ལེའུ་}%
+ \def\appendixname{ཞར་བྱུང་།}%
+ \def\contentsname{དཀར་ཆག།}%
+ %\def\listfigurename{}%
+ %\def\listtablename{}%
+ \def\indexname{གསུལ་བྱང་།}%
+ \def\figurename{པར་རིས་}% or dpe ris?
+ \def\tablename{རེའུ་མིག་}%
+ %\def\thepart{}%
+ \def\partname{ཆ་ཤས་}%
+ \def\pagename{ཤོག་}%
+ %\def\seename{}%
+ %\def\alsoname{}%
+ %\def\enclname{}%
+ \def\ccname{འདྲ་བཤུས་ལེན་མཁན་}%
+ %\def\headtoname{}%
+ \def\proofname{བདེན་དཔང་།}% not sure about this one...
+ \def\glossaryname{མིང་ཚིག་རེའུ་མིག།}%
+}
+\def\datetibetan{%
+ \def\tibetan@month{%
+ \ifcase\month\or
+ ཟླ་དང་པོ\or ཟླ་གཉིས་པ\or ཟླ་གསུམ་པ%
+ \or ཟླ་བཞི་པ\or ཟླ་ལྔ་པ\or ཟླ་དྲུག་པ\or ཟླ་བདུན་པ%
+ \or ཟླ་བརྒྱད་པ\or ཟླ་དགུ་པ\or ཟླ་བཆུ་པ\or ཟླ་བཆུ་གཅིག་པ\or ཟླ་བཆུ་གཉིས་པ\fi}%
+ \def\tibetan@daynum{%
+ \ifcase\day\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 སུམ་ཆུ་པ%
+ \or སུམ་ཆུ་སོ་གཅིག་པ\fi}%
+ % As we use gregorian calendar, it's better to stick with spyi lo
+ %\newcount\tibetan@year%
+ %\tibetan@year=\year%
+ %\advance\tibetan@year by 127% this is bod rgyal lo, the most common, but there are others...
+ % I'm not sure the / character is in most tibetan fonts
+ %\def\today{\tibetannumber\day /\tibetannumber\day /\tibetannumber\year}%
+ \def\today{\tibetannumber\day །\tibetannumber\month །\tibetannumber\year}%
+ % this is more litterate, but longer
+ %\def\today{སྤྱི་ལོ་\tibetannumber\year ་སྤྱི་\tibetan@month{}་ད་རེས་\tibetan@daynum{}།}%
+}
+
+\def\tibetandigits#1{\expandafter\@tibetan@digits #1@}
+\def\@tibetan@digits#1{%
+ \ifx @#1% then terminate
+ \else
+ \ifx0#1༠\else\ifx1#1༡\else\ifx2#1༢\else\ifx3#1༣\else\ifx4#1༤\else\ifx5#1༥\else\ifx6#1༦\else\ifx7#1༧\else\ifx8#1༨\else\ifx9#1༩\else#1\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
+ \expandafter\@tibetan@digits
+ \fi
+}
+
+\def\tibetannumber#1{%
+ \if@tibetan@numerals
+ \tibetandigits{\number#1}%
+ %%{\protect\addfontfeature{Mapping=tibetandigits}\protect\number#1}
+ \else
+ \number#1%
+ %%{\protect\reset@font\number#1}
+ \fi}
+
+\def\@tibetanalph#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}{@tibetanalph}\fi}
+\def\tibetanAlph#1{\expandafter\@tibetanAlph\csname c@#1\endcsname}
+\def\@tibetanAlph#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}{@tibetanalph}\fi}
+
+\def\tibetan@numbers{%
+ \let\@latinalph\@alph%
+ \let\@latinAlph\@Alph%
+ \if@tibetan@numerals
+ \let\@alph\@tibetanalph%
+ \let\@Alph\@tibetanAlph%
+ \fi
+}
+\def\notibetan@numbers{%
+ \let\@alph\@latinalph%
+ \let\@Alph\@latinAlph%
+}
+
+\def\tibetan@globalnumbers{%
+ \let\orig@arabic\@arabic%
+ \let\@arabic\tibetannumber%
+ \renewcommand{\thefootnote}{\protect\tibetannumber{\c@footnote}}%
+}
+\def\notibetan@globalnumbers{%
+ \let\@arabic\orig@arabic%
+ \renewcommand\thefootnote{\protect\number{\c@footnote}}%
+}
+
+% copied from Thai, not tested
+
+\def\blockextras@tibetan{%
+ \let\orig@baselinestrech\baselinestretch%
+ \renewcommand{\baselinestretch}{1.2}%
+}
+\def\noblockextras@tibetan{%
+ \let\baselinestrech\orig@baselinestretch%
+}
+
+% \end{macrocode}
+% \iffalse
+%</gloss-tibetan.ldf>
%<*gloss-turkish.ldf>
% \fi
% \clearpage
@@ -9575,6 +8033,311 @@ U+0039 <> U+0E59 ;
% \end{macrocode}
% \iffalse
%</thaidigits.map>
+%<*polyglossia-frpt.lua>
+% \fi
+% \clearpage
+%
+% \subsection{polyglossia-frpt.lua}
+% \begin{macrocode}
+require('polyglossia') -- just in case...
+
+local add_to_callback = luatexbase.add_to_callback
+local remove_from_callback = luatexbase.remove_from_callback
+local priority_in_callback = luatexbase.priority_in_callback
+
+local next, type = next, type
+
+local nodes, fonts, node = nodes, fonts, node
+
+local insert_node_before = node.insert_before
+local insert_node_after = node.insert_after
+local remove_node = nodes.remove
+local end_of_math = node.end_of_math
+local has_attribute = node.has_attribute
+
+-- node types as of April 2013
+local glue_code = 10
+local glue_spec_code= 47
+local glyph_code = 37
+local penalty_code = 12
+local kern_code = 11
+
+-- we make a new node, so that we can copy it later on
+local penalty_node = node.new(penalty_code)
+penalty_node.penalty = 10000
+
+local function get_penalty_node()
+ return node.copy(penalty_node)
+end
+
+-- same for glue node
+local glue_node = node.new(glue_code)
+glue_node.spec = node.new(glue_spec_code)
+
+local function get_glue_node(dim)
+ local n = node.copy(glue_node)
+ n.spec.width = dim
+ return n
+end
+
+-- we have here all possible space characters, referenced by their
+-- unicode slot number, taken from char-def.lua
+local space_chars = {[20]=1, [160]=1, [5760]=1, [6158]=1, [8192]=1, [8193]=1, [8194]=1, [8195]=1,
+ [8196]=1, [8197]=1, [8198]=1, [8199]=1, [8200]=1, [8201]=1, [8202]=1, [8239]=1, [8287]=1, [12288]=1}
+
+-- from nodes-tst.lua, adapted
+local function somespace(n,all)
+ if n then
+ local id = n.id
+ if id == glue_code then
+ return (all or (n.spec.width ~= 0)) and glue_code
+ elseif id == kern_code then
+ return (all or (n.kern ~= 0)) and kern_code
+ elseif id == glyph_code then
+ if space_chars[n.char] then
+ return true
+ else
+ return false
+ end
+ end
+ end
+ return false
+end
+
+-- idem
+local function somepenalty(n,value)
+ if n then
+ local id = n.id
+ if id == penalty_code then
+ if value then
+ return n.penalty == value
+ else
+ return true
+ end
+ end
+ end
+ return false
+end
+
+local xpgfrptattr = luatexbase.attributes['xpg@frpt']
+
+local left=1
+local right=2
+local byte = unicode.utf8.byte
+
+-- Now there is a good question: how do we now, in lua, what a \thinspace is?
+-- In the LaTeX source (ltspace.dtx) it is defined as:
+-- \def\thinspace{\kern .16667em }. I see no way of seeing if it has been
+-- overriden or not... So we stick to this value.
+local thinspace = 0.16667
+-- thickspace is defined in amsmath.sty as:
+-- \renewcommand{\;}{\mspace+\thickmuskip{.2777em}}. Same problem as above, we
+-- stick to this fixed value.
+local thickspace = 0.2777 -- 5/18
+
+local mappings = {
+ [byte(':')] = {left, thickspace}, --really?
+ [byte('!')] = {left, thinspace},
+ [byte('?')] = {left, thinspace},
+ [byte(';')] = {left, thinspace},
+ [byte('‼')] = {left, thinspace},
+ [byte('⁇')] = {left, thinspace},
+ [byte('⁈')] = {left, thinspace},
+ [byte('⁉')] = {left, thinspace},
+ [byte('»')] = {left, thinspace},
+ [byte('>')] = {left, thinspace},
+ [byte('«')] = {right, thinspace},
+ [byte('‹')] = {right, thinspace},
+ }
+
+local function set_spacings(thinsp, thicksp)
+ for _, m in pairs(mappings) do
+ if m[2] == thinspace then
+ m[2] = thinsp
+ elseif m[2] == thickspace then
+ m[2] = thicksp
+ end
+ end
+ thickspace = thicksp
+ thinspace = thinsp
+end
+
+-- from typo-spa.lua
+local function process(head)
+ local done = false
+ local start = head
+ -- head is always begin of par (whatsit), so we have at least two prev nodes
+ -- penalty followed by glue
+ while start do
+ local id = start.id
+ if id == glyph_code then -- 37 is glyph as of 2013/04
+ local attr = has_attribute(start, xpgfrptattr)
+ if attr and attr > 0 then
+ local char = start.char
+ local map = mappings[char]
+ --node.unset_attribute(start, xpgfrptattr) -- needed?
+ if map then
+ local quad = font.fonts[start.font].parameters.quad -- might be optimized
+ local prev = start.prev
+ if map[1] == left and prev then
+ local prevprev = prev.prev
+ local somespace = somespace(prev,true)
+ -- TODO: there is a question here: do we override a preceding space or not?...
+ if somespace then
+ local somepenalty = somepenalty(prevprev,10000)
+ if somepenalty then
+ head = remove_node(head,prev,true)
+ head = remove_node(head,prevprev,true)
+ else
+ head = remove_node(head,prev,true)
+ end
+ end
+ insert_node_before(head,start,get_penalty_node())
+ insert_node_before(head,start,get_glue_node(map[2]*quad))
+ done = true
+ end
+ local next = start.next
+ if map[1] == right and next then
+ local nextnext = next.next
+
+ local somepenalty = somepenalty(next,10000)
+ if somepenalty then
+ local somespace = somespace(nextnext,true)
+ if somespace then
+ head = remove_node(head,next,true)
+ head = remove_node(head,nextnext,true)
+ end
+ else
+ local somespace = somespace(next,true)
+ if somespace then
+ head = remove_node(head,next,true)
+ end
+ end
+ insert_node_after(head,start,get_glue_node(right*quad))
+ insert_node_after(head,start,get_penalty_node())
+ done = true
+ end
+ end
+ end
+ elseif id == math_code then
+ -- warning: this is a feature of luatex > 0.76
+ start = end_of_math(start) -- weird, can return nil .. no math end?
+ end
+ if start then
+ start = start.next
+ end
+ end
+ return head, done
+end
+
+local callback_name = "pre_linebreak_filter"
+
+local function activate()
+ if not priority_in_callback (callback_name, "xpg-frpt.process") then
+ add_to_callback(callback_name, process, "xpg-frpt.process", 1)
+ end
+end
+
+local function desactivate()
+ if priority_in_callback (callback_name, "xpg-frpt.process") then
+ remove_from_callback(callback_name, "xpg-frpt.process")
+ end
+end
+
+polyglossia.activate_frpt = activate
+polyglossia.desactivate_frpt = desactivate
+polyglossia.set_spacings = set_spacings
+polyglossia.thinspace = thinspace
+polyglossia.thickspace = thickpace
+% \end{macrocode}
+% \iffalse
+%</polyglossia-frpt.lua>
+%<*polyglossia.lua>
+% \fi
+% \clearpage
+%
+% \subsection{polyglossia.lua}
+% \begin{macrocode}
+require('luatex-hyphen')
+
+local luatexhyphen = luatexhyphen
+local byte = unicode.utf8.byte
+
+local polyglossia_module = {
+ name = "polyglossia",
+ version = 1.3,
+ date = "2013/05/11",
+ description = "Polyglossia",
+ author = "Elie Roux",
+ copyright = "Elie Roux",
+ license = "CC0"
+}
+
+local error, warning, info, log =
+ luatexbase.provides_module(polyglossia_module)
+
+polyglossia = polyglossia or {}
+local polyglossia = polyglossia
+
+local current_language
+local default_language
+
+local function loadlang(lang, id)
+ if luatexhyphen.lookupname(lang) then
+ luatexhyphen.loadlanguage(lang, id)
+ end
+end
+
+local function select_language(lang, id)
+ loadlang(lang, id)
+ polyglossia.current_language = lang
+end
+
+local function set_default_language(lang, id)
+ polyglossia.default_language = lang
+end
+
+local check_char
+
+if luaotfload and luaotfload.aux and luaotfload.aux.font_has_glyph then
+ local font_has_glyph = luaotfload.aux.font_has_glyph
+ function check_char(chr)
+ local codepoint = tonumber(chr)
+ if not codepoint then codepoint = byte(chr) end
+ if font_has_glyph(font.current(), codepoint) then
+ tex.sprint('1')
+ else
+ tex.sprint('0')
+ end
+ end
+else
+ local ids = fonts.identifiers or fonts.ids or fonts.hashes.identifiers
+ function check_char(chr) -- always in current font
+ local otfdata = ids[font.current()].characters
+ local codepoint = tonumber(chr)
+ if not codepoint then codepoint = byte(chr) end
+ if otfdata and otfdata[codepoint] then
+ tex.print('1')
+ else
+ tex.print('0')
+ end
+ end
+end
+
+local function load_frpt()
+ require('polyglossia-frpt')
+end
+
+polyglossia.loadlang = loadlang
+polyglossia.select_language = select_language
+polyglossia.set_default_language = set_default_language
+polyglossia.current_language = current_language -- doesn't seem to be working well :-(
+polyglossia.default_language = default_language
+polyglossia.check_char = check_char
+polyglossia.load_frpt = load_frpt
+% \end{macrocode}
+% \iffalse
+%</polyglossia.lua>
% \fi
% \clearpage
% \PrintChanges
@@ -9585,14 +8348,16 @@ U+0039 <> U+0E59 ;
¦----------------------------------------------¦
¦ ¦
- ¦ THE POLYGLOSSIA PACKAGE v1.2.1 ¦
+ ¦ THE POLYGLOSSIA PACKAGE v1.3 ¦
¦ ¦
- ¦ Modern multilingual typesetting with XeLaTeX ¦
+ ¦ Modern multilingual typesetting ¦
+ ¦ with XeLaTeX and LuaLaTeX ¦
¦ ¦
¦----------------------------------------------¦
-This package for provides a complete Babel replacement for users of XeLaTeX.
-This version includes support for 68 different languages.
+This package provides a complete Babel replacement for users of XeLaTeX and
+(at an early stage) LuaLaTeX. This version includes support for 74 different
+languages.
Polyglossia makes it possible to automate the following tasks:
@@ -9614,7 +8379,8 @@ Polyglossia makes it possible to automate the following tasks:
Several features of Babel that do not make sense in the XeTeX world (like font
encodings, shorthands, etc) are not supported. For German however, several
-shorthands do make sense and can be activated with the language option babelshorthands=true.
+shorthands do make sense and can be activated with the language option
+babelshorthands=true.
Polyglossia is distributed in the traditional way with *.dtx and *.ins files,
and also comes with a TDS-conformant ready-to-unpack zip file.
@@ -9635,6 +8401,12 @@ http://github.com/reutenauer/polyglossia/issues
CHANGES
+1.3 (11-05-2013)
+ * Several bugfixes.
+ * Sync with Babel 3.9.
+ * Added support for LuaTeX.
+ * Added support for Tibetan (end of lines are experimental).
+
1.2.0e (28-04-2012)
* Fixed a number of outstanding and not very interesting bugs.
* Added gloss files for Romansh and Friulan, contributed by Claudio
@@ -9787,16 +8559,6 @@ CHANGES
1.0
* Initial release on CTAN
-
-
- ------------------------------
- Arthur Reutenauer, April 2012
- <arthur 'dot' reutenauer 'at' normalesup 'dot' org>
-
- Original author:
- François Charette
- <firmicus ατ gmx δοτ net>
- ------------------------------
%</README>
%<*examples.tex>
\documentclass[a4paper]{article}
@@ -9812,15 +8574,15 @@ CHANGES
\setotherlanguage[spelling=new,latesthyphen=true,babelshorthands=true]{german}
\setotherlanguages{latin,russian,turkish,polish,latvian,sanskrit,ukrainian,farsi,syriac,divehi,hebrew,amharic}
\setotherlanguage[calendar=gregorian,numerals=western]{urdu}
-\setromanfont{Linux Libertine O}
-\defaultfontfeatures{Scale=MatchLowercase,RawFeature={+locl}}
+\setmainfont{Linux Libertine O}
+\defaultfontfeatures{Scale=MatchLowercase}
\setmonofont{Inconsolata}
-\newfontfamily\arabicfont[Script=Arabic]{Scheherazade}%
+\newfontfamily\arabicfont[Script=Arabic]{Amiri}
\newfontfamily\syriacfont[Script=Syriac]{Serto Jerusalem}
-\newfontfamily\hebrewfont[Script=Hebrew]{David CLM}
+\newfontfamily\hebrewfont[Script=Hebrew]{Ezra SIL}
\newfontfamily\sanskritfont[Script=Devanagari]{Sanskrit 2003}
-\newfontfamily\thaifont[Script=Thai]{Norasi}%{Arial Unicode MS}
-\newfontfamily\thaanafont[Script=Thaana,WordSpace=2]{TITUS Cyberbit Basic}%this font does not have OT script tags, but it still seems to work
+\newfontfamily\thaifont[Script=Thai]{Norasi}
+\newfontfamily\thaanafont[Script=Thaana,WordSpace=2]{FreeSerif}
\newfontfamily\ethiopicfont[Script=Ethiopic]{Abyssinica SIL}
\parskip 1.33\baselineskip
%\newcommand\showhyphmin{\fbox{\the\lefthyphenmin\ \the\righthyphenmin}}
@@ -9941,9 +8703,9 @@ Quamquam sermone nativo fungi desinit, cumque nostris diebus perpauci Latine loq
\documentclass[a4paper]{book}%
\usepackage[no-math]{fontspec}
\usepackage{xltxtra,url,amsmath}
-\setromanfont{Linux Libertine O}
+\setmainfont{Linux Libertine O}
\defaultfontfeatures{Scale=MatchLowercase}
-\newfontfamily\arabicfont[Script=Arabic,Scale=1.3]{Scheherazade}%
+\newfontfamily\arabicfont[Script=Arabic]{Amiri}%
\newfontfamily\arabicfonttt[Script=Arabic,Scale=.75]{DejaVu Sans Mono}
\newfontfamily\farsifont[Script=Arabic,Scale=1.1,WordSpace=2]{IranNastaliq}
\usepackage[quiet,nolocalmarks]{polyglossia}
@@ -10052,10 +8814,7 @@ x^\text{مال مال}
\usepackage{polyglossia}
\setdefaultlanguage[numerals=thai]{thai}
\setotherlanguage{english}
-\setromanfont{Norasi}
-\defaultfontfeatures{Scale=MatchLowercase}
-\setmonofont{Inconsolata}
-\setsansfont{Lucida Sans Unicode}
+\setmainfont{Norasi}
\begin{document}
\begin{center}
\abstractname
@@ -10112,9 +8871,9 @@ This is today: \today
% \typeout{*************************************************************}
% \typeout{*}
% \typeout{* To finish the installation you have to move the following}
-% \typeout{* file into a directory searched by XeTeX:}
+% \typeout{* file into a directory searched by TeX:}
% \typeout{*}
-% \typeout{* \space\space\space all *.sty, *.def and *.ldf files}
+% \typeout{* \space\space\space all *.sty, *.lua, *.def and *.ldf files}
% \typeout{*}
% \typeout{* You also need to compile the *.map files with teckit_compile}
% \typeout{* and place the resulting *.tec files under}