texlive[50571] Master/texmf-dist: arabluatex (24mar19)

commits+karl at tug.org commits+karl at tug.org
Sun Mar 24 22:12:01 CET 2019


Revision: 50571
          http://tug.org/svn/texlive?view=revision&revision=50571
Author:   karl
Date:     2019-03-24 22:12:01 +0100 (Sun, 24 Mar 2019)
Log Message:
-----------
arabluatex (24mar19)

Modified Paths:
--------------
    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/exporting.pdf
    trunk/Master/texmf-dist/doc/lualatex/arabluatex/samples/template-01.pdf
    trunk/Master/texmf-dist/source/lualatex/arabluatex/arabluatex.dtx
    trunk/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex.lua
    trunk/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex.sty

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/exporting.pdf
===================================================================
(Binary files differ)

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

Modified: trunk/Master/texmf-dist/source/lualatex/arabluatex/arabluatex.dtx
===================================================================
--- trunk/Master/texmf-dist/source/lualatex/arabluatex/arabluatex.dtx	2019-03-24 21:11:42 UTC (rev 50570)
+++ trunk/Master/texmf-dist/source/lualatex/arabluatex/arabluatex.dtx	2019-03-24 21:12:01 UTC (rev 50571)
@@ -27,7 +27,7 @@
 %<package>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
 %<package>\ProvidesPackage{arabluatex}
 %<*package>
-    [2019/03/22 v1.16 An ArabTeX-like interface for LuaLaTeX]
+    [2019/03/24 v1.17 An ArabTeX-like interface for LuaLaTeX]
 %</package>
 %
 %<*driver>
@@ -151,7 +151,6 @@
 \usepackage{dox}
 \doxitem{Option}{option}{options}
 \usepackage{fontspec}
