[latex3-commits] [git/LaTeX3-latex3-babel] master: \babeladjust (for #14). el-polyton. Lang/Script for zh, ko. (6774487)

Javier jbezos at dante.de
Mon Nov 4 18:39:57 CET 2019


Repository : https://github.com/latex3/babel
On branch  : master
Link       : https://github.com/latex3/babel/commit/6774487bc8e7bed9d881e8f4c636c703d0770f7e

>---------------------------------------------------------------

commit 6774487bc8e7bed9d881e8f4c636c703d0770f7e
Author: Javier <jbezos at localhost>
Date:   Mon Nov 4 18:39:57 2019 +0100

    \babeladjust (for #14). el-polyton. Lang/Script for zh, ko.
    
    * el-polyton.ini contributed by C. Beccari


>---------------------------------------------------------------

6774487bc8e7bed9d881e8f4c636c703d0770f7e
 README.md                                          |  11 +-
 babel.dtx                                          | 208 ++++++++++++++++-----
 babel.ins                                          |   2 +-
 babel.pdf                                          | Bin 702531 -> 708024 bytes
 bbcompat.dtx                                       |   2 +-
 locale/el/babel-el-polyton.ini                     | 180 ++++++++++++++++++
 .../babel-polytonicgreek.tex}                      |   2 +-
 locale/ko/babel-ko.ini                             |   5 +-
 locale/zh/babel-zh-Hans-HK.ini                     |   6 +-
 locale/zh/babel-zh-Hans-MO.ini                     |   6 +-
 locale/zh/babel-zh-Hans-SG.ini                     |   7 +-
 locale/zh/babel-zh-Hans.ini                        |   6 +-
 locale/zh/babel-zh-Hant-HK.ini                     |   6 +-
 locale/zh/babel-zh-Hant-MO.ini                     |   6 +-
 locale/zh/babel-zh-Hant.ini                        |   6 +-
 locale/zh/babel-zh.ini                             |   7 +-
 samples/harf-fa-ml.pdf                             | Bin 42196 -> 0 bytes
 samples/harf-farsi-malayalam.pdf                   | Bin 0 -> 39076 bytes
 .../{harf-fa-ml.tex => harf-farsi-malayalam.tex}   |   0
 samples/lua-polygreek.pdf                          | Bin 0 -> 20464 bytes
 samples/lua-polygreek.tex                          |  65 +++++++
 21 files changed, 459 insertions(+), 66 deletions(-)

diff --git a/README.md b/README.md
index d0aa434..cecd26a 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-## Babel 3.35
+## Babel 3.35.1815
 
 This package manages culturally-determined typographical (and other)
 rules, and hyphenation patterns for a wide range of languages.  Many
@@ -51,6 +51,15 @@ respective authors.
 ### Latest changes
 
 ```
+3.36   2019-??-??
+       - New \babeladjust, with options: bidi.text, bidi.mirroring,
+         bidi.mapdigits, layout.tabular, layout.lists, linebreak.sea,
+         linebreak.cjk. There are still
+         some limitations.
+       - New ini for Ancient Greek, thanks to Claudio Beccari.
+       - Fix - Language and script set for Chinese Tradicional and
+         Chinese Simplified.
+       
 3.35   2019-10-15
        - \markboth and \markright made robust with a recent LaTeX.
        - Shorthands work in bibs and refs even with safe=none.
diff --git a/babel.dtx b/babel.dtx
index 398c5e4..eb040d7 100644
--- a/babel.dtx
+++ b/babel.dtx
@@ -31,7 +31,7 @@
 %
 % \iffalse
 %<*filedriver>
-\ProvidesFile{babel.dtx}[2019/10/15 v3.35 The Babel package]
+\ProvidesFile{babel.dtx}[2019/11/04 v3.35.1815 The Babel package]
 \documentclass{ltxdoc}
 \GetFileInfo{babel.dtx}
 \usepackage{fontspec}
@@ -1235,16 +1235,14 @@ for auxiliary tasks).
 \end{verbatim}
 \endgroup
   Khemer clusters are rendered wrongly.
-\item[East Asia scripts] Internal inconsistencies in script and
-  language names must be sorted out, so you may need to set them
-  explicitly in |\babelfont|, as well as |CJKShape|. \luatex{} does
-  basic line breaking, but currently \xetex{} does not (you may load
-  \textsf{zhspacing}). Although for a few words and shorts texts the
-  |ini| files should be fine, CJK texts are are best set with a
-  dedicated framework (\textsf{CJK}, \textsf{luatexja}, \textsf{kotex},
-  \textsf{CTeX}...), . Actually, this is what the |ldf| does in
-  |japanese| with \luatex, because the following piece of code loads 
-  \textsf{luatexja}:
+\item[East Asia scripts] Settings for either Simplified of Tradicional
+should work out of the box. \luatex{} does basic line breaking, but
+currently \xetex{} does not (you may load \textsf{zhspacing}). Although
+for a few words and shorts texts the |ini| files should be fine, CJK
+texts are best set with a dedicated framework (\textsf{CJK},
+\textsf{luatexja}, \textsf{kotex}, \textsf{CTeX}, etc.). Actually, this
+is what the |ldf| does in |japanese| with \luatex, because the
+following piece of code loads \textsf{luatexja}:
 \begin{verbatim}
 \documentclass{ltjbook}
 \usepackage[japanese]{babel}
@@ -2081,10 +2079,13 @@ existing language, too, as explained in the previous subsection).
 \Describe{\babelprovide}{\oarg{options}\marg{language-name}}
 
 If the language |\marg{language-name}| has not been defined and there
-are no options, it creates an “empty” one in the following way: defines
-the internal structure of the language with some defaults: the hyphen
-rules, if not available, are set to the current ones, left and right
-hyphen mins are set to 2 and 3, but captions and date are not defined.
+are no options, it creates lan “empty” one in the following way: define
+the internal structure of the language with some defaults: if there is
+an |ini| file, read some basic parameters (language, script,
+hyphenrules...), which you can modify; if not, the hyphen rules, if not
+available, are set to the current ones, left and right hyphen mins are
+set to 2 and 3. In either case, captions and date are not defined.
+
 Conveniently, some options allow to fill the language, and \babel{}
 warns you about what to do if there is a missing string. Very likely
 you will find alerts like that in the |log| file:
@@ -3006,6 +3007,20 @@ For example:
 This command is allowed only in vertical mode (the preamble or between
 paragraphs).
 
+\subsection{Tweaking some features}
+
+\Describe{\babeladjust}{\marg{key-value-list}}
+
+\New{3.36} Sometimes you might need to disable some \textsc{babel}
+features. Currently this macro understands the following keys (and only
+for \textsf{luatex}), with values |on| or |off|: |bidi.text|,
+|bidi.mirroring|, |bidi.mapdigits|, |layout.lists|, |layout.tabular|,
+|linebreak.sea|, |linebreak.cjk|. For example, you can set
+|\babeladjust{bidi.text=off}| if you are using an alternative algorithm
+or with large sections not requiring it. Use with care, because these
+options do not deactive other related options (like paragraph direction
+with |bidi.text|).
+
 \subsection{Tips, workarounds, known issues and notes}
 
 \begin{itemize}
@@ -4073,8 +4088,8 @@ help from Bernd Raichle, for which I am grateful.
 % \section{Tools}
 %
 %    \begin{macrocode}
-%<<version=3.35>>
-%<<date=2019/10/15>>
+%<<version=3.35.1815>>
+%<<date=2019/11/04>>
 %    \end{macrocode}
 %
 % \textbf{Do not use the following macros in \texttt{ldf} files. They
@@ -8122,18 +8137,19 @@ help from Bernd Raichle, for which I am grateful.
   % execute some code depending on them. But what about if nothing was
   % imported? We just load the very basic parameters: ids and a few
   % more. 
-  \bbl at ifunset{bbl at lname@#2}%
-    {\def\BabelBeforeIni##1##2{%
-       \begingroup
-         \catcode`\[=12 \catcode`\]=12 \catcode`\==12 %
-         \let\bbl at ini@captions at aux\@gobbletwo
-         \def\bbl at inidate ####1.####2.####3.####4\relax ####5####6{}%
-         \bbl at read@ini{##1}%
-         \bbl at exportkey{chrng}{characters.ranges}{}%
-         \bbl at exportkey{dgnat}{numbers.digits.native}{}%
-       \endgroup}%           boxed, to avoid extra spaces:
-     {\setbox\z@\hbox{\InputIfFileExists{babel-#2.tex}{}{}}}}%
-    {}%
+  % THIS ADDITION IN 3.30 IS WRONG!!
+%   \bbl at ifunset{bbl at lname@#2}%
+%     {\def\BabelBeforeIni##1##2{%
+%        \begingroup
+%          \catcode`\[=12 \catcode`\]=12 \catcode`\==12 %
+%          \let\bbl at ini@captions at aux\@gobbletwo
+%          \def\bbl at inidate ####1.####2.####3.####4\relax ####5####6{}%
+%          \bbl at read@ini{##1}%
+%          \bbl at exportkey{chrng}{characters.ranges}{}%
+%          \bbl at exportkey{dgnat}{numbers.digits.native}{}%
+%        \endgroup}%           boxed, to avoid extra spaces:
+%      {\setbox\z@\hbox{\InputIfFileExists{babel-#2.tex}{}{}}}}%
+%     {}%
   % -
   % Override script and language names with script= and language=
   \ifx\bbl at KVP@script\@nil\else
@@ -8530,10 +8546,14 @@ help from Bernd Raichle, for which I am grateful.
 %    \begin{macrocode}
 \let\bbl at inikv@identification\bbl at inikv
 \def\bbl at secpost@identification{%
-  \bbl at exportkey{lname}{identification.name.english}{}%
+  \bbl at ifunset{bbl@@kv at identification.name.opentype}%
+    {\bbl at exportkey{lname}{identification.name.english}{}}%
+    {\bbl at exportkey{lname}{identification.name.opentype}{}}%
   \bbl at exportkey{lbcp}{identification.tag.bcp47}{}%
   \bbl at exportkey{lotf}{identification.tag.opentype}{dflt}%
-  \bbl at exportkey{sname}{identification.script.name}{}%
+  \bbl at ifunset{bbl@@kv at identification.script.name.opentype}%
+    {\bbl at exportkey{sname}{identification.script.name}{}}%
+    {\bbl at exportkey{sname}{identification.script.name.opentype}{}}%
   \bbl at exportkey{sbcp}{identification.script.tag.bcp47}{}%
   \bbl at exportkey{sotf}{identification.script.tag.opentype}{DFLT}}
 \let\bbl at inikv@typography\bbl at inikv
@@ -8734,7 +8754,68 @@ help from Bernd Raichle, for which I am grateful.
   {\setbox\z@\hbox{\InputIfFileExists{babel-#1.tex}{}{}}}}
 %    \end{macrocode}
 %
-% \section{The kernel of Babel (\texttt{babel.def}, only \LaTeX)}
+% \section{Adjusting the Babel bahavior}
+%
+% A generic high level inteface is provided to adjust some global
+% and general settings.
+%
+%    \begin{macrocode}
+\newcommand\babeladjust[1]{%  TODO. Error handling.
+  \bbl at forkv{#1}{\@nameuse{bbl at ADJ@##1@##2}}}
+%
+\def\bbl at adjust@lua#1#2{%
+  \ifvmode
+    \ifnum\currentgrouplevel=\z@
+      \directlua{ Babel.#2 }%
+      \expandafter\expandafter\expandafter\@gobble
+    \fi
+  \fi      
+  {\bbl at error   % The error is gobbled if everything went ok.
+     {Currently, #1 related features can be adjusted only\\%
+      in the main vertical list.}%
+     {Maybe things change in the future, but this is what it is.}}}
+\@namedef{bbl at ADJ@bidi.mirroring at on}{%
+  \bbl at adjust@lua{bidi}{mirroring_enabled=true}}
+\@namedef{bbl at ADJ@bidi.mirroring at off}{%
+  \bbl at adjust@lua{bidi}{mirroring_enabled=false}}
+\@namedef{bbl at ADJ@bidi.text at on}{%
+  \bbl at adjust@lua{bidi}{bidi_enabled=true}}
+\@namedef{bbl at ADJ@bidi.text at off}{%
+  \bbl at adjust@lua{bidi}{bidi_enabled=false}}
+\@namedef{bbl at ADJ@bidi.mapdigits at on}{%
+  \bbl at adjust@lua{bidi}{digits_mapped=true}}
+\@namedef{bbl at ADJ@bidi.mapdigits at off}{%
+  \bbl at adjust@lua{bidi}{digits_mapped=false}}
+%
+\@namedef{bbl at ADJ@linebreak.sea at on}{%
+  \bbl at adjust@lua{linebreak}{sea_enabled=true}}
+\@namedef{bbl at ADJ@linebreak.sea at off}{%
+  \bbl at adjust@lua{linebreak}{sea_enabled=false}}
+\@namedef{bbl at ADJ@linebreak.cjk at on}{%
+  \bbl at adjust@lua{linebreak}{cjk_enabled=true}}
+\@namedef{bbl at ADJ@linebreak.cjk at off}{%
+  \bbl at adjust@lua{linebreak}{cjk_enabled=false}}
+%
+\def\bbl at adjust@layout#1{%
+  \ifvmode
+    #1%
+    \expandafter\@gobble
+  \fi
+  {\bbl at error   % The error is gobbled if everything went ok.
+     {Currently, layout related features can be adjusted only\\%
+      in vertical mode.}%
+     {Maybe things change in the future, but this is what it is.}}}
+\@namedef{bbl at ADJ@layout.tabular at on}{%
+  \bbl at adjust@layout{\let\@tabular\bbl at NL@@tabular}}
+\@namedef{bbl at ADJ@layout.tabular at off}{%
+  \bbl at adjust@layout{\let\@tabular\bbl at OL@@tabular}}
+\@namedef{bbl at ADJ@layout.lists at on}{%
+  \bbl at adjust@layout{\let\list\bbl at NL@list}}
+\@namedef{bbl at ADJ@layout.lists at on}{%
+  \bbl at adjust@layout{\let\list\bbl at OL@list}}
+%    \end{macrocode}
+%
+% \section{The kernel of Babel (\texttt{babel.def} for \LaTeX only)}
 %
 % \subsection{The redefinition of the style commands}
 %
@@ -11677,7 +11758,7 @@ help from Bernd Raichle, for which I am grateful.
 \fi
 \IfBabelLayout{lists}
   {\bbl at sreplace\list
-    {\@totalleftmargin\leftmargin}{\@totalleftmargin\bbl at listleftmargin}%
+     {\@totalleftmargin\leftmargin}{\@totalleftmargin\bbl at listleftmargin}%
    \def\bbl at listleftmargin{%
      \ifcase\bbl at thepardir\leftmargin\else\rightmargin\fi}%
    \ifcase\bbl at engine
@@ -12441,15 +12522,17 @@ help from Bernd Raichle, for which I am grateful.
 \IfBabelLayout{tabular}
   {\let\bbl at OL@@tabular\@tabular
    \bbl at replace\@tabular{$}{\bbl at nextfake$}%
-   \let\bbl at tabular\@tabular
+   \let\bbl at NL@@tabular\@tabular
    \AtBeginDocument{%
-     \ifx\bbl at tabular\@tabular\else
+     \ifx\bbl at NL@@tabular\@tabular\else
        \bbl at replace\@tabular{$}{\bbl at nextfake$}%
+       \let\bbl at NL@@tabular\@tabular
      \fi}}
    {}
 \IfBabelLayout{lists}
   {\let\bbl at OL@list\list
    \bbl at sreplace\list{\parshape}{\bbl at listparshape}%
+   \let\bbl at NL@list\list
    \def\bbl at listparshape#1#2#3{%
      \parshape #1 #2 #3 %
      \ifnum\bbl at getluadir{page}=\bbl at getluadir{par}\else
@@ -12540,8 +12623,20 @@ help from Bernd Raichle, for which I am grateful.
 %   are `on'.}
 %
 % The file \textsf{babel-data-bidi.lua} currently only contains data. It is
-% a large and boring file and it's not shown here. See the generated
-% file.
+% a large and boring file and it's not shown here (see the generated file),
+% but here is a sample:
+%\begin{verbatim}
+% [0x25]={d='et'},
+% [0x26]={d='on'},
+% [0x27]={d='on'},
+% [0x28]={d='on', m=0x29},
+% [0x29]={d='on', m=0x28},
+% [0x2A]={d='on'},
+% [0x2B]={d='es'},
+% [0x2C]={d='cs'},
+%\end{verbatim}
+% For the meaning of these codes, see the Unicode standard.
+%
 %\iffalse
 %    \begin{macrocode}
 %<*bididata>
@@ -12549,8 +12644,6 @@ help from Bernd Raichle, for which I am grateful.
 
 Babel = Babel or {}
 
--- TODO: merge ranges into characters, as meta index
-
 Babel.ranges={
  {0x0590, 0x05FF, 'r'},
  {0x0600, 0x07BF, 'al'},
@@ -12569,7 +12662,7 @@ Babel.ranges={
  {0x100000, 0x10FFFD, 'on'} -- PUA
 }
 
-Babel.characters={
+Babel.bidi_props={
  [0x0]={d='bn'},
  [0x1]={d='bn'},
  [0x2]={d='bn'},
@@ -18628,6 +18721,26 @@ Babel.characters={
  [0xE007E]={d='bn'},
  [0xE007F]={d='bn'}
 }
+
+Babel.characters = setmetatable ( Babel.bidi_props, {
+  __index = function(_, k)
+    if (k >= 0x0590   and k <= 0x05FF)   then return {d='r'}  end
+    if (k >= 0x0600   and k <= 0x07BF)   then return {d='al'} end
+    if (k >= 0x07C0   and k <= 0x085F)   then return {d='r'}  end
+    if (k >= 0x0860   and k <= 0x086F)   then return {d='al'} end
+    if (k >= 0x08A0   and k <= 0x08FF)   then return {d='al'} end
+    if (k >= 0xE000   and k <= 0xF8FF)   then return {d='on'} end -- PUA
+    if (k >= 0xFB1D   and k <= 0xFB4F)   then return {d='r'}  end
+    if (k >= 0xFB50   and k <= 0xFDFF)   then return {d='al'} end
+    if (k >= 0xFE70   and k <= 0xFEFF)   then return {d='al'} end
+    if (k >= 0x10800  and k <= 0x10C4F)  then return {d='r'}  end
+    if (k >= 0x1E800  and k <= 0x1E8DF)  then return {d='r'}  end
+    if (k >= 0x1E900  and k <= 0x1E95F)  then return {d='r'}  end
+    if (k >= 0x1F300  and k <= 0x1F9FF)  then return {d='on'} end
+    if (k >= 0xF0000  and k <= 0xFFFFD)  then return {d='on'} end -- PUA
+    if (k >= 0x100000 and k <= 0x10FFFD) then return {d='on'} end -- PUA
+  end })
+  
 %</bididata>
 %    \end{macrocode}
 %\fi
@@ -18650,7 +18763,7 @@ Babel.characters={
 % \end{quote}
 %
 % Well, it took me some time to guess what the batch rules in UAX\#9
-% actually mean (in other word, \textit{what} they do and\textit{why},
+% actually mean (in other word, \textit{what} they do and \textit{why},
 % and not only \textit{how}), but I think (or I hope) I've managed to
 % understand them.
 %
@@ -19335,7 +19448,18 @@ end
 %
 % \section{Data for CJK}
 %
-% It is a boring file and it's not shown here. See the generated file.
+% It is a boring file and it's not shown here (see the generated file),
+% but here is a sample:
+%\begin{verbatim}
+% [0x0021]={c='ex'},
+% [0x0024]={c='pr'},
+% [0x0025]={c='po'},
+% [0x0028]={c='op'},
+% [0x0029]={c='cp'},
+% [0x002B]={c='pr'},
+%\end{verbatim}
+% For the meaning of these codes, see the Unicode standard.
+%
 %\iffalse
 %    \begin{macrocode}
 %<*cjkdata>
diff --git a/babel.ins b/babel.ins
index f8a7dbb..787498c 100644
--- a/babel.ins
+++ b/babel.ins
@@ -26,7 +26,7 @@
 %% and covered by LPPL is defined by the unpacking scripts (with
 %% extension .ins) which are part of the distribution.
 %%
-\def\filedate{2019/10/15}
+\def\filedate{2019/11/04}
 \def\batchfile{babel.ins}
 \input docstrip.tex
 
diff --git a/babel.pdf b/babel.pdf
index fe5f5e8..7a85f32 100644
Binary files a/babel.pdf and b/babel.pdf differ
diff --git a/bbcompat.dtx b/bbcompat.dtx
index 2692f30..82a1c9f 100644
--- a/bbcompat.dtx
+++ b/bbcompat.dtx
@@ -30,7 +30,7 @@
 %
 % \iffalse
 %<*dtx>
-\ProvidesFile{bbcompat.dtx}[2019/10/15 v3.35]
+\ProvidesFile{bbcompat.dtx}[2019/11/04 v3.35.1815]
 %</dtx>
 %
 %% File 'bbcompat.dtx'
diff --git a/locale/el/babel-el-polyton.ini b/locale/el/babel-el-polyton.ini
new file mode 100644
index 0000000..79dea94
--- /dev/null
+++ b/locale/el/babel-el-polyton.ini
@@ -0,0 +1,180 @@
+; This file is part of babel. For further details see:
+;   https://www.ctan.org/pkg/babel
+; This file has been contributed by Claudio Beccari
+
+[identification]
+charset             = utf8
+version             = 0.1
+date                = 2010-10-01
+name.local          = Ἐλληνικά
+; Name from https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry
+name.english        = Polytonic Greek
+name.babel          = greek
+tag.bcp47           = el-polyton
+tag.opentype        = PGR
+script.name         = Greek
+script.tag.bcp47    = Grek
+script.tag.opentype = grek
+level               = 1
+encodings           = LGR
+derivate            = no
+
+[captions]
+preface    = Πρόλογος
+ref        = Ἀναφορές
+abstract   = Περίληψη
+bib        = Βιβλιογραφία
+chapter    = Κεφάλαιο
+appendix   = Παράρτημα
+contents   = Περιεχόμενα
+listfigure = Κατάλογος Σχημάτων
+listtable  = Κατάλογος Πινάκων
+index      = Εὑρετήριο
+figure     = Σχῆμα
+table      = Πίνακας
+part       = Μέρος
+encl       = Συνημμένα
+cc         = Κοινοποίηση
+headto     = Πρὸς
+page       = Σελίδα
+see        = βλέπε
+also       = βλέπε ἐπίσης
+proof      = Ἀπόδειξη
+glossary   = Γλωσσάρι
+
+[captions.licr]
+preface    = \textPi\textrho\'\textomicron\textlambda\textomicron\textgamma\textomicron\textvarsigma
+ref        = \accpsili\textAlpha\textnu\textalpha\textphi\textomicron\textrho\'\textepsilon\textvarsigma
+abstract   = \textPi\textepsilon\textrho\'\textiota\textlambda\texteta\textpsi\texteta
+bib        = \textBeta\textiota\textbeta\textlambda\textiota\textomicron\textgamma\textrho\textalpha\textphi\'\textiota\textalpha
+chapter    = \textKappa\textepsilon\textphi\'\textalpha\textlambda\textalpha\textiota\textomicron
+appendix   = \textPi\textalpha\textrho\'\textalpha\textrho\texttau\texteta\textmu\textalpha
+contents   = \textPi\textepsilon\textrho\textiota\textepsilon\textchi\'\textomicron\textmu\textepsilon\textnu\textalpha
+listfigure = \textKappa\textalpha\texttau\'\textalpha\textlambda\textomicron\textgamma\textomicron\textvarsigma\space \textSigma\textchi\texteta\textmu\'\textalpha\texttau\textomega\textnu
+listtable  = \textKappa\textalpha\texttau\'\textalpha\textlambda\textomicron\textgamma\textomicron\textvarsigma\space \textPi\textiota\textnu\'\textalpha\textkappa\textomega\textnu
+index      = \textEpsilon\accdasia\textupsilon\textrho\textepsilon\texttau\'\texteta\textrho\textiota\textomicron
+figure     = \textSigma\textchi\'\texteta\textmu\textalpha
+table      = \textPi\'\textiota\textnu\textalpha\textkappa\textalpha\textvarsigma
+part       = \textMu\'\textepsilon\textrho\textomicron\textvarsigma
+encl       = \textSigma\textupsilon\textnu\texteta\textmu\textmu\'\textepsilon\textnu\textalpha
+cc         = \textKappa\textomicron\textiota\textnu\textomicron\textpi\textomicron\'\textiota\texteta\textsigma\texteta
+headto     = \textPi\textrho\textomicron\textvarsigma
+page       = \textSigma\textepsilon\textlambda\'\textiota\textdelta\textalpha
+see        = \textbeta\textlambda\'\textepsilon\textpi\textepsilon
+also       = \textbeta\textlambda\'\textepsilon\textpi\textepsilon\space \>\textepsilon\textpi\'\textiota\textsigma\texteta\textvarsigma
+proof      = \>\textAlpha\textpi\'\textomicron\textdelta\textepsilon\textiota\textxi\texteta
+glossary   = \textGamma\textlambda\textomega\textsigma\textsigma\'\textalpha\textrho\textiota
+
+[date.gregorian]
+date.long            = [d] [MMMM] [y]
+date.short           = [d]/[M]/[yy]
+months.wide.1        = Ἰανουαρίου
+months.wide.2        = Φεβρουαρίου
+months.wide.3        = Μαρτίου
+months.wide.4        = Ἀπριλίου
+months.wide.5        = Μαΐου
+months.wide.6        = Ἰουνίου
+months.wide.7        = Ἰουλίου
+months.wide.8        = Αὐγούστου
+months.wide.9        = Σεπτεμβρίου
+months.wide.10       = Ὀκτωβρίου
+months.wide.11       = Νοεμβρίου
+months.wide.12       = Δεκεμβρίου
+months.narrow.1      = Ι
+months.narrow.2      = Φ
+months.narrow.3      = Μ
+months.narrow.4      = Α
+months.narrow.5      = Μ
+months.narrow.6      = Ι
+months.narrow.7      = Ι
+months.narrow.8      = Α
+months.narrow.9      = Σ
+months.narrow.10     = Ο
+months.narrow.11     = Ν
+months.narrow.12     = Δ
+days.wide.mon        = Δευτέρα
+days.wide.tue        = Τρίτη
+days.wide.wed        = Τετάρτη
+days.wide.thu        = Πέμπτη
+days.wide.fri        = Παρασκευή
+days.wide.sat        = Σάββατο
+days.wide.sun        = Κυριακή
+days.abbreviated.mon = Δευ
+days.abbreviated.tue = Τρί
+days.abbreviated.wed = Τετ
+days.abbreviated.thu = Πέμ
+days.abbreviated.fri = Παρ
+days.abbreviated.sat = Σάβ
+days.abbreviated.sun = Κυρ
+days.narrow.mon      = Δ
+days.narrow.tue      = Τ
+days.narrow.wed      = Τ
+days.narrow.thu      = Π
+days.narrow.fri      = Π
+days.narrow.sat      = Σ
+days.narrow.sun      = Κ
+dayPeriods.abbreviated.am = π.μ.
+dayPeriods.abbreviated.pm = μ.μ.
+dayPeriods.narrow.am      = πμ
+dayPeriods.narrow.pm      = μμ
+dayPeriods.wide.am        = π.μ.
+dayPeriods.wide.pm        = μ.μ.
+
+[date.gregorian.licr]
+months.wide.1 = \accpsili\textIota\textalpha\textnu\textomicron\textupsilon\textalpha\textrho\'\textiota\textomicron\textupsilon
+months.wide.2 = \textPhi\textepsilon\textbeta\textrho\textomicron\textupsilon\textalpha\textrho\'\textiota\textomicron\textupsilon
+months.wide.3 = \textMu\textalpha\textrho\texttau\'\textiota\textomicron\textupsilon
+months.wide.4 = \accpsili\textAlpha\textpi\textrho\textiota\textlambda\'\textiota\textomicron\textupsilon
+months.wide.5 = \textMu\textalpha\textdialytikatonos\textiota\textomicron\textupsilon
+months.wide.6 = \accpsili\textIota\textomicron\textupsilon\textnu\'\textiota\textomicron\textupsilon
+months.wide.7 = \accpsili\textIota\textomicron\textupsilon\textlambda\'\textiota\textomicron\textupsilon
+months.wide.8 = \accpsili\textAlpha\textupsilon\textgamma\textomicron\'\textupsilon\textsigma\texttau\textomicron\textupsilon
+months.wide.9 = \textSigma\textepsilon\textpi\texttau\textepsilon\textmu\textbeta\textrho\'\textiota\textomicron\textupsilon
+months.wide.10 = \accpsili\textOmicron\textkappa\texttau\textomega\textbeta\textrho\'\textiota\textomicron\textupsilon
+months.wide.11 = \textNu\textomicron\textepsilon\textmu\textbeta\textrho\'\textiota\textomicron\textupsilon
+months.wide.12 = \textDelta\textepsilon\textkappa\textepsilon\textmu\textbeta\textrho\'\textiota\textomicron\textupsilon
+
+[time.gregorian]
+time.medium = [h]:[mm]:[ss] [a]
+time.short  = [h]:[mm] [a]
+
+[typography]
+frenchspacing    = no
+hyphenrules      = polygreek
+lefthyphenmin    = 1
+righthyphenmin   = 1
+hyphenchar       = 
+prehyphenchar    = 
+posthyphenchar   = 
+exhyphenchar     = 
+preexhyphenchar  = 
+postexhyphenchar = 
+hyphenationmin   = 
+
+[characters]
+delimiters.quotes  = «»“”
+auxiliary          = [ἀ ἄ ἂ ἆ ἁ ἅ ἃ ἇ ὰ ᾶ ἐ ἔ ἒ ἑ ἕ ἓ ὲ ἠ ἤ ἢ ἦ ἡ ἥ ἣ ἧ ὴ ῆ ἰ ἴ ἲ ἶ ἱ ἵ ἳ ἷ ὶ ῖ ῒ ῗ ὄ ὂ ὃ ὸ ὐ ὔ ὒ ὖ ὑ ὕ ὓ ὗ ὺ ῦ ῢ ῧ ὤ ὢ ὦ ὥ ὣ ὧ ὼ ῶ]
+exemplarCharacters = [α ά β γ δ ε έ ζ η ή θ ι ί ϊ ΐ κ λ μ ν ξ ο ό π ρ σ ς τ υ ύ ϋ ΰ φ χ ψ ω ώ]
+index              = [Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ Σ Τ Υ Φ Χ Ψ Ω]
+punctuation        = [\\- ‐ – — , ; \\: ! . … \" « » ( ) \\[ \\] § @ * / \\\\ \\&]
+
+[numbers]
+defaultNumberingSystem = latn
+minimumGroupingDigits  = 1
+decimal                = ,
+exponential            = e
+group                  = .
+infinity               = ∞
+list                   = ;
+minusSign              = -
+nan                    = NaN
+perMille               = ‰
+percentSign            = %
+plusSign               = +
+superscriptingExponent = ×
+
+[counters]
+alph     = 
+Alph     = 
+ordinals = 
+
diff --git a/locale/af/babel-afrikaans.tex b/locale/el/babel-polytonicgreek.tex
similarity index 88%
copy from locale/af/babel-afrikaans.tex
copy to locale/el/babel-polytonicgreek.tex
index d85248e..6b5f75d 100644
--- a/locale/af/babel-afrikaans.tex
+++ b/locale/el/babel-polytonicgreek.tex
@@ -7,6 +7,6 @@
     {Just use babel as documented.}%
   \stop
 \fi
-\BabelBeforeIni{af}{%
+\BabelBeforeIni{el-polyton}{%
 }
 \endinput
\ No newline at end of file
diff --git a/locale/ko/babel-ko.ini b/locale/ko/babel-ko.ini
index 09d7b37..d4af85d 100644
--- a/locale/ko/babel-ko.ini
+++ b/locale/ko/babel-ko.ini
@@ -11,14 +11,15 @@
 
 [identification]
 charset = utf8
-version = 1.1
-date = 2019-05-05
+version = 1.2
+date = 2019-10-30
 name.local = 한국어
 name.english = Korean
 name.babel = korean
 tag.bcp47 = ko
 tag.opentype = KOR
 script.name = Korean
+script.name.opentype = CJK
 script.tag.bcp47 = Kore
 script.tag.opentype = hang
 level = 1
diff --git a/locale/zh/babel-zh-Hans-HK.ini b/locale/zh/babel-zh-Hans-HK.ini
index 0aa41f1..96373a6 100644
--- a/locale/zh/babel-zh-Hans-HK.ini
+++ b/locale/zh/babel-zh-Hans-HK.ini
@@ -11,10 +11,11 @@
 
 [identification]
 charset = utf8
-version = 1.2
-date = 2019-05-05
+version = 1.3
+date = 2019-10-30
 name.local = 中文
 name.english = Chinese
+name.opentype = Chinese Hong Kong
 name.babel = chinese-simplified-hongkongsarchina
 name.babel.A = chinese-hans-hk
 tag.bcp47 = zh
@@ -23,6 +24,7 @@ region.local = 中国香港特别行政区
 region.english = Hong Kong SAR China
 region.tag.bcp47 = HK
 script.name = Simplified
+script.name.opentype = CJK
 script.tag.bcp47 = Hans
 script.tag.opentype = hani
 level = 1
diff --git a/locale/zh/babel-zh-Hans-MO.ini b/locale/zh/babel-zh-Hans-MO.ini
index 1b1931c..73f0f0a 100644
--- a/locale/zh/babel-zh-Hans-MO.ini
+++ b/locale/zh/babel-zh-Hans-MO.ini
@@ -11,10 +11,11 @@
 
 [identification]
 charset = utf8
-version = 1.2
-date = 2019-05-05
+version = 1.3
+date = 2019-10-30
 name.local = 中文
 name.english = Chinese
+name.opentype = Chinese Simplified
 name.babel = chinese-simplified-macausarchina
 name.babel.A = chinese-hans-mo
 tag.bcp47 = zh
@@ -23,6 +24,7 @@ region.local = 中国澳门特别行政区
 region.english = Macau SAR China
 region.tag.bcp47 = MO
 script.name = Simplified
+script.name.opentype = CJK
 script.tag.bcp47 = Hans
 script.tag.opentype = hani
 level = 1
diff --git a/locale/zh/babel-zh-Hans-SG.ini b/locale/zh/babel-zh-Hans-SG.ini
index 155f647..0a9219d 100644
--- a/locale/zh/babel-zh-Hans-SG.ini
+++ b/locale/zh/babel-zh-Hans-SG.ini
@@ -11,10 +11,11 @@
 
 [identification]
 charset = utf8
-version = 1.2
-date = 2019-05-05
+version = 1.3
+date = 2019-10-30
 name.local = 中文
 name.english = Chinese
+name.opentype = Chinese Simplified
 name.babel = chinese-simplified-singapore
 name.babel.A = chinese-hans-sg
 tag.bcp47 = zh
@@ -22,8 +23,8 @@ tag.opentype = ZHS
 region.local = 新加坡
 region.english = Singapore
 region.tag.bcp47 = SG
-;;;;;
 script.name = Simplified
+script.name.opentype = CJK
 script.tag.bcp47 = Hans
 script.tag.opentype = hani
 level = 1
diff --git a/locale/zh/babel-zh-Hans.ini b/locale/zh/babel-zh-Hans.ini
index 0255e1e..cf872c7 100644
--- a/locale/zh/babel-zh-Hans.ini
+++ b/locale/zh/babel-zh-Hans.ini
@@ -11,15 +11,17 @@
 
 [identification]
 charset = utf8
-version = 1.2
-date = 2019-05-05
+version = 1.3
+date = 2019-10-30
 name.local = 中文
 name.english = Chinese
+name.opentype = Chinese Simplified
 name.babel = chinese-simplified
 name.babel.A = chinese-hans
 tag.bcp47 = zh
 tag.opentype = ZHS
 script.name = Simplified
+script.name.opentype = CJK
 script.tag.bcp47 = Hans
 script.tag.opentype = hani
 level = 1
diff --git a/locale/zh/babel-zh-Hant-HK.ini b/locale/zh/babel-zh-Hant-HK.ini
index a8406bc..b8f435f 100644
--- a/locale/zh/babel-zh-Hant-HK.ini
+++ b/locale/zh/babel-zh-Hant-HK.ini
@@ -11,10 +11,11 @@
 
 [identification]
 charset = utf8
-version = 1.2
-date = 2019-05-05
+version = 1.3
+date = 2019-10-30
 name.local = 中文
 name.english = Chinese
+name.opentype = Chinese Hong Kong
 name.babel = chinese-traditional-hongkongsarchina
 name.babel.A = chinese-hant-hk
 tag.bcp47 = zh
@@ -23,6 +24,7 @@ region.local = 中國香港特別行政區
 region.english = Hong Kong SAR China
 region.tag.bcp47 = HK
 script.name = Traditional
+script.name.opentype = CJK
 script.tag.bcp47 = Hant
 script.tag.opentype = hani
 level = 1
diff --git a/locale/zh/babel-zh-Hant-MO.ini b/locale/zh/babel-zh-Hant-MO.ini
index bbec335..d3e5ad4 100644
--- a/locale/zh/babel-zh-Hant-MO.ini
+++ b/locale/zh/babel-zh-Hant-MO.ini
@@ -11,10 +11,11 @@
 
 [identification]
 charset = utf8
-version = 1.2
-date = 2019-05-05
+version = 1.3
+date = 2019-10-30
 name.local = 中文
 name.english = Chinese
+name.opentype = Chinese Traditional
 name.babel = chinese-traditional-macausarchina
 name.babel.A = chinese-hant-mo
 tag.bcp47 = zh
@@ -23,6 +24,7 @@ region.local = 中國澳門特別行政區
 region.english = Macau SAR China
 region.tag.bcp47 = MO
 script.name = Traditional
+script.name.opentype = CJK
 script.tag.bcp47 = Hant
 script.tag.opentype = hani
 level = 1
diff --git a/locale/zh/babel-zh-Hant.ini b/locale/zh/babel-zh-Hant.ini
index 5a7fbdb..2347e72 100644
--- a/locale/zh/babel-zh-Hant.ini
+++ b/locale/zh/babel-zh-Hant.ini
@@ -11,15 +11,17 @@
 
 [identification]
 charset = utf8
-version = 1.2
-date = 2019-05-05
+version = 1.3
+date = 2019-10-30
 name.local = 中文
 name.english = Chinese
+name.opentype = Chinese Traditional
 name.babel = chinese-traditional
 name.babel.A = chinese-hant
 tag.bcp47 = zh
 tag.opentype = ZHS
 script.name = Traditional
+script.name.opentype = CJK
 script.tag.bcp47 = Hant
 script.tag.opentype = hani
 level = 1
diff --git a/locale/zh/babel-zh.ini b/locale/zh/babel-zh.ini
index 659642d..0b7e4b7 100644
--- a/locale/zh/babel-zh.ini
+++ b/locale/zh/babel-zh.ini
@@ -11,15 +11,16 @@
 
 [identification]
 charset = utf8
-version = 1.2
-date = 2019-05-05
+version = 1.3
+date = 2019-10-30
 name.local = 中文
 name.english = Chinese
+name.opentype = Chinese Simplified
 name.babel = chinese
 tag.bcp47 = zh
 tag.opentype = ZHS
-;;;; Nombre correcto ???
 script.name = Simplified
+script.name.opentype = CJK
 script.tag.bcp47 = Hans
 script.tag.opentype = hani
 level = 1
diff --git a/samples/harf-fa-ml.pdf b/samples/harf-fa-ml.pdf
deleted file mode 100644
index b891ca5..0000000
Binary files a/samples/harf-fa-ml.pdf and /dev/null differ
diff --git a/samples/harf-farsi-malayalam.pdf b/samples/harf-farsi-malayalam.pdf
new file mode 100644
index 0000000..d7a699d
Binary files /dev/null and b/samples/harf-farsi-malayalam.pdf differ
diff --git a/samples/harf-fa-ml.tex b/samples/harf-farsi-malayalam.tex
similarity index 100%
rename from samples/harf-fa-ml.tex
rename to samples/harf-farsi-malayalam.tex
diff --git a/samples/lua-polygreek.pdf b/samples/lua-polygreek.pdf
new file mode 100644
index 0000000..66c5693
Binary files /dev/null and b/samples/lua-polygreek.pdf differ
diff --git a/samples/lua-polygreek.tex b/samples/lua-polygreek.tex
new file mode 100644
index 0000000..e2c4661
--- /dev/null
+++ b/samples/lua-polygreek.tex
@@ -0,0 +1,65 @@
+\documentclass{article}
+
+\usepackage{babel}
+
+\usepackage{multicol}
+
+\babelprovide[import,main]{polytonicgreek}
+\babelfont{rm}{Old Standard}
+
+\begin{document}
+
+\section*{Φορτωμένα κόκκαλα}
+
+\textit{Αλέξανδρος Παπαδιαμάντης}\\
+1907\\
+From https://el.wikisource.org/wiki/Φορτωμένα\_κόκκαλα
+
+\begin{multicols}{3}
+
+Ἀνεβαίνομεν τὸ βουνὸν, πεζοὶ, μὲ τὸ γαϊδουράκι φορτωμένον, ὁ παπ’
+Ἀνδρέας, ὁ καλός μας εὐχέτης, κι’ ὁ μακαρίτης ὁ Λαμιαῖος, κι’ ἐγὼ, κι’
+ὁ Ἀλέκος τὸ Φωτάκι, ὁ μικρὸς καὶ πρόθυμος φίλος μας. Εἰς ὅλα ἦτον
+πάντοτε ἕτοιμος νὰ τρέχῃ ἀκούραστος, ὅ,τι ἤθελες τὸν διατάξει. Νὰ πάῃ
+στὸ χωριὸ, διὰ θέλημα, δυὸ ὧρες δρόμον, καὶ πάλι, φορτωμένος, ὀπίσω νὰ
+ἔλθῃ· νὰ σκουπίσῃ ὅλον τὸ ἐξωκκλήσι, καὶ τὸν αὐλόγυρον, καὶ τὰ κελλιὰ,
+μὲ πρόχειρον σκούπαν ἀπὸ σπαρτίνες καὶ θάμνους· νὰ τρέξῃ κάτω στὸν
+αἰγιαλόν, διὰ νὰ μᾶς φέρῃ πεταλίδες, καὶ κοχύλια, καὶ πετροκάβουρα, διὰ
+τὸ ὀρεκτικὸν δεῖπνόν μας καὶ νὰ γυρίσῃ μετὰ μίαν ὥραν μὲ μίαν ποδιὰν
+γεμάτην· εἶτα ν’ ἀνάψῃ φωτιάν, νὰ ψήσῃ, νὰ μαγειρεύσῃ ὅλα τὰ ἐδέσματα·
+καὶ νὰ ἔχῃ τὴν ἐπιστασίαν τοῦ παγουριοῦ καὶ τῆς φλάσκας, διὰ νὰ
+εὑρίσκωνται δροσερὰ εἰς τὸ ρεῦμα, ἀκριβῶς ὑπὸ τὴν βρύσην· εἰς ὅλα ἦτον
+μονάκριβος.
+
+Ἕκτος μᾶς εἶχεν ἀκολουθήσει ὁ σκύλος τοῦ Σταμάτη τοῦ Ἀλεξανδράκη,
+σκύλος προωρισμένος ὀψέποτε νὰ μένῃ ἀδέσποτος. Ὁ ἄτυχος καὶ κακοκέφαλος
+φίλος μας, ὁ Σταμάτης, ἀφοῦ ἐμάλωσε μὲ ὅλους τοὺς συγγενεῖς καὶ τοὺς
+φίλους του, καὶ σχεδὸν μὲ ὅλον τὸν κόσμον, ἤρχισε νὰ πάσχῃ ἀπὸ
+περιοδικὰς ἀφανείας, ὁποῦ ἦσαν τὰ προανακρούσματα τῆς ὁριστικῆς
+ἐξαφανίσεώς του ἀπὸ τὸν μάταιον κόσμον. Πότε ἐκρύπτετο, ὡς ἔλεγαν, εἰς
+μίαν ἐρημικὴν σπηλιὰν, πότε ἐπήγαινε νὰ μείνῃ ὀλίγας ἡμέρας εἰς τὸ
+Μοναστήρι, πότε ἐταξίδευεν, ἄγνωστον ποῦ· καὶ ὅλας αὐτὰς τὰς φορὰς, τὸν
+ἄτυχον Σαψώνην, τὸν ἄφηνεν εἰς τὸ ἔλεος τοῦ Θεοῦ καὶ τῶν ἀνθρώπων τῆς
+ἀγορᾶς, ἂν θὰ εὐαρεστοῦντο ποτὲ νὰ τοῦ ρίψουν ἓν ξηροκόμματον. Συχνὰ ὁ
+Γιωργὸς ὁ Λαφκιώτης ὁ ἰδιοκτήτης τοῦ ἀρχαιοπρεποῦς καὶ ἀναλλοιώτου
+καφενείου εἰς τὴν παραθαλασσίαν, ἂν καὶ τοῦ εἶχε φάγῃ ὀλίγας
+ἑκατοντάδας δραχμῶν, καλῇ τῇ πίστει, ὁ ἀφέντης τοῦ Σαψώνη, ᾤκτειρε τὸ
+ἄκακον θρέμμα, καὶ τοῦ ἔρριπτεν ὀλίγα κόκκαλα. Ἐμὲ, ἀφοῦ μὲ
+κατεσκόπευεν ὁ Σαψώνης, ἀπὸ καφενεῖον εἰς ὕπαιθρον, καὶ ἀπὸ κιόσκι εἰς
+τένταν, ἐπὶ τῆς προκυμαίας, τέλος, μὲ ἠκολούθει ὁριστικῶς εἰς τὴν
+οἰκίαν ὅπου ἔπρεπε νὰ τοῦ ρίψω τι ἐκ τοῦ ὑστερήματος.
+
+Ἀλλὰ καὶ εἰς τὰ καλά του ὅταν ἦτο ὁ Σταμάτης, διὰ τὸν περιπαθῶς
+ἀφωσιωμένον σκύλον δὲν εἶχε λάβῃ ἄλλην πρόνοιαν, εἰμὴ νὰ τὸν ρίπτῃ
+αἰφνιδίως εἰς τὸ κῦμα, γαυγίζοντα καὶ μὴ θέλοντα, διὰ νὰ κολυμβᾷ. Τὸν
+εἶχεν ἀφήσει ἀκούρευτον καὶ βαθύτριχον ἀπὸ χρόνων πολλῶν. Ἦτο πολὺ
+μαλλιαρὸς σκύλος. Τὴν φορὰν αὐτὴν, ἀφοῦ μᾶς ἐμυρίσθη πῶς ἡτοιμαζόμεθα
+δι’ ἐκδρομὴν, εἶχε δείξει ἀνήσυχον περιέργειαν, ὅταν ἐφορτώνετο τὸ
+ὀνάριον, καὶ εἶχε πλησιάσει νὰ ὀσφρανθῇ τὶ περιεῖχεν ὁ σάκκος ἐκεῖνος,
+τὸν ὁποῖον ὁ Ἀλέκος εἶχε περιδέσει καὶ φορτώσει περὶ τὸ σάγμα, εἰς τὴν
+ἀριστερὰν πλευρὰν τοῦ ζώου. Δεξιὰ εἶχε φορτωθῇ ὁ μάρσιππος μὲ τὰ ἱερὰ
+τοῦ Παπᾶ, εἷς κάλαθος μὲ τρόφιμα, καὶ μία φλάσκα μὲ οἶνον. Εἶτα, μᾶς
+ἠκολούθησε μὲ βῆμα, αὐτόκλητος.
+\end{multicols}
+
+\end{document}
\ No newline at end of file





More information about the latex3-commits mailing list