[latex3-commits] [git/latex2e] master: Bidi in sections. Fixed some data related to french. (c1ce4b5)

Javier javier at dante.de
Tue Dec 19 11:13:04 CET 2017

Repository : https://github.com/latex3/latex2e
On branch  : master
Link       : https://github.com/latex3/latex2e/commit/c1ce4b528eabea0d230056792df027477ce00ada


commit c1ce4b528eabea0d230056792df027477ce00ada
Author: Javier <javier at localhost>
Date:   Tue Dec 19 11:13:04 2017 +0100

    Bidi in sections. Fixed some data related to french.


 required/babel/babel.dtx              |   70 +++++++++++--
 required/babel/babel.pdf              |  Bin 609982 -> 619341 bytes
 required/babel/bbcompat.dtx           |    5 +-
 required/babel/samples/Thales.png     |  Bin 0 -> 32961 bytes
 required/babel/samples/lua-arabic.pdf |  Bin 0 -> 68044 bytes
 required/babel/samples/lua-arabic.tex |  174 +++++++++++++++++++++++++++++++++
 6 files changed, 239 insertions(+), 10 deletions(-)

diff --git a/required/babel/babel.dtx b/required/babel/babel.dtx
index 539b70f..015f32f 100644
--- a/required/babel/babel.dtx
+++ b/required/babel/babel.dtx
@@ -229,6 +229,9 @@ use with Plain \TeX.
 If you are interested in the \TeX{} multilingual support, please join
 the \textsf{kadingira} list on
+% You can follow the
+% development of \babel{} on
+% \texttt{https://github.com/latex3/latex2e/tree/master/required/babel}.
 \section{The user interface}\label{U-I}
@@ -1230,6 +1233,11 @@ captions):
 \tag{fi} Finnish\hascapu\hascapl
 \tag{fil} Filipino
 \tag{fo} Faroese
+\tag{fr} French\hascapu\hascapl
+\tag{fr-BE} French\hascapu\hascapl
+\tag{fr-CA} French\hascapu\hascapl
+\tag{fr-CH} French\hascapu\hascapl
+\tag{fr-LU} French\hascapu\hascapl
 \tag{fur} Friulian\hascapu\hascapl
 \tag{fy} Western Frisian
 \tag{ga} Irish\hascapu\hascapl
@@ -2288,6 +2296,18 @@ counterpart.
   option, with a certain bidi model).
+Working -- Mainly for bidi text, but it could be useful in other
+cases. |\BabelPatchSection| and the corresponding option
+|layout=sectioning| takes a more logical approach (at least in many
+cases) because it applies the global language to the section format,
+while the section text is still the current language. The latter is
+passed to tocs and marks, too. It can be set individually or to all
+standard sectioning commands. TODO: In the latter case, |\markboth|
+and |markright| are not redefined, because the text passed includes
+already the language selector. TODO: layout=nomarks ? %%%%%
 \subsection{Language attributes}
@@ -8391,8 +8411,8 @@ help from Bernd Raichle, for which I am grateful.
 %      set left-to-right and right-to-left page layouts. As Lua\TeX-ja
 %      shows, vertical typesetting is posible, too. Its main drawback
 %      is font handling is often considered to be less mature than
