[latex3-commits] [git/LaTeX3-latex3-babel] master: Bump to 3.59. Partial fix for 131. (ec585f8)

Javier email at dante.de
Sun May 16 18:13:23 CEST 2021


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

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

commit ec585f8a4b7fb99a56671967dd4e2f91c9296de1
Author: Javier <email at localhost>
Date:   Sun May 16 18:13:23 2021 +0200

    Bump to 3.59. Partial fix for 131.


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

ec585f8a4b7fb99a56671967dd4e2f91c9296de1
 README.md                                   |  22 ++-------
 babel.dtx                                   |  68 ++++++++++++++++++++++------
 babel.ins                                   |   2 +-
 babel.pdf                                   | Bin 842532 -> 844002 bytes
 bbcompat.dtx                                |   2 +-
 locale/ar/babel-ar.ini                      |   4 +-
 locale/fa/babel-fa.ini                      |   4 +-
 locale/nb/babel-nb.ini                      |   8 +---
 news-guides/media/kashida.gif               | Bin 0 -> 676894 bytes
 news-guides/news/whats-new-in-babel-3.59.md |  61 +++++++++++++++++--------
 samples/lua-arabic.pdf                      | Bin 85285 -> 85279 bytes
 11 files changed, 107 insertions(+), 64 deletions(-)

diff --git a/README.md b/README.md
index 0d101be..bd9cd86 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-## Babel 3.58.2370
+## Babel 3.59
 
 This package manages culturally-determined typographical (and other)
 rules, and hyphenation patterns for a wide range of languages. Many
@@ -46,24 +46,12 @@ respective authors.
 
 ### Summary of Latest changes
 ```
-3.59   2021-05-??
-       * Kashida with user-definable rules (via transforms).
+3.59   2021-05-16
+       * Tentative kashida with user-definable rules (via transforms).
        * Fixes:
          - \babel at texpdf inconsistently defined (#130)
-       
-3.58   2021-04-26
-       * More predefined transforms (lua):
-         - doubleletter.hyphen: Norsk
-         - oneletter.nobreak:  Czech, Polish, Slovak
-         - hyphen.repeat:      Czech, Polish, Portuguese, Slovak, Spanish
-         - punctuation.space:  Hindi, Sanskrit
-         - transliteration.hk: Sanskrit 
-         - transliteration.gajica: Serbian
-       * 'prehyphenation' transforms are now disabled in verbatim.
-       * New line breaking mode ‘unhyphenated’.
-       * Fix: \shorthandoff*{^} was not revertible (#126).
-       * Experimental code for Arabic justification (with elongated
-         forms: lua).
+         - Partial fix for #131 (quotation with CJK).
+       * Removed doubleletter.hyphen (Norsk), which serves to nothing.
 ```
 
 ### Previous changes
diff --git a/babel.dtx b/babel.dtx
index 2c44168..816444e 100644
--- a/babel.dtx
+++ b/babel.dtx
@@ -31,7 +31,7 @@
 %
 % \iffalse
 %<*filedriver>
-\ProvidesFile{babel.dtx}[2021/05/12 v3.58.2370 The Babel package]
+\ProvidesFile{babel.dtx}[2021/05/17 v3.59 The Babel package]
 \documentclass{ltxdoc}
 \GetFileInfo{babel.dtx}
 \usepackage{fontspec}
@@ -2579,6 +2579,18 @@ Sets the interword penalty for the writing system of this language.
 Currently used only in Southeast Asian scrips, like Thai. Ignored if 0
 (which is the default value). 
 
+\Describe{justification=}{\texttt{kashida} $\string|$
+\texttt{elongated} $\string|$ \texttt{unhyphenated}}
+\New{3.59} There are currently three options, mainly for the Arabic
+script. It sets the linebreaking and justification method, which can be
+based on the the \textsc{arabic tatweel} character or in the
+‘justification alternatives’ OpenType table (\texttt{jalt}). For an
+explanation see the \href{https://github.com/latex3/babel/blob/master/%
+news-guides/news/whats-new-in-babel-3.59.md}{\babel\ site}.
+
+\Describe{linebreaking=}{}
+\New{3.59} Just a synonymous for \texttt{justification}.
+
 \Describe{mapfont=}{\texttt{direction}}
 Assigns the font for the writing direction of this language (only with
 |bidi=basic|). Whenever possible, instead of this option use |onchar|,
@@ -3080,7 +3092,7 @@ three variants.}
 \trans{Hindi, Sanskrit}{transliteration.hk}{The Harvard-Kyoto system to
 romanize Devanagari.}
 
