texlive[54052] Master/texmf-dist: arabluatex (1mar20)

commits+karl at tug.org commits+karl at tug.org
Wed Mar 4 00:05:43 CET 2020


Revision: 54052
          http://tug.org/svn/texlive?view=revision&revision=54052
Author:   karl
Date:     2020-03-04 00:05:43 +0100 (Wed, 04 Mar 2020)
Log Message:
-----------
arabluatex (1mar20)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/lualatex/arabluatex/arabluatex.el
    trunk/Master/texmf-dist/doc/lualatex/arabluatex/arabluatex.pdf
    trunk/Master/texmf-dist/doc/lualatex/arabluatex/samples/al-Jahiz.pdf
    trunk/Master/texmf-dist/doc/lualatex/arabluatex/samples/al-Jahiz.tex
    trunk/Master/texmf-dist/doc/lualatex/arabluatex/samples/exporting.pdf
    trunk/Master/texmf-dist/doc/lualatex/arabluatex/samples/template-01.pdf
    trunk/Master/texmf-dist/source/lualatex/arabluatex/README.tex
    trunk/Master/texmf-dist/source/lualatex/arabluatex/arabluatex.dtx
    trunk/Master/texmf-dist/source/lualatex/arabluatex/arabluatex.ins
    trunk/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex-patch.sty
    trunk/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex.lua
    trunk/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex.sty
    trunk/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex_fullvoc.lua
    trunk/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex_novoc.lua
    trunk/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex_trans.lua
    trunk/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex_voc.lua

Added Paths:
-----------
    trunk/Master/texmf-dist/source/lualatex/arabluatex/README.md
    trunk/Master/texmf-dist/source/lualatex/arabluatex/makefile

Modified: trunk/Master/texmf-dist/doc/lualatex/arabluatex/arabluatex.el
===================================================================
--- trunk/Master/texmf-dist/doc/lualatex/arabluatex/arabluatex.el	2020-03-03 23:05:23 UTC (rev 54051)
+++ trunk/Master/texmf-dist/doc/lualatex/arabluatex/arabluatex.el	2020-03-03 23:05:43 UTC (rev 54052)
@@ -2,7 +2,7 @@
 ;; This file is part of the `arabluatex' package
 
 ;; ArabLuaTeX -- Processing ArabTeX notation under LuaLaTeX
-;; Copyright (C) 2016--2019  Robert Alessi
+;; Copyright (C) 2016--2020  Robert Alessi
 
 ;; Please send error reports and suggestions for improvements to Robert
 ;; Alessi <alessi at robertalessi.net>

Modified: trunk/Master/texmf-dist/doc/lualatex/arabluatex/arabluatex.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/lualatex/arabluatex/samples/al-Jahiz.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/lualatex/arabluatex/samples/al-Jahiz.tex
===================================================================
--- trunk/Master/texmf-dist/doc/lualatex/arabluatex/samples/al-Jahiz.tex	2020-03-03 23:05:23 UTC (rev 54051)
+++ trunk/Master/texmf-dist/doc/lualatex/arabluatex/samples/al-Jahiz.tex	2020-03-03 23:05:43 UTC (rev 54052)
@@ -5,10 +5,10 @@
 %
 \documentclass[fontsize=12pt, paper=letter, DIV=classic]{scrartcl}
 \usepackage{fontspec}
-\setmainfont{Old Standard}
-\usepackage{newunicodechar}
-\newunicodechar{ǧ}{ǧ} % Old Standard does include ǧ/Ǧ
-\newunicodechar{Ǧ}{Ǧ} %
+\usepackage[english]{babel}
+\babelfont{rm}{Old Standard}
+\babelfont{sf}{NewComputerModern Sans}
+\babelfont{tt}{NewComputerModern Mono}
 \usepackage{filecontents}
 
 \usepackage{xcolor}

Modified: trunk/Master/texmf-dist/doc/lualatex/arabluatex/samples/exporting.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/lualatex/arabluatex/samples/template-01.pdf
===================================================================
(Binary files differ)

Added: trunk/Master/texmf-dist/source/lualatex/arabluatex/README.md
===================================================================
--- trunk/Master/texmf-dist/source/lualatex/arabluatex/README.md	                        (rev 0)
+++ trunk/Master/texmf-dist/source/lualatex/arabluatex/README.md	2020-03-03 23:05:43 UTC (rev 54052)
@@ -0,0 +1,146 @@
+---
+author:
+- Robert Alessi
+title: 'The arabluatex package – README file'
+---
+
+Overview 
+========
+
+This package provides for [LuaLaTeX](http://luatex.org) an
+[ArabTeX](http://ctan.org/pkg/arabtex)-like interface to generate Arabic
+writing from an <span style="font-variant:small-caps;">ascii</span>
+transliteration. It is particularly well-suited for complex documents
+such as technical documents or critical editions where a lot of
+left-to-right commands intertwine with Arabic writing. arabluatex is
+able to process any ArabTeX input notation. Its output can be set in the
+same modes of vocalization as ArabTeX, or in different roman
+transliterations. It further allows many typographical refinements. It
+will eventually interact with some other packages yet to come to produce
+from `.tex` source files, in addition to printed books, `TEI xml`
+compliant critical editions and/or lexicons that can be searched,
+analyzed and correlated in various ways.
+
+License and disclamer 
+=====================
+
+ArabLuaTeX – Processing ArabTeX notation under LuaLaTeX
+
+Copyright ⓒ 2016–2020 Robert Alessi
+
+Please send error reports and suggestions for improvements to Robert
+Alessi:
+
+-   email: <alessi at robertalessi.net>
+
+-   website: <http://www.robertalessi.net/arabluatex>
+
+-   comments, feature requests, bug reports:
+    <https://gitlab.com/ralessi/arabluatex/issues>
+
+This program is free software: you can redistribute it and/or modify it
+under the terms of the GNU General Public License as published by the
+Free Software Foundation, either version 3 of the License, or (at your
+option) any later version.
+
+This program is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
+Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program. If not, see <http://www.gnu.org/licenses/>.
+
+This release of arabluatex consists of the following source files:
+
+-   `arabluatex.ins`
+
+-   `arabluatex.dtx`
+
+-   `arabluatex.lua`
+
+-   `arabluatex_voc.lua`
+
+-   `arabluatex_fullvoc.lua`
+
+-   `arabluatex_novoc.lua`
+
+-   `arabluatex_trans.lua`
+
+License applicable to the documentation 
+---------------------------------------
+
+Copyright ⓒ 2016–2020 Robert Alessi
+
+The documentation file `arabluatex.pdf` that is generated from the
+`arabluatex.dtx` source is licensed under the Creative Commons
+Attribution-ShareAlike 4.0 International License. To view a copy of this
+license, visit <http://creativecommons.org/licenses/by-sa/4.0/> or send
+a letter to Creative Commons, PO Box 1866, Mountain View, CA 94042, USA.
+
+Installation 
+============
+
+1.  Run `'lualatex arabluatex.ins'` to produce the `arabluatex.sty`
+    file;
+
+2.  To finish the installation you have to move the following files into
+    a directory where LaTeX can find them. See the FAQ on `texfaq.org`
+    at <https://texfaq.org/FAQ-inst-wlcf> for more on this:
+
+    -   `arabluatex.sty`
+
+    -   `arabluatex-patch.sty`
+
+    -   `arabluatex.lua`
+
+    -   `arabluatex_voc.lua`
+
+    -   `arabluatex_fullvoc.lua`
+
+    -   `arabluatex_novoc.lua`
+
+    -   `arabluatex_trans.lua`
+
+3.  Additionally, those who use emacs with AUCTeX may copy
+    `arabluatex.el` to their `~/.emacs.d/auctex/auto` local directory.
+    This will enable the appropriate hooks for ArabLuaTeX in AUCTeX.
+
+Development, Git Repository 
+===========================
+
+Browse the code 
+---------------
+
+You can browse ArabLuaTeX repository on the web:
+<http://git.robertalessi.net/arabluatex>
+
+From this page, you can download all the releases of ArabLuaTeX. For
+instructions on how to install ArabLuaTeX, please see above.
+
+Comments, Feature requests, Bug Reports 
+---------------------------------------
+
+<https://gitlab.com/ralessi/arabluatex/issues>
+
+Download the repository 
+-----------------------
+
+ArabLuaTeX development is facilitated by git, a distributed version
+control system. You will need to install git (most GNU/Linux
+distributions package it in their repositories).
+
+Use this command to download the repository
+
+    git clone http://git.robertalessi.net/arabluatex
+
+A new directory named arabluatex will have been created, containing
+ArabLuaTeX.
+
+Git hosting 
+-----------
+
+Make an account on <https://gitlab.com> and navigate (while logged in)
+to <https://gitlab.com/ralessi/arabluatex>. Click *Fork* and you will
+have in your account your own repository of `arabluatex` where you will
+be able to make whatever changes you like to.


Property changes on: trunk/Master/texmf-dist/source/lualatex/arabluatex/README.md
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/source/lualatex/arabluatex/README.tex
===================================================================
--- trunk/Master/texmf-dist/source/lualatex/arabluatex/README.tex	2020-03-03 23:05:23 UTC (rev 54051)
+++ trunk/Master/texmf-dist/source/lualatex/arabluatex/README.tex	2020-03-03 23:05:43 UTC (rev 54052)
@@ -33,7 +33,7 @@
 \section*{License and disclamer}
 ArabLuaTeX -- Processing ArabTeX notation under LuaLaTeX
 
-Copyright ⓒ 2016--2019  Robert Alessi
+Copyright ⓒ 2016--2020  Robert Alessi
 
 Please send error reports and suggestions for improvements to Robert
 Alessi:
@@ -72,7 +72,7 @@
 
 \subsection*{License applicable to the documentation}
 \label{sec:documentation-license}
-Copyright ⓒ 2016--2019  Robert Alessi
+Copyright ⓒ 2016--2020  Robert Alessi
 
 The documentation file \verb|arabluatex.pdf| that is generated from
 the \verb|arabluatex.dtx| source is licensed under the Creative

Modified: trunk/Master/texmf-dist/source/lualatex/arabluatex/arabluatex.dtx
===================================================================
--- trunk/Master/texmf-dist/source/lualatex/arabluatex/arabluatex.dtx	2020-03-03 23:05:23 UTC (rev 54051)
+++ trunk/Master/texmf-dist/source/lualatex/arabluatex/arabluatex.dtx	2020-03-03 23:05:43 UTC (rev 54052)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 % ArabLuaTeX -- Processing ArabTeX notation under LuaLaTeX
-% Copyright (C) 2016--2019  Robert Alesssi
+% Copyright (C) 2016--2020  Robert Alesssi
 %
 % Please send error reports and suggestions for improvements to Robert
 % Alessi <alessi at robertalessi.net>
@@ -27,7 +27,7 @@
 %<package>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
 %<package>\ProvidesPackage{arabluatex}
 %<*package>
-    [2019/03/24 v1.17 An ArabTeX-like interface for LuaLaTeX]
+    [2020/02/29 v1.18 An ArabTeX-like interface for LuaLaTeX]
 %</package>
 %
 %<*driver>
@@ -37,7 +37,7 @@
 % This file is part of the `arabluatex' package
 %
 % ArabLuaTeX -- Processing ArabTeX notation under LuaLaTeX