-%      \xetex.\footnote{Although in my [JBL] experience problems are
-%      in fact minimal.}
+%      \xetex{} (but there are steps to make HarfBuzz, the \xetex{}
+%      font engine, available in \luatex{}).
 %    \end{itemize}
 % \changes{3.15}{2017/10/30}{Use an attribute instead of tex language
@@ -8531,6 +8551,42 @@ help from Bernd Raichle, for which I am grateful.
 \DeclareRobustCommand\babelsublr[1]{\leavevmode{\bbl at textdir\z@#1}}
 %    \end{macrocode}
+% \subsection{Layout}
+% \textbf{Work in progress}.
+% Layout is mainly intended to set bidi documents, but there is at
+% least a tool useful in general.
+%    \begin{macrocode}
+  \@ifundefined{#1}{}{%
+    \bbl at exp{\let\<bbl at ss@#1>\<#1>}%
+    \@namedef{#1}{%
+      \@ifstar{\bbl at presec@s{#1}}%
+              {\@dblarg{\bbl at presec@x{#1}}}}}}
+\def\bbl at presec@x#1[#2]#3{%
+  \let\bbl at savetemplang\languagename
+  \select at language@x\bbl at main@language
+  \@nameuse{bbl at ss@#1}%
+    [\foreignlanguage{\bbl at savetemplang}{#2}]%
+    {\foreignlanguage{\bbl at savetemplang}{#3}}%
+  \select at language@x\bbl at savetemplang}
+\def\bbl at presec@s#1#2{%
+  \let\bbl at savetemplang\languagename
+  \select at language@x\bbl at main@language
+  \@nameuse{bbl at ss@#1}*{\foreignlanguage{\languagename}{#2}}%
+  \select at language@x\bbl at savetemplang}
+\IfBabelLayout{sectioning}%   at begin document ???
+  {\BabelPatchSection{part}%
+   \BabelPatchSection{chapter}%
+   \BabelPatchSection{section}%
+   \BabelPatchSection{subsection}%
+   \BabelPatchSection{subsubsection}%
+   \BabelPatchSection{paragraph}%
+   \BabelPatchSection{subparagraph}}{}
+%    \end{macrocode}
 % \subsection{Local Language Configuration}
 %  \begin{macro}{\loadlocalcfg}
@@ -10145,6 +10201,8 @@ help from Bernd Raichle, for which I am grateful.
 % \subsection{Layout}
+% In progress.
 % Unfortunately, for proper support for \xetex{} lots of macros and
 % packages must be patched somehow. At least at this stage, \babel{}
 % will not do it and therefore a package similar to \textsf{bidi} will
@@ -10159,7 +10217,7 @@ help from Bernd Raichle, for which I am grateful.
 % constructs are valid: |\adim\bbl at startskip|,
 % |\advance\bbl at startskip\adim|, |\bbl at startskip\adim|.
-% Consider |txtbabel| as shorthand for \textit{tex--xet babel}.
+% Consider |txtbabel| as a shorthand for \textit{tex--xet babel}.
 %    \begin{macrocode}
@@ -10662,10 +10720,11 @@ help from Bernd Raichle, for which I am grateful.
 % \changes{3.14}{2017/09/30}{LuaTeX - support for R/AL texts - basic-r}
-% \textbf{Work in progress}.
 % \subsection{Layout}
+% \textbf{Work in progress}.
 % Unlike \xetex{}, \luatex{} requires only minimal changes for
 % right-to-left layouts, particularly in monolingual documents (the
 % engine itself reverses boxes -- including column order or headings
@@ -10689,9 +10748,6 @@ help from Bernd Raichle, for which I am grateful.
-  {}
-  {}
      \ifnum \@listdepth >5\relax
diff --git a/required/babel/babel.pdf b/required/babel/babel.pdf
index 2b00c63..73540cf 100644
Binary files a/required/babel/babel.pdf and b/required/babel/babel.pdf differ
diff --git a/required/babel/bbcompat.dtx b/required/babel/bbcompat.dtx
index 55e0ae6..0a3c730 100644
--- a/required/babel/bbcompat.dtx
+++ b/required/babel/bbcompat.dtx
@@ -185,9 +185,8 @@
 %<+estonian>\input estonian.ldf\relax
 %<+finnish>\input finnish.ldf\relax
-%<+francais|french>\input frenchb.ldf\relax
+%<+francais>\input french.ldf\relax
 %<+galician>\input galician.ldf\relax
diff --git a/required/babel/samples/Thales.png b/required/babel/samples/Thales.png
new file mode 100644
index 0000000..7eb3c1b
Binary files /dev/null and b/required/babel/samples/Thales.png differ
diff --git a/required/babel/samples/lua-arabic.pdf b/required/babel/samples/lua-arabic.pdf
new file mode 100644
index 0000000..df889fe
Binary files /dev/null and b/required/babel/samples/lua-arabic.pdf differ
diff --git a/required/babel/samples/lua-arabic.tex b/required/babel/samples/lua-arabic.tex
new file mode 100644
index 0000000..a6b8ff2
--- /dev/null
+++ b/required/babel/samples/lua-arabic.tex
@@ -0,0 +1,174 @@
+%$LuaLaTeX -*- coding: utf-8 ; mode: latex; TeX-engine: luatex; -*-
+\usepackage[english, bidi=basic-r]{babel}
+\babelprovide[import=ar, main]{arabic}
+          [ItalicFont=FreeSerif, Numbers=Arabic]
+          {FreeSerif}
+\title{كهرباء} \author{From Wikipedia}
+% Fix some bad kerns inserted by the font loader. I don't know where
+% the bug is and why the following workaroud fixes it. It just forces
+% a dir node as the second node in the par. Note it doesn't take hboxes
+% into account, yet (no local_par = 9 node at the beginning). It seems
+% the font loader will be fixed soon.
+function fixkerns (head)
+  if head and head.id == 9 then
+    snd = head.next
+    if snd and not (snd.id == node.id'dir') then
+      local d = node.new(node.id'dir')
+      d.dir = head.dir
+      head = node.insert_after(head, head, d)
+    end
+  end
+  return head
+where = luatexbase.priority_in_callback('pre_linebreak_filter',
+        'luaotfload.node_processor')
+luatexbase.add_to_callback("pre_linebreak_filter", fixkerns, "fixkerns", where)
+% luatexbase.add_to_callback("hpack_filter", fixkerns, "fixkerns", where)
+الكهرباء اسم يضم مجموعة متنوعة من الظواهر الناتجة عن وجود شحنة
+كهربائية وتدفقها. وتضم هذه الظواهر البرق والكهرباء الساكنة. ولكنها
+تحتوي على مفاهيم أقل شيوعًا مثل المجال الكهرومغناطيسي والحث
+أما في الاستخدام العام، فمن المناسب استخدام كلمة «كهرباء» للإشارة إلى
+عدد من التأثيرات الفيزيائية. ولكن في الاستخدام العلمي، يعد المصطلح
+غامضًا. كما أن هذه المفاهيم المتعلقة به يُفضل تعريفها وفقًا لمصطلحات أكثر
+دقة كما يلي:
+\item[الشحنة الكهربائية] هي خاصية لبعض الجسيمات دون الذرية تحدد
+التفاعلات الكهرومغناطيسية الخاصة بها. فالمادة المشحونة كهربائيًا تتأثر
+بالمجالات الكهرومغناطيسية وتنتجها.
+\item[التيار الكهربائي] هو تحرك أو تدفق الجسيمات المشحونة كهربائيًا،
+ويُقاس عادةً بالأمبير.
+\item[المجال الكهربائي] هو تأثير تنتجه شحنة كهربائية في غيرها من
+الشحنات الموجودة بالقرب منها.
+\item[الجهد الكهربائي] قدرة المجال الكهربائي على الشغل، ويُقاس عادةً
+بوحدة الفولت.
+\item[الكهرومغناطيسية] هي التفاعل الأساسي الذي يحدث بين المجال
+المغناطيسي ووجود الشحنة الكهربائية وحركتها.
+خضعت الظواهر الكهربائية للدراسة منذ القِدم، إلا أن علم الكهرباء لم يشهد
+أي تقدم حتى القرنين السابع عشر والثامن عشر. ومع ذلك فقد ظلت التطبيقات
+العملية المتعلقة بالكهرباء قليلة العدد، ولم يتمكن المهندسون من تطبيق
+علم الكهرباء في الحقل الصناعي والاستخدامات السكنية إلا في أواخر القرن
+التاسع عشر. وقد أدى التقدم السريع في تكنولوجيا الكهرباء في ذلك الوقت
+إلى إحداث تغييرات في المجال الصناعي وفي المجتمع أيضًا. كما أن
+الاستعمالات المتعددة والمذهلة للكهرباء كمصدر من مصادر الطاقة أظهر
+إمكانية استخدامها في عدد كبير من التطبيقات مثل المواصلات والتدفئة
+والإضاءة والاتصالات والحساب. فأساس المجتمع الصناعي الحديث يعتمد على
+استخدام الطاقة الكهربائية، ويمكن التكهن بأن الاعتماد على الطاقة
+الكهربائية سيستمر في المستقبل.
+\foreignlanguage*{english}{Things to do: section numbers are reversed
+(“correct” in the Unicode sense, but here the full stop has a special
+meaning). In red, a couple of word incorrectly rendered by default. It
+seems a bug in the font loader, and a workaround is used in
+this document (see the source).}
+\chapter{نظرة عامة}
+\section{وجه التسمية}
+الكهرباء لفظ فارسي مركب من کاه أي القش ومن رُبَای أي الجاذب، ومعناها
+جميعا جاذب القش؛ والمراد بكلمة کهربا في الفارسية هو الكهرمان المسمى
+بالعربية العنبر الأشهب، أما المقصود من كلمة الكهرباء في العربية فهو
+"جاذبية الكهرمان" والتي كانت تسمى بالعربية خاصية الكهرباء فحذفوا كلمة
+الخاصية واكتفوا بلفظ الكهرباء. وبذلك تحول من الفارسية إلى العربية من
+معنى الفاعل (الجاذب) إلى معنى الفاعلية (الجاذبية).
+الكهرمان اسمه باليونانية الإيلقطرون[3] (معرب ἤλεκτρον إيلكترون أي ذو
+البريق، ومنه الإلكترون عند الفيزيائيين، وعليه تسمية الكهرباء في
+الفارسية برق)، واشتق منه اسم فاعليتيه فسمي إلكترسمس (ηλεκτρ‌ισμός)
+للدلالة على الكهرباء. أما باللاتينية فالكلمة للكهرباء هي إيلكترستاس
+(ēlectricitās)، وهي مشتقة من إيلكتركس (ēlectricus) أي شبيه الكهرمان.
+قبل معرفة الكهرباء بفترة طويلة، كان الناس على دراية بالصدمات التي
+يحدثها سمك الرعاش، وقد أشارت النصوص التي تركها قدماء المصريين، والتي
+يرجع تاريخها إلى سنة 2750 قبل الميلاد، إلى هذه الأسماك باسم "صاعقة
+النيل"، كما وصفوها بأنها حامية جميع الأسماك الأخرى. وبعد حوالي ألف
+عام، أشار إليها أيضًا الإغريق والرومان وعلماء الطبيعة والأطباء
+المسلمون.[4] ولقد أكد الكتّاب القدامى، مثل بليني الأكبر وسكريبونيس
+لارجوس على الإحساس بالتنميل الناتج عن الصدمات الكهربائية التي يحدثها
+سمك السلّور الصاعق وأنقليس الرعاد الكهربائي. كما اكتشف هؤلاء الكتّاب أن
+هذه الصدمات يمكن أن تنتقل عبر الأجسام الموصلة.[5] وبجميع الأحوال، ينسب
+أقدم وأقرب أسلوب لاكتشاف ماهية البرق والكهرباء الصادرة عن أي مصدر آخر
+إلى العرب الذين أطلقوا كلمة "برق" العربية على الشعاع الكهربائي قبل
+القرن الخامس عشر. وقد كان معروفًا في الثقافات القديمة للدول المطلة على
+البحر الأبيض المتوسط أن هناك أجسامًا معينة مثل قضبان الكهرمان، يمكن
+حَكِّها بفرو قطة فتجذب الأجسام الخفيفة مثل الريش. وقد قام العالم
+والفيلسوف الإغريقي، طاليس الملطي، حوالي عام 600 قبل الميلاد بتسجيل
+مجموعة من الملاحظات تتعلق بالكهرباء الساكنة. وبعد هذه الملاحظات، توصل
+إلى أن الاحتكاك يحول الكهرمان إلى مادة مغناطيسية. وعلى عكس ذلك، لا
+تحتاج المعادن، مثل الماغنتيت المعروف باسم أكسيد الحديد الأسود، إلى
+عملية الاحتكاك حتى تكتسب صفة المغناطيسية.[6] إلا أن طاليس كان مخطئًا في
+اعتقاده بأن سبب الانجذاب هو التأثير المغناطيسي، فقد أثبتت الأبحاث
+العلمية فيما بعد وجود علاقة بين المغناطيسية والكهرباء. ووفقًا لإحدى
+النظريات المثيرة للجدل، فقد عرف البارثيون، إحدى شعوب بلاد فارس، الطلاء
+الكهربائي وفقًا لما أفادت المعلومات التي تحصلت من اكتشاف بطارية بغداد
+عام 1936. وعلى الرغم من أن هذه البطارية تشبه الخلية الجلفانية، فإنه من
+غير المؤكد ما إذا كانت ذات طبيعة كهربية أم لا.
+  \includegraphics{Thales.png}
+  \caption{طاليس، أول باحث في الكهرباء.}
+ظلت الكهرباء لا تعني أكثر من مجرد فضول فكري لآلاف السنين حتى عام
+1600. ففي ذلك العام، أجرى الطبيب الإنجليزي ويليام جيلبرت دراسة دقيقة
+حول الكهرباء والمغناطيسية، وفرّق فيها بين تأثير حجر المغناطيس والكهرباء
+الساكنة التي تنتج عن احتكاك مادة الكهرمان.[6] وابتكر كلمة «electricus»
+وهي باللغة اللاتينية الجديدة («من الكهرمان» أو «شبيه الكهرمان»،
+ومأخوذة من «ήλεκτρον» أي «إلكترون»، وهي المرادف اليوناني لكلمة
+«كهرمان») للإشارة إلى خاصية جذب الأجسام الصغيرة بعد حكها. [7] أدى هذا
+الارتباط إلى إبراز الكلمتين «Electric» و«Electricity» اللتين ظهرتا
+لأول مرة في كتاب توماس براون «الأخطاء الشائعة» (باللاتينية:
+Pseudodoxia Epidemica) الذي صدر عام 1646.
+ قد قدم أوتو فون جيريك وروبرت بويل وستيفن جراي وسي إف ديو فاي المزيد من
+الأعمال. وأجرى بنيامين فرانكلين في القرن الثامن عشر أبحاثًا شاملة بشأن
+الكهرباء، حتى أنه اضطر إلى بيع ممتلكاته لتمويل أبحاثه. وقيل أنه في شهر
+حزيران/يونيو من سنة 1752، قام بربط مفتاح معدني أسفل خيط طائرة ورقية
+رطب وأطلق الطائرة في سماء تنذر بهبوب عاصفة. ثم لاحظ مجموعة متلاحقة من
+الشرارات تخرج من المفتاح إلى ظهر يده، الأمر الذي \textcolor{red}{برهن}
+على أن البرق ذو طبيعة كهربائية بالفعل. [9] نشر لودجي جالفاني عام 1791
+اكتشافه الخاص بالكهرباء الحيوية الذي أظهر أن الكهرباء هي الوسيط الذي
+تقوم من خلاله الخلايا العصبية بنقل \textcolor{red}{الإشارات} إلى

More information about the latex3-commits mailing list