[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.