-% Copyright (C) 2016--2019  Robert Alessi
+% Copyright (C) 2016--2020  Robert Alessi
 %
 % Please send error reports and suggestions for improvements to Robert
 % Alessi <alessi at robertalessi.net>
@@ -147,19 +147,16 @@
   location =	 {London -- Edinburgh}
 }
 \end{filecontents}
+\usepackage{fontspec}
 \usepackage[english]{babel}
 \usepackage{dox}
 \doxitem{Option}{option}{options}
-\usepackage{fontspec}
 \usepackage{microtype}
-\defaultfontfeatures{RawFeature={+liga}}
-\setmainfont{Old Standard}[SmallCapsFont={Latin Modern Roman Caps},
-  RawFeature={+mark;+ccmp;+ss05;+ss06}]
-\usepackage{newunicodechar}
-\newunicodechar{ǧ}{ǧ} % Old Standard does not include ǧ/Ǧ
-\newunicodechar{Ǧ}{Ǧ} %
+\babelfont{rm}{Old Standard}
+\babelfont{sf}{NewComputerModern Sans}
+\babelfont{tt}{NewComputerModern Mono}
 \usepackage{metalogox}
-\usepackage{arabluatex}[2019/03/24]
+\usepackage{arabluatex}[2020/02/29]
 \SetArbUp{\textsuperscript{\thinspace#1}} % Old Standard needs this
 \usepackage[nopar]{quran}
 \usepackage[noindex]{nameauth}
@@ -170,11 +167,12 @@
 \usepackage{uri}
 \usepackage{bookmark}
 \usepackage{authblk}
-\hypersetup{unicode=true, colorlinks, allcolors=blue,
+\usepackage{latexcolors}
+\hypersetup{unicode=true, colorlinks, allcolors=cinnamon,
   linktocpage=true, pdfauthor={Robert Alessi}, pdftitle={The
     arabluatex package}, pdfcontactemail={alessi at robertalessi.net},
   pdfcontacturl={http://www.robertalessi.net/arabluatex},
-  pdfcopyright={Copyright (C) 2016--2019 Robert Alessi
+  pdfcopyright={Copyright (C) 2016--2020 Robert Alessi
     <alessi at robertalessi.net>. This document is licensed under the
     Creative Commons Attribution-ShareAlike 4.0 International
     License. To view a copy of this license, visit
@@ -208,7 +206,7 @@
 \usepackage{relsize}
 \usepackage{tikz}
 \usepackage[breakable, skins, xparse, minted]{tcolorbox}
-\tcbset{colback=white, boxrule=.15mm, colframe=red!50!white,
+\tcbset{colback=white, boxrule=.15mm, colframe=cinnamon,
   breakable}
 \newtcbox{\arabluabox}{boxrule=.3mm, left=0mm, right=0mm, top=0mm,
   bottom=0mm}
@@ -215,8 +213,7 @@
 \newtcblisting{example}{minted options={linenos, numbersep=0mm,
     fontsize=\smaller}}
 \newtcblisting{code}{minted options={linenos, numbersep=0mm,
-    fontsize=\smaller}, listing
-  only}
+    fontsize=\smaller}, listing only}
 \newcommand{\package}[1]{\textsf{#1}\index{#1=#1 (package)}}
 \usepackage[contents]{colordoc}
 \usepackage{csquotes}
@@ -262,7 +259,7 @@
 %</driver>
 % \fi
 %
-% \CheckSum{919}
+% \CheckSum{1006}
 %
 % \CharacterTable
 %  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
@@ -355,7 +352,7 @@
 % \label{sec:license-software}
 %
 % \package{arabluatex} --- Processing Arab\TeX\ notation under Lua\LaTeX.\\
-% Copyright \textcopyright\ 2016--2019  Robert Alessi
+% Copyright \textcopyright\ 2016--2020  Robert Alessi
 %
 % Please send error reports and suggestions for improvements to Robert
 % Alessi:
@@ -397,7 +394,7 @@
 % 
 % \subsection*{License applicable to this document}
 % \label{sec:documentation-license}
-% Copyright \textcopyright\ 2016--2019  Robert Alessi
+% Copyright \textcopyright\ 2016--2020  Robert Alessi
 %
 % \ccbysa\marginpar{\texttt{CC BY-SA 4.0}}
 % This document is licensed under the Creative Commons
@@ -717,16 +714,7 @@
 %</example>
 % \fi
 %
-% \paragraph{Caveat}
-% For some reason, left-to-right paragraphs that start with Arabic
-% words lose their indentation. For the time being, this can be
-% circumvented by appending the \cs{indent} command at the
-% commencement of such paragraphs.
-%
-% \label{ref:ltr-lists}%
-% The same remark applies to left-to-right list environments: when
-% items start with Arabic words, the \cs{arb} command must be prefixed
-% with \cs{indent}. The following example comes from \textcite[i. 213
+% The following example comes from \textcite[i. 213
 % C]{Wright}:--- %
 % \iffalse
 %<*example>
@@ -733,9 +721,9 @@
 % \fi
 \begin{example}
   \begin{enumerate}[label=\Roman*., start=16]
-  \item \indent\arb{fawA`ilu}*.
+  \item \arb{fawA`ilu}*.
     \begin{enumerate}[label=\arabic*.]
-    \item \indent\arb{fA`aluN}; as \arb{_hAtamuN} \emph{a
+    \item \arb{fA`aluN}; as \arb{_hAtamuN} \emph{a
         signet-ring}, ...
     \end{enumerate}
   \end{enumerate}
@@ -957,7 +945,7 @@
 % \subsubsection{Long vowels}
 % \Cref{tab:arabtex-long-vowels} gives the Arab\TeX\ equivalents for
 % the Arabic long vowels.
-%
+% \enlargethispage{1\baselineskip}
 % \begin{longtable}{lllll}
 % \bottomrule
 % \caption*{\Cref*{tab:arabtex-long-vowels}: Standard Arab\TeX\ (long
@@ -1255,17 +1243,17 @@
 %   \arb[voc]{'as'i\-laTuN} \arb[trans]{'as'ilaTuN}, |mas'alaTuN|
 %   \arb[voc]{mas'alaTuN} \arb[trans]{mas'alaTuN}, |'as'alu|
 %   \arb[voc]{'as'alu} \arb[trans]{'as'alu}, |yatasA'alUna|
-%   \arb[voc]{yatasA'alUna}\linebreak \arb[trans]{yatasA'alUna},
-%   |murU'aTuN| \arb[voc]{murU'aTuN}, |taw'amuN|
-%   \arb[fullvoc]{taw'amuN} \arb[trans]{taw'amuN},
-%   \arb[trans]{murU'aTuN}, |ta'xIruN| \arb[fullvoc]{ta'xIruN}
-%   \arb[trans]{ta'xIruN}, |ta'ax|\allowbreak|xara|
-%   \arb[voc]{ta'axxara} \arb[trans]{ta'axxara}, |ji'tu-ka|
-%   \arb[voc]{ji'tu-ka} \arb[trans]{ji'tu-ka}, |qA'iluN|
-%   \arb[voc]{qA'iluN} \arb[trans]{qA'iluN}, |.hIna'i_diN|
-%   \arb[trans]{.hIna'i_diN} \arb[voc]{.hIna'i_diN}, |hay'aTuN|
-%   \arb[voc]{hay'aTuN} \arb[trans]{hay\-'aTuN}, |hay'AtuN|
-%   \arb[voc]{hay'AtuN} \arb[trans]{hay'AtuN}.
+%   \arb[voc]{yatasA'alUna} \arb[trans]{yatasA'alUna}, |murU'aTuN|
+%   \arb[voc]{murU'aTuN} \arb[trans]{murU'aTuN}, |taw'amuN|
+%   \arb[fullvoc]{taw'amuN} \arb[trans]{taw'amuN}, |ta'xIruN|
+%   \arb[fullvoc]{ta'xIruN} \arb[trans]{ta'xIruN},
+%   |ta'ax|\allowbreak|xara| \arb[voc]{ta'axxara}
+%   \arb[trans]{ta'axxara}, |ji'tu-ka| \arb[voc]{ji'tu-ka}
+%   \arb[trans]{ji'tu-ka}, |qA'iluN| \arb[voc]{qA'iluN}
+%   \arb[trans]{qA'iluN}, |.hIna'i_diN| \arb[trans]{.hIna'i_diN}
+%   \arb[voc]{.hIna'i_diN}, |hay'aTuN| \arb[voc]{hay'aTuN}
+%   \arb[trans]{hay\-'aTuN}, |hay'AtuN| \arb[voc]{hay'AtuN}
+%   \arb[trans]{hay'AtuN}.
 %
 %   From \textcite[i. 14 B]{Wright}:--- All consonants, whatsoever,
 %   not even \arb[trans]{'alif} \emph{hèmzatum} excepted, admit of
@@ -1544,7 +1532,7 @@
 %   |uqtul| \arb[fullvoc]{qAla uqtul} \arb[trans]{qAla uqtul}, |huwa|
 %   |inhazama| \arb[fullvoc]{huwa inhazama} \arb[trans]{huwa
 %   inhazama}, |wa-ustu`mila| \arb[fullvoc]{wa-ustu`mila}
-%   \arb[trans]{wa-ustu`mila}, |qad-i| |in.sarafa| \arb[fullvoc]{qadi
+%   \arb[trans]{wa-ustu`mila}, |qadi| |in.sarafa| \arb[fullvoc]{qadi
 %   in.sarafa} \arb[trans]{qadi in.sarafa}, |al-iqtidAr-u|
 %   \arb[fullvoc]{al-iqtidAr-u} \arb[trans]{al-iqtidAr-u}, |'il_A|
 %   |'l-inti|\allowbreak|qA.d-i| \arb[fullvoc]{'il_A 'l-intiqA.d-i}
@@ -1905,7 +1893,8 @@
 %   \arb[fullvoc]{'a`daA"'|"'ikum} \arb[trans]{'a`dA|"'ikum}.
 % \end{quote}
 %
-% \subsection{The \enquote{pipe} character (\textbar)}
+% \subsection{\texorpdfstring{The \enquote*{pipe} character
+% (\textbar)}{The ‘pipe’ character (\textbar)}}
 % \label{sec:pipe}
 % In the terminology of Arab\TeX, the \enquote{pipe} character
 % \enquote*{\textbar} is referred to as the \enquote{invisible
@@ -2293,7 +2282,7 @@
 % As one can see, \emph{triple hyphens} have been used. In the
 % \arb[trans]{.sadr}, the first hyphen triggers the rules that are
 % related to the definite article and the \arb[trans]{'alif-u
-% 'l-wa.sl-i},\footnote{See \vref{ref:definite-article}} while the
+% 'l-wa.sl-i},\footnote{See \vref{ref:definite-article}.} while the
 % following two select the figure of the letter \arb[trans]{lAm}
 % connected with a following letter. In the \arb[trans]{`a^guz}, the
 % last two hyphens select the letter \arb[trans]{yA'} connected with a
@@ -2324,7 +2313,7 @@
     gutter=1cm]
     \bayt{.gayra 'annI qad 'asta`Inu `al_A 'l-ha--}[--mmi ]{'i_dA
       _haffa bi-'l-_tawiyyi 'l-na^gA'u}\\
-    \bayt{bi-zaf--UfiN ka-'anna-hA hiq--laTuN}[ 'ummu ]{ri'AliN
+    \bayt{bi-zaf--UfiN ka-'anna-hA hiq|--laTuN}[ 'ummu ]{ri'AliN
       dawwiyyaTuN saqfA'u}\\
   \end{arabverse}
 \end{example}
@@ -2619,6 +2608,35 @@
 %</example>
 % \fi
 %
+% \paragraph{\texorpdfstring{The \enquote*{Zero width joiner}
+% character (\texttt{U+200D})}%
+% {The ‘Zero width joiner’ character (\texttt{U+200D})}}
+% \phantomsection%
+% \NEWfeature{v1.18}%
+% The \enquote*{Zero width joiner} character (|U+200D|) belongs to the
+% \enquote*{General Punctuation} block (range |2000|--|206F|) of the
+% Unicode standard.  It is a non-printing character which, when it is
+% placed between two characters that would for some reason not be
+% connected, causes them to be printed in their connected forms.
+%
+% It is encoded |&| in Arab\TeX\ scheme.
+%
+% In the following example, the \cs{uline} command would have
+% prevented adjacent Arabic letters from being connected if the
+% \enquote*{Zero width joiner} had not been used:---%
+% \iffalse
+%<*example>
+% \fi
+\begin{example}
+  \begin{arab}[fullvoc]
+    huwa 'abU zaydiN .hunaynu bnu 'is.h_aqa 'l-`a&\uline{&bA}diyyu
+    bi-fat.hi 'l-`ayni wa-ta_hfIfi 'l-bA'i.
+  \end{arab}
+\end{example}
+% \iffalse
+%</example>
+% \fi
+%
 % \subsection{\texorpdfstring{The \prname{qur'An}}{The Qurʾān}}
 % \label{sec:the-quran}
 % This sub-part is destined to become a part of its own, as fine
@@ -2711,7 +2729,7 @@
   \begin{arab}
     \arbcolor[red]{al-bAbu 'l-_hAmisu} fI .tabaqAti 'l-'a.tibbA'i
     'lla_dIna kAnUA mun_du zamAni \uc{^gAlInUsa} wa-qarIbaN
-    min-hu. \arbcolor[red]{\uc{^gAlInUsu}}: wa-li-na.da` 'awwalaN
+    min-hu. \arbcolor[red]{\uc{^gAlInUsu}}: wa-l-na.da` 'awwalaN
     kalAmaN kulliyyaN fI 'a_hbAri \uc{^gAlInUsa} wa-mA kAna
     `alay-hi...
   \end{arab}
@@ -2718,7 +2736,7 @@
   \begin{arab}[trans]
     \arbcolor[red]{al-bAbu 'l-_hAmisu} fI .tabaqAti 'l-'a.tibbA'i
     'lla_dIna kAnUA mun_du zamAni \uc{^gAlInUsa} wa-qarIbaN
-    min-hu. \arbcolor[red]{\uc{^gAlInUsu}}: wa-li-na.da` 'awwalaN
+    min-hu. \arbcolor[red]{\uc{^gAlInUsu}}: wa-l-na.da` 'awwalaN
     kalAmaN kulliyyaN fI 'a_hbAri \uc{^gAlInUsa} wa-mA kAna
     `alay-hi...
   \end{arab}
@@ -2788,6 +2806,7 @@
 % \arb{B.a} & \dmg{.a} & \loc{.a} & \brill{.a} & \verb|.a| \\
 % \pagebreak[1]
 % \arb{B.u} & \dmg{.u} & \loc{.u} & \brill{.u} & \verb|.u| \\
+% \pagebreak[1]
 % \arb{B.i} & \dmg{.i} & \loc{.i} & \brill{.i} & \verb|.i| \\ \midrule
 % \arb{Bo} & \dmg{o} & \loc{o} & \brill{o} & \verb|o| \\
 % \end{longtable}
@@ -3140,7 +3159,8 @@
 %   \uc{'l-rAziyyu}}.
 % \end{quote}
 %
-% \paragraph{\enquote*{Long} pro\-per names}
+% \paragraph{\texorpdfstring{\enquote*{Long} pro\-per
+% names}{‘Long’ proper names}}
 % \NEWfeature{v1.10} \cs{uc} is also able to process proper names
 % consisting of several subsequent words:---
 % \begin{quote}
@@ -3417,8 +3437,8 @@
 %</example>
 % \fi
 %
-% \paragraph{\enquote*{base}, \enquote*{\texttt{xml}} and
-% \enquote*{safe} schemes}
+% \paragraph{\texorpdfstring{\enquote*{base}, \enquote*{\texttt{xml}}
+% and \enquote*{safe} schemes}{‘base’, ‘xml’ and ‘safe’ schemes}}
 % \package{arabluatex} can use any of the so-called Buckwalter
 % \enquote*{base}, \enquote*{\texttt{xml}} or \enquote*{safe} schemes
 % as they are described in \textcite[25--26]{Habash}.\footnote{I am
@@ -3457,7 +3477,6 @@
 % \endhead \footnotetext{See \vref{sec:transliteration}.}
 % \label{tab:buckwalter-scheme}
 % \arb[novoc]{a} & \dmg{a} & \loc{a} & \brill{a} & |A| & |A| \\
-% \pagebreak[1]
 % \arb[novoc]{b} & \dmg{b} & \loc{b} & \brill{b} & |b| & |b| \\
 % \arb[novoc]{t} & \dmg{t} & \loc{t} & \brill{t} & |t| & |t| \\
 % \arb[novoc]{_t} & \dmg{_t} & \loc{_t} & \brill{_t} & |v| & |v| \\
@@ -3475,6 +3494,7 @@
 % \arb[novoc]{.t} & \dmg{.t} & \loc{.t} & \brill{.t} & |T| & |T| \\
 % \arb[novoc]{.z} & \dmg{.z} & \loc{.z} & \brill{.z} & |Z| & |Z| \\
 % \arb[novoc]{`} & \dmg{`} & \loc{`} & \brill{`} & |E| & |E| \\
+% \pagebreak[2]
 % \arb[novoc]{.g} & \dmg{.g} & \loc{.g} & \brill{.g} & |g| & |g| \\
 % \arb[novoc]{f} & \dmg{f} & \loc{f} & \brill{f} & |f| & |f| \\
 % \arb[novoc]{q} & \dmg{q} & \loc{q} & \brill{q} & |q| & |q| \\
@@ -4305,18 +4325,12 @@
 % functions and tables. Read the |.lua| files that accompany
 % \package{arabluatex} for more information.
 %    \begin{macrocode}
-\RequirePackage{ifluatex}
+\RequirePackage{iftex}
 %    \end{macrocode}
 % \package{arabluatex} requires {\LuaLaTeX} of course. Issue a warning
 % if the document is processed with another engine.
 %    \begin{macrocode}
-\ifluatex\else
- \PackageError{arabluatex}{lualatex needed}{%
-  Package `arabluatex' needs LuaTeX.\MessageBreak
-  So you should use `lualatex' to process your document.\MessageBreak
-  See documentation of `arabluatex' for further information.}%
-  \expandafter\expandafter\expandafter\csname endinput\endcsname
-\fi
+\RequireLuaTeX
 %    \end{macrocode}
 % Declare the global options, and define them:
 %    \begin{macrocode}
@@ -4364,9 +4378,10 @@
 % and attempt to load the Amiri font which is included in \TeX{}live:
 %    \begin{macrocode}
 \AtBeginDocument{\ifdefined\arabicfont\relax\else
-\PackageWarning{arabluatex}{\string\arabicfont\ is not defined.^^J
-  I will try to load Amiri}%
-\newfontfamily\arabicfont[Script=Arabic]{Amiri}\fi}%
+  \PackageInfo{arabluatex}{%
+    \string\arabicfont\ is not defined.\MessageBreak
+    arabluatex will try to load Amiri}%
+  \newfontfamily\arabicfont{Amiri}[Script=Arabic]\fi}%
 %    \end{macrocode}
 % \begin{macro}{\setRL}
 %   This neutralizes what may be defined by other packages:
@@ -4618,6 +4633,7 @@
 % not documented.
 %    \begin{macrocode}
 \NewDocumentCommand{\txarb}{+m}{%
+  \ifvmode\leavevmode\fi%
   \bgroup\textdir TRT\arabicfont#1\egroup}
 \NewDocumentCommand{\txtrans}{+m}{%
   \bgroup\textdir TLT\al at trans@font\al at trans@style#1\egroup}
@@ -4636,6 +4652,17 @@
   \pardir TRT\textdir TRT\arabicfont}{\par}
 %    \end{macrocode}
 % \end{environment}
+% \begin{environment}{txarabtr}
+% |txarabtr| environment is used internally by several Lua functions
+% to insert running paragraphs of transliterated Arabic text
+% Therefore, it is not documented.
+%    \begin{macrocode}
+\NewDocumentEnvironment{txarabtr}{}{%
+  \par%
+  \pardir TLT\textdir TLT%
+  \al at trans@font\al at trans@style}{\par}
+%    \end{macrocode}
+% \end{environment}
 % \begin{macro}{\arb}
 %   The \cs{arb} command detects which Arabic mode is to be used,
 %   either globally if no option is set, or locally, then passes its
@@ -4644,16 +4671,19 @@
 \NewDocumentCommand{\arb}{O{\al at mode} +m}%
 {\edef\@tempa{#1}%
   \ifx\@tempa\al at mode@voc%
+  \ifvmode\leavevmode\fi%
   \bgroup\booltrue{al at rlmode}\textdir TRT\arabicfont%
   \luadirect{tex.sprint(arabluatex.processvoc(\luastringN{#2},
     \luastringO{\al at arb@rules}, \luastringO{\al at input@scheme}))}\egroup%
   \else%
   \ifx\@tempa\al at mode@fullvoc%
+  \ifvmode\leavevmode\fi%
   \bgroup\booltrue{al at rlmode}\textdir TRT\arabicfont%
   \luadirect{tex.sprint(arabluatex.processfullvoc(\luastringN{#2},
     \luastringO{\al at arb@rules}, \luastringO{\al at input@scheme}))}\egroup%
   \else%
   \ifx\@tempa\al at mode@novoc%
+  \ifvmode\leavevmode\fi%
   \bgroup\booltrue{al at rlmode}\textdir TRT\arabicfont%
   \luadirect{tex.sprint(arabluatex.processnovoc(\luastringN{#2},
     \luastringO{\al at arb@rules}, \luastringO{\al at input@scheme}))}\egroup%
@@ -4703,7 +4733,7 @@
 % The |arab| environment does for paragraphs the same as \cs{arb} does
 % for short insertions of Arabic text.
 %    \begin{macrocode}
-\NewDocumentEnvironment{arab}{O{\al at mode} +b}%
+\NewDocumentEnvironment{arab}{!O{\al at mode} +b}%
 {\par\edef\@tempa{#1}%
   \ifx\@tempa\al at mode@voc%
   \booltrue{al at rlmode}%
@@ -4760,7 +4790,7 @@
 %    \end{macrocode}
 % Then follows the environment itself:
 %    \begin{macrocode}
-\NewDocumentEnvironment{arabverse}{O{}}%
+\NewDocumentEnvironment{arabverse}{!O{}}%
 {\bgroup\setkeys[al]{verse}[width, gutter, color, utf, delim,
   metre]{#1}%
   \if at pkg@export\ifal at verse@export%
@@ -4848,6 +4878,58 @@
 %    \end{macrocode}
 % \end{macro}
 % \end{environment}
+% \begin{macro}{\arind}
+% \changes{v1.18}{2020/02/29}{New command \cs{arind} for building
+% indexes}
+% \cs{arind}\marg{root} is a command specialized in the contruction of
+% indexes. As a mandadory argument, it takes the Arabic root under
+% which a given word is to be indexed. Additionally, it may receive
+% three optional \enquote*{named} arguments: |index|, |root| and
+% |form|.
+%    \begin{macrocode}
+\NewDocumentCommand{\SetDefaultIndex}{m}{
+  \edef\@tempa{#1}
+  \ifx\@tempa\empty
+    \def\al at default@index{\jobname}
+  \else
+    \def\al at default@index{#1}
+  \fi
+}
+%    \end{macrocode}
+%    \begin{macrocode}
+\def\al at index@mode{\al at mode}
+\NewDocumentCommand{\SetIndexMode}{m}{
+  \def\al at index@mode{#1}
+}
+%    \end{macrocode}
+%    \begin{macrocode}
+\define at cmdkeys[al]{index}[alind@]{index,root,form}
+\NewDocumentCommand{\arind}{o m}{%
+  \IfNoValueTF{#1}{%
+    \ifdefined\al at default@index%
+      \csname index\endcsname[\al at default@index]{#2}%
+    \else%
+      \csname index\endcsname{#2}%
+    \fi%
+  }{%
+    \bgroup
+    \setkeys[al]{index}{#1}%
+    \def\al at one{%
+      \ifdefined\alind at root!\LR{\alind at root}\else!\LR{1}\fi}%
+    \def\al at two{%
+      \ifdefined\alind at form @\arb[\al at index@mode]{\alind at form}\else\fi}%
+    \ifdefined\alind at index%
+      \csname index\endcsname[\alind at index]{#2\al at one\al at two}%
+    \else%
+      \ifdefined\al at default@index%
+        \csname index\endcsname[\al at default@index]{#2\al at one\al at two}%
+      \else%
+        \csname index\endcsname{#2\al at one\al at two}%
+      \fi%
+    \fi%
+    \egroup}}
+%    \end{macrocode}
+% \end{macro}
 % \begin{macro}{\abjad} \cs{abjad}\marg{number} expresses its argument
 %   in Arabic letters in accordance with the \arb[trans]{'abjad}
 %   arrangement of the alphabet. \meta{number} must be between 1 and

Modified: trunk/Master/texmf-dist/source/lualatex/arabluatex/arabluatex.ins
===================================================================
--- trunk/Master/texmf-dist/source/lualatex/arabluatex/arabluatex.ins	2020-03-03 23:05:23 UTC (rev 54051)
+++ trunk/Master/texmf-dist/source/lualatex/arabluatex/arabluatex.ins	2020-03-03 23:05:43 UTC (rev 54052)
@@ -1,7 +1,7 @@
 %% This file is part of the `arabluatex' package
 %%
 %% ArabLuaTeX -- Processing ArabTeX notation under LuaLaTeX
-%% Copyright (C) 2016--2019  Robert Alessi
+%% Copyright (C) 2016--2020  Robert Alessi
 %%
 %% Please send error reports and suggestions for improvements to
 %% Robert Alessi <alessi at robertalessi.net>
@@ -43,7 +43,7 @@
 This file is part of the `arabluatex' package
 
 ArabLuaTeX -- Processing ArabTeX notation under LuaLaTeX
-Copyright (C) 2016--2019  Robert Alessi
+Copyright (C) 2016--2020  Robert Alessi
 
 Please send error reports and suggestions for improvements to Robert
 Alessi <alessi at robertalessi.net>

Added: trunk/Master/texmf-dist/source/lualatex/arabluatex/makefile
===================================================================
--- trunk/Master/texmf-dist/source/lualatex/arabluatex/makefile	                        (rev 0)
+++ trunk/Master/texmf-dist/source/lualatex/arabluatex/makefile	2020-03-03 23:05:43 UTC (rev 54052)
@@ -0,0 +1,70 @@
+pkg := arabluatex
+ver  := $(shell ltxfileinfo -v $(pkg).dtx|sed -e 's/^v//')
+TEXMFDIR := $(shell kpsewhich -expand-var='$$TEXMFHOME')
+HOMEDIR := $$HOME
+CMP = lualatex-dev
+
+sty: clean
+	$(CMP) $(pkg).ins
+
+doc: clean sty
+	$(CMP) --shell-escape $(pkg).dtx
+	biber arabluatex
+	$(CMP) --shell-escape $(pkg).dtx
+	makeindex -s gind.ist -o $(pkg).ind $(pkg).idx
+	makeindex -s gglo.ist -o $(pkg).gls $(pkg).glo
+	$(CMP) --shell-escape $(pkg).dtx
+	$(CMP) --shell-escape $(pkg).dtx
+	for i in samples/*.tex; \
+	do latexmk -outdir=TMP -lualatex -e '$$lualatex=q/$(CMP) %O --shell-escape %S/' $$i; \
+	done
+	mv TMP/*.pdf samples/
+
+all: clean sty doc
+
+local: clean sty
+	if [ ! -d "$(TEXMFDIR)/tex/lualatex/arabluatex" ]; then \
+	mkdir -p $(TEXMFDIR)/tex/lualatex/arabluatex; \
+	fi
+	cp $(pkg)*.{sty,lua} $(TEXMFDIR)/tex/lualatex/arabluatex
+	if [ ! -d "$(HOMEDIR)/.emacs.d/auctex/auto" ]; then \
+	mkdir -p $(HOMEDIR)/.emacs.d/auctex/auto; \
+	fi
+	cp $(pkg)*.el $(HOMEDIR)/.emacs.d/auctex/auto
+
+auctex: clean
+	if [ ! -d "$(HOMEDIR)/.emacs.d/auctex/auto" ]; then \
+	mkdir -p $(HOMEDIR)/.emacs.d/auctex/auto; \
+	fi
+	cp $(pkg)*.el $(HOMEDIR)/.emacs.d/auctex/auto
+
+package: clean all
+	mkdir -p arabluatex/samples/
+	cp *.{lua,ins,dtx,md,pdf} makefile README.tex arabluatex/ # .bib is in dtx
+	cp samples/*.{tex,pdf} arabluatex/samples/
+	mkdir -p tex/lualatex/arabluatex/
+	cp *.lua *.sty tex/lualatex/arabluatex/
+	mkdir -p doc/lualatex/arabluatex/samples
+	cp *.{pdf,el} doc/lualatex/arabluatex/
+	cp samples/*.{tex,pdf} doc/lualatex/arabluatex/samples
+	mkdir -p source/lualatex/arabluatex/
+	cp *.{ins,dtx,tex,md}  makefile source/lualatex/arabluatex/ # .bib is in dtx
+	zip -r arabluatex.tds.zip tex doc source
+	tar czf arabluatex-$(ver).tar.gz arabluatex.tds.zip arabluatex/
+
+clean:
+	rm -rf $(TEXMFDIR)/tex/lualatex/arabluatex/
+	rm -rf $(HOMEDIR)/.emacs.d/auctex/auto/arabluatex*.el
+	rm -rf tex/ doc/ source/ auto/
+	rm -rf arabluatex/
+	rm -rf saved/ TMP/ _minted-arabluatex/
+	find ./samples/ | grep -v "\./samples/$$" | grep -v ".*tex$$" | xargs rm -rf
+	mkdir saved
+	cp *.{lua,ins,dtx,tex,el} makefile saved # .bib is in dtx
+	rm *.*
+	cp saved/* .
+	rm -rf saved/
+	pandoc -s README.tex -o README.md && sed -i 's/{#.*}//g' README.md
+	pandoc -s README.tex -o about.html
+
+.PHONY: sty doc all local auctex package clean


Property changes on: trunk/Master/texmf-dist/source/lualatex/arabluatex/makefile
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex-patch.sty
===================================================================
--- trunk/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex-patch.sty	2020-03-03 23:05:23 UTC (rev 54051)
+++ trunk/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex-patch.sty	2020-03-03 23:05:43 UTC (rev 54052)
@@ -11,7 +11,7 @@
 %% This file is part of the `arabluatex' package
 %% 
 %% ArabLuaTeX -- Processing ArabTeX notation under LuaLaTeX
-%% Copyright (C) 2016--2019  Robert Alessi
+%% Copyright (C) 2016--2020  Robert Alessi
 %% 
 %% Please send error reports and suggestions for improvements to Robert
 %% Alessi <alessi at robertalessi.net>

Modified: trunk/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex.lua
===================================================================
--- trunk/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex.lua	2020-03-03 23:05:23 UTC (rev 54051)
+++ trunk/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex.lua	2020-03-03 23:05:43 UTC (rev 54052)
@@ -2,7 +2,7 @@
 This file is part of the `arabluatex' package
 
 ArabLuaTeX -- Processing ArabTeX notation under LuaLaTeX
-Copyright (C) 2016--2019  Robert Alessi
+Copyright (C) 2016--2020  Robert Alessi
 
 Please send error reports and suggestions for improvements to Robert
 Alessi <alessi at robertalessi.net>
@@ -56,6 +56,7 @@
 local cmdargs = lpeg.Cs(spce^-1 * bsqbracketsii * bcbracesii * bsqbrackets^-1)
 local arbargs = lpeg.Cs(spce^-1 * bsqbrackets^-1 * bcbraces)
 local baytargs = lpeg.Cs(spce * bcbraces * bsqbrackets^-1 * bcbraces)
+local arind = lpeg.Cs(dblbkslash * lpeg.P("arind") * spce^-1 * bsqbracketsii)
 
 local function protectarb(str)
    str = string.gsub(str, "(\\arb%s?)(%[.-%])(%b{})", "\\al at brk{\\arb%2%3}")
@@ -268,7 +269,7 @@
    end
    str = string.gsub(str, "(\\arb%s?)(%b{})", function(tag, body)
    			body = string.sub(body, 2, -2)
-   			return string.format("%s", body)
+			return string.format("\\al at brk{%s{%s}}", tag, body)
    end)
    str = string.gsub(str, "\\@rb", "\\arb")
    str = "\\arb{"..str.."}"
@@ -655,6 +656,20 @@
    return str
 end
 
+local function processarind(str, mode)
+   str = gsub(str, arind * bcbraces, function(tag, arg)
+		 arg = string.sub(arg, 2, -2)
+		 if mode == "trans" then
+		    return string.format("%s{\\txtrans{%s}}", tag, arg)
+		 else
+		    arg = novoc(arg)
+		    arg = string.gsub(arg, "\\arabicfont%s?{}", "")
+		    return string.format("%s{\\txarb{%s}}", tag, arg)
+		 end
+   end)
+   return str
+end
+
 -- The following functions produce a copy of the original .tex source
 -- file in which all arabtex strings are replaced with Unicode
 -- equivalents
@@ -743,15 +758,9 @@
 			   return string.format("%s{\\arb[trans]{\\uc{%s}}}", tag, body)
 			end
    end)
-   str = string.gsub(str, "(\\begin%s?{arab})(%b[])", function(tag, body)
-			if string.find(body, "trans") then
-			   return string.format("\\par\\bgroup\\setLR\\arb%s{", body)
-			else
-			   return string.format("\\par\\bgroup\\setRL\\arb%s{", body)
-			end
-   end)
-   str = string.gsub(str, "(\\begin%s?{arab})", "\\par\\bgroup\\arbpardir\\arb{")
-   str = string.gsub(str, "\\end%s?{arab}", "}\\egroup\\par")
+   str = string.gsub(str, "(\\begin%s?{arab})(%b[])", "\\bgroup\\arb%2{")
+   str = string.gsub(str, "(\\begin%s?{arab})", "\\bgroup\\arb{")
+   str = string.gsub(str, "\\end%s?{arab}", "}\\egroup")
    -- This does not work, while the following two do. Look into this later.
    -- str = gsub(str, lpeg.Cs("\\arb") * spcenc * bsqbrackets^-1 * bcbraces, function(tag, opt, body)
    -- 		 body = string.sub(body, 2, -2)
@@ -836,6 +845,14 @@
    t = string.gsub(t, "(\\@al at ob)", "{")
    t = string.gsub(t, "(\\@al at cb@sp)", "} ")
    t = string.gsub(t, "(\\@al at cb)(%s?)", "}")
+   t = string.gsub(t, "(\\bgroup%s?)(\\txarb%s?)(%b{})(\\egroup%s?)", function(tagio, tag, body, tagic)
+		      body = string.sub(body, 2, -2)
+		      return string.format("\\begin{txarab}%s\\end{txarab}", body)
+   end)
+   t = string.gsub(t, "(\\bgroup%s?)(\\txtrans%s?)(%b{})(\\egroup%s?)", function(tagio, tag, body, tagic)
+		      body = string.sub(body, 2, -2)
+		      return string.format("\\begin{txarabtr}%s\\end{txarabtr}", body)
+   end)
    t = gsub(t, lpeg.Cs("\\begin") * spcenc^-1 * bcbraces * cmdargs,
 	    "\n%1%2%3\n")
    t = string.gsub(t, "(\\\\)(%s?)", "%1\n")
@@ -892,6 +909,7 @@
    str = protectarb(str)
    str = breakcmd(str)
    str = holdcmd(str)
+   str = processarind(str)
    if scheme == "buckwalter" then
       str = processbuckw(str)
       else end
@@ -920,6 +938,7 @@
    str = protectarb(str)
    str = breakcmd(str)
    str = holdcmd(str)
+   str = processarind(str)
    if scheme == "buckwalter" then
       str = processbuckw(str)
       else end
@@ -950,6 +969,7 @@
    str = protectarb(str)
    str = breakcmd(str)
    str = holdcmd(str)
+   str = processarind(str)
    if scheme == "buckwalter" then
       str = processbuckw(str)
       else end
@@ -979,6 +999,7 @@
    str = protectarb(str)
    str = breakcmd(str)
    str = holdcmd(str)
+   str = processarind(str, "trans")
    if scheme == "buckwalter" then
       str = processbuckw(str)
    end

Modified: trunk/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex.sty
===================================================================
--- trunk/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex.sty	2020-03-03 23:05:23 UTC (rev 54051)
+++ trunk/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex.sty	2020-03-03 23:05:43 UTC (rev 54052)
@@ -11,7 +11,7 @@
 %% This file is part of the `arabluatex' package
 %% 
 %% ArabLuaTeX -- Processing ArabTeX notation under LuaLaTeX
-%% Copyright (C) 2016--2019  Robert Alessi
+%% Copyright (C) 2016--2020  Robert Alessi
 %% 
 %% Please send error reports and suggestions for improvements to Robert
 %% Alessi <alessi at robertalessi.net>
@@ -41,15 +41,9 @@
 %% 
 \NeedsTeXFormat{LaTeX2e}[1999/12/01]
 \ProvidesPackage{arabluatex}
-    [2019/03/24 v1.17 An ArabTeX-like interface for LuaLaTeX]
-\RequirePackage{ifluatex}
-\ifluatex\else
- \PackageError{arabluatex}{lualatex needed}{%
-  Package `arabluatex' needs LuaTeX.\MessageBreak
-  So you should use `lualatex' to process your document.\MessageBreak
-  See documentation of `arabluatex' for further information.}%
-  \expandafter\expandafter\expandafter\csname endinput\endcsname
-\fi
+    [2020/02/29 v1.18 An ArabTeX-like interface for LuaLaTeX]
+\RequirePackage{iftex}
+\RequireLuaTeX
 \RequirePackage{xkeyval}
 \DeclareOptionX{voc}{\def\al at mode{voc}}
 \DeclareOptionX{fullvoc}{\def\al at mode{fullvoc}}
@@ -81,9 +75,10 @@
 \providebool{al at rlmode}
 \luadirect{dofile(kpse.find_file("arabluatex.lua"))}
 \AtBeginDocument{\ifdefined\arabicfont\relax\else
-\PackageWarning{arabluatex}{\string\arabicfont\ is not defined.^^J
-  I will try to load Amiri}%
-\newfontfamily\arabicfont[Script=Arabic]{Amiri}\fi}%
+  \PackageInfo{arabluatex}{%
+    \string\arabicfont\ is not defined.\MessageBreak
+    arabluatex will try to load Amiri}%
+  \newfontfamily\arabicfont{Amiri}[Script=Arabic]\fi}%
 \AtBeginDocument{\def\setRL{\booltrue{al at rlmode}\pardir TRT%
     \textdir TRT}}
 \AtBeginDocument{\def\setLR{\boolfalse{al at rlmode}\pardir TLT%
@@ -149,6 +144,7 @@
   \bgroup\SetTranslitStyle{\relax}%
   \IfBooleanTF{#1}{\txtrans{#2}}{\arb[trans]{\uc{#2}}}\egroup}
 \NewDocumentCommand{\txarb}{+m}{%
+  \ifvmode\leavevmode\fi%
   \bgroup\textdir TRT\arabicfont#1\egroup}
 \NewDocumentCommand{\txtrans}{+m}{%
   \bgroup\textdir TLT\al at trans@font\al at trans@style#1\egroup}
@@ -156,19 +152,26 @@
   \par%
   \booltrue{al at rlmode}%
   \pardir TRT\textdir TRT\arabicfont}{\par}
+\NewDocumentEnvironment{txarabtr}{}{%
+  \par%
+  \pardir TLT\textdir TLT%
+  \al at trans@font\al at trans@style}{\par}
 \NewDocumentCommand{\arb}{O{\al at mode} +m}%
 {\edef\@tempa{#1}%
   \ifx\@tempa\al at mode@voc%
+  \ifvmode\leavevmode\fi%
   \bgroup\booltrue{al at rlmode}\textdir TRT\arabicfont%
   \luadirect{tex.sprint(arabluatex.processvoc(\luastringN{#2},
     \luastringO{\al at arb@rules}, \luastringO{\al at input@scheme}))}\egroup%
   \else%
   \ifx\@tempa\al at mode@fullvoc%
+  \ifvmode\leavevmode\fi%
   \bgroup\booltrue{al at rlmode}\textdir TRT\arabicfont%
   \luadirect{tex.sprint(arabluatex.processfullvoc(\luastringN{#2},
     \luastringO{\al at arb@rules}, \luastringO{\al at input@scheme}))}\egroup%
   \else%
   \ifx\@tempa\al at mode@novoc%
+  \ifvmode\leavevmode\fi%
   \bgroup\booltrue{al at rlmode}\textdir TRT\arabicfont%
   \luadirect{tex.sprint(arabluatex.processnovoc(\luastringN{#2},
     \luastringO{\al at arb@rules}, \luastringO{\al at input@scheme}))}\egroup%
@@ -190,7 +193,7 @@
 \NewDocumentCommand{\newarbmark}{m m m}{%
   \luadirect{arabluatex.newarbmark(\luastringN{#1}, \luastringN{#2},
     \luastringN{#3})}}
-\NewDocumentEnvironment{arab}{O{\al at mode} +b}%
+\NewDocumentEnvironment{arab}{!O{\al at mode} +b}%
 {\par\edef\@tempa{#1}%
   \ifx\@tempa\al at mode@voc%
   \booltrue{al at rlmode}%
@@ -232,7 +235,7 @@
   trans}{\def\al at mode{#1}}
 \presetkeys[al]{verse}{metre={}, utf=false,
   delim=false}{}
-\NewDocumentEnvironment{arabverse}{O{}}%
+\NewDocumentEnvironment{arabverse}{!O{}}%
 {\bgroup\setkeys[al]{verse}[width, gutter, color, utf, delim,
   metre]{#1}%
   \if at pkg@export\ifal at verse@export%
@@ -297,6 +300,43 @@
   \adjustbox{width=\al at bayt@width, height=\Height}{\arb at utf{#4}}%
   \ifdefined\spewnotes\spewnotes\else\fi%
 }
+\NewDocumentCommand{\SetDefaultIndex}{m}{
+  \edef\@tempa{#1}
+  \ifx\@tempa\empty
+    \def\al at default@index{\jobname}
+  \else
+    \def\al at default@index{#1}
+  \fi
+}
+\def\al at index@mode{\al at mode}
+\NewDocumentCommand{\SetIndexMode}{m}{
+  \def\al at index@mode{#1}
+}
+\define at cmdkeys[al]{index}[alind@]{index,root,form}
+\NewDocumentCommand{\arind}{o m}{%
+  \IfNoValueTF{#1}{%
+    \ifdefined\al at default@index%
+      \csname index\endcsname[\al at default@index]{#2}%
+    \else%
+      \csname index\endcsname{#2}%
+    \fi%
+  }{%
+    \bgroup
+    \setkeys[al]{index}{#1}%
+    \def\al at one{%
+      \ifdefined\alind at root!\LR{\alind at root}\else!\LR{1}\fi}%
+    \def\al at two{%
+      \ifdefined\alind at form @\arb[\al at index@mode]{\alind at form}\else\fi}%
+    \ifdefined\alind at index%
+      \csname index\endcsname[\alind at index]{#2\al at one\al at two}%
+    \else%
+      \ifdefined\al at default@index%
+        \csname index\endcsname[\al at default@index]{#2\al at one\al at two}%
+      \else%
+        \csname index\endcsname{#2\al at one\al at two}%
+      \fi%
+    \fi%
+    \egroup}}
 \AtBeginDocument{%
   \ifdefined\abjad%
   \RenewDocumentCommand{\abjad}{m}%

Modified: trunk/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex_fullvoc.lua
===================================================================
--- trunk/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex_fullvoc.lua	2020-03-03 23:05:23 UTC (rev 54051)
+++ trunk/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex_fullvoc.lua	2020-03-03 23:05:43 UTC (rev 54052)
@@ -2,7 +2,7 @@
 This file is part of the `arabluatex' package
 
 ArabLuaTeX -- Processing ArabTeX notation under LuaLaTeX
-Copyright (C) 2016--2019  Robert Alessi
+Copyright (C) 2016--2020  Robert Alessi
 
 Please send error reports and suggestions for improvements to Robert
 Alessi <alessi at robertalessi.net>
@@ -38,6 +38,7 @@
    {a="w\"'", b="ؤ"},
    {a="i\"'", b="إ"},
    {a="y\"'", b="ئ"},
+   -- moved below (end of 'final' section)
    {a="ؤ([^uaiUAI])", b="ؤْ%1"},
    {a="ؤ(%p*)$", b="ؤْ%1"},
    {a="ؤ(%p*%s)", b="ؤْ%1"},
@@ -47,6 +48,9 @@
    {a="ئ([^uaiUAI])", b="ئْ%1"},
    {a="ئ(%p*)$", b="ئْ%1"},
    {a="ئ(%p*%s)", b="ئْ%1"},
+   {a="ء([^uaiUAI])", b="ءْ%1"},
+   {a="ء(%p*)$", b="ءْ%1"},
+   {a="ء(%p*%s)", b="ءْ%1"},
    -- hamza takes tašdīd too
    {a="''([Uu])", b="ؤؤ%1"},
    {a="''([Aa])", b="أأ%1"},
@@ -129,22 +133,40 @@
    {a="(i)(')([uai]N?)(%p*%s)", b="%1ئ%3%4"},
    {a="(i)(')(%p*)$", b="%1ئْ%3"},
    {a="(i)(')(%p*%s)", b="%1ئْ%3"},
---
+-- the following was wrong for it broke the taḫfīfu 'l-hamzati
+-- (look into this later):
+-- moved here from above:
+   -- {a="ؤ([^uaiUAI])", b="ؤْ%1"},
+   -- {a="ؤ(%p*)$", b="ؤْ%1"},
+   -- {a="ؤ(%p*%s)", b="ؤْ%1"},
+   -- {a="أ([^uaiUAI])", b="أْ%1"},
+   -- {a="أ(%p*)$", b="أْ%1"},
+   -- {a="أ(%p*%s)", b="أْ%1"},
+   -- {a="ئ([^uaiUAI])", b="ئْ%1"},
+   -- {a="ئ(%p*)$", b="ئْ%1"},
+   -- {a="ئ(%p*%s)", b="ئْ%1"},
+   -- {a="ء([^uaiUAI])", b="ءْ%1"},
+   -- {a="ء(%p*)$", b="ءْ%1"},
+   -- {a="ء(%p*%s)", b="ءْ%1"},
    -- middle
    {a="([UIwy])(')", b="%1ء"}, --new
    -- {a="([Iy])(')", b="%1ئ"}, --included in the above line
-   {a="([^uai])(')([uU])", b="%1ؤ%3"},
-   {a="([^uai])(')(%_?[aAY])", b="%1أ%3"},
-   {a="([^uai])(')([iI])", b="%1ئ%3"},
-   {a="(u)(')([uU])", b="%1ؤ%3"},
+   -- hamza is alone after letters of prolongation or sukūn
+   -- {a="([^uai])(')([uU])", b="%1ؤ%3"},
+   -- {a="([^uai])(')(%_?[aAY])", b="%1أ%3"},
+   -- {a="([^uai])(')([iI])", b="%1ئ%3"},
+   {a="([^uai])(')(%_?[uaiUAYI])", b="%1ء%3"},
+   {a="(u)(')([UI])", b="%1ء%3"},
+   {a="(u)(')([u])", b="%1ؤ%3"},
    {a="(u)(')(%_?[aAY])", b="%1ؤ%3"},
-   {a="(u)(')([iI])", b="%1ئ%3"},
+   {a="(u)(')([i])", b="%1ئ%3"},
    {a="(a)(')(%_?[aAY])", b="%1أ%3"},
    {a="(a)(')([uU])", b="%1ؤ%3"},
    {a="(a)(')([iI])", b="%1ئ%3"},
+   {a="(i)(')([UI])", b="%1ء%3"},
    {a="(i)(')(%_?[aAY])", b="%1ئ%3"},
-   {a="(i)(')([uU])", b="%1ئ%3"},
-   {a="(i)(')([iI])", b="%1ئ%3"},
+   {a="(i)(')([u])", b="%1ئ%3"},
+   {a="(i)(')([i])", b="%1ئ%3"},
    {a="(a)(')([^uaiUAI])", b="%1أْ%3"},
    {a="(u)(')([^uaiUAI])", b="%1ؤْ%3"},
    {a="(i)(')([^uaiUAI])", b="%1ئْ%3"}
@@ -166,6 +188,7 @@
    {a="w\"'", b="ؤ"},
    {a="i\"'", b="إ"},
    {a="y\"'", b="ئ"},
+   -- moved below (end of 'final' section)
    {a="ؤ([^uaiUAI])", b="ؤْ%1"},
    {a="ؤ(%p*)$", b="ؤْ%1"},
    {a="ؤ(%p*%s)", b="ؤْ%1"},
@@ -175,6 +198,9 @@
    {a="ئ([^uaiUAI])", b="ئْ%1"},
    {a="ئ(%p*)$", b="ئْ%1"},
    {a="ئ(%p*%s)", b="ئْ%1"},
+   {a="ء([^uaiUAI])", b="ءْ%1"},
+   {a="ء(%p*)$", b="ءْ%1"},
+   {a="ء(%p*%s)", b="ءْ%1"},
    -- hamza takes tašdīd too
    {a="''([Uu])", b="ؤؤ%1"},
    {a="''([Aa])", b="أأ%1"},
@@ -269,6 +295,21 @@
    {a="(i)(')([uai]N?)(%p*%s)", b="%1ئ%3%4"},
    {a="(i)(')(%p*)$", b="%1ئْ%3"},
    {a="(i)(')(%p*%s)", b="%1ئْ%3"},
+-- the following was wrong for it broke the taḫfīfu 'l-hamzati
+-- (look into this later):
+-- moved here from above:
+   -- {a="ؤ([^uaiUAI])", b="ؤْ%1"},
+   -- {a="ؤ(%p*)$", b="ؤْ%1"},
+   -- {a="ؤ(%p*%s)", b="ؤْ%1"},
+   -- {a="أ([^uaiUAI])", b="أْ%1"},
+   -- {a="أ(%p*)$", b="أْ%1"},
+   -- {a="أ(%p*%s)", b="أْ%1"},
+   -- {a="ئ([^uaiUAI])", b="ئْ%1"},
+   -- {a="ئ(%p*)$", b="ئْ%1"},
+   -- {a="ئ(%p*%s)", b="ئْ%1"},
+   -- {a="ء([^uaiUAI])", b="ءْ%1"},
+   -- {a="ء(%p*)$", b="ءْ%1"},
+   -- {a="ء(%p*%s)", b="ءْ%1"},
 --
    -- middle
    {a="([Uw])(')", b="%1ء"}, --new

Modified: trunk/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex_novoc.lua
===================================================================
--- trunk/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex_novoc.lua	2020-03-03 23:05:23 UTC (rev 54051)
+++ trunk/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex_novoc.lua	2020-03-03 23:05:43 UTC (rev 54052)
@@ -2,7 +2,7 @@
 This file is part of the `arabluatex' package
 
 ArabLuaTeX -- Processing ArabTeX notation under LuaLaTeX
-Copyright (C) 2016--2019  Robert Alessi
+Copyright (C) 2016--2020  Robert Alessi
 
 Please send error reports and suggestions for improvements to Robert
 Alessi <alessi at robertalessi.net>

Modified: trunk/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex_trans.lua
===================================================================
--- trunk/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex_trans.lua	2020-03-03 23:05:23 UTC (rev 54051)
+++ trunk/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex_trans.lua	2020-03-03 23:05:43 UTC (rev 54052)
@@ -2,7 +2,7 @@
 This file is part of the `arabluatex' package
 
 ArabLuaTeX -- Processing ArabTeX notation under LuaLaTeX
-Copyright (C) 2016--2019  Robert Alessi
+Copyright (C) 2016--2020  Robert Alessi
 
 Please send error reports and suggestions for improvements to Robert
 Alessi <alessi at robertalessi.net>

Modified: trunk/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex_voc.lua
===================================================================
--- trunk/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex_voc.lua	2020-03-03 23:05:23 UTC (rev 54051)
+++ trunk/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex_voc.lua	2020-03-03 23:05:43 UTC (rev 54052)
@@ -2,7 +2,7 @@
 This file is part of the `arabluatex' package
 
 ArabLuaTeX -- Processing ArabTeX notation under LuaLaTeX
-Copyright (C) 2016--2019  Robert Alessi
+Copyright (C) 2016--2020  Robert Alessi
 
 Please send error reports and suggestions for improvements to Robert
 Alessi <alessi at robertalessi.net>
@@ -202,7 +202,7 @@
    -- taḫfīfu 'l-hamza
    {a="'u'([^uaiUAI])", b="أU%1"},
    {a="'i'([^uaiUAI])", b="إI%1"},
-   {a="([wf]a)%-\'([^uaiUAIl][^%-])", b="%1أْ%2"},
+   {a="([wf]a)%-\'([^uaiUAIl][^%-])", b="%1أ%2"},
    {a="^u'([^uaiUAI])", b="اU%1"},
    {a="([^uaiUAIYN][%s%(%[%<])u'([^uaiUAI])", b="%1اU%2"},
    {a="^i'([^uaiUAI])", b="اI%1"},
@@ -276,18 +276,22 @@
    -- middle
    {a="([UIwy])(')", b="%1ء"}, --new
    -- {a="([Iy])(')", b="%1ئ"}, -- included in the above line
-   {a="([^uai])(')([uU])", b="%1ؤ%3"},
-   {a="([^uai])(')(%_?[aAY])", b="%1أ%3"},
-   {a="([^uai])(')([iI])", b="%1ئ%3"},
-   {a="(u)(')([uU])", b="%1ؤ%3"},
+   -- hamza is alone after letters of prolongation or sukūn
+   -- {a="([^uai])(')([uU])", b="%1ؤ%3"},
+   -- {a="([^uai])(')(%_?[aAY])", b="%1أ%3"},
+   -- {a="([^uai])(')([iI])", b="%1ئ%3"},
+   {a="([^uai])(')(%_?[uaiUAYI])", b="%1ء%3"},
+   {a="(u)(')([UI])", b="%1ء%3"},
+   {a="(u)(')([u])", b="%1ؤ%3"},
    {a="(u)(')(%_?[aAY])", b="%1ؤ%3"},
-   {a="(u)(')([iI])", b="%1ئ%3"},
+   {a="(u)(')([i])", b="%1ئ%3"},
    {a="(a)(')(%_?[aAY])", b="%1أ%3"},
    {a="(a)(')([uU])", b="%1ؤ%3"},
    {a="(a)(')([iI])", b="%1ئ%3"},
+   {a="(i)(')([UI])", b="%1ء%3"},
    {a="(i)(')(%_?[aAY])", b="%1ئ%3"},
-   {a="(i)(')([uU])", b="%1ئ%3"},
-   {a="(i)(')([iI])", b="%1ئ%3"},
+   {a="(i)(')([u])", b="%1ئ%3"},
+   {a="(i)(')([i])", b="%1ئ%3"},
    {a="(a)(')([^uaiUAI])", b="%1أ%3"},
    {a="(u)(')([^uaiUAI])", b="%1ؤ%3"},
    {a="(i)(')([^uaiUAI])", b="%1ئ%3"}
@@ -321,7 +325,7 @@
    -- taḫfīfu 'l-hamza
    {a="'u'([^uaiUAI])", b="أU%1"},
    {a="'i'([^uaiUAI])", b="إI%1"},
-   {a="([wf]a)%-\'([^uaiUAIl][^%-])", b="%1أْ%2"},
+   {a="([wf]a)%-\'([^uaiUAIl][^%-])", b="%1أ%2"},
    {a="^u'([^uaiUAI])", b="اU%1"},
    {a="([^uaiUAIYN][%s%(%[%<])u'([^uaiUAI])", b="%1اU%2"},
    {a="^i'([^uaiUAI])", b="اI%1"},
@@ -895,6 +899,7 @@
 }
 
 null = {
+   {a="%&", b="‍"}, -- That is ^^^^200d, the zero-width joiner
    {a="%|", b=""},
    {a="^%-", b=""},
    {a="([^0-9])(%-)", b="%1"},



More information about the tex-live-commits mailing list.