-\trans{}{punctuation.space}{Inserts a space before the following
+\trans{Hindi, Sanskrit}{punctuation.space}{Inserts a space before the following
 four characters: \textit{!?:;}\,.}
 
 \trans{Hungarian}{digraphs.hyphen}{Hyphenates the long digraphs
@@ -3106,9 +3118,9 @@ standard system devised by Ljudevit Gaj.}
 \New{3.37-3.39} \textit{With \luatex{}} it is now possible to define
 non-standard hyphenation rules, like |f-f| $\to$ |ff-f|, repeated
 hyphens, ranked ruled (or more precisely, ‘penalized’ hyphenation
-points), and so on. No rules are currently provided by default, but
-they can be defined as shown in the following example, where |{1}| is
-the first captured char (between |()| in the pattern):
+points), and so on. Only a few rules are currently provided (see
+below), but they can be defined as shown in the following example,
+where |{1}| is the first captured char (between |()| in the pattern):
 \begin{verbatim}
 \babelposthyphenation{german}{([fmtrp]) | {1}}
 {
@@ -3149,8 +3161,6 @@ search patterns |=| has no special meaning, while \verb+|+ stands for
 an ordinary space; (3) in the replacement, discretionaries are not
 accepted. 
 
-It handles glyphs and spaces.
-
 This feature is activated with the first |\babelposthyphenation| or
 |\babelprehyphenation|.
 
@@ -3880,12 +3890,11 @@ empty, removes them. The last argument is the locale name:
 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
+|linebreak.sea|, |linebreak.cjk|, |justify.arabic|. For example, you can set
 |\babeladjust{bidi.text=off}| if you are using an alternative algorithm
-or with large sections not requiring it. With \textsf{luahbtex} you may
-need |bidi.mirroring=off|. Use with care, because these options do not
-deactivate other related options (like paragraph direction with
-|bidi.text|).
+or with large sections not requiring it. Use with care, because these
+options do not deactivate other related options (like paragraph
+direction with |bidi.text|).
 
 \subsection{Tips, workarounds, known issues and notes}
 
@@ -4958,8 +4967,8 @@ help from Bernd Raichle, for which I am grateful.
 % \section{Tools}
 %
 %    \begin{macrocode}
-%<<version=3.58.2370>>
-%<<date=2021/05/12>>
+%<<version=3.59>>
+%<<date=2021/05/17>>
 %    \end{macrocode}
 %
 % \textbf{Do not use the following macros in \texttt{ldf} files. They
@@ -10984,7 +10993,7 @@ help from Bernd Raichle, for which I am grateful.
         {lnbrk@\languagename}{\expandafter\@car\bbl at KVP@linebreaking\@nil}%
     \fi
   \fi
-  \bbl at xin@{/e}{/\bbl at cl{lnbrk}}
+  \bbl at xin@{/e}{/\bbl at cl{lnbrk}}%
   \ifin@\else\bbl at xin@{/k}{/\bbl at cl{lnbrk}}\fi
   \ifin@\bbl at arabicjust\fi
   % == Line breaking: hyphenate.other.locale/.script==
@@ -21827,8 +21836,10 @@ Babel = Babel or {}
 
 Babel.cjk_characters = {
   [0x0021]={c='ex'},
+  [0x0022]={c='qu'},          
   [0x0024]={c='pr'},
   [0x0025]={c='po'},
+  [0x0027]={c='qu'},          
   [0x0028]={c='op'},
   [0x0029]={c='cp'},
   [0x002B]={c='pr'},
@@ -21849,10 +21860,18 @@ Babel.cjk_characters = {
   [0x00A3]={c='pr'},
   [0x00A4]={c='pr'},
   [0x00A5]={c='pr'},
+  [0x00AB]={c='qu'},          
   [0x00B0]={c='po'},
   [0x00B1]={c='pr'},
+  [0x00BB]={c='qu'},          
+  [0x2018]={c='qu'},          
+  [0x2019]={c='qu'},          
   [0x201A]={c='op'},
+  [0x201B]={c='qu'},    
+  [0x201C]={c='qu'},    
+  [0x201D]={c='qu'},          
   [0x201E]={c='op'},
+  [0x201F]={c='qu'},          
   [0x2024]={c='in'},
   [0x2025]={c='in'},
   [0x2026]={c='in'},
@@ -21864,6 +21883,8 @@ Babel.cjk_characters = {
   [0x2035]={c='po'},
   [0x2036]={c='po'},
   [0x2037]={c='po'},
+  [0x2039]={c='qu'},          
+  [0x203A]={c='qu'},            
   [0x203C]={c='ns'},
   [0x203D]={c='ns'},
   [0x2044]={c='is'},
@@ -21922,7 +21943,23 @@ Babel.cjk_characters = {
   [0x29FD]={c='cl'},
   [0x2CF9]={c='ex'},
   [0x2CFE]={c='ex'},
+  [0x2E02]={c='qu'},          
+  [0x2E03]={c='qu'},          
+  [0x2E04]={c='qu'},          
+  [0x2E05]={c='qu'},          
+  [0x2E06]={c='qu'},    
+  [0x2E07]={c='qu'},    
+  [0x2E08]={c='qu'},    
+  [0x2E09]={c='qu'},          
+  [0x2E0A]={c='qu'},          
+  [0x2E0B]={c='qu'},          
+  [0x2E0C]={c='qu'},          
+  [0x2E0D]={c='qu'},          
   [0x2E18]={c='op'},
+  [0x2E1C]={c='qu'},          
+  [0x2E1D]={c='qu'},          
+  [0x2E20]={c='qu'},          
+  [0x2E21]={c='qu'}, 
   [0x2E22]={c='op'},
   [0x2E23]={c='cl'},
   [0x2E24]={c='op'},
@@ -22075,6 +22112,7 @@ Babel.cjk_breaks = {
   ['po'] = { ['op']=1, ['pr']=1, ['po']=1, ['in']=1, ['I']=1 },
   ['in'] = { ['op']=1, ['pr']=1, ['po']=1,           ['I']=1 },
   ['hy'] = { ['op']=1, ['pr']=1, ['po']=1, ['in']=1, ['I']=1 },
+  ['qu'] = { },
   --
   ['I']  = { ['op']=1, ['pr']=1, ['I']=1, ['O']=1 },
   ['O']  = {                     ['I']=1 }
diff --git a/babel.ins b/babel.ins
index 4bc9959..dddf1d8 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{2021/05/12}
+\def\filedate{2021/05/17}
 \def\batchfile{babel.ins}
 \input docstrip.tex
 
diff --git a/babel.pdf b/babel.pdf
index 1b8889e..dff6314 100644
Binary files a/babel.pdf and b/babel.pdf differ
diff --git a/bbcompat.dtx b/bbcompat.dtx
index 1b91b53..3ca40d6 100644
--- a/bbcompat.dtx
+++ b/bbcompat.dtx
@@ -30,7 +30,7 @@
 %
 % \iffalse
 %<*dtx>
-\ProvidesFile{bbcompat.dtx}[2021/05/12 v3.58.2370]
+\ProvidesFile{bbcompat.dtx}[2021/05/17 v3.59]
 %</dtx>
 %
 %% File 'bbcompat.dtx'
diff --git a/locale/ar/babel-ar.ini b/locale/ar/babel-ar.ini
index fd70acd..b5ac99c 100644
--- a/locale/ar/babel-ar.ini
+++ b/locale/ar/babel-ar.ini
@@ -11,8 +11,8 @@
 
 [identification]
 charset = utf8
-version = 1.9
-date = 2021-04-24
+version = 1.10
+date = 2021-05-16
 name.local = العربية
 name.english = Arabic
 name.babel = arabic
diff --git a/locale/fa/babel-fa.ini b/locale/fa/babel-fa.ini
index ceedaf1..dcd28df 100644
--- a/locale/fa/babel-fa.ini
+++ b/locale/fa/babel-fa.ini
@@ -11,8 +11,8 @@
 
 [identification]
 charset = utf8
-version = 1.7
-date = 2020-10-11
+version = 1.8
+date = 2021-05-16
 name.local = فارسی
 name.english = Persian
 name.babel = persian
diff --git a/locale/nb/babel-nb.ini b/locale/nb/babel-nb.ini
index 9e2f41b..80d16d2 100644
--- a/locale/nb/babel-nb.ini
+++ b/locale/nb/babel-nb.ini
@@ -11,8 +11,8 @@
 
 [identification]
 charset = utf8
-version = 1.4
-date = 2021-04-24
+version = 1.5
+date = 2021-05-16
 name.local = norsk bokmål
 name.english = Norwegian Bokmål
 name.babel = norsk norwegianbokmal
@@ -186,8 +186,4 @@ superscriptingExponent = ×
 
 [counters]
 
-[transforms.posthyphenation]
-doubleletter.hyphen.1.0 = {()([BDFGLMNPRSTbdfglmnprst])|(){1}}
-doubleletter.hyphen.1.1 = { no = {1}, pre = {1}{1}- }
-doubleletter.hyphen.1.2 = remove
 
diff --git a/news-guides/media/kashida.gif b/news-guides/media/kashida.gif
new file mode 100644
index 0000000..8cf807d
Binary files /dev/null and b/news-guides/media/kashida.gif differ
diff --git a/news-guides/news/whats-new-in-babel-3.59.md b/news-guides/news/whats-new-in-babel-3.59.md
index a0585f4..e5a2b65 100644
--- a/news-guides/news/whats-new-in-babel-3.59.md
+++ b/news-guides/news/whats-new-in-babel-3.59.md
@@ -1,11 +1,11 @@
 # What's new in babel 3.59
 
-(Under development.)
+2021-05-16
 
 ## More experimental Arabic justification
 
-But useable at your own rink, because there are still many pending issues –
-for example, lists or stretched hboxes doesn't work. Note also the
+But useable in many cases, although there are still many pending issues
+– for example, lists or stretched hboxes doesn't work. Note also the
 interface is unfinished and very likely will change.
 
 For practical reasons, currently `bidi=basic` is required.
@@ -15,12 +15,13 @@ as the former, but without real justification alternatives (based on
 the OpenType `jalt` table). If you only want elongated glyphs with
 the ‘elongated’ mode, just don’t define any kashida rule.
 
-The points were kashida have to be inserted if necessary are defined by
-means of ‘transforms’. In other words, they are not hard coded and you
-can define your own rules with different weights (including rules for
-words matching some patterns). The insertion starts at the end of the
-line. The value sets a precedence: first attempt kashida with the
-highest values, then the following.
+The points were kashida have to be inserted if necessary (with ARABIC
+TATWEEL characters) are defined by means of ‘transforms’. In other
+words, they are not hard coded and you can define your own rules with
+different weights (including rules for words matching some patterns).
+The insertion starts at the end of the line. The value sets a
+precedence: first attempt kashida with the highest values, then the
+following.
 
 A very simple and basic transform for `arabic` and `persian` is
 included for ‘plain’ Arabic fonts, which attempts to distribute the
@@ -28,7 +29,7 @@ tatwil as evenly as possible. It’s named `kashida.plain` (with
 precedence 500) and no ligature is taken into account (except, of
 course, for the lam-alif).
 
-So:
+So, all you need with this transform is:
 ```tex
 \usepackage[bidi=basic]{babel}
 
@@ -37,25 +38,30 @@ So:
   transforms = kashida.plain
   ]{arabic}
 
-  
 \babelfont{rm}{FreeSerif}
 ```
 
+The following animated GIF shows a short text with and without inserted
+tatwils:
+
+![Kashida](../media/kashida.gif)
+
 An example of how to fine tune these rules is (with Sakkal Majalla,
-which inserts a joiner at some places):
+which inserts at some places a joiner visually incompatible with the
+tatwil):
 ```tex
-\babelprehyphenation{arabic}{ () ب () ر }{ kashida = 0 }
+\babelprehyphenation{arabic}{ () ب () ر }{ kashida = 0 } % 0 = no kashida
 ```
 Of course, these setting must be also font dependent, but for the
 moment this is what it is.
 
-As an example, the following rule is applied to words with at least 3
-letters. With certain combinations, a (probably long) kashida is added
-to the last but one char.
+As an example of a tranform, the following rule is applied to words
+with at least 3 letters. With certain combinations, a (probably long)
+kashida is added to the last but one char.
 ```tex
 \babelprehyphenation{arabic}{
   {a}
-  () [ي ئ ه ش س ق ف غ ع ض ص ن م ل ك ظ ط خ ح ج ث ت ب ] () 
+  () [ي ئ ه ش س ق ف غ ع ض ص ن م ل ك ظ ط خ ح ج ث ت ب ڢ] () 
   [ي ئ ه ق ن ك ث ت ب ا أ إ آ و ؤ ذ د ز ر ة]
   [|،,.){]}] }
 { kashida = 500 }
@@ -70,7 +76,7 @@ Use `on` to reactivate it.
 
 A explained above, the are still open issues. There will be in addition
 further parameters (number of tatwils to be inserted, preference by
-position in the line...).
+position in the line, and so on).
 
 There is some tolerance in the insertion of kashida, set with (syntax
 liable to change!):
@@ -87,6 +93,21 @@ negative). By default it's, of course, `0`, which leaves the pointer
 just after the last replacement. It can be set in any non-empty
 replacement (eg, `{ string = a, step = -1 }`)
 
-# Fixes
+## Fixes
+
+* `\babel at texpdf` inconsistently defined (#130).
+* Partial fix for #131 (Quotation with CJK), with the default
+  behaviour (no break at all). Tailored behavior for specific locales
+  will be added in a next release, but remenber you can always use
+  something like:
+```
+\babelcharproperty{`“}{linebreak}{op}
+\babelcharproperty{`”}{linebreak}{cl}
+```
+where `op` and `cl` are the corresponding codes in the Unicode linebreaking
+algorithm (open and close).
+
+## Other changes
 
-* \babel at texpdf inconsistently defined (#130).
+Removed `doubleletter.hyphen` (Norsk) which serves to nothing. See
+issue #128.
diff --git a/samples/lua-arabic.pdf b/samples/lua-arabic.pdf
index d532cfb..3730ec7 100644
Binary files a/samples/lua-arabic.pdf and b/samples/lua-arabic.pdf differ





More information about the latex3-commits mailing list.