-\usepackage{realscripts}
 \usepackage{microtype}
 \defaultfontfeatures{RawFeature={+liga}}
 \setmainfont{Old Standard}[SmallCapsFont={Latin Modern Roman Caps},
@@ -160,7 +159,8 @@
 \newunicodechar{ǧ}{ǧ} % Old Standard does not include ǧ/Ǧ
 \newunicodechar{Ǧ}{Ǧ} %
 \usepackage{metalogox}
-\usepackage{arabluatex}[2019/03/22]
+\usepackage{arabluatex}[2019/03/24]
+\SetArbUp{\textsuperscript{\thinspace#1}} % Old Standard needs this
 \usepackage[nopar]{quran}
 \usepackage[noindex]{nameauth}
 \usepackage{varioref}
@@ -204,20 +204,19 @@
 \usepackage{booktabs}
 \usepackage[defaultlines=3,all]{nowidow}
 \usepackage{needspace}
+\usepackage{addlines}
 \usepackage{relsize}
 \usepackage{tikz}
 \usepackage[breakable, skins, xparse, minted]{tcolorbox}
-\tcbset{colback=white, boxrule=.15mm, colframe=red!50!white, left=6mm,
+\tcbset{colback=white, boxrule=.15mm, colframe=red!50!white,
   breakable}
-\DeclareTCBListing{arabluacode}{s O{}}{listing engine=minted, minted
-  language=latex, minted options={linenos, fontsize=\relsize{-0.5}},
-  IfBooleanTF={#1}{listing side text}{#2}}
-\DeclareTCBListing{arabluaverbatim}{}{listing engine=minted, minted
-  language=latex, minted options={linenos, fontsize=\relsize{-0.5}},
-  listing only}
-\DeclareTotalTCBox{\arabluaverb}{v}{verbatim}{#1}
-\DeclareTotalTCBox{\arabluabox}{m}{left=0mm, right=0mm, top=0mm,
-  bottom=0mm}{#1}
+\newtcbox{\arabluabox}{boxrule=.3mm, left=0mm, right=0mm, top=0mm,
+  bottom=0mm}
+\newtcblisting{example}{minted options={linenos, numbersep=0mm,
+    fontsize=\smaller}}
+\newtcblisting{code}{minted options={linenos, numbersep=0mm,
+    fontsize=\smaller}, listing
+  only}
 \newcommand{\package}[1]{\textsf{#1}\index{#1=#1 (package)}}
 \usepackage[contents]{colordoc}
 \usepackage{csquotes}
@@ -263,7 +262,7 @@
 %</driver>
 % \fi
 %
-% \CheckSum{932}
+% \CheckSum{919}
 %
 % \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
@@ -506,7 +505,7 @@
 % \section{The basics of \package{arabluatex}}
 % \subsection{Activating \package{arabluatex}}
 % \package{arabluatex} is loaded the usual way:\\
-% \arabluaverb{\usepackage{arabluatex}}\\
+% \tcboxverb{\usepackage{arabluatex}}\\
 % The only requirement of \package{arabluatex} is {\LuaLaTeX};
 % it will complain if the document is compiled with another
 % engine. That aside, \package{arabluatex} does not load packages such
@@ -525,7 +524,7 @@
 % By default, if no Arabic font is selected, \package{arabluatex} will
 % issue a warning message and attempt to load the Amiri
 % font\footnote{\textcite{pkg:amiri}.} like so:---\\
-% \arabluaverb{\newfontfamily\arabicfont{Amiri}[Script=Arabic]}
+% \tcboxverb{\newfontfamily\arabicfont{Amiri}[Script=Arabic]}
 % \begin{quoting}
 %   \textsc{Rem.} By default Amiri places the \arb[trans]{kasraT} in
 %   combination with the \arb[trans]{ta^sdId} below the consonant,
@@ -537,7 +536,7 @@
 %   selecting the |ss05| feature of the Amiri font, like
 %   so:---\footnote{See the documentation of \package{amiri},
 %   \textcite[6]{pkg:amiri}.}\\
-%   \arabluaverb{\newfontfamily\arabicfont{Amiri}[Script=Arabic,RawFeature={+ss05}]}
+%   \tcboxverb{\newfontfamily\arabicfont{Amiri}[Script=Arabic,RawFeature={+ss05}]}
 %
 %   Other Arabic fonts may behave differently.
 % \end{quoting}
@@ -548,7 +547,7 @@
 % first four of which are mutually exclusive and may be overriden at
 % any point of the document (see below \vref{sec:local-options}):
 % 
-% \DescribeOption{voc}\hfill\arabluaverb{Default}\\ In this mode,
+% \DescribeOption{voc}\hfill\tcboxverb{Default}\\ In this mode,
 % which is the one selected by default, every short vowel written
 % generates its corresponding diacritical mark: \arb[trans]{.dammaT}
 % (\arb{Bu}), \arb[trans]{fat.haT} (\arb{Ba}) and \arb[trans]{kasraT}
@@ -584,7 +583,7 @@
 %
 % \label{ref:export-global-opt}
 % \DescribeOption{export} |export|$=$|true|\verb+|+|false|
-% \hfill\arabluaverb{Default: false}\\ \label{export-mode}
+% \hfill\tcboxverb{Default: false}\\ \label{export-mode}
 % \NEWfeature{v.1.13} This option acts as a named argument and does
 % not need a value as it defaults to |true| if it is used. It enables
 % \package{arabluatex} to produce a duplicate of the original |.tex|
@@ -623,11 +622,11 @@
 % \iffalse
 %<*example>
 % \fi
-\begin{arabluacode}[text only]
-Please note that only few Arabic fonts provide such contrivances. In
-case this feature is not supported by some Arabic font, it is
-advisable to use \cs{SetArbEasy}.
-\end{arabluacode}
+\begin{tcblisting}{text only}
+  Please note that only few Arabic fonts provide such contrivances. In
+  case this feature is not supported by some Arabic font, it is
+  advisable to use \cs{SetArbEasy}.
+\end{tcblisting}
 % \iffalse
 %</example>
 % \fi
@@ -690,9 +689,10 @@
 % \iffalse
 %<*example>
 % \fi
-\begin{arabluacode}[text only]
-Please note that this document is typeset with \cs{SetArbDflt} throughout.
-\end{arabluacode}
+\begin{tcblisting}{text only}
+  Please note that this document is typeset with \cs{SetArbDflt}
+  throughout.
+\end{tcblisting}
 % \iffalse
 %</example>
 % \fi
@@ -704,15 +704,15 @@
 % \iffalse
 %<*example>
 % \fi
-\begin{arabluacode}
-From \textcite[i. 1 A]{Wright}:--- Arabic, like Hebrew and
-Syriac, is written and read from right to left. The letters
-of the alphabet (\arb{.hurUf-u 'l-hijA'-i}, \arb{.hurUf-u
-'l-tahajjI}, \arb{al-.hurUf-u 'l-hijA'iyyaT-u}, or
-\arb{.hurUf-u 'l-mu`jam-i}) are twenty-eight in number and
-are all consonants, though three of them are also used as
-vowels (see §~3).
-\end{arabluacode}
+\begin{example}
+  From \textcite[i. 1 A]{Wright}:--- Arabic, like Hebrew and
+  Syriac, is written and read from right to left. The letters
+  of the alphabet (\arb{.hurUf-u 'l-hijA'-i}, \arb{.hurUf-u
+    'l-tahajjI}, \arb{al-.hurUf-u 'l-hijA'iyyaT-u}, or
+  \arb{.hurUf-u 'l-mu`jam-i}) are twenty-eight in number and
+  are all consonants, though three of them are also used as
+  vowels (see §~3).
+\end{example}
 % \iffalse
 %</example>
 % \fi
@@ -731,7 +731,7 @@
 % \iffalse
 %<*example>
 % \fi
-\begin{arabluacode}
+\begin{example}
   \begin{enumerate}[label=\Roman*., start=16]
   \item \indent\arb{fawA`ilu}*.
     \begin{enumerate}[label=\arabic*.]
@@ -739,7 +739,7 @@
         signet-ring}, ...
     \end{enumerate}
   \end{enumerate}
-\end{arabluacode}
+\end{example}
 % \iffalse
 %</example>
 % \fi
@@ -750,11 +750,11 @@
 % \iffalse
 %<*example>
 % \fi
-\begin{arabluaverbatim}
+\begin{code}
   \begin{arab}
   [...]
   \end{arab}
-\end{arabluaverbatim}
+\end{code}
 % \iffalse
 %</example>
 % \fi
@@ -763,7 +763,7 @@
 % \iffalse
 %<*example>
 % \fi
-\begin{arabluacode}
+\begin{example}
  \begin{arab}
    'at_A .sadIquN 'il_A ju.hA ya.tlubu min-hu .himAra-hu
    li-yarkaba-hu fI safraTiN qa.sIraTiN fa-qAla la-hu:
@@ -778,7 +778,7 @@
    'amru-ka yA .sadIqI 'a-tu.saddiqu 'l-.himAr-a
    wa-tuka_d_diba-nI?}
   \end{arab}
-\end{arabluacode}
+\end{example}
 % \iffalse
 %</example>
 % \fi
@@ -810,7 +810,7 @@
 % \Cref{tab:arabtex-consonants} gives the Arab\TeX\ equivalents for
 % all of the Arabic consonants.
 %
-% \needspace{7\baselineskip}
+% \addlines[2]
 % \newcommand{\dmg}[1]{%
 %   \SetTranslitConvention{dmg}%
 %   \arb[trans]{#1}}
@@ -844,7 +844,6 @@
 % \vref{ref:hamza}.} & \dmg{'u 'a 'i} &
 % \loc{|'u, |'a, |'i} & \brill{|'u, |'a, |'i} & |'u| or |'a| or |'i| \\
 % \arb[novoc]{b} & \dmg{b} & \loc{b} & \brill{b} & |b| \\
-% \pagebreak[1]
 % \arb[novoc]{t} & \dmg{t} & \loc{t} & \brill{t} & |t| \\
 % \arb[novoc]{_t} & \dmg{_t} & \loc{_t} & \brill{_t} & |_t| \\
 % \arb[novoc]{j} & \dmg{j} & \loc{j} & \brill{j} & |^g| or |j| \\
@@ -959,7 +958,6 @@
 % \Cref{tab:arabtex-long-vowels} gives the Arab\TeX\ equivalents for
 % the Arabic long vowels.
 %
-% \needspace{8\baselineskip}
 % \begin{longtable}{lllll}
 % \bottomrule
 % \caption*{\Cref*{tab:arabtex-long-vowels}: Standard Arab\TeX\ (long
@@ -1057,11 +1055,11 @@
 % \iffalse
 %<*example>
 % \fi
-\begin{arabluacode}[text only]
+\begin{tcblisting}{text only}
   However, it may be wise to always write the vowels, leaving to the
   various modes provided by \package{arabluatex} to take care of
   showing or not showing the vowels.
-\end{arabluacode}
+\end{tcblisting}
 % \iffalse
 %</example>
 % \fi
@@ -1363,11 +1361,11 @@
 % \iffalse
 %<*example>
 % \fi
-\begin{arabluacode}[text only]
+\begin{tcblisting}{text only}
   Hence one should keep to this distinction and encode |'a'kulu|
   \arb[voc]{'a'kulu} \arb[trans]{'a'kulu} and |'AkiluN|
   \arb[voc]{'AkiluN} \arb[trans]{'AkiluN} respectively.
-\end{arabluacode}
+\end{tcblisting}
 % \iffalse
 %</example>
 % \fi
@@ -1415,7 +1413,7 @@
 % \iffalse
 %<*example>
 % \fi
-\begin{arabluacode}[text only]
+\begin{tcblisting}{text only}
   Unlike \package{arabtex} and \package{arabxetex},
   \package{arabluatex} \emph{never requires the solar letter to be
     written twice}, as it automatically generates the euphonic
@@ -1423,7 +1421,7 @@
   article be written in the assimilated form or not, e.g. |al-^sams-u|
   \arb[voc]{al-^sams-u} \arb[trans]{al-^sams-u}, or |a^s-^sams-u|
   \arb[voc]{a^s-^sams-u} \arb[trans]{a^s-^sams-u}.
-\end{arabluacode}
+\end{tcblisting}
 % \iffalse
 %</example>
 % \fi
@@ -1452,7 +1450,7 @@
 % \iffalse
 %<*example>
 % \fi
-\begin{arabluacode}[text only]
+\begin{tcblisting}{text only}
   \textsc{Rem.} This particular feature must be put into operation by
   the \cs{SetArbDflt*} command explicitly. See above
   \vref{sec:classic-modern-typesetting} for further details. Other
@@ -1459,7 +1457,7 @@
   kinds of assimilations, including the various cases of
   \arb[trans]{'id.gAm}, will be included in \package{arabluatex}
   gradually.
-\end{arabluacode}
+\end{tcblisting}
 % \iffalse
 %</example>
 % \fi
@@ -1493,11 +1491,11 @@
 % encoded, like so:---
 % \begin{enumerate}
 % \item Definite article at the beginning of a sentence is encoded\\
-%   \arabluaverb{al-}, or \arabluaverb{a<solar letter>-}\\ if one
+%   \tcboxverb{al-}, or \tcboxverb{a<solar letter>-}\\ if one
 %   wishes to mark the assimilation---which is in no way required, as
 %   \package{arabulatex} will detect all cases of assimilation.
-% \item Definite article inside sentences is encoded\\ \arabluaverb{'l-}
-%   or \arabluaverb{'<solar letter>-}.
+% \item Definite article inside sentences is encoded\\ \tcboxverb{'l-}
+%   or \tcboxverb{'<solar letter>-}.
 % \item In all remaining cases of elision, the \arb[trans]{'alifu
 % 'l-wa.sli} is expressed by the vowel that accompanies the omitted
 % \arb[trans]{hamzaT}: \meta{u, a, i}.
@@ -1941,13 +1939,13 @@
 % \iffalse
 %<*example>
 % \fi
-\begin{arabluacode}
+\begin{example}
   This is wrong:
   \begin{arab}[fullvoc]
-    fa-lammA ra'aW\LRfootnote{A footnote which interferes with the
-      contextual analysis.} 'l-na^gma...
+    fa-lammA ra'aW\LRfootnote{A footnote which interferes with
+      the contextual analysis.} 'l-na^gma...
   \end{arab}
-\end{arabluacode}
+\end{example}
 % \iffalse
 %</example>
 % \fi%
@@ -1965,10 +1963,10 @@
 % \iffalse
 %<*example>
 % \fi
-\begin{arabluacode}[text only]
-In any case, \emph{no space must be left} after or before the Arabic
-word that \cs{arbnull} is applied to.
-\end{arabluacode}
+\begin{tcblisting}{text only}
+  In any case, \emph{no space must be left} after or before the Arabic
+  word that \cs{arbnull} is applied to.
+\end{tcblisting}
 % \iffalse
 %</example>
 % \fi%
@@ -1978,13 +1976,14 @@
 % \iffalse
 %<*example>
 % \fi
-\begin{arabluacode}
+\begin{example}
   \begin{arab}[fullvoc]
-    fa-lammA ra'aW\arbnull{'l-na^gma}\LRfootnote{A footnote which
-      interferes with the contextual analysis.} 'l-na^gma...
+    fa-lammA ra'aW\arbnull{'l-na^gma}\LRfootnote{A footnote
+      which interferes with the contextual analysis.}
+    'l-na^gma...
 
-    qAla\LRfootnote{A footnote which interferes with the contextual
-      analysis.} \arbnull{qAla}uhrub fa-lan tuqtala.
+    qAla\LRfootnote{A footnote which interferes with the
+      contextual analysis.} \arbnull{qAla}uhrub fa-lan tuqtala.
 
     \uc{z}ayduN\arbnull{ibnu}\LRfootnote{A footnote which
       interferes with the contextual analysis.}
@@ -1998,7 +1997,7 @@
     \arbnull{zayduN}ibn-u \uc{`a}mriNU.\LRfootnote{See
       \vref{fn:zayd-is-son}.}
   \end{arab}
-\end{arabluacode}
+\end{example}
 % \iffalse
 %</example>
 % \fi%
@@ -2080,10 +2079,10 @@
 % \iffalse
 %<*example>
 % \fi
-\begin{arabluacode}
+\begin{example}
   The \arb[trans]{'ab^gad} number for the current page (\thepage) is
   \abjad{\thepage}.
-\end{arabluacode}
+\end{example}
 % \iffalse
 %</example>
 % \fi%
@@ -2093,8 +2092,8 @@
 %
 % \subsection{Additional characters}
 % \label{sec:additional-characters}
-% In the manuscripts, the unpointed letters, \arb[trans]{al-.hurUfu
-% 'l-muhmalaTu}, are sometimes further distinguished from the pointed
+% In the manuscripts, the unpointed letters, \arb[trans]{al-.hurUf-u
+% 'l-muhmalaT-u}, are sometimes further distinguished from the pointed
 % by various contrivances, as explained in \textcite[i. 4
 % B--C]{Wright}. One may find these letters written in a smaller size
 % below the line, or with a dot or another mark below. As representing
@@ -2125,9 +2124,9 @@
 % \arb[novoc]{.f} & \dmg{.f} & \loc{.f} & \brill{.f} & |.f| \\
 % \arb[novoc]{.q} & \dmg{.q} & \loc{.q} & \brill{.q} & |.q| \\
 % \arb[novoc]{.k} & \dmg{.k} & \loc{.k} & \brill{.k} & |.k| \\
+% \pagebreak[1]
 % \arb[novoc]{.n} & \dmg{.n} & \loc{.n} & \brill{.n} & |.n| \\
 % \arb[novoc]{((} & \dmg{((} & \loc{((} & \brill{((} & |((| \\
-% \pagebreak[1]
 % \arb[novoc]{))} & \dmg{))} & \loc{))} & \brill{))} & |))| \\
 % \end{longtable}
 % 
@@ -2178,11 +2177,11 @@
 % \iffalse
 %<*example>
 % \fi
-\begin{arabluaverbatim}
+\begin{code}
   \begin{arabverse}[key1=value1, key2=value2, ...]
     <verses>
   \end{arabverse}
-\end{arabluaverbatim}
+\end{code}
 % \iffalse
 %</example>
 % \fi
@@ -2194,7 +2193,7 @@
 % time as already seen \vref{sec:options}.
 %
 % \DescribeOption{width} |width|$=$\meta{length}
-% \hfill\arabluaverb{Default: 0.3\linewidth}\\ The default width of
+% \hfill\tcboxverb{Default: 0.3\linewidth}\\ The default width of
 % each hemistich that the verse consists of. It may be expressed in
 % any accepted unit of measurement, such as |4cm| or |2in|. However,
 % one must keep in mind that the total length of the two hemistichs
@@ -2203,18 +2202,18 @@
 % hemistichs distributed on subsequent lines.
 %
 % \DescribeOption{gutter} |gutter|$=$\meta{width}
-% \hfill\arabluaverb{Default: 0.15 x (hemistich width)}\\ The gutter
+% \hfill\tcboxverb{Default: 0.15 x (hemistich width)}\\ The gutter
 % consists of the blank space that is between the two hemistichs. By
 % default, it is commensurate with the width of the hemistich, but it
 % may be expressed in any accepted unit of measurement as well.
 %
 % \DescribeOption{metre} |metre|$=$\meta{name}
-% \hfill\arabluaverb{Default: none}\\ If the name of the metre is
+% \hfill\tcboxverb{Default: none}\\ If the name of the metre is
 % expressed, it is printed after the lines and set flush left in
 % |voc|, |fullvoc| and |novoc| modes or flush right in |trans| mode.
 %
 % \DescribeOption{delim} |delim|$=$|true|\verb+|+|false|
-% \hfill\arabluaverb{Default: false}\\ This named argument does not
+% \hfill\tcboxverb{Default: false}\\ This named argument does not
 % need a value as it defaults to |true| if it is used. If so, a
 % delimiter is printed between each of the hemistichs. By default, it
 % is set to the \enquote*{star} character \enquote*{*}. The
@@ -2223,7 +2222,7 @@
 % default setting.
 %
 % \DescribeOption{utf} |utf|$=$|true|\verb+|+|false|
-% \hfill\arabluaverb{Default: false}\\ As the preceding one, this
+% \hfill\tcboxverb{Default: false}\\ As the preceding one, this
 % named argument does not need a value as it defaults to |true| if it
 % is used. If so, Unicode Arabic input is expected in the |arabverse|
 % environment instead of \textsc{ascii} Arab\TeX\ or Buckwalter input
@@ -2230,13 +2229,13 @@
 % schemes. See \vref{sec:unicode-input} for more details.
 %
 % \DescribeOption{color} |color|$=$\meta{color name}
-% \hfill\arabluaverb{Default: not set}\\
+% \hfill\tcboxverb{Default: not set}\\
 % \NEWfeature{v1.13} The color in which lines of poetry are to be
 % rendered.
 %
 % \label{ref:poetry-export}
 % \DescribeOption{export} |export|$=$|true|\verb+|+|false|
-% \hfill\arabluaverb{Default: false}\\
+% \hfill\tcboxverb{Default: false}\\
 % \NEWfeature{v.1.13} This named argument does not need a value as it
 % defaults to |true| if it is used. If |export| is set as a global
 % option as well (see above \vpageref{export-mode}), all the lines
@@ -2256,10 +2255,10 @@
 % \iffalse
 %<*example>
 % \fi
-\begin{arabluacode}[text only]
+\begin{tcblisting}{text only}
   \cs{bayt}\marg{\arb[trans]{.sadr}}\oarg{\arb[trans]{tadwIr}}%
   \marg{\arb[trans]{`ajuz}}|\\|
-\end{arabluacode}
+\end{tcblisting}
 % \iffalse
 %</example>
 % \fi
@@ -2282,12 +2281,12 @@
 % \iffalse
 %<*example>
 % \fi
-\begin{arabluacode}
-\begin{arabverse}[mode=fullvoc, width=.3\linewidth]
-  \bayt{lA 'ar_A man `ahidtu fI-hA fa-'abkI 'l---}[--]{---yawma
-    dalhaN wa-mA yaruddu 'l-bukA'u}\\
-\end{arabverse}
-\end{arabluacode}
+\begin{example}
+  \begin{arabverse}[mode=fullvoc, width=.3\linewidth]
+    \bayt{lA 'ar_A man `ahidtu fI-hA fa-'abkI 'l---}[--]{---yawma
+      dalhaN wa-mA yaruddu 'l-bukA'u}\\
+  \end{arabverse}
+\end{example}
 % \iffalse
 %</example>
 % \fi%
@@ -2304,12 +2303,12 @@
 % \iffalse
 %<*example>
 % \fi
-\begin{arabluacode}
-\begin{arabverse}[mode=trans, width=.4\linewidth]
-  \bayt{lA 'ar_A man `ahidtu fI-hA fa-'abkI 'l---}[--]{---yawma
-    dalhaN wa-mA yaruddu 'l-bukA'u}\\
-\end{arabverse}
-\end{arabluacode}
+\begin{example}
+  \begin{arabverse}[mode=trans, width=.4\linewidth]
+    \bayt{lA 'ar_A man `ahidtu fI-hA fa-'abkI 'l---}[--]{---yawma
+      dalhaN wa-mA yaruddu 'l-bukA'u}\\
+  \end{arabverse}
+\end{example}
 % \iffalse
 %</example>
 % \fi%
@@ -2320,14 +2319,15 @@
 % \iffalse
 %<*example>
 % \fi
-\begin{arabluacode}
-\begin{arabverse}[mode=fullvoc, width=.25\linewidth, 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
-  dawwiyyaTuN saqfA'u}\\
-\end{arabverse}
-\end{arabluacode}
+\begin{example}
+  \begin{arabverse}[mode=fullvoc, width=.25\linewidth,
+    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
+      dawwiyyaTuN saqfA'u}\\
+  \end{arabverse}
+\end{example}
 % \iffalse
 %</example>
 % \fi%
@@ -2394,30 +2394,30 @@
 % \iffalse
 %<*example>
 % \fi
-\begin{arabluaverbatim}
-\begin{arab}[fullvoc]
-  qAla imru'u 'l-\uc{q}aysi fI mu`allaqati-hi:
-\end{arab}
+\begin{code}
+  \begin{arab}[fullvoc]
+    qAla imru'u 'l-\uc{q}aysi fI mu`allaqati-hi:
+  \end{arab}
 
-\begin{arabverse}[mode=fullvoc, metre={(al-.darbu 'l-_tAnI mina
-  'l-`arU.di 'l-'_Ul_A mina 'l-.tawIli)}]
-  \SetArbDflt*
-  \begin{linenumbers*}
-    \bayt{qifA nabki min _dikr_A .habIbiN wa-manzili}{bi-saq.ti
-      'l-liw_A bayna \uc{'l-d}a_hUli fa-\uc{.h}awmali}\\
-    \bayt{fa-\uc{t}U.di.ha fa-'l-\uc{m}iqrATi lam ya`fu
-      rasmu-hA}{limA nasa^gat-hA min ^ganUbiN wa-^sam'ali}\\
-    \bayt{tar_A ba`ara 'l-'ar'Ami fI `ara.sAti-hA}{wa-qI`Ani-hA
-      ka-'anna-hu .habbu fulfuli}\\
-    \bayt{ka-'annI .gadATa 'l-bayni yawma ta.hammalUA}{lad_A
-      samurAti 'l-.hayyi nAqifu .han.zali}\\
-    \bayt{wuqUfaN bi-hA .sa.hbI `alayya ma.tiyya-hum}{yaqUlUna lA
-      tahlik 'asaN_A wa-ta^gammali}\\
-    \bayt{wa-'inna ^sifA'I `abraTuN muharAqaTuN}{fa-hal `inda rasmiN
-      dAsiriN min mu`awwali}\\
-  \end{linenumbers*}
-\end{arabverse}
-\end{arabluaverbatim}
+  \begin{arabverse}[mode=fullvoc, metre={(al-.darbu 'l-_tAnI mina
+      'l-`arU.di 'l-'_Ul_A mina 'l-.tawIli)}]
+    \SetArbDflt*
+    \begin{linenumbers*}
+      \bayt{qifA nabki min _dikr_A .habIbiN wa-manzili}{bi-saq.ti
+        'l-liw_A bayna \uc{'l-d}a_hUli fa-\uc{.h}awmali}\\
+      \bayt{fa-\uc{t}U.di.ha fa-'l-\uc{m}iqrATi lam ya`fu
+        rasmu-hA}{limA nasa^gat-hA min ^ganUbiN wa-^sam'ali}\\
+      \bayt{tar_A ba`ara 'l-'ar'Ami fI `ara.sAti-hA}{wa-qI`Ani-hA
+        ka-'anna-hu .habbu fulfuli}\\
+      \bayt{ka-'annI .gadATa 'l-bayni yawma ta.hammalUA}{lad_A
+        samurAti 'l-.hayyi nAqifu .han.zali}\\
+      \bayt{wuqUfaN bi-hA .sa.hbI `alayya ma.tiyya-hum}{yaqUlUna
+        lA tahlik 'asaN_A wa-ta^gammali}\\
+      \bayt{wa-'inna ^sifA'I `abraTuN muharAqaTuN}{fa-hal `inda
+        rasmiN dAsiriN min mu`awwali}\\
+    \end{linenumbers*}
+  \end{arabverse}
+\end{code}
 % \iffalse
 %</example>
 % \fi%
@@ -2508,12 +2508,12 @@
 % \iffalse
 %<*example>
 % \fi
-\begin{arabluacode}
+\begin{example}
   \begin{arab}
     \abraces{wa-qAla} 'inna 'abI kAna mina 'l-muqAtilaTi
     wa-kAna--<--t> 'ummI min `u.zamA'i buyUti 'l-zamAzimaTi.
   \end{arab}
-\end{arabluacode}
+\end{example}
 % \iffalse
 %</example>
 % \fi
@@ -2563,12 +2563,12 @@
 %
 % As regards the right-to-left codepoint, it may be either typed in
 % Unicode or selected as Unicode codepoint. To that end, the \LaTeX\
-% command \arabluaverb{\symbol{"XYZT}} or its plain \TeX\ variant
-% \arabluaverb{\char"XYZT\relax} may be used, where |XYZT| are
+% command \tcboxverb{\symbol{"XYZT}} or its plain \TeX\ variant
+% \tcboxverb{\char"XYZT\relax} may be used, where |XYZT| are
 % uppercase hex digits (|0| to |9| or |A| to |F|).
 %
 % It is also possible to use the so-called `|^^^^| notation' like so:
-% \arabluaverb{^^^^xyzt}, where |xyzt| are lowercase hex digits (|0|
+% \tcboxverb{^^^^xyzt}, where |xyzt| are lowercase hex digits (|0|
 % to |9| or |a| to |f|).
 %
 % As regards the third argument (left-to-right rendition), it may be
@@ -2578,11 +2578,11 @@
 % \iffalse
 %<*example>
 % \fi
-\begin{arabluacode}[text only]
+\begin{tcblisting}{text only}
   It must be noted that \cs{newarbmark} expects Arab\TeX\ input scheme
   inside \cs{arb}|[trans]{}| to the exclusion of \textsf{buckwalter}
   input scheme.
-\end{arabluacode}
+\end{tcblisting}
 % \iffalse
 %</example>
 % \fi%
@@ -2593,7 +2593,7 @@
 % \iffalse
 %<*example>
 % \fi
-\begin{arabluacode}
+\begin{example}
   \SetArbDflt*
   \newarbmark{sly}{\arbcolor[red]{^^^^06d6}}{}
   \newarbmark{jim}{\arbcolor[red]{^^^^06da}}{}
@@ -2614,7 +2614,7 @@
     'an takrahUA ^say'aN wa-ya^g`ala 'l-l_ahu fI-hi _hayraN
     ka_tIraN ((19))
   \end{arab}
-\end{arabluacode}
+\end{example}
 % \iffalse
 %</example>
 % \fi
@@ -2640,7 +2640,7 @@
 % \iffalse
 %<*example>
 % \fi
-\begin{arabluacode}
+\begin{example}
   \SetArbDflt*
   \newarbmark{alifsp}{^^^^0627}{\arb[trans]{'alif} }
   \newarbmark{lamsp}{^^^^0644^^^^0653}{\arb[trans]{lAm} }
@@ -2655,8 +2655,8 @@
     wa-yuqImUna 'l-.sal_aUTa wa-mimmA razaqn_a-hum
     yunfiqUna~\ayah{3}
   \end{arab}
-\end{arabluacode}
-\begin{arabluacode}[text only]
+\end{example}
+\begin{tcblisting}{text only}
   \SetArbDflt*
   \begin{arab}[trans]
     min ((sUraTi \uc{'l-b}aqaraTi)):
@@ -2668,7 +2668,7 @@
     wa-yuqImUna 'l-.sal_aUTa wa-mimmA razaqn_a-hum
     yunfiqUna~\ayah{3}
   \end{arab}
-\end{arabluacode}
+\end{tcblisting}
 % \iffalse
 %</example>
 % \fi
@@ -2707,7 +2707,7 @@
 % \iffalse
 %<*example>
 % \fi
-\begin{arabluacode}
+\begin{example}
   \begin{arab}
     \arbcolor[red]{al-bAbu 'l-_hAmisu} fI .tabaqAti 'l-'a.tibbA'i
     'lla_dIna kAnUA mun_du zamAni \uc{^gAlInUsa} wa-qarIbaN
@@ -2722,7 +2722,7 @@
     kalAmaN kulliyyaN fI 'a_hbAri \uc{^gAlInUsa} wa-mA kAna
     `alay-hi...
   \end{arab}
-\end{arabluacode}
+\end{example}
 % \iffalse
 %</example>
 % \fi
@@ -2891,11 +2891,11 @@
 % \iffalse
 %<*example>
 % \fi
-\begin{arabluacode}
+\begin{example}
   \newarbmark{Y}{^^^^0649}{}
   \arb{hud\arbcolor[red]{aN\arbnull{_A}}\arbmark{Y}}
   \arb[trans]{hud\arbcolor[red]{aN\arbnull{_A}}\arbmark{Y}}
-\end{arabluacode}
+\end{example}
 % \iffalse
 %</example>
 % \fi%
@@ -2928,12 +2928,12 @@
 % \iffalse
 %<*example>
 % \fi
-\begin{arabluacode}
+\begin{example}
   \newarbmark{alifmaddahred}{^^^^0627\arbcolor[red]{^^^^0653}}%
   {\arb[trans]{\arbcolor[red]{'a'\arbnull{k}}}}
   \arb{\arbmark{alifmaddahred}kulu}
   \arb[trans]{\arbmark{alifmaddahred}kulu}.
-\end{arabluacode}
+\end{example}
 % \iffalse
 %</example>
 % \fi%
@@ -2954,11 +2954,11 @@
 %\iffalse
 %<*example>
 % \fi
-\begin{arabluacode}
-\newarbmark{lamshaddah}{^^^^0651}{l}
-\arb[fullvoc]{al-mu`al"\arbcolor[red]{\arbmark{lamshaddah}}.imUna}
-\arb[trans]{al-mu`al"\arbcolor[red]{\arbmark{lamshaddah}}.imUna}.
-\end{arabluacode}
+\begin{example}
+  \newarbmark{lamshaddah}{^^^^0651}{l}
+  \arb[fullvoc]{al-mu`al"\arbcolor[red]{\arbmark{lamshaddah}}.imUna}
+  \arb[trans]{al-mu`al"\arbcolor[red]{\arbmark{lamshaddah}}.imUna}.
+\end{example}
 % \iffalse
 %</example>
 % \fi%
@@ -2981,13 +2981,13 @@
 % \iffalse
 %<*example>
 % \fi
-\begin{arabluacode}
+\begin{example}
   \newarbmark{lnn}{^^^^0644^^^^0646^^^^0651}{n-n}
   \arb[fullvoc]{fI\arbnull{al-}
     \arbcolor[red]{\arbnull{al-}a}\arbmark{lnn}Asi}
   \arb[trans]{fI\arbnull{al-}
     \arbcolor[red]{\arbnull{al-}a}\arbmark{lnn}Asi}.
-\end{arabluacode}
+\end{example}
 % \iffalse
 %</example>
 % \fi%
@@ -3055,10 +3055,10 @@
 % \iffalse
 %<*example>
 % \fi
-\begin{arabluaverbatim}
-\usepackage{arabluatex}
-\SetTranslitConvention{loc}
-\end{arabluaverbatim}
+\begin{code}
+  \usepackage{arabluatex}
+  \SetTranslitConvention{loc}
+\end{code}
 % \iffalse
 %</example>
 % \fi
@@ -3080,10 +3080,10 @@
 % \iffalse
 %<*example>
 % \fi
-\begin{arabluaverbatim}
-\newfontfamily\translitfont{Gentium Plus}[Ligatures=TeX]
-\SetTranslitFont{\translitfont}
-\end{arabluaverbatim}
+\begin{code}
+  \newfontfamily\translitfont{Gentium Plus}[Ligatures=TeX]
+  \SetTranslitFont{\translitfont}
+\end{code}
 % \iffalse
 %</example>
 % \fi
@@ -3160,14 +3160,14 @@
 %\iffalse
 %<*example>
 % \fi
-\begin{arabluacode}
-From \textcite[i. 23 C]{Wright}:--- If the name following
-\arb[fullvoc]{ibnuN} be that of the mother or the grandfather, the
-\arb[fullvoc]{"a} is retained; as \arb[fullvoc]{`Is_A ibnu maryama},
+\begin{example}
+  From \textcite[i. 23 C]{Wright}:--- If the name following
+  \arb[fullvoc]{ibnuN} be that of the mother or the grandfather, the
+  \arb[fullvoc]{"a} is retained; as \arb[fullvoc]{`Is_A ibnu maryama},
   \enquote{Jesus the son of Mary}; \arb[fullvoc]{`ammAru ibnu
     man.sUriN}, \enquote{\prname{`ammAr} the (grand)son of
     \prname{man.sUr}}.
-\end{arabluacode}
+\end{example}
 % \iffalse
 %</example>
 % \fi
@@ -3180,17 +3180,17 @@
 %\iffalse
 %<*example>
 % \fi
-\begin{arabluacode}
-\begin{nameauth}
-  \< Hunayn & \prname{'abU zayd} & \prname{.hunayn}, \prname{{i}bn
-    'is.h_aq al-`ibAdiyy} & > %
-  \< Razi & \prname{'abU bakr mu.hammad ibn zakariyyA'} &
-  \prname{al-rAziyy} & > %
-\end{nameauth}
+\begin{example}
+  \begin{nameauth}
+    \< Hunayn & \prname{'abU zayd} & \prname{.hunayn}, \prname{{i}bn
+      'is.h_aq al-`ibAdiyy} & > %
+    \< Razi & \prname{'abU bakr mu.hammad ibn zakariyyA'} &
+    \prname{al-rAziyy} & > %
+  \end{nameauth}
 
-On first occurrence, proper names are printed as \Hunayn, \Razi.
-Then as \Hunayn, \Razi.
-\end{arabluacode}
+  On first occurrence, proper names are printed as \Hunayn, \Razi.
+  Then as \Hunayn, \Razi.
+\end{example}
 % \iffalse
 %</example>
 % \fi
@@ -3234,12 +3234,12 @@
 % \iffalse
 %<*example>
 % \fi
-\begin{arabluacode}
-\SetArbUp{\textsubscript{#1}}
-Arabic |dmg| transliteration for \arb{ra'aytu ^gAmi`aN
-muhaddamaTaN mi'_danatu-hu}: \arb[trans]{ra'aytu
-^gAmi`aN muhaddamaTaN mi'_danatu-hu.}
-\end{arabluacode}
+\begin{example}
+  \SetArbUp{\textsubscript{#1}}
+  Arabic |dmg| transliteration for \arb{ra'aytu ^gAmi`aN
+    muhaddamaTaN mi'_danatu-hu}: \arb[trans]{ra'aytu
+    ^gAmi`aN muhaddamaTaN mi'_danatu-hu.}
+\end{example}
 % \iffalse
 %</example>
 % \fi
@@ -3409,10 +3409,10 @@
 % \iffalse
 %<*example>
 % \fi
-\begin{arabluaverbatim}
-\usepackage{arabluatex}
-\SetInputScheme{buckwalter}
-\end{arabluaverbatim}
+\begin{code}
+  \usepackage{arabluatex}
+  \SetInputScheme{buckwalter}
+\end{code}
 % \iffalse
 %</example>
 % \fi
@@ -3436,7 +3436,8 @@
 % are currently used by \package{arabluatex}. The additional
 % characters that are defined in \vref{tab:additional-arabic-codings}
 % are also available.
-% 
+%
+% \enlargethispage{\baselineskip}
 % \begin{longtable}{llllll}
 % \bottomrule
 % \caption*{\Cref*{tab:buckwalter-scheme}: Buckwalter scheme}
@@ -3456,6 +3457,7 @@
 % \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| \\
@@ -3483,7 +3485,6 @@
 % \arb[novoc]{h} & \dmg{h} & \loc{h} & \brill{h} & |h| & |h| \\
 % \arb[novoc]{w} & \dmg{w} & \loc{w} & \brill{w} & |w| & |w| \\
 % \arb[novoc]{y} & \dmg{y} & \loc{y} & \brill{y} & |y| & |y| \\
-% \pagebreak
 % \arb[novoc]{Y} & \dmg{Y} & \loc{Y} & \brill{Y} & |Y| & |Y| \\
 % \arb[novoc]{T} & \dmg{aT} & \loc{aT} & \brill{aT} & |p| & |p| \\
 % \midrule
@@ -3566,11 +3567,11 @@
 % \iffalse
 %<*example>
 % \fi
-\begin{arabluaverbatim}
+\begin{code}
   \begin{txarab}
     <Unicode Arabic text>
   \end{txarab}
-\end{arabluaverbatim}
+\end{code}
 % \iffalse
 %</example>
 % \fi
@@ -3608,16 +3609,16 @@
 % \iffalse
 %<*example>
 % \fi
-\begin{arabluacode}
-\renewcommand{\footnoterule}%
-   {\hfill\noindent\rule[1mm]{.4\textwidth}{.15mm}}
-\begin{arab}
-'inna 'abI kAna mina 'l-muqAtilaT-i\footnote{al-muqAtilaT-i:
-al-muqAtil-Ina.}, wa-kAnat 'ummI min `u.zamA'-i buyUt-i
-'l-zamAzimaT-i\footnote{al-zamAzimaT-u: .tA'ifaT-u mina
-'l-furs-i.}.
-\end{arab}
-\end{arabluacode}
+\begin{example}
+  \renewcommand{\footnoterule}%
+  {\hfill\noindent\rule[1mm]{.4\textwidth}{.15mm}}
+  \begin{arab}
+    'inna 'abI kAna mina 'l-muqAtilaT-i\footnote{al-muqAtilaT-i:
+      al-muqAtil-Ina.}, wa-kAnat 'ummI min `u.zamA'-i buyUt-i
+    'l-zamAzimaT-i\footnote{al-zamAzimaT-u: .tA'ifaT-u mina
+      'l-furs-i.}.
+  \end{arab}
+\end{example}
 % \iffalse
 %</example>
 % \fi
@@ -3650,7 +3651,7 @@
 % \iffalse
 %<*example>
 % \fi
-\begin{arabluacode}
+\begin{example}
   \begin{arab}[fullvoc]
     \uc{z}ayd-uN\arbnull{ibnu}\LRfootnote{%
       \enquote{\arb[trans]{\uc{z}ayd} is the son of
@@ -3658,7 +3659,7 @@
       apposition to the first, but forms part of the
       predicate\ldots} \arbnull{zayduN}ibn-u \uc{`a}mr-iNU
   \end{arab}
-\end{arabluacode}
+\end{example}
 % \iffalse
 %</example>
 % \fi
@@ -3669,7 +3670,7 @@
 % number 18, one may get 81. \package{arabluatex} is not responsible
 % for that, but should it happen, it may be necessary to redefine in
 % the preamble the \LaTeX\ macro \cs{thefootnote} like so:---\\
-% \arabluaverb{\renewcommand*{\thefootnote}{\textsuperscript{\LR{\arabic{footnote}}}}}
+% \tcboxverb{\renewcommand*{\thefootnote}{\textsuperscript{\LR{\arabic{footnote}}}}}
 % \DescribeMacro{\FixArbFtnmk} Another solution is to put in the
 % preamble, below the line that loads \package{arabluatex}, the
 % \cs{FixArbFtnmk} command. However, for more control over the layout
@@ -3694,14 +3695,14 @@
 % \iffalse
 %<*example>
 % \fi
-\begin{arabluacode}
-\setRL
-\section*{\arb{barzawayhi li-buzurjumihra bn-i 'l-buxtikAni}}
-\setLR
-\begin{arab}
-qAla barzawayhi bn-u 'azhar-a, ra's-u 'a.tibbA'-i fAris-a...
-\end{arab}
-\end{arabluacode}
+\begin{example}
+  \setRL
+  \section*{\arb{barzawayhi li-buzurjumihra bn-i 'l-buxtikAni}}
+  \setLR
+  \begin{arab}
+    qAla barzawayhi bn-u 'azhar-a, ra's-u 'a.tibbA'-i fAris-a...
+  \end{arab}
+\end{example}
 % \iffalse
 %</example>
 % \fi
@@ -3716,7 +3717,7 @@
 % in its argument which \package{arabluatex} will process as such
 % before passing it on to the command itself for any further
 % processing. As a result of this feature, such a command as:\\
-% \arabluaverb{\newcommand{\fvarabic}[1]{\arb[fullvoc]{#1}}}\\
+% \tcboxverb{\newcommand{\fvarabic}[1]{\arb[fullvoc]{#1}}}\\
 % will work as expected, but will always output non-vocalized Arabic
 % if it is inserted in a |novoc| Arabic environment because its
 % argument will have been processed by the |novoc| rules before the
@@ -3729,7 +3730,7 @@
 % argument a comma-separated list of commands each of which must be
 % stripped of its leading character
 % |\|, like so:---\\
-% \arabluaverb{\MkArbBreak{onecmd, anothercmd, yetanothercmd, ...}}
+% \tcboxverb{\MkArbBreak{onecmd, anothercmd, yetanothercmd, ...}}
 % 
 % For example, here follows a way to define a new command |\fvred| to
 % distinguish words with a different color and always print them in
@@ -3737,15 +3738,15 @@
 % \iffalse
 %<*example>
 % \fi
-\begin{arabluacode}
+\begin{example}
   \MkArbBreak{fvred}
   \newcommand{\fvred}[1]{\arbcolor[red]{\arb[fullvoc]{#1}}}
-\begin{arab}[voc]
-  _tumma "intalaqa _dU 'l-qarn-ayni 'il_A 'ummaT-iN 'u_hr_A fI
-  \fvred{((ma.tli`-i 'l-^sams-i))} wa-lA binA'-a la-hum
-  yu'amminu-hum mina 'l-^sams-i.
-\end{arab}
-\end{arabluacode}
+  \begin{arab}[voc]
+    _tumma "intalaqa _dU 'l-qarn-ayni 'il_A 'ummaT-iN 'u_hr_A fI
+    \fvred{((ma.tli`-i 'l-^sams-i))} wa-lA binA'-a la-hum
+    yu'amminu-hum mina 'l-^sams-i.
+  \end{arab}
+\end{example}
 % \iffalse
 %</example>
 % \fi
@@ -3783,16 +3784,15 @@
 % \iffalse
 %<*example>
 % \fi
-\begin{arabluacode}[text only]
+\begin{tcblisting}{text only}
   It must be noted that \cs{MkArbBreak*} must be used with the utmost
   care and \emph{should never be used} if \cs{MkArbBreak} gives
   satisfaction. At any rate, the latter must always be tested before
   the former.
-\end{arabluacode}
+\end{tcblisting}
 % \iffalse
 %</example>
 % \fi%
-% 
 %
 % \subsection{Environments}
 % \label{sec:environments}
@@ -3799,19 +3799,19 @@
 % \changes{v1.5}{2016/11/14}{Environments may be nested inside the
 %   \texttt{arab} environment}
 % \NEWfeature{v1.5} Environments such as
-% \arabluaverb{\begin{quote}... \end{quote}} may be nested inside the
+% \tcboxverb{\begin{quote} ... \end{quote}} may be nested inside the
 % |arab| environment. Up to one optional argument may be passed to
 % each nested environment, like so:---
 % \iffalse
 %<*example>
 % \fi
-\begin{arabluaverbatim}
-\begin{arab}
-  \begin{<environment>}[<options>]
-    <Arabic text>
-  \end{<environment>}
-\end{arab}
-\end{arabluaverbatim}
+\begin{code}
+  \begin{arab}
+    \begin{<environment>}[<options>]
+      <Arabic text>
+    \end{<environment>}
+  \end{arab}
+\end{code}
 % \iffalse
 %</example>
 % \fi
@@ -3820,7 +3820,7 @@
 % \iffalse
 %<*example>
 % \fi
-\begin{arabluacode}
+\begin{example}
   \setquotestyle{arabic}
   \begin{arab}[fullvoc]
     kAna \uc{'abU} \uc{'l-hu_dayli} 'ahd_A 'il_A \uc{muwaysiN}
@@ -3841,7 +3841,7 @@
     fa-lA yazAlu fI h_a_dA wa-'l-'A_haru ya.d.haku .da.hkaN
     na`rifu-hu na.hnu wa-lA ya`rifu-hu \uc{'abU} \uc{'l-hu_dayli}.
   \end{arab}
-\end{arabluacode}
+\end{example}
 % \iffalse
 %</example>
 % \fi
@@ -3859,18 +3859,18 @@
 % \iffalse
 %<*example>
 % \fi
-\begin{arabluacode}
- \setRL\paragraph{\arb[novoc]{rumUzi 'l-kitAbi}}\setLR
- \begin{arab}[novoc]
-  \begin{description}
-   \item[b] max.tU.tu 'l-maktabaTi 'l-'ahliyyaTi bi-\uc{bArIs} 2860
-    `arabiyyuN.
-   \item[s] max.tU.tu 'l-maktabaTi 'l-'ahliyyaTi bi-\uc{bArIs} 2859
-    `arabiyyuN.
-   \item[m] max.tU.tu majlisi \arb[novoc]{^sUrAY malY} .tahrAna 521.
-  \end{description}
- \end{arab}
-\end{arabluacode}
+\begin{example}
+  \setRL\paragraph{\arb[novoc]{rumUzi 'l-kitAbi}}\setLR
+  \begin{arab}[novoc]
+    \begin{description}
+    \item[b] max.tU.tu 'l-maktabaTi 'l-'ahliyyaTi bi-\uc{bArIs} 2860
+      `arabiyyuN.
+    \item[s] max.tU.tu 'l-maktabaTi 'l-'ahliyyaTi bi-\uc{bArIs} 2859
+      `arabiyyuN.
+    \item[m] max.tU.tu majlisi \arb[novoc]{^sUrAY malY} .tahrAna 521.
+    \end{description}
+  \end{arab}
+\end{example}
 % \iffalse
 %</example>
 % \fi
@@ -3880,7 +3880,7 @@
 % \iffalse
 %<*example>
 % \fi
-\begin{arabluacode}
+\begin{example}
   \setRL\centerline{\arb{\textbf{al-qAnUnu fI 'l-.tibbi}}}\setLR
   \begin{arab}
     \begin{itemize}
@@ -3895,7 +3895,7 @@
       \end{itemize}
     \end{itemize}
   \end{arab}
-\end{arabluacode}
+\end{example}
 % \iffalse
 %</example>
 % \fi
@@ -3908,14 +3908,14 @@
 % \iffalse
 %<*example>
 % \fi
-\begin{arabluaverbatim}
+\begin{code}
   % preamble:---
   \usepackage{enumitem}
   \newlist{enumabjad}{enumerate}{10}
   \setlist[enumabjad]{nosep, label={\abjad{\arabic*}}}
   \usepackage{multicol}
-\end{arabluaverbatim}
-\begin{arabluacode}
+\end{code}
+\begin{example}
   From \textcite[i. 29 B--C]{Wright}:--- The derived forms of the
   triliteral verb are usually reckoned fifteen in number, but the
   learner may pass over the last four, because (with the exception
@@ -3942,7 +3942,7 @@
       \end{enumabjad}
     \end{arab}
   \end{multicols}
-\end{arabluacode}
+\end{example}
 % \iffalse
 %</example>
 % \fi
@@ -3957,10 +3957,10 @@
 % \iffalse
 %<*example>
 % \fi
-\begin{arabluaverbatim}
-\usepackage[french]{babel}
-\frenchsetup{StandardLists=true}
-\end{arabluaverbatim}
+\begin{code}
+  \usepackage[french]{babel}
+  \frenchsetup{StandardLists=true}
+\end{code}
 % \iffalse
 %</example>
 % \fi%
@@ -3978,12 +3978,12 @@
 % \iffalse
 %<*example>
 % \fi
-\begin{arabluaverbatim}
-\usepackage{csquotes}
-\DeclareQuoteStyle{arabic}
-{\textquotedblright}{\textquotedblleft}
-{\textquoteright}{\textquoteleft}
-\end{arabluaverbatim}
+\begin{code}
+  \usepackage{csquotes}
+  \DeclareQuoteStyle{arabic}
+  {\textquotedblright}{\textquotedblleft}
+  {\textquoteright}{\textquoteleft}
+\end{code}
 % \iffalse
 %</example>
 % \fi
@@ -3991,14 +3991,14 @@
 % \iffalse
 %<*example>
 % \fi
-\begin{arabluacode}
-\setquotestyle{arabic}
-\begin{arab}
-  fa-qAla la-hu ju.hA: \enquote{.garIb-uN 'amru-ka yA .sadIqI
-    'a-tu.saddiqu 'l-.himAr-a wa-tuka_d_diba-nI?}
-\end{arab}
-\setquotestyle{english}
-\end{arabluacode}
+\begin{example}
+  \setquotestyle{arabic}
+  \begin{arab}
+    fa-qAla la-hu ju.hA: \enquote{.garIb-uN 'amru-ka yA .sadIqI
+      'a-tu.saddiqu 'l-.himAr-a wa-tuka_d_diba-nI?}
+  \end{arab}
+  \setquotestyle{english}
+\end{example}
 % \iffalse
 %</example>
 % \fi
@@ -4022,24 +4022,24 @@
 % \iffalse
 %<*example>
 % \fi
-\begin{arabluacode}
-\begin{arab}
-  \textcolor{red}{\uc{m}uha_d_dabu \uc{'l-d}Ini \uc{`a}bdu
-    \uc{'l-r}a.hImi bnu \uc{`a}liyyiN} huwa ^say_hu-nA 'l-'imAmu
-  'l-.sadru 'l-kabIru 'l-`Alimu 'l-fA.dilu \uc{m}uha_d_dabu
-  \uc{'l-d}Ini \uc{'a}bU \uc{m}u.hammadiN \uc{`a}bdu
-  \uc{'l-r}a.hImi bnu \uc{`a}liyyi bni \uc{.h}AmidiN wa-yu`rafu
-  bi-\uc{'l-d}a_hwari.
-\end{arab}
-\begin{arab}[trans]
-  \textcolor{red}{\uc{m}uha_d_dabu \uc{'l-d}Ini \uc{`a}bdu
-    \uc{'l-r}a.hImi bnu \uc{`a}liyyiN} huwa ^say_hu-nA 'l-'imAmu
-  'l-.sadru 'l-kabIru 'l-`Alimu 'l-fA.dilu \uc{m}uha_d_dabu
-  \uc{'l-d}Ini \uc{'a}bU \uc{m}u.hammadiN \uc{`a}bdu
-  \uc{'l-r}a.hImi bnu \uc{`a}liyyi bni \uc{.h}AmidiN wa-yu`rafu
-  bi-\uc{'l-d}a_hwari.
-\end{arab}
-\end{arabluacode}
+\begin{example}
+  \begin{arab}
+    \textcolor{red}{\uc{m}uha_d_dabu \uc{'l-d}Ini \uc{`a}bdu
+      \uc{'l-r}a.hImi bnu \uc{`a}liyyiN} huwa ^say_hu-nA 'l-'imAmu
+    'l-.sadru 'l-kabIru 'l-`Alimu 'l-fA.dilu \uc{m}uha_d_dabu
+    \uc{'l-d}Ini \uc{'a}bU \uc{m}u.hammadiN \uc{`a}bdu
+    \uc{'l-r}a.hImi bnu \uc{`a}liyyi bni \uc{.h}AmidiN wa-yu`rafu
+    bi-\uc{'l-d}a_hwari.
+  \end{arab}
+  \begin{arab}[trans]
+    \textcolor{red}{\uc{m}uha_d_dabu \uc{'l-d}Ini \uc{`a}bdu
+      \uc{'l-r}a.hImi bnu \uc{`a}liyyiN} huwa ^say_hu-nA 'l-'imAmu
+    'l-.sadru 'l-kabIru 'l-`Alimu 'l-fA.dilu \uc{m}uha_d_dabu
+    \uc{'l-d}Ini \uc{'a}bU \uc{m}u.hammadiN \uc{`a}bdu
+    \uc{'l-r}a.hImi bnu \uc{`a}liyyi bni \uc{.h}AmidiN wa-yu`rafu
+    bi-\uc{'l-d}a_hwari.
+  \end{arab}
+\end{example}
 % \iffalse
 %</example>
 % \fi
@@ -4055,16 +4055,16 @@
 % \iffalse
 %<*example>
 % \fi
-\begin{arabluaverbatim}
-\beginnumbering
-\pstart
-\begin{arab}
-wa-ya.sIru ta.hta 'l-jild-i
-\edtext{\arb{.sadId-uN}}{\Afootnote{M: \arb{.sadId-aN} E1}}
-\end{arab}
-\pend
-\endnumbering
-\end{arabluaverbatim}
+\begin{code}
+  \beginnumbering
+  \pstart
+  \begin{arab}
+    wa-ya.sIru ta.hta 'l-jild-i
+    \edtext{\arb{.sadId-uN}}{\Afootnote{M: \arb{.sadId-aN} E1}}
+  \end{arab}
+  \pend
+  \endnumbering
+\end{code}
 % \iffalse
 %</example>
 % \fi
@@ -4089,10 +4089,10 @@
 % \iffalse
 %<*example>
 % \fi
-\begin{arabluaverbatim}
+\begin{code}
   \usepackage{arabluatex}
   \usepackage[nopar]{quran}
-\end{arabluaverbatim}
+\end{code}
 % \iffalse
 %</example>
 % \fi
@@ -4102,11 +4102,11 @@
 % \iffalse
 %<*example>
 % \fi
-\begin{arabluacode}
+\begin{example}
   \begin{txarab}
     \quransurah[1]
   \end{txarab}
-\end{arabluacode}
+\end{example}
 % \iffalse
 %</example>
 % \fi
@@ -4131,12 +4131,12 @@
 % \iffalse
 %<*example>
 % \fi
-\begin{arabluaverbatim}
+\begin{code}
   % preamble
   \usepackage[export]{arabluatex}
   % or:
   \usepackage[export=true]{arabluatex}
-\end{arabluaverbatim}
+\end{code}
 % \iffalse
 %</example>
 % \fi
@@ -4156,11 +4156,11 @@
 % \iffalse
 %<*example>
 % \fi
-\begin{arabluaverbatim}
+\begin{code}
   \begin{arabexport}
     <Running paragraphs of either Arabic or non-Arabic text>
   \end{arabexport}
-\end{arabluaverbatim}
+\end{code}
 % \iffalse
 %</example>
 % \fi
@@ -4218,11 +4218,11 @@
 % \iffalse
 %<*example>
 % \fi
-\begin{arabluaverbatim}
+\begin{code}
   Package arabluatex Warning: There are still 'arabtex' strings
   to be converted. Please open <jobname><suffix>.tex and compile
   it one more time.
-\end{arabluaverbatim}
+\end{code}
 % \iffalse
 %</example>
 % \fi
@@ -4240,9 +4240,9 @@
 % \iffalse
 %<*example>
 % \fi
-\begin{arabluaverbatim}
+\begin{code}
   pandoc file_out.tex -s -o file_out.odt
-\end{arabluaverbatim}
+\end{code}
 % \iffalse
 %</example>
 % \fi
@@ -4254,7 +4254,7 @@
 % \iffalse
 %<*example>
 % \fi
-\begin{arabluaverbatim}
+\begin{code}
   % preamble:
   \usepackage{arabluatex} % note that 'export' has been removed
   \renewcommand{\txarb}[1]{#1}
@@ -4264,7 +4264,7 @@
   % be safe to say:
   \renewcommand{\prname}[2]{#2}
   % &c
-\end{arabluaverbatim}
+\end{code}
 % \iffalse
 %</example>
 % \fi
@@ -4327,9 +4327,9 @@
 \DeclareOptionX{trans}{\def\al at mode{trans}}
 \define at boolkey{arabluatex.sty}[@pkg@]{export}[true]{%
   \if at pkg@export%
-  \AtBeginDocument{\luadirect{al_openstream()}%
+  \AtBeginDocument{\luadirect{arabluatex.openstream()}%
     \MkArbBreak{@al at ob, at al@cb, at al@cb at sp}}
-  \AtEndDocument{\luadirect{al_closestream()}}
+  \AtEndDocument{\luadirect{arabluatex.closestream()}}
   \else\fi}
 \ExecuteOptionsX{voc}
 \ProcessOptionsX\relax
@@ -4347,7 +4347,6 @@
 \RequirePackage{fontspec}
 \RequirePackage{luacode}
 \RequirePackage{xparse}
-\RequirePackage{environ}
 \RequirePackage{adjustbox}
 \RequirePackage{xstring}
 \PassOptionsToPackage{normalem}{ulem}
@@ -4372,13 +4371,15 @@
 % \begin{macro}{\setRL}
 %   This neutralizes what may be defined by other packages:
 %    \begin{macrocode}
-\AtBeginDocument{\def\setRL{\booltrue{al at rlmode}\pardir TRT\textdir TRT}}
+\AtBeginDocument{\def\setRL{\booltrue{al at rlmode}\pardir TRT%
+    \textdir TRT}}
 %    \end{macrocode}
 % \end{macro}
 % \begin{macro}{\setLR}
 %   The same applies to \cs{setLR}:
 %    \begin{macrocode}
-\AtBeginDocument{\def\setLR{\boolfalse{al at rlmode}\pardir TLT\textdir TLT}}
+\AtBeginDocument{\def\setLR{\boolfalse{al at rlmode}\pardir TLT%
+    \textdir TLT}}
 %    \end{macrocode}
 % \end{macro}
 % \begin{macro}{\LR} This command typesets its argument from left to
@@ -4415,8 +4416,8 @@
 %    \begin{macrocode}
 \NewDocumentCommand{\MkArbBreak}{s m}{%
   \IfBooleanTF{#1}
-  {\luadirect{mkarbbreak(\luastringN{#2}, "out")}}
-  {\luadirect{mkarbbreak(\luastringN{#2}, "dflt")}}
+  {\luadirect{arabluatex.mkarbbreak(\luastringN{#2}, "out")}}
+  {\luadirect{arabluatex.mkarbbreak(\luastringN{#2}, "dflt")}}
 }
 %    \end{macrocode}
 % \end{macro}
@@ -4437,12 +4438,16 @@
 \AtBeginDocument{\ifdef{\aemph}%
   {\RenewDocumentCommand{\aemph}{s m}{%
       \IfBooleanTF{#1}{%
-        \luadirect{tex.sprint(aemph(\luastringN{#2}, "over"))}}
-      {\luadirect{tex.sprint(aemph(\luastringN{#2}, "dflt"))}}}}
+        \luadirect{tex.sprint(arabluatex.aemph(\luastringN{#2},
+          "over"))}}
+      {\luadirect{tex.sprint(arabluatex.aemph(\luastringN{#2},
+          "dflt"))}}}}
   {\NewDocumentCommand{\aemph}{s m}{%
       \IfBooleanTF{#1}{%
-        \luadirect{tex.sprint(aemph(\luastringN{#2}, "over"))}}
-      {\luadirect{tex.sprint(aemph(\luastringN{#2}, "dflt"))}}}}}
+        \luadirect{tex.sprint(arabluatex.aemph(\luastringN{#2},
+          "over"))}}
+      {\luadirect{tex.sprint(arabluatex.aemph(\luastringN{#2},
+          "dflt"))}}}}}
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
@@ -4531,7 +4536,8 @@
 %   the transliteration convention, which is |dmg| by default:
 %    \begin{macrocode}
 \def\al at trans@convention{dmg}
-\NewDocumentCommand{\SetTranslitConvention}{m}{\def\al at trans@convention{#1}}
+\NewDocumentCommand{\SetTranslitConvention}{m}{%
+  \def\al at trans@convention{#1}}
 %    \end{macrocode}
 % \end{macro}
 % \begin{macro}{\arbup}
@@ -4551,12 +4557,13 @@
 %   formatting directives as argument, like so:
 %   \cs{SetArbUp}\marg{code}.
 %    \begin{macrocode}
-\NewDocumentCommand{\al at arbup@dflt}{m}{\textsuperscript{\thinspace#1}}%
+\NewDocumentCommand{\al at arbup@dflt}{m}{\textsuperscript{#1}}%
 \NewDocumentCommand{\al at arbup}{m}{\al at arbup@dflt{#1}}
 \NewDocumentCommand{\arbup}{m}{\al at arbup{#1}}
 \NewDocumentCommand{\ArbUpDflt}{}{\let\al at arbup=\al at arbup@dflt}
 \NewDocumentCommand{\NoArbUp}{}{\RenewDocumentCommand{\al at arbup}{m}{##1}}
-\NewDocumentCommand{\SetArbUp}{m}{\RenewDocumentCommand{\al at arbup}{m}{#1}}
+\NewDocumentCommand{\SetArbUp}{m}{%
+  \RenewDocumentCommand{\al at arbup}{m}{#1}}
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
@@ -4567,7 +4574,7 @@
 % uppercased. \cs{uc} is actually coded in Lua.
 %    \begin{macrocode}
 \NewDocumentCommand{\uc}{m}%
-  {\luadirect{tex.sprint(uc(\luastringN{#1}))}}
+  {\luadirect{tex.sprint(arabluatex.uc(\luastringN{#1}))}}
 %    \end{macrocode}
 % \end{macro}
 % \begin{macro}{\Uc} \cs{uc} can be used safely in all of the modes
@@ -4638,22 +4645,22 @@
 {\edef\@tempa{#1}%
   \ifx\@tempa\al at mode@voc%
   \bgroup\booltrue{al at rlmode}\textdir TRT\arabicfont%
-  \luadirect{tex.sprint(processvoc(\luastringN{#2},
+  \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%
   \bgroup\booltrue{al at rlmode}\textdir TRT\arabicfont%
-  \luadirect{tex.sprint(processfullvoc(\luastringN{#2},
+  \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%
   \bgroup\booltrue{al at rlmode}\textdir TRT\arabicfont%
-  \luadirect{tex.sprint(processnovoc(\luastringN{#2},
+  \luadirect{tex.sprint(arabluatex.processnovoc(\luastringN{#2},
     \luastringO{\al at arb@rules}, \luastringO{\al at input@scheme}))}\egroup%
   \else%
   \ifx\@tempa\al at mode@trans%
   \bgroup\textdir TLT\al at trans@font\al at trans@style%
-  \luadirect{tex.sprint(processtrans(\luastringN{#2},
+  \luadirect{tex.sprint(arabluatex.processtrans(\luastringN{#2},
     \luastringO{\al at trans@convention},
     \luastringO{\al at arb@rules},
     \luastringO{\al at input@scheme}))}\egroup%
@@ -4674,7 +4681,7 @@
 \NewDocumentCommand{\arbmark}{O{} m}{%
   \bgroup%
   \SetInputScheme{arabtex}%
-  \luadirect{tex.sprint(processarbmarks(\luastringN{#2},
+  \luadirect{tex.sprint(arabluatex.processarbmarks(\luastringN{#2},
     \luastringN{#1}))}%
   \egroup}
 %    \end{macrocode}
@@ -4688,7 +4695,8 @@
 % romanized Arabic.
 %    \begin{macrocode}
 \NewDocumentCommand{\newarbmark}{m m m}{%
-  \luadirect{newarbmark(\luastringN{#1}, \luastringN{#2}, \luastringN{#3})}}
+  \luadirect{arabluatex.newarbmark(\luastringN{#1}, \luastringN{#2},
+    \luastringN{#3})}}
 %    \end{macrocode}
 % \end{macro}
 % \begin{environment}{arab}
@@ -4695,33 +4703,33 @@
 % The |arab| environment does for paragraphs the same as \cs{arb} does
 % for short insertions of Arabic text.
 %    \begin{macrocode}
-\NewEnviron{arab}[1][\al at mode]%
+\NewDocumentEnvironment{arab}{O{\al at mode} +b}%
 {\par\edef\@tempa{#1}%
   \ifx\@tempa\al at mode@voc%
   \booltrue{al at rlmode}%
   \bgroup\pardir TRT\textdir TRT\arabicfont%
-  \luadirect{tex.sprint(processvoc(\luastringO{\BODY},
+  \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%
   \booltrue{al at rlmode}%
   \bgroup\pardir TRT\textdir TRT\arabicfont%
-  \luadirect{tex.sprint(processfullvoc(\luastringO{\BODY},
+  \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%
   \booltrue{al at rlmode}%
   \bgroup\pardir TRT\textdir TRT\arabicfont%
-  \luadirect{tex.sprint(processnovoc(\luastringO{\BODY},
+  \luadirect{tex.sprint(arabluatex.processnovoc(\luastringN{#2},
     \luastringO{\al at arb@rules}, \luastringO{\al at input@scheme}))}\egroup%
   \else%
   \ifx\@tempa\al at mode@trans%
   \bgroup\pardir TLT\textdir TLT\al at trans@font\al at trans@style%
-  \luadirect{tex.sprint(processtrans(\luastringO{\BODY},
+  \luadirect{tex.sprint(arabluatex.processtrans(\luastringN{#2},
     \luastringO{\al at trans@convention},
     \luastringO{\al at arb@rules},
     \luastringO{\al at input@scheme}))}\egroup%
-  \else \fi\fi\fi\fi}[\par]
+  \else \fi\fi\fi\fi}{\par}
 %    \end{macrocode}
 % \end{environment}
 % \begin{environment}{arabverse}
@@ -4758,11 +4766,11 @@
   \if at pkg@export\ifal at verse@export%
   \ArbOutFile{\begin{arabverse}}%
     % \ifx\al at mode\al at mode@trans%
-    %   \luadirect{tooutfile(\luastringN{[#1]})}%
+    %   \luadirect{arabluatex.tooutfile(\luastringN{[#1]})}%
     % \else%
       \IfSubStr[1]{#1}{utf}%
-        {\luadirect{tooutfile(\luastringN{[#1]})}}%
-        {\luadirect{tooutfile(\luastringN{[#1, utf]})}}%
+        {\luadirect{arabluatex.tooutfile(\luastringN{[#1]})}}%
+        {\luadirect{arabluatex.tooutfile(\luastringN{[#1, utf]})}}%
     % \fi
   \else\fi\else\fi\egroup%
   \par\centering\noindent\bgroup\setkeys[al]{verse}[metre]{#1}%
@@ -4774,7 +4782,7 @@
     \else%
     \ifx\al at mode\al at mode@trans\setLR\else\setRL\fi%
     \fi%
-  \arab at v@export{#1}
+  \arab at v@export[#1]
   }%
   {\endarab at v@export
     \hfill\setkeys[al]{verse}[width, gutter, color, utf, delim, mode,
@@ -4852,13 +4860,15 @@
   \ifdefined\abjad%
   \RenewDocumentCommand{\abjad}{m}%
   {\ifbool{al at rlmode}%
-    {\oline*{\luadirect{tex.sprint(abjadify(\luastring{#1}))}}}
-    {\luadirect{tex.sprint(abjadify(\luastring{#1}))}}}
+    {\oline*{%
+        \luadirect{tex.sprint(arabluatex.abjadify(\luastring{#1}))}}}
+    {\luadirect{tex.sprint(arabluatex.abjadify(\luastring{#1}))}}}
   \else%
   \NewDocumentCommand{\abjad}{m}%
   {\ifbool{al at rlmode}%
-    {\oline*{\luadirect{tex.sprint(abjadify(\luastring{#1}))}}}
-    {\luadirect{tex.sprint(abjadify(\luastring{#1}))}}}
+    {\oline*{%
+        \luadirect{tex.sprint(arabluatex.abjadify(\luastring{#1}))}}}
+    {\luadirect{tex.sprint(arabluatex.abjadify(\luastring{#1}))}}}
   \fi}
 %    \end{macrocode}
 % \end{macro}
@@ -4868,7 +4878,7 @@
 % depending on the mode which is selected.
 %    \begin{macrocode}
 \NewDocumentCommand{\ayah}{m}{%
-  \luadirect{tex.sprint(ayah(\luastringN{#1}))}}
+  \luadirect{tex.sprint(arabluatex.ayah(\luastringN{#1}))}}
 %    \end{macrocode}
 % \end{macro}
 % 
@@ -4890,7 +4900,7 @@
 %   expresses its argument between braces.}
 %    \begin{macrocode}
 \NewDocumentCommand{\abraces}{+m}{%
-  \luadirect{tex.sprint(abraces(\luastringN{#1}))}}
+  \luadirect{tex.sprint(arabluatex.abraces(\luastringN{#1}))}}
 %    \end{macrocode}
 % \end{macro}
 % \begin{macro}{\LRmarginpar} \cs{LRmarginpar} is supposed to be
@@ -4924,9 +4934,11 @@
 %    \begin{macrocode}
 \NewDocumentCommand{\FixArbFtnmk}{}{%
   \@ifpackageloaded{scrextend}%
-  {\AtBeginDocument{\deffootnote{2em}{1.6em}{\LR{\thefootnotemark}.\enskip}}}%
+  {\AtBeginDocument{%
+      \deffootnote{2em}{1.6em}{\LR{\thefootnotemark}.\enskip}}}%
   {\RequirePackage{scrextend}
-  \AtBeginDocument{\deffootnote{2em}{1.6em}{\LR{\thefootnotemark}.\enskip}}}}
+    \AtBeginDocument{%
+      \deffootnote{2em}{1.6em}{\LR{\thefootnotemark}.\enskip}}}}
 %    \end{macrocode}
 % \end{macro}
 % 
@@ -4940,7 +4952,7 @@
 % set with \cs{SetArbOutSuffix}\marg{suffix}.
 %    \begin{macrocode}
 \NewDocumentCommand{\SetArbOutSuffix}{m}{
-  \luadirect{al_utffilesuffix(\luastringN{#1})}}
+  \luadirect{arabluatex.utffilesuffix(\luastringN{#1})}}
 %    \end{macrocode}
 % \end{macro}
 % \begin{macro}{\ArbOutFile}
@@ -4958,8 +4970,8 @@
 \NewDocumentCommand{\ArbOutFile}{s O{no} +m}{%
   \if at pkg@export%
   \IfBooleanTF{#1}{%
-    #3\luadirect{tooutfile(\luastringN{#3}, "#2")}}{%
-    \luadirect{tooutfile(\luastringN{#3}, "#2")}}%
+    #3\luadirect{arabluatex.tooutfile(\luastringN{#3}, "#2")}}{%
+    \luadirect{arabluatex.tooutfile(\luastringN{#3}, "#2")}}%
   \else\IfBooleanTF{#1}{#3}{}\fi}
 %    \end{macrocode}
 % \end{macro}
@@ -4974,15 +4986,15 @@
 %   selected |.tex| file with Unicode in place of the original
 %   |arabtex| or |buckwalter| strings.
 %    \begin{macrocode}
-\NewEnviron{arabexport}{%
+\NewDocumentEnvironment{arabexport}{+b}{%
   \if at pkg@export%
   \par
-  \BODY
-  \luadirect{al_doexport("yes")}
-  \luadirect{tex.sprint(arbtoutf(\luastringO{\BODY}))}
-  \luadirect{al_doexport("no")}
-  \else\par\BODY\fi
-  }[\par]
+  #1
+  \luadirect{arabluatex.doexport("yes")}
+  \luadirect{tex.sprint(arabluatex.arbtoutf(\luastringN{#1}))}
+  \luadirect{arabluatex.doexport("no")}
+  \else\par#1\fi
+  }{\par}
 %    \end{macrocode}
 % \end{environment}
 % \begin{environment}{arab at v@export} The |arab at v@export| environment
@@ -4989,17 +5001,17 @@
 %   does for |arabverse| the same as |arabexport|. It is used
 %   internally by |arabverse|.
 %    \begin{macrocode}
-\NewEnviron{arab at v@export}[1]{%
+\NewDocumentEnvironment{arab at v@export}{O{} +b}{%
   \setkeys[al]{verse}[width, gutter, color, utf, delim, mode,
   metre]{#1}
   \if at pkg@export\ifal at verse@export%
   \par
-  \BODY
-  \luadirect{al_doexport("arabverse")}
-  \luadirect{tex.sprint(arbtoutf(\luastringO{\BODY}))}
-  \luadirect{al_doexport("no")}
-  \else\par\BODY\fi\else\par\BODY\fi
-}[\par]
+  #2
+  \luadirect{arabluatex.doexport("arabverse")}
+  \luadirect{tex.sprint(arabluatex.arbtoutf(\luastringN{#2}))}
+  \luadirect{arabluatex.doexport("no")}
+  \else\par#2\fi\else\par#2\fi
+}{\par}
 %    \end{macrocode}
 % \end{environment}
 % \begin{macro}{\arbpardir}

Modified: trunk/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex.lua
===================================================================
--- trunk/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex.lua	2019-03-24 21:11:42 UTC (rev 50570)
+++ trunk/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex.lua	2019-03-24 21:12:01 UTC (rev 50571)
@@ -22,6 +22,8 @@
 <http://www.gnu.org/licenses/>.
 --]]
 
+arabluatex = {}
+
 require("arabluatex_voc")
 require("arabluatex_fullvoc")
 require("arabluatex_novoc")
@@ -95,7 +97,7 @@
 }
 local brkcmds = {}
 
-function mkarbbreak(str, opt)
+function arabluatex.mkarbbreak(str, opt)
    str = str ..","
    str = string.gsub(str, "%s+", "")
    local fieldstart = 1
@@ -659,17 +661,17 @@
 local utffilesuffix = "_out"
 local export_utf = "no"
 
-function al_utffilesuffix(str)
+function arabluatex.utffilesuffix(str)
    utffilesuffix = str
    return true
 end
 
-function al_doexport(str)
+function arabluatex.doexport(str)
    export_utf = str
    return true
 end
 
-function al_openstream()
+function arabluatex.openstream()
    local f = io.open(tex.jobname..utffilesuffix.."_tmp.tex", "a+")
    local preamble = io.open(tex.jobname..".tex", "r")
    for line in preamble:lines() do
@@ -706,7 +708,7 @@
 			body = string.gsub(body, "(\\abjad%s?)(%b{})", function(btag, bbody)
 					      bbody = string.sub(bbody, 2, -2)
 					      if tonumber(bbody) ~= nil then
-						 bbody = abjadify(bbody)
+						 bbody = arabluatex.abjadify(bbody)
 						 return string.format("\\oline*{\\arb[novoc]{%s}}", bbody)
 					      else
 						 return string.format("%s{%s}", btag, bbody)
@@ -793,7 +795,7 @@
    return str
 end
 
-function arbtoutf(str)
+function arabluatex.arbtoutf(str)
    str = processarbtoutf(str)
    str = "\\ArbOutFile{"..str.."}"
    str = string.gsub(str, "(\\ArbOutFile)%s?(%b{})", function(tag, body)
@@ -814,7 +816,7 @@
    return str
 end
 
-function tooutfile(str, nl)
+function arabluatex.tooutfile(str, nl)
    local f = io.open(tex.jobname..utffilesuffix.."_tmp.tex", "a+")
    if nl == "newline" then
       f:write(str, "\n\n")
@@ -825,7 +827,7 @@
    return str
 end
 
-function al_closestream()
+function arabluatex.closestream()
    local f = io.open(tex.jobname..utffilesuffix.."_tmp.tex", "r")
    local o = io.open(tex.jobname..utffilesuffix..".tex", "w")
    local t = f:read("*a")
@@ -883,7 +885,7 @@
 end
 
 -- Process standard arabluatex modes:
-function processvoc(str, rules, scheme)
+function arabluatex.processvoc(str, rules, scheme)
    str = takeoutarb(str)
    str = processarbnull(str, scheme)
    str = takeoutcapetc(str)
@@ -901,10 +903,10 @@
    str = unprotectarb(str)
    if export_utf == "yes" then
       tofile = "\\txarb{"..str.."}"
-      tooutfile(tofile)
+      arabluatex.tooutfile(tofile)
    elseif export_utf == "arabverse" then
       tofile = "\\txarb{"..str.."}"
-      tooutfile(tofile)
+      arabluatex.tooutfile(tofile)
    else
       return str
    end
@@ -911,7 +913,7 @@
    return ""
 end
 
-function processfullvoc(str, rules, scheme)
+function arabluatex.processfullvoc(str, rules, scheme)
    str = takeoutarb(str)
    str = processarbnull(str, scheme)
    str = takeoutcapetc(str)
@@ -931,10 +933,10 @@
    str = unprotectarb(str)
    if export_utf == "yes" then
       tofile = "\\txarb{"..str.."}"
-      tooutfile(tofile)
+      arabluatex.tooutfile(tofile)
    elseif export_utf == "arabverse" then
       tofile = "\\txarb{"..str.."}"
-      tooutfile(tofile)
+      arabluatex.tooutfile(tofile)
    else
       return str
    end
@@ -941,7 +943,7 @@
    return ""
 end
 
-function processnovoc(str, rules, scheme)
+function arabluatex.processnovoc(str, rules, scheme)
    str = takeoutarb(str)
    str = processarbnull(str, scheme)
    str = takeoutcapetc(str)
@@ -959,10 +961,10 @@
    str = unprotectarb(str)
    if export_utf == "yes" then
       tofile = "\\txarb{"..str.."}"
-      tooutfile(tofile)
+      arabluatex.tooutfile(tofile)
    elseif export_utf == "arabverse" then
       tofile = "\\txarb{"..str.."}"
-      tooutfile(tofile)
+      arabluatex.tooutfile(tofile)
    else
       return str
    end
@@ -969,7 +971,7 @@
    return ""
 end
 
-function processtrans(str, mode, rules, scheme)
+function arabluatex.processtrans(str, mode, rules, scheme)
    str = takeoutarb(str)
    str = processdiscretionary(str)
    str = processarbnull(str, scheme)
@@ -990,10 +992,10 @@
    str = unprotectarb(str)
    if export_utf == "yes" then
       tofile = "\\txtrans{"..str.."}"
-      tooutfile(tofile)
+      arabluatex.tooutfile(tofile)
    elseif export_utf == "arabverse" then
       tofile = "\\txtrans{"..str.."}"
-      tooutfile(tofile)
+      arabluatex.tooutfile(tofile)
    else
       return str
    end
@@ -1000,7 +1002,7 @@
    return ""
 end
 
-function newarbmark(abbr, rtlmk, ltrmk)
+function arabluatex.newarbmark(abbr, rtlmk, ltrmk)
    abbr = "@"..abbr
    rtlmk = "\\arabicfont{}"..rtlmk
    table.insert(arbmarks, {a = abbr, b = rtlmk, c = ltrmk})
@@ -1017,7 +1019,7 @@
    return false
 end
 
-function processarbmarks(str, dir)
+function arabluatex.processarbmarks(str, dir)
    str = "@"..str
    if not isintable(arbmarks, str) then
       str = "\\LR{<??>}"..atletter.."\\al at wrong@mark{}"..atother
@@ -1042,10 +1044,10 @@
    end
    if export_utf == "yes" then
       tofile = str
-      tooutfile(tofile)
+      arabluatex.tooutfile(tofile)
    elseif export_utf == "arabverse" then
       tofile = str
-      tooutfile(tofile)
+      arabluatex.tooutfile(tofile)
    else
       return str
    end
@@ -1052,7 +1054,7 @@
    return ""
 end
 
-function uc(str)
+function arabluatex.uc(str)
    str = string.gsub(str, "(\\txtrans.?)(%b{})", function(tag, body)
 			body = string.sub(body, 2, -2)
 			return string.format("%s", body)
@@ -1113,10 +1115,10 @@
    str = string.gsub(str, "\\@al at cb", "}")
    if export_utf == "yes" then
       tofile = str
-      tooutfile(tofile)
+      arabluatex.tooutfile(tofile)
    elseif export_utf == "arabverse" then
       tofile = str
-      tooutfile(tofile)
+      arabluatex.tooutfile(tofile)
    else
       return str
    end
@@ -1126,7 +1128,7 @@
 -- this function is adapted from an 'obsolete project' of Khaled
 -- Hosny's that dates back to 2010. Thanks to him.
 -- See https://github.com/khaledhosny/lualatex-arabic
-function abjadify(n)
+function arabluatex.abjadify(n)
    local abjadnum = ""
    n = tonumber(n)
     if n >= 1000 then
@@ -1149,7 +1151,7 @@
     return "\\arb[novoc]{"..abjadnum.."}"
 end
 
-function abraces(str)
+function arabluatex.abraces(str)
    if tex.textdir == "TRT" then
       str = "\\}"..str.."\\{"
    elseif tex.textdir == "TLT" then
@@ -1158,7 +1160,7 @@
    return str
 end
 
-function aemph(str, opt)
+function arabluatex.aemph(str, opt)
    if tex.textdir == "TRT" then
       str = "\\oline{\\textdir TRT{}"..str.."}"
    elseif tex.textdir == "TLT" then
@@ -1171,7 +1173,7 @@
    return str
 end
 
-function ayah(str)
+function arabluatex.ayah(str)
    if tonumber(str) ~= nil and str.len(str) < 4 then
       if tex.textdir == "TRT" then
 	 str = indnum(str).."^^^^06dd"

Modified: trunk/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex.sty
===================================================================
--- trunk/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex.sty	2019-03-24 21:11:42 UTC (rev 50570)
+++ trunk/Master/texmf-dist/tex/lualatex/arabluatex/arabluatex.sty	2019-03-24 21:12:01 UTC (rev 50571)
@@ -41,7 +41,7 @@
 %% 
 \NeedsTeXFormat{LaTeX2e}[1999/12/01]
 \ProvidesPackage{arabluatex}
-    [2019/03/22 v1.16 An ArabTeX-like interface for LuaLaTeX]
+    [2019/03/24 v1.17 An ArabTeX-like interface for LuaLaTeX]
 \RequirePackage{ifluatex}
 \ifluatex\else
  \PackageError{arabluatex}{lualatex needed}{%
@@ -57,9 +57,9 @@
 \DeclareOptionX{trans}{\def\al at mode{trans}}
 \define at boolkey{arabluatex.sty}[@pkg@]{export}[true]{%
   \if at pkg@export%
-  \AtBeginDocument{\luadirect{al_openstream()}%
+  \AtBeginDocument{\luadirect{arabluatex.openstream()}%
     \MkArbBreak{@al at ob, at al@cb, at al@cb at sp}}
-  \AtEndDocument{\luadirect{al_closestream()}}
+  \AtEndDocument{\luadirect{arabluatex.closestream()}}
   \else\fi}
 \ExecuteOptionsX{voc}
 \ProcessOptionsX\relax
@@ -74,7 +74,6 @@
 \RequirePackage{fontspec}
 \RequirePackage{luacode}
 \RequirePackage{xparse}
-\RequirePackage{environ}
 \RequirePackage{adjustbox}
 \RequirePackage{xstring}
 \PassOptionsToPackage{normalem}{ulem}
@@ -85,8 +84,10 @@
 \PackageWarning{arabluatex}{\string\arabicfont\ is not defined.^^J
   I will try to load Amiri}%
 \newfontfamily\arabicfont[Script=Arabic]{Amiri}\fi}%
-\AtBeginDocument{\def\setRL{\booltrue{al at rlmode}\pardir TRT\textdir TRT}}
-\AtBeginDocument{\def\setLR{\boolfalse{al at rlmode}\pardir TLT\textdir TLT}}
+\AtBeginDocument{\def\setRL{\booltrue{al at rlmode}\pardir TRT%
+    \textdir TRT}}
+\AtBeginDocument{\def\setLR{\boolfalse{al at rlmode}\pardir TLT%
+    \textdir TLT}}
 \AtBeginDocument{\ifdef{\LR}%
   {\RenewDocumentCommand{\LR}{m}{\bgroup\textdir TLT\rmfamily#1\egroup}}
   {\NewDocumentCommand{\LR}{m}{\bgroup\textdir TLT\rmfamily#1\egroup}}}
@@ -95,8 +96,8 @@
   {\NewDocumentCommand{\RL}{m}{\bgroup\textdir TRT#1\rmfamily\egroup}}}
 \NewDocumentCommand{\MkArbBreak}{s m}{%
   \IfBooleanTF{#1}
-  {\luadirect{mkarbbreak(\luastringN{#2}, "out")}}
-  {\luadirect{mkarbbreak(\luastringN{#2}, "dflt")}}
+  {\luadirect{arabluatex.mkarbbreak(\luastringN{#2}, "out")}}
+  {\luadirect{arabluatex.mkarbbreak(\luastringN{#2}, "dflt")}}
 }
 \def\oline{\@ifstar\@oline\@@oline}
 \def\@oline#1{\ensuremath{\overline{\mbox{#1}}}}
@@ -104,12 +105,16 @@
 \AtBeginDocument{\ifdef{\aemph}%
   {\RenewDocumentCommand{\aemph}{s m}{%
       \IfBooleanTF{#1}{%
-        \luadirect{tex.sprint(aemph(\luastringN{#2}, "over"))}}
-      {\luadirect{tex.sprint(aemph(\luastringN{#2}, "dflt"))}}}}
+        \luadirect{tex.sprint(arabluatex.aemph(\luastringN{#2},
+          "over"))}}
+      {\luadirect{tex.sprint(arabluatex.aemph(\luastringN{#2},
+          "dflt"))}}}}
   {\NewDocumentCommand{\aemph}{s m}{%
       \IfBooleanTF{#1}{%
-        \luadirect{tex.sprint(aemph(\luastringN{#2}, "over"))}}
-      {\luadirect{tex.sprint(aemph(\luastringN{#2}, "dflt"))}}}}}
+        \luadirect{tex.sprint(arabluatex.aemph(\luastringN{#2},
+          "over"))}}
+      {\luadirect{tex.sprint(arabluatex.aemph(\luastringN{#2},
+          "dflt"))}}}}}
 \NewDocumentCommand{\arbcolor}{o m}{%
   \IfNoValueTF{#1}{#2}{\textcolor{#1}{#2}}}
 \def\al at input@scheme{arabtex}
@@ -128,15 +133,17 @@
 \def\al at trans@style{\itshape}%
 \NewDocumentCommand{\SetTranslitStyle}{m}{\def\al at trans@style{#1}}
 \def\al at trans@convention{dmg}
-\NewDocumentCommand{\SetTranslitConvention}{m}{\def\al at trans@convention{#1}}
-\NewDocumentCommand{\al at arbup@dflt}{m}{\textsuperscript{\thinspace#1}}%
+\NewDocumentCommand{\SetTranslitConvention}{m}{%
+  \def\al at trans@convention{#1}}
+\NewDocumentCommand{\al at arbup@dflt}{m}{\textsuperscript{#1}}%
 \NewDocumentCommand{\al at arbup}{m}{\al at arbup@dflt{#1}}
 \NewDocumentCommand{\arbup}{m}{\al at arbup{#1}}
 \NewDocumentCommand{\ArbUpDflt}{}{\let\al at arbup=\al at arbup@dflt}
 \NewDocumentCommand{\NoArbUp}{}{\RenewDocumentCommand{\al at arbup}{m}{##1}}
-\NewDocumentCommand{\SetArbUp}{m}{\RenewDocumentCommand{\al at arbup}{m}{#1}}
+\NewDocumentCommand{\SetArbUp}{m}{%
+  \RenewDocumentCommand{\al at arbup}{m}{#1}}
 \NewDocumentCommand{\uc}{m}%
-  {\luadirect{tex.sprint(uc(\luastringN{#1}))}}
+  {\luadirect{tex.sprint(arabluatex.uc(\luastringN{#1}))}}
 \let\Uc\uc
 \NewDocumentCommand{\prname}{s m}{%
   \bgroup\SetTranslitStyle{\relax}%
@@ -153,22 +160,22 @@
 {\edef\@tempa{#1}%
   \ifx\@tempa\al at mode@voc%
   \bgroup\booltrue{al at rlmode}\textdir TRT\arabicfont%
-  \luadirect{tex.sprint(processvoc(\luastringN{#2},
+  \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%
   \bgroup\booltrue{al at rlmode}\textdir TRT\arabicfont%
-  \luadirect{tex.sprint(processfullvoc(\luastringN{#2},
+  \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%
   \bgroup\booltrue{al at rlmode}\textdir TRT\arabicfont%
-  \luadirect{tex.sprint(processnovoc(\luastringN{#2},
+  \luadirect{tex.sprint(arabluatex.processnovoc(\luastringN{#2},
     \luastringO{\al at arb@rules}, \luastringO{\al at input@scheme}))}\egroup%
   \else%
   \ifx\@tempa\al at mode@trans%
   \bgroup\textdir TLT\al at trans@font\al at trans@style%
-  \luadirect{tex.sprint(processtrans(\luastringN{#2},
+  \luadirect{tex.sprint(arabluatex.processtrans(\luastringN{#2},
     \luastringO{\al at trans@convention},
     \luastringO{\al at arb@rules},
     \luastringO{\al at input@scheme}))}\egroup%
@@ -177,38 +184,39 @@
 \NewDocumentCommand{\arbmark}{O{} m}{%
   \bgroup%
   \SetInputScheme{arabtex}%
-  \luadirect{tex.sprint(processarbmarks(\luastringN{#2},
+  \luadirect{tex.sprint(arabluatex.processarbmarks(\luastringN{#2},
     \luastringN{#1}))}%
   \egroup}
 \NewDocumentCommand{\newarbmark}{m m m}{%
-  \luadirect{newarbmark(\luastringN{#1}, \luastringN{#2}, \luastringN{#3})}}
-\NewEnviron{arab}[1][\al at mode]%
+  \luadirect{arabluatex.newarbmark(\luastringN{#1}, \luastringN{#2},
+    \luastringN{#3})}}
+\NewDocumentEnvironment{arab}{O{\al at mode} +b}%
 {\par\edef\@tempa{#1}%
   \ifx\@tempa\al at mode@voc%
   \booltrue{al at rlmode}%
   \bgroup\pardir TRT\textdir TRT\arabicfont%
-  \luadirect{tex.sprint(processvoc(\luastringO{\BODY},
+  \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%
   \booltrue{al at rlmode}%
   \bgroup\pardir TRT\textdir TRT\arabicfont%
-  \luadirect{tex.sprint(processfullvoc(\luastringO{\BODY},
+  \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%
   \booltrue{al at rlmode}%
   \bgroup\pardir TRT\textdir TRT\arabicfont%
-  \luadirect{tex.sprint(processnovoc(\luastringO{\BODY},
+  \luadirect{tex.sprint(arabluatex.processnovoc(\luastringN{#2},
     \luastringO{\al at arb@rules}, \luastringO{\al at input@scheme}))}\egroup%
   \else%
   \ifx\@tempa\al at mode@trans%
   \bgroup\pardir TLT\textdir TLT\al at trans@font\al at trans@style%
-  \luadirect{tex.sprint(processtrans(\luastringO{\BODY},
+  \luadirect{tex.sprint(arabluatex.processtrans(\luastringN{#2},
     \luastringO{\al at trans@convention},
     \luastringO{\al at arb@rules},
     \luastringO{\al at input@scheme}))}\egroup%
-  \else \fi\fi\fi\fi}[\par]
+  \else \fi\fi\fi\fi}{\par}
 \newlength{\al at bayt@width}
 \newlength{\al at gutter@width}
 \setlength{\al at bayt@width}{.3\textwidth}
@@ -230,11 +238,11 @@
   \if at pkg@export\ifal at verse@export%
   \ArbOutFile{\begin{arabverse}}%
     % \ifx\al at mode\al at mode@trans%
-    %   \luadirect{tooutfile(\luastringN{[#1]})}%
+    %   \luadirect{arabluatex.tooutfile(\luastringN{[#1]})}%
     % \else%
       \IfSubStr[1]{#1}{utf}%
-        {\luadirect{tooutfile(\luastringN{[#1]})}}%
-        {\luadirect{tooutfile(\luastringN{[#1, utf]})}}%
+        {\luadirect{arabluatex.tooutfile(\luastringN{[#1]})}}%
+        {\luadirect{arabluatex.tooutfile(\luastringN{[#1, utf]})}}%
     % \fi
   \else\fi\else\fi\egroup%
   \par\centering\noindent\bgroup\setkeys[al]{verse}[metre]{#1}%
@@ -246,7 +254,7 @@
     \else%
     \ifx\al at mode\al at mode@trans\setLR\else\setRL\fi%
     \fi%
-  \arab at v@export{#1}
+  \arab at v@export[#1]
   }%
   {\endarab at v@export
     \hfill\setkeys[al]{verse}[width, gutter, color, utf, delim, mode,
@@ -293,19 +301,21 @@
   \ifdefined\abjad%
   \RenewDocumentCommand{\abjad}{m}%
   {\ifbool{al at rlmode}%
-    {\oline*{\luadirect{tex.sprint(abjadify(\luastring{#1}))}}}
-    {\luadirect{tex.sprint(abjadify(\luastring{#1}))}}}
+    {\oline*{%
+        \luadirect{tex.sprint(arabluatex.abjadify(\luastring{#1}))}}}
+    {\luadirect{tex.sprint(arabluatex.abjadify(\luastring{#1}))}}}
   \else%
   \NewDocumentCommand{\abjad}{m}%
   {\ifbool{al at rlmode}%
-    {\oline*{\luadirect{tex.sprint(abjadify(\luastring{#1}))}}}
-    {\luadirect{tex.sprint(abjadify(\luastring{#1}))}}}
+    {\oline*{%
+        \luadirect{tex.sprint(arabluatex.abjadify(\luastring{#1}))}}}
+    {\luadirect{tex.sprint(arabluatex.abjadify(\luastring{#1}))}}}
   \fi}
 \NewDocumentCommand{\ayah}{m}{%
-  \luadirect{tex.sprint(ayah(\luastringN{#1}))}}
+  \luadirect{tex.sprint(arabluatex.ayah(\luastringN{#1}))}}
 \NewDocumentCommand{\arbnull}{m}{\relax}
 \NewDocumentCommand{\abraces}{+m}{%
-  \luadirect{tex.sprint(abraces(\luastringN{#1}))}}
+  \luadirect{tex.sprint(arabluatex.abraces(\luastringN{#1}))}}
 \DeclareDocumentCommand{\LRmarginpar}{o m}{%
   \IfNoValueTF{#1}
   {\marginpar{\textdir TLT #2}}
@@ -316,37 +326,39 @@
   TRT\textdir TRT\footnote{#1}\egroup}
 \NewDocumentCommand{\FixArbFtnmk}{}{%
   \@ifpackageloaded{scrextend}%
-  {\AtBeginDocument{\deffootnote{2em}{1.6em}{\LR{\thefootnotemark}.\enskip}}}%
+  {\AtBeginDocument{%
+      \deffootnote{2em}{1.6em}{\LR{\thefootnotemark}.\enskip}}}%
   {\RequirePackage{scrextend}
-  \AtBeginDocument{\deffootnote{2em}{1.6em}{\LR{\thefootnotemark}.\enskip}}}}
+    \AtBeginDocument{%
+      \deffootnote{2em}{1.6em}{\LR{\thefootnotemark}.\enskip}}}}
 \NewDocumentCommand{\SetArbOutSuffix}{m}{
-  \luadirect{al_utffilesuffix(\luastringN{#1})}}
+  \luadirect{arabluatex.utffilesuffix(\luastringN{#1})}}
 \NewDocumentCommand{\ArbOutFile}{s O{no} +m}{%
   \if at pkg@export%
   \IfBooleanTF{#1}{%
-    #3\luadirect{tooutfile(\luastringN{#3}, "#2")}}{%
-    \luadirect{tooutfile(\luastringN{#3}, "#2")}}%
+    #3\luadirect{arabluatex.tooutfile(\luastringN{#3}, "#2")}}{%
+    \luadirect{arabluatex.tooutfile(\luastringN{#3}, "#2")}}%
   \else\IfBooleanTF{#1}{#3}{}\fi}
-\NewEnviron{arabexport}{%
+\NewDocumentEnvironment{arabexport}{+b}{%
   \if at pkg@export%
   \par
-  \BODY
-  \luadirect{al_doexport("yes")}
-  \luadirect{tex.sprint(arbtoutf(\luastringO{\BODY}))}
-  \luadirect{al_doexport("no")}
-  \else\par\BODY\fi
-  }[\par]
-\NewEnviron{arab at v@export}[1]{%
+  #1
+  \luadirect{arabluatex.doexport("yes")}
+  \luadirect{tex.sprint(arabluatex.arbtoutf(\luastringN{#1}))}
+  \luadirect{arabluatex.doexport("no")}
+  \else\par#1\fi
+  }{\par}
+\NewDocumentEnvironment{arab at v@export}{O{} +b}{%
   \setkeys[al]{verse}[width, gutter, color, utf, delim, mode,
   metre]{#1}
   \if at pkg@export\ifal at verse@export%
   \par
-  \BODY
-  \luadirect{al_doexport("arabverse")}
-  \luadirect{tex.sprint(arbtoutf(\luastringO{\BODY}))}
-  \luadirect{al_doexport("no")}
-  \else\par\BODY\fi\else\par\BODY\fi
-}[\par]
+  #2
+  \luadirect{arabluatex.doexport("arabverse")}
+  \luadirect{tex.sprint(arabluatex.arbtoutf(\luastringN{#2}))}
+  \luadirect{arabluatex.doexport("no")}
+  \else\par#2\fi\else\par#2\fi
+}{\par}
 \NewDocumentCommand{\arbpardir}{}{%
   \ifx\al at mode\al at mode@trans\setLR\else\setRL\fi}
 \newcommand{\al at warning}[1]{\PackageWarning{arabluatex}{#1}}



More information about the tex-live-commits mailing list