aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--AUTHORS.md8
-rw-r--r--LICENSE17
-rw-r--r--README.md122
-rw-r--r--README.tex81
-rw-r--r--about.html127
-rw-r--r--arabluatex.dtx891
-rw-r--r--arabluatex.el34
-rw-r--r--arabluatex.ins66
-rw-r--r--arabluatex.lua84
-rw-r--r--arabluatex_fullvoc.lua29
-rw-r--r--arabluatex_novoc.lua29
-rw-r--r--arabluatex_trans.lua29
-rw-r--r--arabluatex_voc.lua29
-rw-r--r--makefile36
-rw-r--r--samples/al-Jahiz.tex2
-rw-r--r--samples/exporting.tex2
16 files changed, 579 insertions, 1007 deletions
diff --git a/AUTHORS.md b/AUTHORS.md
new file mode 100644
index 0000000..2d8eeae
--- /dev/null
+++ b/AUTHORS.md
@@ -0,0 +1,8 @@
1Author of the `arabluatex` package
2==================================
3
4Robert Alessi
5: Personal email: <alessi@robertalessi.net>
6: Institutional email: <robert.alessi@cnrs.fr>
7: Affiliation: [UMR 8167 Orient & Méditerranée (Paris, France)](https://www.orient-mediterranee.com)
8: More information: <https://ctan.org/pkg/arabluatex> or <https://sr.ht/~ralessi/arabluatex>
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..dc34776
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,17 @@
1arabluatex -- ArabTeX for LuaLaTeX
2----------------------------------
3
4Copyright (c) 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023
5Robert Alessi <alessi@robertalessi.net>
6
7Permission to use, copy, modify, and distribute this software for any
8purpose with or without fee is hereby granted, provided that the above
9copyright notice and this permission notice appear in all copies.
10
11THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
12WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
13MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
14ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
15WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
16ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
17OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
diff --git a/README.md b/README.md
index e1ccf14..eba493f 100644
--- a/README.md
+++ b/README.md
@@ -1,54 +1,47 @@
1--- 1# Overview
2author: 2
3- Robert Alessi 3This package provides for [LuaLaTeX](https://luatex.org) an
4title: 'The arabluatex package -- README file' 4[ArabTeX](https://ctan.org/pkg/arabtex)-like interface to generate
5--- 5Arabic writing from an [ascii]{.smallcaps} transliteration. It is
6 6particularly well-suited for complex documents such as technical
7Overview 7documents or critical editions where a lot of left-to-right commands
8======== 8intertwine with Arabic writing. arabluatex is able to process any
9 9ArabTeX input notation. Its output can be set in the same modes of
10This package provides for [LuaLaTeX](http://luatex.org) an 10vocalization as ArabTeX, or in different roman transliterations. It
11[ArabTeX](http://ctan.org/pkg/arabtex)-like interface to generate Arabic 11further allows many typographical refinements. It can also operate with
12writing from an [ascii]{.smallcaps} transliteration. It is particularly 12the [ekdosis](https://ctan.org/pkg/ekdosis) package to produce from
13well-suited for complex documents such as technical documents or 13`.tex` source files, in addition to printed books, `TEI xml` compliant
14critical editions where a lot of left-to-right commands intertwine with 14critical editions and/or lexicons that can be searched, analyzed and
15Arabic writing. arabluatex is able to process any ArabTeX input 15correlated in various ways.
16notation. Its output can be set in the same modes of vocalization as 16
17ArabTeX, or in different roman transliterations. It further allows many 17# License and disclamer
18typographical refinements. It will eventually interact with some other
19packages yet to come to produce from `.tex` source files, in addition to
20printed books, `TEI xml` compliant critical editions and/or lexicons
21that can be searched, analyzed and correlated in various ways.
22
23License and disclamer
24=====================
25 18
26ArabLuaTeX -- Processing ArabTeX notation under LuaLaTeX 19ArabLuaTeX -- Processing ArabTeX notation under LuaLaTeX
27 20
28Copyright ⓒ 2016--2022 Robert Alessi 21Copyright ⓒ 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Robert Alessi
22\<`alessi@robertalessi.net`\>
23
24Permission to use, copy, modify, and distribute this software for any
25purpose with or without fee is hereby granted, provided that the above
26copyright notice and this permission notice appear in all copies.
27
28THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL
29WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
30OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE
31FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY
32DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER
33IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
34OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
29 35
30Please send error reports and suggestions for improvements to Robert 36Please send error reports and suggestions for improvements to Robert
31Alessi: 37Alessi:
32 38
33- email: <alessi@robertalessi.net> 39- email: <alessi@robertalessi.net>
34 40
35- website: <http://www.robertalessi.net/arabluatex> 41- website: <https://sr.ht/~ralessi/arabluatex>
36 42
37- comments, feature requests, bug reports: 43- comments, feature requests, bug reports:
38 <https://gitlab.com/ralessi/arabluatex/issues> 44 <https://todo.sr.ht/~ralessi/arabluatex>
39
40This program is free software: you can redistribute it and/or modify it
41under the terms of the GNU General Public License as published by the
42Free Software Foundation, either version 3 of the License, or (at your
43option) any later version.
44
45This program is distributed in the hope that it will be useful, but
46WITHOUT ANY WARRANTY; without even the implied warranty of
47MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
48Public License for more details.
49
50You should have received a copy of the GNU General Public License along
51with this program. If not, see \<http://www.gnu.org/licenses/\>.
52 45
53This release of arabluatex consists of the following source files: 46This release of arabluatex consists of the following source files:
54 47
@@ -66,20 +59,7 @@ This release of arabluatex consists of the following source files:
66 59
67- `arabluatex_trans.lua` 60- `arabluatex_trans.lua`
68 61
69License applicable to the documentation 62# Installation
70---------------------------------------
71
72Copyright ⓒ 2016--2022 Robert Alessi
73
74Permission is granted to copy, distribute and/or modify this document
75under the terms of the GNU Free Documentation License, Version 1.3 or
76any later version published by the Free Software Foundation; with no
77Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A
78copy of the license is included in the section entitled "GNU Free
79Documentation License" of the documentation.
80
81Installation
82============
83 63
841. Run `'lualatex arabluatex.ins'` to produce the `arabluatex.sty` 641. Run `'lualatex arabluatex.ins'` to produce the `arabluatex.sty`
85 file; 65 file;
@@ -106,41 +86,39 @@ Installation
106 `arabluatex.el` to their `~/.emacs.d/auctex/auto` local directory. 86 `arabluatex.el` to their `~/.emacs.d/auctex/auto` local directory.
107 This will enable the appropriate hooks for ArabLuaTeX in AUCTeX. 87 This will enable the appropriate hooks for ArabLuaTeX in AUCTeX.
108 88
109Development, Git Repository 89# Development, Git Repository
110===========================
111 90
112Browse the code 91## Browse the code
113---------------
114 92
115You can browse ArabLuaTeX repository on the web: 93You can browse ArabLuaTeX repository on the web:
116<http://git.robertalessi.net/arabluatex> 94<http://git.robertalessi.net/arabluatex>\
95or\
96<https://sr.ht/~ralessi/arabluatex>
117 97
118From this page, you can download all the releases of ArabLuaTeX. For 98From this page, you can download all the releases of ArabLuaTeX. For
119instructions on how to install ArabLuaTeX, please see above. 99instructions on how to install ArabLuaTeX, please see above.
120 100
121Comments, Feature requests, Bug Reports 101## Comments, Feature requests, Bug Reports
122---------------------------------------
123 102
124<https://gitlab.com/ralessi/arabluatex/issues> 103<https://todo.sr.ht/~ralessi/arabluatex>
125 104
126Download the repository 105## Download the repository
127-----------------------
128 106
129ArabLuaTeX development is facilitated by git, a distributed version 107ArabLuaTeX development is facilitated by git, a distributed version
130control system. You will need to install git (most GNU/Linux 108control system. You will need to install git (most Unix/Linux
131distributions package it in their repositories). 109distributions package it in their repositories).
132 110
133Use this command to download the repository 111Use this command to download the repository
134 112
135 git clone http://git.robertalessi.net/arabluatex 113 git clone https://git.sr.ht/~ralessi/arabluatex
136 114
137A new directory named arabluatex will have been created, containing 115A new directory named arabluatex will have been created, containing
138ArabLuaTeX. 116ArabLuaTeX.
139 117
140Git hosting 118## Git hosting
141-----------
142 119
143Make an account on <https://gitlab.com> and navigate (while logged in) 120Make an account on <https://sr.ht> and navigate (while logged in) to
144to <https://gitlab.com/ralessi/arabluatex>. Click *Fork* and you will 121<https://git.sr.ht/~ralessi/arabluatex>. Click *Clone repo to your
145have in your account your own repository of `arabluatex` where you will 122account* and you will have in your account your own repository of
146be able to make whatever changes you like to. 123`arabluatex` where you will be able to make whatever changes you like
124to.
diff --git a/README.tex b/README.tex
index 37ec7c4..dd413d3 100644
--- a/README.tex
+++ b/README.tex
@@ -1,6 +1,6 @@
1% The arabluatex package -- README file 1% The arabluatex package -- README file
2% Robert Alessi 2% Robert Alessi
3% March 18, 2017 3% January 29, 2023
4\documentclass{article} 4\documentclass{article}
5 5
6\usepackage{fontspec} 6\usepackage{fontspec}
@@ -16,48 +16,47 @@
16 16
17\section*{Overview} 17\section*{Overview}
18\label{sec:overview} 18\label{sec:overview}
19This package provides for \href{http://luatex.org}{Lua\LaTeX} an 19This package provides for \href{https://luatex.org}{Lua\LaTeX}
20\href{http://ctan.org/pkg/arabtex}{Arab\TeX}-like interface to 20an \href{https://ctan.org/pkg/arabtex}{Arab\TeX}-like interface to
21generate Arabic writing from an \textsc{ascii} transliteration. It is 21generate Arabic writing from an \textsc{ascii} transliteration. It is
22particularly well-suited for complex documents such as technical 22particularly well-suited for complex documents such as technical
23documents or critical editions where a lot of left-to-right commands 23documents or critical editions where a lot of left-to-right commands
24intertwine with Arabic writing. arabluatex is able to process any 24intertwine with Arabic writing. arabluatex is able to process any
25Arab\TeX\ input notation. Its output can be set in the same modes of 25Arab\TeX\ input notation. Its output can be set in the same modes of
26vocalization as Arab\TeX, or in different roman transliterations. It 26vocalization as Arab\TeX, or in different roman transliterations. It
27further allows many typographical refinements. It will eventually 27further allows many typographical refinements. It can also operate
28interact with some other packages yet to come to produce from 28with the \href{https://ctan.org/pkg/ekdosis}{ekdosis} package to
29\verb|.tex| source files, in addition to printed books, \texttt{TEI 29produce from \verb|.tex| source files, in addition to printed books,
30 xml} compliant critical editions and/or lexicons that can be 30\texttt{TEI xml} compliant critical editions and/or lexicons that can
31searched, analyzed and correlated in various ways. 31be searched, analyzed and correlated in various ways.
32 32
33\section*{License and disclamer} 33\section*{License and disclamer}
34ArabLuaTeX -- Processing ArabTeX notation under LuaLaTeX 34ArabLuaTeX -- Processing ArabTeX notation under LuaLaTeX
35 35
36Copyright ⓒ 2016--2022 Robert Alessi 36Copyright ⓒ 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023
37Robert Alessi <\verb|alessi@robertalessi.net|>
38
39Permission to use, copy, modify, and distribute this software for any
40purpose with or without fee is hereby granted, provided that the above
41copyright notice and this permission notice appear in all copies.
42
43THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
44WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
45MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
46ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
47WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
48ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
49OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
37 50
38Please send error reports and suggestions for improvements to Robert 51Please send error reports and suggestions for improvements to Robert
39Alessi: 52Alessi:
40\begin{itemize} 53\begin{itemize}
41\item email: \href{mailto:alessi@robertalessi.net}{alessi@robertalessi.net} 54\item email: \href{mailto:alessi@robertalessi.net}{alessi@robertalessi.net}
42\item website: \url{http://www.robertalessi.net/arabluatex} 55\item website: \url{https://sr.ht/~ralessi/arabluatex}
43\item comments, feature requests, bug reports: 56\item comments, feature requests, bug reports:
44 \url{https://gitlab.com/ralessi/arabluatex/issues} 57 \url{https://todo.sr.ht/~ralessi/arabluatex}
45\end{itemize} 58\end{itemize}
46 59
47This program is free software: you can redistribute it and/or modify
48it under the terms of the GNU General Public License as published by
49the Free Software Foundation, either version 3 of the License, or
50(at your option) any later version.
51
52This program is distributed in the hope that it will be useful, but
53WITHOUT ANY WARRANTY; without even the implied warranty of
54MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
55General Public License for more details.
56
57You should have received a copy of the GNU General Public License
58along with this program. If not, see
59<http://www.gnu.org/licenses/>.
60
61This release of arabluatex consists of the following 60This release of arabluatex consists of the following
62source files: 61source files:
63\begin{itemize} 62\begin{itemize}
@@ -70,17 +69,6 @@ source files:
70\item \verb|arabluatex_trans.lua| 69\item \verb|arabluatex_trans.lua|
71\end{itemize} 70\end{itemize}
72 71
73\subsection*{License applicable to the documentation}
74\label{sec:documentation-license}
75Copyright ⓒ 2016--2022 Robert Alessi
76
77Permission is granted to copy, distribute and/or modify this document
78under the terms of the GNU Free Documentation License, Version 1.3 or
79any later version published by the Free Software Foundation; with no
80Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A
81copy of the license is included in the section entitled ``GNU Free
82Documentation License'' of the documentation.
83
84\section*{Installation} 72\section*{Installation}
85\label{sec:installation} 73\label{sec:installation}
86\begin{enumerate} 74\begin{enumerate}
@@ -111,36 +99,37 @@ Documentation License'' of the documentation.
111\label{sec:browse-code} 99\label{sec:browse-code}
112 100
113You can browse ArabLua\TeX\ repository on the web: 101You can browse ArabLua\TeX\ repository on the web:
114\url{http://git.robertalessi.net/arabluatex} 102\url{http://git.robertalessi.net/arabluatex}\\
103or\\
104\url{https://sr.ht/~ralessi/arabluatex}
115 105
116From this page, you can download all the releases of ArabLua\TeX. For 106From this page, you can download all the releases of ArabLua\TeX. For
117instructions on how to install ArabLua\TeX, please see above. 107instructions on how to install ArabLua\TeX, please see above.
118 108
119\subsection*{Comments, Feature requests, Bug Reports} 109\subsection*{Comments, Feature requests, Bug Reports}
120\label{sec:comm-feat-requ} 110\label{sec:comm-feat-requ}
121\url{https://gitlab.com/ralessi/arabluatex/issues} 111\url{https://todo.sr.ht/~ralessi/arabluatex}
122 112
123\subsection*{Download the repository} 113\subsection*{Download the repository}
124\label{sec:download-repository} 114\label{sec:download-repository}
125ArabLua\TeX\ development is facilitated by git, a distributed version 115ArabLua\TeX\ development is facilitated by git, a distributed version
126control system. You will need to install git (most GNU/Linux 116control system. You will need to install git (most Unix/Linux
127distributions package it in their repositories). 117distributions package it in their repositories).
128 118
129Use this command to download the repository 119Use this command to download the repository
130\begin{verbatim} 120\begin{verbatim}
131git clone http://git.robertalessi.net/arabluatex 121git clone https://git.sr.ht/~ralessi/arabluatex
132\end{verbatim} 122\end{verbatim}
133 123
134
135A new directory named arabluatex will have been created, containing 124A new directory named arabluatex will have been created, containing
136ArabLuaTeX. 125ArabLuaTeX.
137 126
138\subsection*{Git hosting} 127\subsection*{Git hosting}
139\label{sec:git-hosting} 128\label{sec:git-hosting}
140Make an account on \url{https://gitlab.com} and navigate (while 129Make an account on \url{https://sr.ht} and navigate (while logged in)
141logged in) to \url{https://gitlab.com/ralessi/arabluatex}. Click 130to \url{https://git.sr.ht/~ralessi/arabluatex}. Click \emph{Clone repo
142\emph{Fork} and you will have in your account your own repository of 131 to your account} and you will have in your account your own
143\verb|arabluatex| where you will be able to make whatever changes you 132repository of \verb|arabluatex| where you will be able to make
144like to. 133whatever changes you like to.
145 134
146\end{document} \ No newline at end of file 135\end{document} \ No newline at end of file
diff --git a/about.html b/about.html
index af0eb19..d5b5236 100644
--- a/about.html
+++ b/about.html
@@ -1,40 +1,47 @@
1<!DOCTYPE html>
2<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
3<head>
4 <meta charset="utf-8" />
5 <meta name="generator" content="pandoc" />
6 <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
7 <meta name="author" content="Robert Alessi" />
8 <title>The arabluatex package – README file</title>
9 <style>
10 code{white-space: pre-wrap;}
11 span.smallcaps{font-variant: small-caps;}
12 span.underline{text-decoration: underline;}
13 div.column{display: inline-block; vertical-align: top; width: 50%;}
14 div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
15 ul.task-list{list-style: none;}
16 </style>
17</head>
18<body>
19<header id="title-block-header">
20<h1 class="title">The arabluatex package – README file</h1>
21<p class="author">Robert Alessi</p>
22</header>
23<h1 class="unnumbered" id="sec:overview">Overview</h1> 1<h1 class="unnumbered" id="sec:overview">Overview</h1>
24<p>This package provides for <a href="http://luatex.org">LuaLaTeX</a> an <a href="http://ctan.org/pkg/arabtex">ArabTeX</a>-like interface to generate Arabic writing from an <span class="smallcaps">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 <code>.tex</code> source files, in addition to printed books, <code>TEI xml</code> compliant critical editions and/or lexicons that can be searched, analyzed and correlated in various ways.</p> 2<p>This package provides for <a href="https://luatex.org">LuaLaTeX</a>
25<h1 class="unnumbered" id="license-and-disclamer">License and disclamer</h1> 3an <a href="https://ctan.org/pkg/arabtex">ArabTeX</a>-like interface to
4generate Arabic writing from an <span class="smallcaps">ascii</span>
5transliteration. It is particularly well-suited for complex documents
6such as technical documents or critical editions where a lot of
7left-to-right commands intertwine with Arabic writing. arabluatex is
8able to process any ArabTeX input notation. Its output can be set in the
9same modes of vocalization as ArabTeX, or in different roman
10transliterations. It further allows many typographical refinements. It
11can also operate with the <a
12href="https://ctan.org/pkg/ekdosis">ekdosis</a> package to produce from
13<code>.tex</code> source files, in addition to printed books,
14<code>TEI xml</code> compliant critical editions and/or lexicons that
15can be searched, analyzed and correlated in various ways.</p>
16<h1 class="unnumbered" id="license-and-disclamer">License and
17disclamer</h1>
26<p>ArabLuaTeX – Processing ArabTeX notation under LuaLaTeX</p> 18<p>ArabLuaTeX – Processing ArabTeX notation under LuaLaTeX</p>
27<p>Copyright ⓒ 2016–2022 Robert Alessi</p> 19<p>Copyright ⓒ 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Robert
28<p>Please send error reports and suggestions for improvements to Robert Alessi:</p> 20Alessi &lt;<code>alessi@robertalessi.net</code>&gt;</p>
21<p>Permission to use, copy, modify, and distribute this software for any
22purpose with or without fee is hereby granted, provided that the above
23copyright notice and this permission notice appear in all copies.</p>
24<p>THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
25WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
26OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE
27FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY
28DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER
29IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
30OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
31SOFTWARE.</p>
32<p>Please send error reports and suggestions for improvements to Robert
33Alessi:</p>
29<ul> 34<ul>
30<li><p>email: <a href="mailto:alessi@robertalessi.net">alessi@robertalessi.net</a></p></li> 35<li><p>email: <a
31<li><p>website: <a href="http://www.robertalessi.net/arabluatex">http://www.robertalessi.net/arabluatex</a></p></li> 36href="mailto:alessi@robertalessi.net">alessi@robertalessi.net</a></p></li>
32<li><p>comments, feature requests, bug reports: <a href="https://gitlab.com/ralessi/arabluatex/issues">https://gitlab.com/ralessi/arabluatex/issues</a></p></li> 37<li><p>website: <a href="https://sr.ht/~ralessi/arabluatex"
38class="uri">https://sr.ht/~ralessi/arabluatex</a></p></li>
39<li><p>comments, feature requests, bug reports: <a
40href="https://todo.sr.ht/~ralessi/arabluatex"
41class="uri">https://todo.sr.ht/~ralessi/arabluatex</a></p></li>
33</ul> 42</ul>
34<p>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.</p> 43<p>This release of arabluatex consists of the following source
35<p>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.</p> 44files:</p>
36<p>You should have received a copy of the GNU General Public License along with this program. If not, see &lt;http://www.gnu.org/licenses/&gt;.</p>
37<p>This release of arabluatex consists of the following source files:</p>
38<ul> 45<ul>
39<li><p><code>arabluatex.ins</code></p></li> 46<li><p><code>arabluatex.ins</code></p></li>
40<li><p><code>arabluatex.dtx</code></p></li> 47<li><p><code>arabluatex.dtx</code></p></li>
@@ -44,13 +51,14 @@
44<li><p><code>arabluatex_novoc.lua</code></p></li> 51<li><p><code>arabluatex_novoc.lua</code></p></li>
45<li><p><code>arabluatex_trans.lua</code></p></li> 52<li><p><code>arabluatex_trans.lua</code></p></li>
46</ul> 53</ul>
47<h2 class="unnumbered" id="sec:documentation-license">License applicable to the documentation</h2>
48<p>Copyright ⓒ 2016–2022 Robert Alessi</p>
49<p>Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled “GNU Free Documentation License” of the documentation.</p>
50<h1 class="unnumbered" id="sec:installation">Installation</h1> 54<h1 class="unnumbered" id="sec:installation">Installation</h1>
51<ol> 55<ol>
52<li><p>Run <code>'lualatex arabluatex.ins'</code> to produce the <code>arabluatex.sty</code> file;</p></li> 56<li><p>Run <code>'lualatex arabluatex.ins'</code> to produce the
53<li><p>To finish the installation you have to move the following files into a directory where LaTeX can find them. See the FAQ on <code>texfaq.org</code> at <a href="https://texfaq.org/FAQ-inst-wlcf">https://texfaq.org/FAQ-inst-wlcf</a> for more on this:</p> 57<code>arabluatex.sty</code> file;</p></li>
58<li><p>To finish the installation you have to move the following files
59into a directory where LaTeX can find them. See the FAQ on
60<code>texfaq.org</code> at <a href="https://texfaq.org/FAQ-inst-wlcf"
61class="uri">https://texfaq.org/FAQ-inst-wlcf</a> for more on this:</p>
54<ul> 62<ul>
55<li><p><code>arabluatex.sty</code></p></li> 63<li><p><code>arabluatex.sty</code></p></li>
56<li><p><code>arabluatex-patch.sty</code></p></li> 64<li><p><code>arabluatex-patch.sty</code></p></li>
@@ -60,20 +68,39 @@
60<li><p><code>arabluatex_novoc.lua</code></p></li> 68<li><p><code>arabluatex_novoc.lua</code></p></li>
61<li><p><code>arabluatex_trans.lua</code></p></li> 69<li><p><code>arabluatex_trans.lua</code></p></li>
62</ul></li> 70</ul></li>
63<li><p>Additionally, those who use emacs with AUCTeX may copy <code>arabluatex.el</code> to their <code>~/.emacs.d/auctex/auto</code> local directory. This will enable the appropriate hooks for ArabLuaTeX in AUCTeX.</p></li> 71<li><p>Additionally, those who use emacs with AUCTeX may copy
72<code>arabluatex.el</code> to their <code>~/.emacs.d/auctex/auto</code>
73local directory. This will enable the appropriate hooks for
74ArabLuaTeX in AUCTeX.</p></li>
64</ol> 75</ol>
65<h1 id="sec:devel-git-repos">Development, Git Repository</h1> 76<h1 id="sec:devel-git-repos">Development, Git Repository</h1>
66<h2 class="unnumbered" id="sec:browse-code">Browse the code</h2> 77<h2 class="unnumbered" id="sec:browse-code">Browse the code</h2>
67<p>You can browse ArabLuaTeX repository on the web: <a href="http://git.robertalessi.net/arabluatex">http://git.robertalessi.net/arabluatex</a></p> 78<p>You can browse ArabLuaTeX repository on the web: <a
68<p>From this page, you can download all the releases of ArabLuaTeX. For instructions on how to install ArabLuaTeX, please see above.</p> 79href="http://git.robertalessi.net/arabluatex"
69<h2 class="unnumbered" id="sec:comm-feat-requ">Comments, Feature requests, Bug Reports</h2> 80class="uri">http://git.robertalessi.net/arabluatex</a><br />
70<p><a href="https://gitlab.com/ralessi/arabluatex/issues">https://gitlab.com/ralessi/arabluatex/issues</a></p> 81or<br />
71<h2 class="unnumbered" id="sec:download-repository">Download the repository</h2> 82<a href="https://sr.ht/~ralessi/arabluatex"
72<p>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).</p> 83class="uri">https://sr.ht/~ralessi/arabluatex</a></p>
84<p>From this page, you can download all the releases of ArabLuaTeX. For
85instructions on how to install ArabLuaTeX, please see above.</p>
86<h2 class="unnumbered" id="sec:comm-feat-requ">Comments, Feature
87requests, Bug Reports</h2>
88<p><a href="https://todo.sr.ht/~ralessi/arabluatex"
89class="uri">https://todo.sr.ht/~ralessi/arabluatex</a></p>
90<h2 class="unnumbered" id="sec:download-repository">Download the
91repository</h2>
92<p>ArabLuaTeX development is facilitated by git, a distributed version
93control system. You will need to install git (most Unix/Linux
94distributions package it in their repositories).</p>
73<p>Use this command to download the repository</p> 95<p>Use this command to download the repository</p>
74<pre><code>git clone http://git.robertalessi.net/arabluatex</code></pre> 96<pre><code>git clone https://git.sr.ht/~ralessi/arabluatex</code></pre>
75<p>A new directory named arabluatex will have been created, containing ArabLuaTeX.</p> 97<p>A new directory named arabluatex will have been created, containing
98ArabLuaTeX.</p>
76<h2 class="unnumbered" id="sec:git-hosting">Git hosting</h2> 99<h2 class="unnumbered" id="sec:git-hosting">Git hosting</h2>
77<p>Make an account on <a href="https://gitlab.com">https://gitlab.com</a> and navigate (while logged in) to <a href="https://gitlab.com/ralessi/arabluatex">https://gitlab.com/ralessi/arabluatex</a>. Click <em>Fork</em> and you will have in your account your own repository of <code>arabluatex</code> where you will be able to make whatever changes you like to.</p> 100<p>Make an account on <a href="https://sr.ht"
78</body> 101class="uri">https://sr.ht</a> and navigate (while logged in) to <a
79</html> 102href="https://git.sr.ht/~ralessi/arabluatex"
103class="uri">https://git.sr.ht/~ralessi/arabluatex</a>. Click <em>Clone
104repo to your account</em> and you will have in your account your own
105repository of <code>arabluatex</code> where you will be able to make
106whatever changes you like to.</p>
diff --git a/arabluatex.dtx b/arabluatex.dtx
index 9c2edbb..3b2f4c2 100644
--- a/arabluatex.dtx
+++ b/arabluatex.dtx
@@ -1,23 +1,22 @@
1% \iffalse meta-comment 1% \iffalse meta-comment
2% ArabLuaTeX -- Processing ArabTeX notation under LuaLaTeX 2% ArabLuaTeX -- Processing ArabTeX notation under LuaLaTeX
3% Copyright (C) 2016--2022 Robert Alessi 3% Copyright (C) 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Robert
4%
5% Please send error reports and suggestions for improvements to Robert
6% Alessi <alessi@robertalessi.net> 4% Alessi <alessi@robertalessi.net>
7% 5%
8% This program is free software: you can redistribute it and/or modify 6% Permission to use, copy, modify, and distribute this software for any
9% it under the terms of the GNU General Public License as published by 7% purpose with or without fee is hereby granted, provided that the above
10% the Free Software Foundation, either version 3 of the License, or 8% copyright notice and this permission notice appear in all copies.
11% (at your option) any later version. 9%
12% 10% THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
13% This program is distributed in the hope that it will be useful, but 11% WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
14% WITHOUT ANY WARRANTY; without even the implied warranty of 12% MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
15% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13% ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
16% General Public License for more details. 14% WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
15% ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
16% OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
17% 17%
18% You should have received a copy of the GNU General Public License 18% Please send error reports and suggestions for improvements to Robert
19% along with this program. If not, see 19% Alessi <alessi@robertalessi.net>
20% <http://www.gnu.org/licenses/>.
21% \fi 20% \fi
22% 21%
23% \iffalse 22% \iffalse
@@ -27,7 +26,7 @@
27%<package>\NeedsTeXFormat{LaTeX2e}[1999/12/01] 26%<package>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
28%<package>\ProvidesPackage{arabluatex} 27%<package>\ProvidesPackage{arabluatex}
29%<*package> 28%<*package>
30 [2022/06/15 v1.21-dev ArabTeX for LuaLaTeX] 29 [2023/05/21 v1.21-dev ArabTeX for LuaLaTeX]
31%</package> 30%</package>
32% 31%
33%<*driver> 32%<*driver>
@@ -37,24 +36,24 @@
37% This file is part of the `arabluatex' package 36% This file is part of the `arabluatex' package
38% 37%
39% ArabLuaTeX -- Processing ArabTeX notation under LuaLaTeX 38% ArabLuaTeX -- Processing ArabTeX notation under LuaLaTeX
40% Copyright (C) 2016--2022 Robert Alessi
41% 39%
42% Please send error reports and suggestions for improvements to Robert 40% Copyright (C) 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023
43% Alessi <alessi@robertalessi.net> 41% Robert Alessi <alessi@robertalessi.net>
44% 42%
45% This program is free software: you can redistribute it and/or modify 43% Permission to use, copy, modify, and distribute this software for any
46% it under the terms of the GNU General Public License as published by 44% purpose with or without fee is hereby granted, provided that the above
47% the Free Software Foundation, either version 3 of the License, or 45% copyright notice and this permission notice appear in all copies.
48% (at your option) any later version. 46%
49% 47% THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
50% This program is distributed in the hope that it will be useful, but 48% WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
51% WITHOUT ANY WARRANTY; without even the implied warranty of 49% MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
52% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 50% ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
53% General Public License for more details. 51% WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
52% ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
53% OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
54% 54%
55% You should have received a copy of the GNU General Public License 55% Please send error reports and suggestions for improvements to Robert
56% along with this program. If not, see 56% Alessi <alessi@robertalessi.net>
57% <http://www.gnu.org/licenses/>.
58 57
59@software{pkg:arabtex, 58@software{pkg:arabtex,
60 author = {Lagally, Klaus}, 59 author = {Lagally, Klaus},
@@ -78,6 +77,15 @@
78 url = {http://www.amirifont.org/} 77 url = {http://www.amirifont.org/}
79} 78}
80 79
80@software{pkg:ekdosis,
81 title = {The Ekdosis package},
82 subtitle = {Typesetting TEI-xml compliant Critical Editions},
83 author = {Alessi, Robert},
84 url = {http://www.ekdosis.org},
85 date = {2021-11-21},
86 version = {1.4}
87}
88
81@Book{Habash, 89@Book{Habash,
82 author = {Habash, Nizar Y.}, 90 author = {Habash, Nizar Y.},
83 title = {Introduction to Arabic Natural Language Processing}, 91 title = {Introduction to Arabic Natural Language Processing},
@@ -158,7 +166,7 @@
158} 166}
159\end{filecontents} 167\end{filecontents}
160\usepackage[letterpaper,margin=1.25in,left=50mm,nohead]{geometry} 168\usepackage[letterpaper,margin=1.25in,left=50mm,nohead]{geometry}
161\usepackage[no-math]{fontspec} 169\usepackage{fontspec}
162\defaultfontfeatures{Renderer=Harfbuzz} 170\defaultfontfeatures{Renderer=Harfbuzz}
163\usepackage[english]{babel} 171\usepackage[english]{babel}
164%^^A dox does not work with the latest latex-dev: 172%^^A dox does not work with the latest latex-dev:
@@ -169,15 +177,14 @@
169 \doxitem{Option}{option}{options} 177 \doxitem{Option}{option}{options}
170\fi 178\fi
171\usepackage{microtype} 179\usepackage{microtype}
172\babelfont{rm}{Old Standard} 180\babelfont{rm}[RawFeature=onum]{Old Standard}
173\babelfont{sf}{NewComputerModernSans10} 181\babelfont{sf}{NewComputerModernSans10}
174\babelfont{tt}{NewComputerModernMono10} 182\babelfont{tt}{NewComputerModernMono10}
175\usepackage[Old Standard]{mathfont}
176\usepackage{manfnt} 183\usepackage{manfnt}
177\usepackage{lettrine} 184\usepackage{lettrine}
178\newcommand\danger{\lettrine[loversize=-.5]{\textdbend}{\hskip6pt}} 185\newcommand\danger{\lettrine[loversize=-.5]{\textdbend}{\hskip6pt}}
179\usepackage{metalogox} 186\usepackage{metalogox}
180\usepackage{arabluatex}[2022/06/15] 187\usepackage{arabluatex}[2023/05/21]
181\SetTranslitConvention{dmg+} 188\SetTranslitConvention{dmg+}
182\SetArbUp{\textsuperscript{\thinspace#1}} % Old Standard needs this 189\SetArbUp{\textsuperscript{\thinspace#1}} % Old Standard needs this
183\usepackage[nopar]{quran} 190\usepackage[nopar]{quran}
@@ -187,8 +194,6 @@
187\PassOptionsToPackage{bookmarks=true}{hyperref} 194\PassOptionsToPackage{bookmarks=true}{hyperref}
188\usepackage[numbered]{hypdoc} 195\usepackage[numbered]{hypdoc}
189\newcommand{\phts}{\phantomsection} 196\newcommand{\phts}{\phantomsection}
190\usepackage{uri}
191\usepackage[obeyspaces]{xurl}
192\usepackage[loadlang=en]{metastr} 197\usepackage[loadlang=en]{metastr}
193\hypersetup{ 198\hypersetup{
194 colorlinks, 199 colorlinks,
@@ -233,18 +238,24 @@
233\metaset{partof}{The arabluatex Package} 238\metaset{partof}{The arabluatex Package}
234\metaset[print]{partof}{The \textsf{arabluatex} Package} 239\metaset[print]{partof}{The \textsf{arabluatex} Package}
235\metaset{copyrightowner}{\metapick[#1]{author}} 240\metaset{copyrightowner}{\metapick[#1]{author}}
236\metaset{copyrightdate}{2016--2022} 241\metaset{copyrightdate}{2016, 2017, 2018, 2019, 2020, 2021, 2022,
237\metaset{licensemessage}{Permission is granted to copy, distribute 242 2023}
238 and/or modify this document under the terms of the GNU Free 243\metaset{licensemessage}{Permission to use, copy, modify, and
239 Documentation License, Version 1.3 or any later version published by 244 distribute this software for any purpose with or without fee is
240 the Free Software Foundation; with no Invariant Sections, no 245 hereby granted, provided that the above copyright notice and this
241 Front-Cover Texts, and no Back-Cover Texts. A copy of the license 246 permission notice appear in all copies.
242 is included in the section entitled ``GNU Free Documentation 247 THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
243 License''.} 248 WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
244\metaset{licenseurl}{https://www.gnu.org/licenses/fdl-1.3.html} 249 WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
250 AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
251 DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA
252 OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
253 TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
254 PERFORMANCE OF THIS SOFTWARE.}
255\metaset{licenseurl}{%
256 https://cvsweb.openbsd.org/src/share/misc/license.template?rev=HEAD}
245\metaset[print]{licenseurl}{% 257\metaset[print]{licenseurl}{%
246 \url{https://www.gnu.org/licenses/fdl-1.3.html}} 258 \url{https://cvsweb.openbsd.org/src/share/misc/license.template?rev=HEAD}}
247\metaset[cmd]{licenselogo}{\includegraphics[scale=0.75]{#1}}
248\metawritepdfinfo 259\metawritepdfinfo
249\metawritepdfaux 260\metawritepdfaux
250\metawritepdfpreamble 261\metawritepdfpreamble
@@ -265,8 +276,6 @@
265 label*=\textsc{Rem.} \emph{\alph*}, 276 label*=\textsc{Rem.} \emph{\alph*},
266 left=0.25in, 277 left=0.25in,
267 before=\smaller} 278 before=\smaller}
268\usepackage{multicol}
269\setlength\IndexMin{100pt}
270\usepackage{quoting} 279\usepackage{quoting}
271\quotingsetup{noorphans, rightmargin=0pt} 280\quotingsetup{noorphans, rightmargin=0pt}
272\renewcommand*{\quotingfont}{\footnotesize} 281\renewcommand*{\quotingfont}{\footnotesize}
@@ -295,7 +304,7 @@
295\DeclareQuoteStyle{arabic} 304\DeclareQuoteStyle{arabic}
296{\rmfamily\textquotedblright}{\rmfamily\textquotedblleft} 305{\rmfamily\textquotedblright}{\rmfamily\textquotedblleft}
297{\rmfamily\textquoteright}{\rmfamily\textquoteleft} 306{\rmfamily\textquoteright}{\rmfamily\textquoteleft}
298\usepackage[style=authoryear, indexing=cite]{biblatex} 307\usepackage[style=oxnotes-inote,indexing=cite]{biblatex}
299\DeclareIndexFieldFormat{indextitle}{\index{#1=\emph{#1}}} 308\DeclareIndexFieldFormat{indextitle}{\index{#1=\emph{#1}}}
300\addbibresource{arabluatex.bib} 309\addbibresource{arabluatex.bib}
301\NewDocumentCommand{\newfeature}{o}{% 310\NewDocumentCommand{\newfeature}{o}{%
@@ -305,6 +314,8 @@
305 {\marginpar{\hfill\emph{New feature} #1}}% 314 {\marginpar{\hfill\emph{New feature} #1}}%
306 \ignorespaces 315 \ignorespaces
307} 316}
317\usepackage{uri}
318\usepackage[obeyspaces]{xurl}
308\usepackage{multicol} 319\usepackage{multicol}
309\usepackage{tocloft} 320\usepackage{tocloft}
310\renewcommand\cftlotprehook{\begin{multicols}{2}} 321\renewcommand\cftlotprehook{\begin{multicols}{2}}
@@ -312,24 +323,27 @@
312\renewcommand\cftlottitlefont{\Large\bfseries} 323\renewcommand\cftlottitlefont{\Large\bfseries}
313\usepackage{etoc} 324\usepackage{etoc}
314\etocsettocdepth{paragraph} 325\etocsettocdepth{paragraph}
326\makeatletter
315\newcommand{\altableofcontents}{% 327\newcommand{\altableofcontents}{%
316 \begingroup 328 \begingroup
317 \etocsetstyle{section}{}{} 329 \etocsetstyle{section}{}{}
318 {\etocsavedsectiontocline{% 330 {\l@section{%
319 \numberline{\etocnumber}\etocname}{\etocpage}}{} 331 \numberline{\etocnumber}\etocname}{\etocpage}}{}
320 \etocsetstyle{subsection}{}{} 332 \etocsetstyle{subsection}{}{}
321 {\etocsavedsubsectiontocline{% 333 {\l@subsection{%
322 \numberline{\etocnumber}\etocname}{\etocpage}}{}% 334 \numberline{\etocnumber}\etocname}{\etocpage}}{}%
323 \etocsetstyle{subsubsection}{}{} 335 \etocsetstyle{subsubsection}{}{}
324 {\etocsavedsubsubsectiontocline{% 336 {\l@subsubsection{%
325 \numberline{\etocnumber}\etocname}{\etocpage}}{}% 337 \numberline{\etocnumber}\etocname}{\etocpage}}{}%
326 \etocsetstyle{paragraph}{}{\leftskip2cm\rightskip 2.2em \parfillskip 338 \etocsetstyle{paragraph}{}{\leftskip2cm\rightskip 2.2em \parfillskip
327 0pt plus 1fil\relax \nobreak} 339 0pt plus 1fil\relax \nobreak}
328 {\noindent\etocname{} \etocpage{} }{\par}% 340 {\noindent\etocname{} \etocpage{} }{\par}%
329 \etocmulticolstyle[2]{\section*{Contents}} 341 \etocmulticolstyle[2]{\section*{Contents}}
330 \pdfbookmark[1]{Contents}{toc} 342 \pdfbookmark[1]{Contents}{toc}
331 \tableofcontents 343 \etoctoclines
344 \localtableofcontents
332 \endgroup} 345 \endgroup}
346\makeatother
333\setlength\IndexMin{100pt} 347\setlength\IndexMin{100pt}
334\EnableCrossrefs 348\EnableCrossrefs
335\RecordChanges 349\RecordChanges
@@ -423,53 +437,59 @@
423% input notation. Its output can be set in the same modes of 437% input notation. Its output can be set in the same modes of
424% vocalization as Arab\TeX, or in different roman 438% vocalization as Arab\TeX, or in different roman
425% transliterations. It further allows many typographical 439% transliterations. It further allows many typographical
426% refinements. It will eventually interact with some other packages 440% refinements. Furthermore, it can interact with the \pkg{ekdosis}
427% yet to come to produce from \verb|.tex| source files, in addition 441% package to produce from \verb|.tex| source files, in addition to
428% to printed books, \texttt{TEI xml} compliant critical editions 442% printed books, \texttt{TEI xml} compliant critical editions and/or
429% and/or lexicons that can be searched, analyzed and correlated in 443% lexicons that can be searched, analyzed and correlated in various
430% various ways. 444% ways.
431% \end{abstract} 445% \end{abstract}
432% 446%
433% \section*{License and Disclaimer} 447% \section*{License and Disclaimer}
434% \addcontentsline{toc}{section}{License and disclamer} 448% \addcontentsline{toc}{section}{License and disclamer}
435% \subsection*{License Applicable to this Document} 449% \leavevmode\marginpar{\hfill\texttt{OpenBSD}} \pkg{arabluatex} is
436% \pdfbookmark[2]{Licence applicable to this document}{copyright-doc} 450% licensed under the terms of the so-called OpenBSD license, as it is
437% \leavevmode\marginpar{\hfill\texttt{fdl1.3}} 451% modelled after the ISC copyright, which is functionally equivalent
438% \metapick[print]{rightstext} (See below \vref{sec:fdl}.) 452% to a two-term BSD copyright with language removed that is made
439% 453% unnecessary by the Berne convention.\footnote{More information about
440% \subsection*{License Applicable to the Software} 454% the OpenBSD policy to which \pkg{arabluatex} adheres:
441% \pdfbookmark[2]{Licence applicable to the software}{copyright-soft} 455% \url{https://www.openbsd.org/policy.html}.}
442% \label{sec:license-software}
443% 456%
444% \package{arabluatex} --- \metapick[print]{subtitle} 457% \iffalse
445% \metapick[print]{copyrightstatement} 458%<*example>
459% \fi
460\begin{minted}[linenos=false]{text}
461arabluatex -- ArabTeX for LuaLaTeX
462----------------------------------------------------------
463
464Copyright (c) 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023
465Robert Alessi <alessi@robertalessi.net>
466
467Permission to use, copy, modify, and distribute this software for any
468purpose with or without fee is hereby granted, provided that the above
469copyright notice and this permission notice appear in all copies.
470
471THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
472WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
473MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
474ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
475WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
476ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
477OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
478\end{minted}
479% \iffalse
480%</example>
481% \fi
446% 482%
447% Please send error reports and suggestions for improvements to Robert 483% Please send error reports and suggestions for improvements to Robert
448% Alessi: 484% Alessi:
449% \begin{itemize} 485% \begin{itemize}
450% \item email: \mailto[arabluatex package]{alessi@roberalessi.net} 486% \item email: \mailto[arabluatex package]{alessi@roberalessi.net}
451% \item website: \url{http://www.robertalessi.net/arabluatex} 487% \item website: \url{https://sr.ht/~ralessi/arabluatex/}
452% \item development: \url{http://git.robertalessi.net/arabluatex} 488% \item development: \url{http://git.robertalessi.net/arabluatex}
453% \item comments, feature requests, bug reports: 489% \item comments, feature requests, bug reports:
454% \url{https://gitlab.com/ralessi/arabluatex/issues} 490% \url{https://todo.sr.ht/~ralessi/arabluatex}
455% \end{itemize} 491% \end{itemize}
456% 492%
457% \leavevmode\marginpar{\hfill\texttt{gpl3+}}
458% This program is free software: you can redistribute it and/or modify
459% it under the terms of the GNU General Public License as published by
460% the Free Software Foundation, either version 3 of the License, or
461% (at your option) any later version.
462%
463% This program is distributed in the hope that it will be useful, but
464% WITHOUT ANY WARRANTY; without even the implied warranty of
465% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
466% General Public License for more details.
467%
468% You should have received a copy of the GNU General Public License
469% along with this program. If not, see
470% \href{http://www.gnu.org/licenses}%
471% {\texttt{<http://www.gnu.org/licenses/>}}.
472%
473% This release of \package{arabluatex} consists of the following 493% This release of \package{arabluatex} consists of the following
474% source files: 494% source files:
475% \begin{itemize} 495% \begin{itemize}
@@ -2370,8 +2390,9 @@
2370% when \texttt{export} is set to \texttt{true} to instruct some Lua 2390% when \texttt{export} is set to \texttt{true} to instruct some Lua
2371% functions that lines of poetry have already been processed. That 2391% functions that lines of poetry have already been processed. That
2372% aside, \cs{bayt} and \cs{bayt*} do the same, and only \cs{bayt} 2392% aside, \cs{bayt} and \cs{bayt*} do the same, and only \cs{bayt}
2373% should be used.} Additionally, every \cs{bayt} command \emph{must} 2393% should be used.} Additionally, every \cs{bayt} command \emph{must}
2374% be followed with |\\| like so:---% 2394% be followed with |\\| like so:---
2395%
2375% \iffalse 2396% \iffalse
2376%<*example> 2397%<*example>
2377% \fi 2398% \fi
@@ -2506,6 +2527,16 @@
2506% package can also be used for the same effect. However, it must be 2527% package can also be used for the same effect. However, it must be
2507% loaded \emph{after} \package{arabluatex}.} 2528% loaded \emph{after} \package{arabluatex}.}
2508% 2529%
2530% \needspace{3\baselineskip}
2531% \paragraph{Critical Notes}
2532% \DescribeMacro{\bayt+} \newfeature[v1.21] If the \pkg{ekdosis}
2533% package be loaded,\footcite{pkg:ekdosis} the \cs{bayt} command also
2534% accepts a |+| optional argument that can be used to let critical
2535% notes be inserted in lines of poetry. Details on how to use this
2536% command are provided in the relevant section of the documentation of
2537% the \pkg{ekdosis} package.\footcite[\nopp see \enquote{Arabic
2538% Poetry}]{pkg:ekdosis}
2539%
2509% \paragraph{Line numbering} 2540% \paragraph{Line numbering}
2510% Inside the |arabverse| environment, the |linenumbers| environment of 2541% Inside the |arabverse| environment, the |linenumbers| environment of
2511% the \package{lineno} package can be used to have the lines of 2542% the \package{lineno} package can be used to have the lines of
@@ -4528,546 +4559,6 @@
4528% \end{enumerate} 4559% \end{enumerate}
4529% \end{enumerate} 4560% \end{enumerate}
4530% 4561%
4531% \section{GNU Free Documentation License}
4532% \label{sec:fdl}
4533% \textbf{Version 1.3, 3 November 2008}
4534%
4535% \begin{center}
4536% Version 1.3, 3 November 2008
4537%
4538% Copyright \copyright{} 2000, 2001, 2002, 2007, 2008 Free
4539% Software Foundation, Inc.
4540%
4541% \bigskip
4542%
4543% \url{https://fsf.org/}
4544%
4545% \bigskip
4546%
4547% Everyone is permitted to copy and distribute verbatim copies
4548% of this license document, but changing it is not allowed.
4549% \end{center}
4550%
4551% \needspace{3\baselineskip}
4552% \begin{center}
4553% {\bf\large Preamble}
4554% \end{center}
4555%
4556% The purpose of this License is to make a manual, textbook, or other
4557% functional and useful document \enquote{free} in the sense of
4558% freedom: to assure everyone the effective freedom to copy and
4559% redistribute it, with or without modifying it, either commercially
4560% or noncommercially. Secondarily, this License preserves for the
4561% author and publisher a way to get credit for their work, while not
4562% being considered responsible for modifications made by others.
4563%
4564% This License is a kind of \enquote{copyleft}, which means that
4565% derivative works of the document must themselves be free in the same
4566% sense. It complements the GNU General Public License, which is a
4567% copyleft license designed for free software.
4568%
4569% We have designed this License in order to use it for manuals for
4570% free software, because free software needs free documentation: a
4571% free program should come with manuals providing the same freedoms
4572% that the software does. But this License is not limited to software
4573% manuals; it can be used for any textual work, regardless of subject
4574% matter or whether it is published as a printed book. We recommend
4575% this License principally for works whose purpose is instruction or
4576% reference.
4577%
4578% \needspace{3\baselineskip}
4579% \begin{center}
4580% {\large\bf 1. APPLICABILITY AND DEFINITIONS\par}
4581% \end{center}
4582%
4583% This License applies to any manual or other work, in any medium,
4584% that contains a notice placed by the copyright holder saying it can
4585% be distributed under the terms of this License. Such a notice
4586% grants a world-wide, royalty-free license, unlimited in duration, to
4587% use that work under the conditions stated herein. The
4588% \enquote{\textbf{Document}}, below, refers to any such manual or
4589% work. Any member of the public is a licensee, and is addressed as
4590% \enquote{\textbf{you}}. You accept the license if you copy, modify
4591% or distribute the work in a way requiring permission under copyright
4592% law.
4593%
4594% A \enquote{\textbf{Modified Version}} of the Document means any work
4595% containing the Document or a portion of it, either copied verbatim,
4596% or with modifications and/or translated into another language.
4597%
4598% A \enquote{\textbf{Secondary Section}} is a named appendix or a
4599% front-matter section of the Document that deals exclusively with the
4600% relationship of the publishers or authors of the Document to the
4601% Document's overall subject (or to related matters) and contains
4602% nothing that could fall directly within that overall subject.
4603% (Thus, if the Document is in part a textbook of mathematics, a
4604% Secondary Section may not explain any mathematics.) The
4605% relationship could be a matter of historical connection with the
4606% subject or with related matters, or of legal, commercial,
4607% philosophical, ethical or political position regarding them.
4608%
4609% The \enquote{\textbf{Invariant Sections}} are certain Secondary
4610% Sections whose titles are designated, as being those of Invariant
4611% Sections, in the notice that says that the Document is released
4612% under this License. If a section does not fit the above definition
4613% of Secondary then it is not allowed to be designated as Invariant.
4614% The Document may contain zero Invariant Sections. If the Document
4615% does not identify any Invariant Sections then there are none.
4616%
4617% The \enquote{\textbf{Cover Texts}} are certain short passages of
4618% text that are listed, as Front-Cover Texts or Back-Cover Texts, in
4619% the notice that says that the Document is released under this
4620% License. A Front-Cover Text may be at most 5 words, and a
4621% Back-Cover Text may be at most 25 words.
4622%
4623% A \enquote{\textbf{Transparent}} copy of the Document means a
4624% machine-readable copy, represented in a format whose specification
4625% is available to the general public, that is suitable for revising
4626% the document straightforwardly with generic text editors or (for
4627% images composed of pixels) generic paint programs or (for drawings)
4628% some widely available drawing editor, and that is suitable for input
4629% to text formatters or for automatic translation to a variety of
4630% formats suitable for input to text formatters. A copy made in an
4631% otherwise Transparent file format whose markup, or absence of
4632% markup, has been arranged to thwart or discourage subsequent
4633% modification by readers is not Transparent. An image format is not
4634% Transparent if used for any substantial amount of text. A copy that
4635% is not \enquote{Transparent} is called \enquote{\textbf{Opaque}}.
4636%
4637% Examples of suitable formats for Transparent copies include plain
4638% ASCII without markup, Texinfo input format, LaTeX input format, SGML
4639% or XML using a publicly available DTD, and standard-conforming
4640% simple HTML, PostScript or PDF designed for human modification.
4641% Examples of transparent image formats include PNG, XCF and JPG.
4642% Opaque formats include proprietary formats that can be read and
4643% edited only by proprietary word processors, SGML or XML for which
4644% the DTD and/or processing tools are not generally available, and the
4645% machine-generated HTML, PostScript or PDF produced by some word
4646% processors for output purposes only.
4647%
4648% The \enquote{\textbf{Title Page}} means, for a printed book, the
4649% title page itself, plus such following pages as are needed to hold,
4650% legibly, the material this License requires to appear in the title
4651% page. For works in formats which do not have any title page as
4652% such, \enquote{Title Page} means the text near the most prominent
4653% appearance of the work's title, preceding the beginning of the body
4654% of the text.
4655%
4656% The \enquote{\textbf{publisher}} means any person or entity that
4657% distributes copies of the Document to the public.
4658%
4659% A section \enquote{\textbf{Entitled XYZ}} means a named subunit of
4660% the Document whose title either is precisely XYZ or contains XYZ in
4661% parentheses following text that translates XYZ in another language.
4662% (Here XYZ stands for a specific section name mentioned below, such
4663% as \enquote{\textbf{Acknowledgements}},
4664% \enquote{\textbf{Dedications}}, \enquote{\textbf{Endorsements}}, or
4665% \enquote{\textbf{History}}.) To \enquote{\textbf{Preserve the
4666% Title}} of such a section when you modify the Document means that it
4667% remains a section \enquote{Entitled XYZ} according to this
4668% definition.
4669%
4670% The Document may include Warranty Disclaimers next to the notice
4671% which states that this License applies to the Document. These
4672% Warranty Disclaimers are considered to be included by reference in
4673% this License, but only as regards disclaiming warranties: any other
4674% implication that these Warranty Disclaimers may have is void and has
4675% no effect on the meaning of this License.
4676%
4677% \needspace{3\baselineskip}
4678% \begin{center}
4679% {\large\bf 2. VERBATIM COPYING\par}
4680% \end{center}
4681%
4682% You may copy and distribute the Document in any medium, either
4683% commercially or noncommercially, provided that this License, the
4684% copyright notices, and the license notice saying this License
4685% applies to the Document are reproduced in all copies, and that you
4686% add no other conditions whatsoever to those of this License. You
4687% may not use technical measures to obstruct or control the reading or
4688% further copying of the copies you make or distribute. However, you
4689% may accept compensation in exchange for copies. If you distribute a
4690% large enough number of copies you must also follow the conditions in
4691% section~3.
4692%
4693% You may also lend copies, under the same conditions stated above,
4694% and you may publicly display copies.
4695%
4696% \needspace{3\baselineskip}
4697% \begin{center}
4698% {\large\bf 3. COPYING IN QUANTITY\par}
4699% \end{center}
4700%
4701% If you publish printed copies (or copies in media that commonly have
4702% printed covers) of the Document, numbering more than 100, and the
4703% Document's license notice requires Cover Texts, you must enclose the
4704% copies in covers that carry, clearly and legibly, all these Cover
4705% Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
4706% the back cover. Both covers must also clearly and legibly identify
4707% you as the publisher of these copies. The front cover must present
4708% the full title with all words of the title equally prominent and
4709% visible. You may add other material on the covers in addition.
4710% Copying with changes limited to the covers, as long as they preserve
4711% the title of the Document and satisfy these conditions, can be
4712% treated as verbatim copying in other respects.
4713%
4714% If the required texts for either cover are too voluminous to fit
4715% legibly, you should put the first ones listed (as many as fit
4716% reasonably) on the actual cover, and continue the rest onto adjacent
4717% pages.
4718%
4719% If you publish or distribute Opaque copies of the Document numbering
4720% more than 100, you must either include a machine-readable
4721% Transparent copy along with each Opaque copy, or state in or with
4722% each Opaque copy a computer-network location from which the general
4723% network-using public has access to download using public-standard
4724% network protocols a complete Transparent copy of the Document, free
4725% of added material. If you use the latter option, you must take
4726% reasonably prudent steps, when you begin distribution of Opaque
4727% copies in quantity, to ensure that this Transparent copy will remain
4728% thus accessible at the stated location until at least one year after
4729% the last time you distribute an Opaque copy (directly or through
4730% your agents or retailers) of that edition to the public.
4731%
4732% It is requested, but not required, that you contact the authors of
4733% the Document well before redistributing any large number of copies,
4734% to give them a chance to provide you with an updated version of the
4735% Document.
4736%
4737% \needspace{3\baselineskip}
4738% \begin{center}
4739% {\large\bf 4. MODIFICATIONS\par}
4740% \end{center}
4741%
4742% You may copy and distribute a Modified Version of the Document under
4743% the conditions of sections 2 and 3 above, provided that you release
4744% the Modified Version under precisely this License, with the Modified
4745% Version filling the role of the Document, thus licensing
4746% distribution and modification of the Modified Version to whoever
4747% possesses a copy of it. In addition, you must do these things in
4748% the Modified Version:
4749%
4750% \begin{itemize}
4751% \item[A.] Use in the Title Page (and on the covers, if any) a title
4752% distinct from that of the Document, and from those of previous
4753% versions (which should, if there were any, be listed in the
4754% History section of the Document). You may use the same title as a
4755% previous version if the original publisher of that version gives
4756% permission.
4757%
4758% \item[B.] List on the Title Page, as authors, one or more persons
4759% or entities responsible for authorship of the modifications in
4760% the Modified Version, together with at least five of the
4761% principal authors of the Document (all of its principal authors,
4762% if it has fewer than five), unless they release you from this
4763% requirement.
4764%
4765% \item[C.] State on the Title page the name of the publisher of the
4766% Modified Version, as the publisher.
4767%
4768% \item[D.] Preserve all the copyright notices of the Document.
4769%
4770% \item[E.] Add an appropriate copyright notice for your
4771% modifications adjacent to the other copyright notices.
4772%
4773% \item[F.] Include, immediately after the copyright notices, a
4774% license notice giving the public permission to use the Modified
4775% Version under the terms of this License, in the form shown in the
4776% Addendum below.
4777%
4778% \item[G.] Preserve in that license notice the full lists of
4779% Invariant Sections and required Cover Texts given in the
4780% Document's license notice.
4781%
4782% \item[H.] Include an unaltered copy of this License.
4783%
4784% \item[I.] Preserve the section Entitled \enquote{History},
4785% Preserve its Title, and add to it an item stating at least the
4786% title, year, new authors, and publisher of the Modified Version
4787% as given on the Title Page. If there is no section Entitled
4788% \enquote{History} in the Document, create one stating the title,
4789% year, authors, and publisher of the Document as given on its
4790% Title Page, then add an item describing the Modified Version as
4791% stated in the previous sentence.
4792%
4793% \item[J.] Preserve the network location, if any, given in the
4794% Document for public access to a Transparent copy of the Document,
4795% and likewise the network locations given in the Document for
4796% previous versions it was based on. These may be placed in the
4797% \enquote{History} section. You may omit a network location for a
4798% work that was published at least four years before the Document
4799% itself, or if the original publisher of the version it refers to
4800% gives permission.
4801%
4802% \item[K.] For any section Entitled \enquote{Acknowledgements} or
4803% \enquote{Dedications}, Preserve the Title of the section, and
4804% preserve in the section all the substance and tone of each of the
4805% contributor acknowledgements and/or dedications given therein.
4806%
4807% \item[L.] Preserve all the Invariant Sections of the Document,
4808% unaltered in their text and in their titles. Section numbers or
4809% the equivalent are not considered part of the section titles.
4810%
4811% \item[M.] Delete any section Entitled \enquote{Endorsements}.
4812% Such a section may not be included in the Modified Version.
4813%
4814% \item[N.] Do not retitle any existing section to be Entitled
4815% \enquote{Endorsements} or to conflict in title with any Invariant
4816% Section.
4817%
4818% \item[O.] Preserve any Warranty Disclaimers.
4819% \end{itemize}
4820%
4821% If the Modified Version includes new front-matter sections or
4822% appendices that qualify as Secondary Sections and contain no
4823% material copied from the Document, you may at your option designate
4824% some or all of these sections as invariant. To do this, add their
4825% titles to the list of Invariant Sections in the Modified Version's
4826% license notice. These titles must be distinct from any other
4827% section titles.
4828%
4829% You may add a section Entitled \enquote{Endorsements}, provided it
4830% contains nothing but endorsements of your Modified Version by
4831% various parties---for example, statements of peer review or that the
4832% text has been approved by an organization as the authoritative
4833% definition of a standard.
4834%
4835% You may add a passage of up to five words as a Front-Cover Text, and
4836% a passage of up to 25 words as a Back-Cover Text, to the end of the
4837% list of Cover Texts in the Modified Version. Only one passage of
4838% Front-Cover Text and one of Back-Cover Text may be added by (or
4839% through arrangements made by) any one entity. If the Document
4840% already includes a cover text for the same cover, previously added
4841% by you or by arrangement made by the same entity you are acting on
4842% behalf of, you may not add another; but you may replace the old one,
4843% on explicit permission from the previous publisher that added the
4844% old one.
4845%
4846% The author(s) and publisher(s) of the Document do not by this
4847% License give permission to use their names for publicity for or to
4848% assert or imply endorsement of any Modified Version.
4849%
4850% \needspace{3\baselineskip}
4851% \begin{center}
4852% {\large\bf 5. COMBINING DOCUMENTS\par}
4853% \end{center}
4854%
4855% You may combine the Document with other documents released under
4856% this License, under the terms defined in section~4 above for
4857% modified versions, provided that you include in the combination all
4858% of the Invariant Sections of all of the original documents,
4859% unmodified, and list them all as Invariant Sections of your combined
4860% work in its license notice, and that you preserve all their Warranty
4861% Disclaimers.
4862%
4863% The combined work need only contain one copy of this License, and
4864% multiple identical Invariant Sections may be replaced with a single
4865% copy. If there are multiple Invariant Sections with the same name
4866% but different contents, make the title of each such section unique
4867% by adding at the end of it, in parentheses, the name of the original
4868% author or publisher of that section if known, or else a unique
4869% number. Make the same adjustment to the section titles in the list
4870% of Invariant Sections in the license notice of the combined work.
4871%
4872% In the combination, you must combine any sections Entitled
4873% \enquote{History} in the various original documents, forming one
4874% section Entitled \enquote{History}; likewise combine any sections
4875% Entitled \enquote{Acknowledgements}, and any sections Entitled
4876% \enquote{Dedications}. You must delete all sections Entitled
4877% \enquote{Endorsements}.
4878%
4879% \needspace{3\baselineskip}
4880% \begin{center}
4881% {\large\bf 6. COLLECTIONS OF DOCUMENTS\par}
4882% \end{center}
4883%
4884% You may make a collection consisting of the Document and other
4885% documents released under this License, and replace the individual
4886% copies of this License in the various documents with a single copy
4887% that is included in the collection, provided that you follow the
4888% rules of this License for verbatim copying of each of the documents
4889% in all other respects.
4890%
4891% You may extract a single document from such a collection, and
4892% distribute it individually under this License, provided you insert a
4893% copy of this License into the extracted document, and follow this
4894% License in all other respects regarding verbatim copying of that
4895% document.
4896%
4897% \needspace{3\baselineskip}
4898% \begin{center}
4899% {\large\bf 7. AGGREGATION WITH INDEPENDENT WORKS\par}
4900% \end{center}
4901%
4902% A compilation of the Document or its derivatives with other separate
4903% and independent documents or works, in or on a volume of a storage
4904% or distribution medium, is called an \enquote{aggregate} if the
4905% copyright resulting from the compilation is not used to limit the
4906% legal rights of the compilation's users beyond what the individual
4907% works permit. When the Document is included in an aggregate, this
4908% License does not apply to the other works in the aggregate which are
4909% not themselves derivative works of the Document.
4910%
4911% If the Cover Text requirement of section~3 is applicable to these
4912% copies of the Document, then if the Document is less than one half
4913% of the entire aggregate, the Document's Cover Texts may be placed on
4914% covers that bracket the Document within the aggregate, or the
4915% electronic equivalent of covers if the Document is in electronic
4916% form. Otherwise they must appear on printed covers that bracket the
4917% whole aggregate.
4918%
4919% \needspace{3\baselineskip}
4920% \begin{center}
4921% {\large\bf 8. TRANSLATION\par}
4922% \end{center}
4923%
4924% Translation is considered a kind of modification, so you may
4925% distribute translations of the Document under the terms of
4926% section~4. Replacing Invariant Sections with translations requires
4927% special permission from their copyright holders, but you may include
4928% translations of some or all Invariant Sections in addition to the
4929% original versions of these Invariant Sections. You may include a
4930% translation of this License, and all the license notices in the
4931% Document, and any Warranty Disclaimers, provided that you also
4932% include the original English version of this License and the
4933% original versions of those notices and disclaimers. In case of a
4934% disagreement between the translation and the original version of
4935% this License or a notice or disclaimer, the original version will
4936% prevail.
4937%
4938% If a section in the Document is Entitled \enquote{Acknowledgements},
4939% \enquote{Dedications}, or \enquote{History}, the requirement
4940% (section~4) to Preserve its Title (section~1) will typically require
4941% changing the actual title.
4942%
4943% \needspace{3\baselineskip}
4944% \begin{center}
4945% {\large\bf 9. TERMINATION\par}
4946% \end{center}
4947%
4948% You may not copy, modify, sublicense, or distribute the Document
4949% except as expressly provided under this License. Any attempt
4950% otherwise to copy, modify, sublicense, or distribute it is void, and
4951% will automatically terminate your rights under this License.
4952%
4953% However, if you cease all violation of this License, then your
4954% license from a particular copyright holder is reinstated (a)
4955% provisionally, unless and until the copyright holder explicitly and
4956% finally terminates your license, and (b) permanently, if the
4957% copyright holder fails to notify you of the violation by some
4958% reasonable means prior to 60 days after the cessation.
4959%
4960% Moreover, your license from a particular copyright holder is
4961% reinstated permanently if the copyright holder notifies you of the
4962% violation by some reasonable means, this is the first time you have
4963% received notice of violation of this License (for any work) from
4964% that copyright holder, and you cure the violation prior to 30 days
4965% after your receipt of the notice.
4966%
4967% Termination of your rights under this section does not terminate the
4968% licenses of parties who have received copies or rights from you
4969% under this License. If your rights have been terminated and not
4970% permanently reinstated, receipt of a copy of some or all of the same
4971% material does not give you any rights to use it.
4972%
4973% \needspace{3\baselineskip}
4974% \begin{center}
4975% {\large\bf 10. FUTURE REVISIONS OF THIS LICENSE\par}
4976% \end{center}
4977%
4978% The Free Software Foundation may publish new, revised versions of
4979% the GNU Free Documentation License from time to time. Such new
4980% versions will be similar in spirit to the present version, but may
4981% differ in detail to address new problems or concerns. See
4982% \url{https://www.gnu.org/licenses/}.
4983%
4984% Each version of the License is given a distinguishing version
4985% number. If the Document specifies that a particular numbered
4986% version of this License \enquote{or any later version} applies to
4987% it, you have the option of following the terms and conditions either
4988% of that specified version or of any later version that has been
4989% published (not as a draft) by the Free Software Foundation. If the
4990% Document does not specify a version number of this License, you may
4991% choose any version ever published (not as a draft) by the Free
4992% Software Foundation. If the Document specifies that a proxy can
4993% decide which future versions of this License can be used, that
4994% proxy's public statement of acceptance of a version permanently
4995% authorizes you to choose that version for the Document.
4996%
4997% \needspace{3\baselineskip}
4998% \begin{center}
4999% {\large\bf 11. RELICENSING\par}
5000% \end{center}
5001%
5002% \enquote{Massive Multiauthor Collaboration Site} (or \enquote{MMC
5003% Site}) means any World Wide Web server that publishes copyrightable
5004% works and also provides prominent facilities for anybody to edit
5005% those works. A public wiki that anybody can edit is an example of
5006% such a server. A \enquote{Massive Multiauthor Collaboration} (or
5007% \enquote{MMC}) contained in the site means any set of copyrightable
5008% works thus published on the MMC site.
5009%
5010% \enquote{CC-BY-SA} means the Creative Commons Attribution-Share
5011% Alike 3.0 license published by Creative Commons Corporation, a
5012% not-for-profit corporation with a principal place of business in San
5013% Francisco, California, as well as future copyleft versions of that
5014% license published by that same organization.
5015%
5016% \enquote{Incorporate} means to publish or republish a Document, in
5017% whole or in part, as part of another Document.
5018%
5019% An MMC is \enquote{eligible for relicensing} if it is licensed under
5020% this License, and if all works that were first published under this
5021% License somewhere other than this MMC, and subsequently incorporated
5022% in whole or in part into the MMC, (1) had no cover texts or
5023% invariant sections, and (2) were thus incorporated prior to November
5024% 1, 2008.
5025%
5026% The operator of an MMC Site may republish an MMC contained in the
5027% site under CC-BY-SA on the same site at any time before August 1,
5028% 2009, provided the MMC is eligible for relicensing.
5029%
5030% \needspace{3\baselineskip}
5031% \begin{center}
5032% {\large\bf ADDENDUM: How to use this License for your documents\par}
5033% \end{center}
5034%
5035% To use this License in a document you have written, include a copy
5036% of the License in the document and put the following copyright and
5037% license notices just after the title page:
5038%
5039% \bigskip
5040% \begin{quote}
5041% Copyright \copyright{} YEAR YOUR NAME. Permission is granted to
5042% copy, distribute and/or modify this document under the terms of
5043% the GNU Free Documentation License, Version 1.3 or any later
5044% version published by the Free Software Foundation; with no
5045% Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
5046% A copy of the license is included in the section entitled
5047% \enquote{GNU Free Documentation License}.
5048% \end{quote}
5049% \bigskip
5050%
5051% If you have Invariant Sections, Front-Cover Texts and Back-Cover
5052% Texts, replace the \enquote{with \dots\ Texts.}\ line with this:
5053%
5054% \bigskip
5055% \begin{quote}
5056% with the Invariant Sections being LIST THEIR TITLES, with the
5057% Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.
5058% \end{quote}
5059% \bigskip
5060%
5061% If you have Invariant Sections without Cover Texts, or some other
5062% combination of the three, merge those two alternatives to suit the
5063% situation.
5064%
5065% If your document contains nontrivial examples of program code, we
5066% recommend releasing these examples in parallel under your choice of
5067% free software license, such as the GNU General Public License,
5068% to permit their use in free software.
5069%
5070%
5071% \StopEventually{} 4562% \StopEventually{}
5072% 4563%
5073% \section{Implementation} 4564% \section{Implementation}
@@ -5156,12 +4647,12 @@
5156% it to suit our purpose: 4647% it to suit our purpose:
5157% \begin{macrocode} 4648% \begin{macrocode}
5158\AtBeginDocument{\ifdef{\LR}% 4649\AtBeginDocument{\ifdef{\LR}%
5159 {\RenewDocumentCommand{\LR}{m}{\bgroup\textdir TLT\rmfamily#1\egroup}} 4650 {\RenewDocumentCommand{\LR}{m}{\bgroup\textdir TLT\reset@font#1\egroup}}
5160 {\NewDocumentCommand{\LR}{m}{\bgroup\textdir TLT\rmfamily#1\egroup}}} 4651 {\NewDocumentCommand{\LR}{m}{\bgroup\textdir TLT\reset@font#1\egroup}}}
5161% \end{macrocode} 4652% \end{macrocode}
5162% \end{macro} 4653% \end{macro}
5163% \begin{macro}{\SetArbNumbers} 4654% \begin{macro}{\SetArbNumbers}
5164% \changes{v1.21}{2022/06/15}{selects Indian or Arabic numbers} 4655% \changes{v1.21}{2023/05/21}{selects Indian or Arabic numbers}
5165% \begin{macrocode} 4656% \begin{macrocode}
5166\NewDocumentCommand{\SetArbNumbers}{m}{% 4657\NewDocumentCommand{\SetArbNumbers}{m}{%
5167 \luadirect{arabluatex.setnums(\luastringN{#1})}% 4658 \luadirect{arabluatex.setnums(\luastringN{#1})}%
@@ -5324,7 +4815,7 @@
5324% \end{macrocode} 4815% \end{macrocode}
5325% \end{macro} 4816% \end{macro}
5326% \begin{macro}{\altrfont} 4817% \begin{macro}{\altrfont}
5327% \changes{v1.21}{2022/06/15}{new command \cs{altrfont} to store 4818% \changes{v1.21}{2023/05/21}{new command \cs{altrfont} to store
5328% font and shape information (trans mode)} Finally \cs{altrfont} 4819% font and shape information (trans mode)} Finally \cs{altrfont}
5329% is used internally by \package{arabluatex} to store family and 4820% is used internally by \package{arabluatex} to store family and
5330% shape information about the font to be used for transliterated 4821% shape information about the font to be used for transliterated
@@ -5561,55 +5052,63 @@
5561% \begin{macrocode} 5052% \begin{macrocode}
5562\newlength{\al@bayt@width} 5053\newlength{\al@bayt@width}
5563\newlength{\al@gutter@width} 5054\newlength{\al@gutter@width}
5055\newlength{\al@verse@twidth}
5564\setlength{\al@bayt@width}{.3\textwidth} 5056\setlength{\al@bayt@width}{.3\textwidth}
5565\setlength{\al@gutter@width}{.15\al@bayt@width} 5057\setlength{\al@gutter@width}{.15\al@bayt@width}
5566\define@key[al]{verse}{width}{\setlength{\al@bayt@width}{#1}} 5058\define@key[al]{verse}{width}{\setlength{\al@bayt@width}{#1}}
5567\define@key[al]{verse}{gutter}{\setlength{\al@gutter@width}{#1}} 5059\define@key[al]{verse}{gutter}{\setlength{\al@gutter@width}{#1}}
5568\define@key[al]{verse}{metre}{\arb{#1}} 5060\define@key[al]{verse}{metre}{\def\al@verse@metre@value{\arb{#1}}}
5569\define@key[al]{verse}{color}[]{\color{#1}} 5061\define@key[al]{verse}{color}[]{\color{#1}}
5570\define@boolkey[al]{verse}{utf}[true]{} 5062\define@boolkey[al]{verse}{utf}[true]{}
5571\define@boolkey[al]{verse}{delim}[true]{} 5063\define@boolkey[al]{verse}{delim}[true]{}
5572\define@boolkey[al]{verse}{export}[true]{} 5064\define@boolkey[al]{verse}{export}[true]{}
5573\define@choicekey[al]{verse}{mode}{fullvoc, voc, novoc, 5065\define@choicekey[al]{verse}{mode}{fullvoc, voc, novoc,
5574 trans}{\def\al@mode{#1}} 5066 trans}{\def\al@mode{#1}}
5575\presetkeys[al]{verse}{metre={}, utf=false, 5067\presetkeys[al]{verse}{utf=false, delim=false}{}
5576 delim=false}{}
5577% \end{macrocode} 5068% \end{macrocode}
5578% Then follows the environment itself: 5069% Then follows the environment itself:
5579% \begin{macrocode} 5070% \begin{macrocode}
5580\NewDocumentEnvironment{arabverse}{!O{}}% 5071\NewDocumentEnvironment{arabverse}{!O{}}%
5581{\bgroup\setkeys[al]{verse}[width, gutter, color, utf, delim, 5072{\bgroup\setkeys[al]{verse}[width, gutter, color, utf, delim,
5582 metre]{#1}% 5073 metre]{#1}%
5583 \if@pkg@export\ifal@verse@export% 5074 \if@pkg@export
5584 \ArbOutFile{\begin{arabverse}}% 5075 \ifal@verse@export
5585 % \ifx\al@mode\al@mode@trans% 5076 \ArbOutFile{\begin{arabverse}}%
5586 % \luadirect{arabluatex.tooutfile(\luastringN{[#1]})}% 5077 % \ifx\al@mode\al@mode@trans%
5587 % \else% 5078 % \luadirect{arabluatex.tooutfile(\luastringN{[#1]})}%
5588 \IfSubStr[1]{#1}{utf}% 5079 % \else%
5080 \IfSubStr[1]{#1}{utf}%
5589 {\luadirect{arabluatex.tooutfile(\luastringN{[#1]})}}% 5081 {\luadirect{arabluatex.tooutfile(\luastringN{[#1]})}}%
5590 {\luadirect{arabluatex.tooutfile(\luastringN{[#1, utf]})}}% 5082 {\luadirect{arabluatex.tooutfile(\luastringN{[#1, utf]})}}%
5591 % \fi 5083 % \fi
5592 \else\fi\else\fi\egroup% 5084 \else
5593 \par\centering\noindent\bgroup\setkeys[al]{verse}[metre]{#1}% 5085 \fi
5594 % \ifx\al@mode\al@mode@trans% 5086 \else
5595 % \ifal@verse@utf\setRL\else\setLR\fi% 5087 \fi
5596 % \else\setRL\fi% 5088 \egroup
5597 \ifal@verse@utf% 5089 \centering\noindent\bgroup\setkeys[al]{verse}[metre]{#1}%
5598 \ifx\al@mode\al@mode@trans\setLR\else\setRL\fi% 5090 % \ifx\al@mode\al@mode@trans%
5599 \else% 5091 % \ifal@verse@utf\setRL\else\setLR\fi%
5600 \ifx\al@mode\al@mode@trans\setLR\else\setRL\fi% 5092 % \else\setRL\fi%
5601 \fi% 5093 \ifal@verse@utf
5602 \arab@v@export[#1] 5094 \ifx\al@mode\al@mode@trans\setLR\else\setRL\fi
5095 \else
5096 \ifx\al@mode\al@mode@trans\setLR\else\setRL\fi
5097 \fi
5098 \addtolength{\al@verse@twidth}{2\al@bayt@width}%
5099 \addtolength{\al@verse@twidth}{\al@gutter@width}%
5100 \arab@v@export[#1]
5603 }% 5101 }%
5604 {\endarab@v@export 5102 {\endarab@v@export
5605 \hfill\setkeys[al]{verse}[width, gutter, color, utf, delim, mode, 5103 \setkeys[al]{verse}[width, gutter, color, utf, delim, mode,
5606 export]{#1}% 5104 export]{#1}%
5607 \egroup\par% 5105 \ifdefined\al@verse@metre@value\hfill\al@verse@metre@value\fi
5106 \egroup
5608 \bgroup\setkeys[al]{verse}[width, gutter, color, utf, delim, mode, 5107 \bgroup\setkeys[al]{verse}[width, gutter, color, utf, delim, mode,
5609 metre]{#1}% 5108 metre]{#1}%
5610 \if@pkg@export\ifal@verse@export% 5109 \if@pkg@export\ifal@verse@export
5611 \ArbOutFile{\end{arabverse}} 5110 \ArbOutFile{\end{arabverse}}%
5612 \else\fi\else\fi\egroup} 5111 \else\fi\else\fi\egroup}
5613% \end{macrocode} 5112% \end{macrocode}
5614% \begin{macro}{\bayt} 5113% \begin{macro}{\bayt}
5615% \changes{v1.6}{2016/12/17}{New macro \cs{bayt} for typesetting 5114% \changes{v1.6}{2016/12/17}{New macro \cs{bayt} for typesetting
@@ -5658,22 +5157,33 @@
5658\def\al@hemistich@delim{*} 5157\def\al@hemistich@delim{*}
5659\NewDocumentCommand{\SetHemistichDelim}{m}{\def\al@hemistich@delim{#1}} 5158\NewDocumentCommand{\SetHemistichDelim}{m}{\def\al@hemistich@delim{#1}}
5660\def\al@verse@stroke{\leavevmode\xleaders\hbox{\arb{--}}\hfill\kern0pt} 5159\def\al@verse@stroke{\leavevmode\xleaders\hbox{\arb{--}}\hfill\kern0pt}
5661\NewDocumentCommand{\bayt}{s m o m}{% 5160\providebool{ekd@state}
5662 \IfBooleanTF{#1}{\relax}{\relax}% 5161\NewDocumentCommand{\bayt}{t+ s m o m}{%
5162 \IfBooleanTF{#1}{%
5163 \ifekd@state
5164 \leavevmode
5165 \stepcounter{ekd@lab}%
5166 \zlabel{ekd:\theekd@lab}%
5167 \luadirect{ekdosis.storeabspg(
5168 \luastring{\zref@extract{ekd:\theekd@lab}{abspage}})}%
5169 \add@apparatus
5170 \fi
5171 }{\relax}%
5172 \IfBooleanTF{#2}{\relax}{\relax}%
5663 \ifdefined\savenotes\savenotes\else\fi% 5173 \ifdefined\savenotes\savenotes\else\fi%
5664 \edef\al@tatweel{--}% 5174 \edef\al@tatweel{--}%
5665 \ifal@warp@bayt% 5175 \ifal@warp@bayt%
5666 \adjustbox{width=\al@bayt@width, height=\Height}{\arb@utf{#2}}% 5176 \adjustbox{width=\al@bayt@width, height=\Height}{\arb@utf{#3}}%
5667 \else% 5177 \else%
5668 \makebox[\al@bayt@width][s]{\arb@utf{#2}}% 5178 \makebox[\al@bayt@width][s]{\arb@utf{#3}}%
5669 \fi% 5179 \fi%
5670 \IfNoValueTF{#3}{% 5180 \IfNoValueTF{#4}{%
5671 \ifal@verse@delim\makebox[\al@gutter@width][c]{\al@hemistich@delim}% 5181 \ifal@verse@delim\makebox[\al@gutter@width][c]{\al@hemistich@delim}%
5672 \else% 5182 \else%
5673 \hspace{\al@gutter@width}% 5183 \hspace{\al@gutter@width}%
5674 \fi 5184 \fi
5675 }{% 5185 }{%
5676 \edef\@tempa{#3}% 5186 \edef\@tempa{#4}%
5677 \ifx\@tempa\al@tatweel% 5187 \ifx\@tempa\al@tatweel%
5678 \ifx\al@mode\al@mode@trans% 5188 \ifx\al@mode\al@mode@trans%
5679 \hspace{\al@gutter@width}% 5189 \hspace{\al@gutter@width}%
@@ -5683,17 +5193,17 @@
5683 \else% 5193 \else%
5684 \ifx\al@mode\al@mode@trans% 5194 \ifx\al@mode\al@mode@trans%
5685 \ifal@warp@bayt% 5195 \ifal@warp@bayt%
5686 \adjustbox{width=\al@gutter@width, height=\Height}{\arb@utf{#3}}% 5196 \adjustbox{width=\al@gutter@width, height=\Height}{\arb@utf{#4}}%
5687 \else% 5197 \else%
5688 \makebox[\al@gutter@width][s]{\arb@utf{#3}}% 5198 \makebox[\al@gutter@width][s]{\arb@utf{#4}}%
5689 \fi% 5199 \fi%
5690 \else% 5200 \else%
5691 \makebox[\al@gutter@width][s]{\arb@utf{#3}}% 5201 \makebox[\al@gutter@width][s]{\arb@utf{#4}}%
5692 \fi\fi}% 5202 \fi\fi}%
5693 \ifal@warp@bayt% 5203 \ifal@warp@bayt%
5694 \adjustbox{width=\al@bayt@width, height=\Height}{\arb@utf{#4}}% 5204 \adjustbox{width=\al@bayt@width, height=\Height}{\arb@utf{#5}}%
5695 \else% 5205 \else%
5696 \makebox[\al@bayt@width][s]{\arb@utf{#4}}% 5206 \makebox[\al@bayt@width][s]{\arb@utf{#5}}%
5697 \fi% 5207 \fi%
5698 \ifdefined\spewnotes\spewnotes\else\fi% 5208 \ifdefined\spewnotes\spewnotes\else\fi%
5699} 5209}
@@ -5930,14 +5440,37 @@
5930\NewDocumentEnvironment{arab@v@export}{O{} +b}{% 5440\NewDocumentEnvironment{arab@v@export}{O{} +b}{%
5931 \setkeys[al]{verse}[width, gutter, color, utf, delim, mode, 5441 \setkeys[al]{verse}[width, gutter, color, utf, delim, mode,
5932 metre]{#1} 5442 metre]{#1}
5933 \if@pkg@export\ifal@verse@export% 5443 \if@pkg@export
5934 \par 5444 \ifal@verse@export
5935 #2 5445 \ifekd@state
5936 \luadirect{arabluatex.doexport("arabverse")} 5446 \begin{ekdverse}[width=\al@verse@twidth]
5937 \luadirect{tex.sprint(arabluatex.arbtoutf(\luastringN{#2}))} 5447 #2
5938 \luadirect{arabluatex.doexport("no")} 5448 \end{ekdverse}
5939 \else\par#2\fi\else\par#2\fi 5449 \else
5940}{\par} 5450 #2
5451 \fi
5452 \luadirect{arabluatex.doexport("arabverse")}%
5453 \luadirect{tex.sprint(arabluatex.arbtoutf(\luastringN{#2}))}%
5454 \luadirect{arabluatex.doexport("no")}%
5455 \else
5456 \ifekd@state
5457 \begin{ekdverse}[width=\al@verse@twidth]
5458 #2
5459 \end{ekdverse}
5460 \else
5461 #2
5462 \fi
5463 \fi
5464 \else
5465 \ifekd@state
5466 \begin{ekdverse}[width=\al@verse@twidth]
5467 #2
5468 \end{ekdverse}
5469 \else
5470 #2
5471 \fi
5472 \fi
5473}{}
5941% \end{macrocode} 5474% \end{macrocode}
5942% \end{environment} 5475% \end{environment}
5943% \begin{macro}{\arbpardir} 5476% \begin{macro}{\arbpardir}
diff --git a/arabluatex.el b/arabluatex.el
index 0cd3fd3..5007675 100644
--- a/arabluatex.el
+++ b/arabluatex.el
@@ -1,8 +1,23 @@
1;;; arabluatex.el --- AUCTeX style for `arabluatex.sty' 1;;; arabluatex.el --- AUCTeX style for `arabluatex.sty'
2;; This file is part of the `arabluatex' package 2;; This file is part of the `arabluatex' package
3 3
4;; ArabLuaTeX -- Processing ArabTeX notation under LuaLaTeX 4;; arabluatex -- ArabTeX for LuaLaTeX
5;; Copyright (C) 2016--2022 Robert Alessi 5;; Copyright (C) 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023
6;; Robert Alessi <alessi@robertalessi.net>
7
8;; Permission to use, copy, modify, and distribute this software for
9;; any purpose with or without fee is hereby granted, provided that
10;; the above copyright notice and this permission notice appear in all
11;; copies.
12
13;; THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
14;; WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
15;; WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
16;; AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR
17;; CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
18;; OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
19;; NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
20;; CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
6 21
7;; The author would like to express his grateful thanks to Arash 22;; The author would like to express his grateful thanks to Arash
8;; Esbati <arash@gnu.org> whose comments helped to improve this file 23;; Esbati <arash@gnu.org> whose comments helped to improve this file
@@ -11,20 +26,6 @@
11;; Please send error reports and suggestions for improvements to Robert 26;; Please send error reports and suggestions for improvements to Robert
12;; Alessi <alessi@robertalessi.net> 27;; Alessi <alessi@robertalessi.net>
13 28
14;; This program is free software: you can redistribute it and/or modify
15;; it under the terms of the GNU General Public License as published by
16;; the Free Software Foundation, either version 3 of the License, or
17;; (at your option) any later version.
18
19;; This program is distributed in the hope that it will be useful, but
20;; WITHOUT ANY WARRANTY; without even the implied warranty of
21;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
22;; General Public License for more details.
23
24;; You should have received a copy of the GNU General Public License
25;; along with this program. If not, see
26;; <http://www.gnu.org/licenses/>.
27
28(defvar LaTeX-arabluatex-preamble-options 29(defvar LaTeX-arabluatex-preamble-options
29 '(("voc") 30 '(("voc")
30 ("fullvoc") 31 ("fullvoc")
@@ -124,6 +125,7 @@
124 TeX-arg-index) 125 TeX-arg-index)
125 "SetHemistichDelim" 126 "SetHemistichDelim"
126 '("bayt" 2) 127 '("bayt" 2)
128 '("bayt+" 2)
127 "abjad" 129 "abjad"
128 '("SetArbNumbers" "Indian or Arabic") 130 '("SetArbNumbers" "Indian or Arabic")
129 "arbnull" 131 "arbnull"
diff --git a/arabluatex.ins b/arabluatex.ins
index afef368..a8c65c6 100644
--- a/arabluatex.ins
+++ b/arabluatex.ins
@@ -1,24 +1,23 @@
1%% This file is part of the `arabluatex' package 1%% This file is part of the `arabluatex' package
2%% 2%%
3%% ArabLuaTeX -- Processing ArabTeX notation under LuaLaTeX 3%% ArabLuaTeX -- Processing ArabTeX notation under LuaLaTeX
4%% Copyright (C) 2016--2022 Robert Alessi 4%% Copyright (C) 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023
5%%
6%% Please send error reports and suggestions for improvements to
7%% Robert Alessi <alessi@robertalessi.net> 5%% Robert Alessi <alessi@robertalessi.net>
8%% 6%%
9%% This program is free software: you can redistribute it and/or 7%% Permission to use, copy, modify, and distribute this software for any
10%% modify it under the terms of the GNU General Public License 8%% purpose with or without fee is hereby granted, provided that the above
11%% as published by the Free Software Foundation, either version 3 9%% copyright notice and this permission notice appear in all copies.
12%% of the License, or (at your option) any later version. 10%%
13%% 11%% THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
14%% This program is distributed in the hope that it will be useful, 12%% WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
15%% but WITHOUT ANY WARRANTY; without even the implied warranty of 13%% MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
16%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14%% ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
17%% GNU General Public License for more details. 15%% WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
16%% ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
17%% OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
18%% 18%%
19%% You should have received a copy of the GNU General Public License 19%% Please send error reports and suggestions for improvements to
20%% along with this program. If not, see 20%% Robert Alessi <alessi@robertalessi.net>
21%% <http://www.gnu.org/licenses/>.
22%% 21%%
23%% This release of 'arabluatex' consists of the following source files: 22%% This release of 'arabluatex' consists of the following source files:
24%% - arabluatex.ins 23%% - arabluatex.ins
@@ -28,8 +27,6 @@
28%% - arabluatex_fullvoc.lua 27%% - arabluatex_fullvoc.lua
29%% - arabluatex_novoc.lua 28%% - arabluatex_novoc.lua
30%% - arabluatex_trans.lua 29%% - arabluatex_trans.lua
31%%
32
33 30
34\input docstrip.tex 31\input docstrip.tex
35\keepsilent 32\keepsilent
@@ -43,24 +40,23 @@ This is a generated file.
43This file is part of the `arabluatex' package 40This file is part of the `arabluatex' package
44 41
45ArabLuaTeX -- Processing ArabTeX notation under LuaLaTeX 42ArabLuaTeX -- Processing ArabTeX notation under LuaLaTeX
46Copyright (C) 2016--2022 Robert Alessi 43Copyright (C) 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023
47 44Robert Alessi <alessi@robertalessi.net>
48Please send error reports and suggestions for improvements to Robert 45
49Alessi <alessi@robertalessi.net> 46Permission to use, copy, modify, and distribute this software for any
50 47purpose with or without fee is hereby granted, provided that the above
51This program is free software: you can redistribute it and/or modify 48copyright notice and this permission notice appear in all copies.
52it under the terms of the GNU General Public License as published by 49
53the Free Software Foundation, either version 3 of the License, or 50THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
54(at your option) any later version. 51WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
55 52MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
56This program is distributed in the hope that it will be useful, but 53ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
57WITHOUT ANY WARRANTY; without even the implied warranty of 54WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
58MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 55ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
59General Public License for more details. 56OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
60 57
61You should have received a copy of the GNU General Public License 58Please send error reports and suggestions for improvements to
62along with this program. If not, see 59Robert Alessi <alessi@robertalessi.net>
63<http://www.gnu.org/licenses/>.
64 60
65This release of 'arabluatex' consists of the following source files: 61This release of 'arabluatex' consists of the following source files:
66- arabluatex.ins 62- arabluatex.ins
diff --git a/arabluatex.lua b/arabluatex.lua
index f639770..114a569 100644
--- a/arabluatex.lua
+++ b/arabluatex.lua
@@ -2,24 +2,23 @@
2This file is part of the `arabluatex' package 2This file is part of the `arabluatex' package
3 3
4ArabLuaTeX -- Processing ArabTeX notation under LuaLaTeX 4ArabLuaTeX -- Processing ArabTeX notation under LuaLaTeX
5Copyright (C) 2016--2022 Robert Alessi 5Copyright (C) 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023
6Robert Alessi <alessi@robertalessi.net>
6 7
7Please send error reports and suggestions for improvements to Robert 8Permission to use, copy, modify, and distribute this software for any
8Alessi <alessi@robertalessi.net> 9purpose with or without fee is hereby granted, provided that the above
9 10copyright notice and this permission notice appear in all copies.
10This program is free software: you can redistribute it and/or modify
11it under the terms of the GNU General Public License as published by
12the Free Software Foundation, either version 3 of the License, or
13(at your option) any later version.
14 11
15This program is distributed in the hope that it will be useful, but 12THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
16WITHOUT ANY WARRANTY; without even the implied warranty of 13WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
17MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
18General Public License for more details. 15ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
16WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
17ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
18OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
19 19
20You should have received a copy of the GNU General Public License 20Please send error reports and suggestions for improvements to Robert
21along with this program. If not, see 21Alessi <alessi@robertalessi.net>
22<http://www.gnu.org/licenses/>.
23--]] 22--]]
24 23
25arabluatex = {} 24arabluatex = {}
@@ -54,11 +53,26 @@ local cmd = lpeg.Cs(dblbkslash * ascii^1 * cmdstar^-1)
54local rawcmd = lpeg.Cs(dblbkslash * ascii^1) 53local rawcmd = lpeg.Cs(dblbkslash * ascii^1)
55local aftercmd = lpeg.Cs(lpeg.S("*[{,.?;:'`\"") + dblbkslash) 54local aftercmd = lpeg.Cs(lpeg.S("*[{,.?;:'`\"") + dblbkslash)
56local cmdargs = lpeg.Cs(spce^-1 * bsqbracketsii * bcbracesii * bsqbrackets^-1) 55local cmdargs = lpeg.Cs(spce^-1 * bsqbracketsii * bcbracesii * bsqbrackets^-1)
56local cmdargsnobs = lpeg.Cs(spce^-1 * bcbracesii)
57local arbargs = lpeg.Cs(spce^-1 * bsqbrackets^-1 * bcbraces) 57local arbargs = lpeg.Cs(spce^-1 * bsqbrackets^-1 * bcbraces)
58local baytargs = lpeg.Cs(spce * bcbraces * bsqbrackets^-1 * bcbraces) 58local baytargs = lpeg.Cs(spce * bcbraces * bsqbrackets^-1 * bcbraces)
59local arind = lpeg.Cs(dblbkslash * lpeg.P("arind") * spce^-1 * bsqbracketsii) 59local arind = lpeg.Cs(dblbkslash * lpeg.P("arind") * spce^-1 * bsqbracketsii)
60 60
61local function protectarb(str) 61local function protectarb(str)
62 -- \App[]{}{}
63 str = string.gsub(str, "(\\App%s?)(%b{})(%b{})", "%1[]%2%3")
64 str = gsub(str, lpeg.P("\\App") * spcenc^-1 * bsqbrackets * bcbraces * bcbraces,
65 function(opt, lem, rdg)
66 opt = string.sub(opt, 2, -2)
67 lem = string.sub(lem, 2, -2)
68 rdg = string.sub(rdg, 2, -2)
69 if opt == ""
70 then
71 return string.format("\\app{%s%s}", lem, rdg)
72 else
73 return string.format("\\app[%s]{%s%s}", opt, lem, rdg)
74 end
75 end)
62 str = string.gsub(str, "(\\arb%s?)(%[.-%])(%b{})", "\\al@brk{\\arb%2%3}") 76 str = string.gsub(str, "(\\arb%s?)(%[.-%])(%b{})", "\\al@brk{\\arb%2%3}")
63 str = string.gsub(str, "(\\LR%s?)(%b{})", "\\@LR%2") 77 str = string.gsub(str, "(\\LR%s?)(%b{})", "\\@LR%2")
64 str = string.gsub(str, "(\\RL%s?)(%b{})", "\\@RL%2") 78 str = string.gsub(str, "(\\RL%s?)(%b{})", "\\@RL%2")
@@ -90,7 +104,6 @@ local outofarb = {
90local albrkcmds = { 104local albrkcmds = {
91 "begin", 105 "begin",
92 "end", 106 "end",
93 "par",
94 "LRmarginpar", 107 "LRmarginpar",
95 "arbmark", 108 "arbmark",
96 "abjad", 109 "abjad",
@@ -121,13 +134,15 @@ function arabluatex.mkarbbreak(str, opt)
121end 134end
122 135
123local function breakcmd(str) 136local function breakcmd(str)
137 -- \par
138 str = gsub(str, dblbkslash * lpeg.Cs("par") * cmdargsnobs, "\\al@brk{%1%2%3}")
124 -- process \item[], then \item[] 139 -- process \item[], then \item[]
125 str = string.gsub(str, "\\(item.?)(%b[])", 140 str = string.gsub(str, "\\(item.?)(%b[])",
126 function(tag, body) 141 function(tag, body)
127 body = string.sub(body, 2, -2) 142 body = string.sub(body, 2, -2)
128 return string.format("\\al@brk{\\item[\\arb{%s}] }", body) 143 return string.format("\\al@brk{\\item[\\arb{%s}] }", body)
129 end) 144 end)
130 str = string.gsub(str, "(\\item)(%s+)", "%1{}%2") 145 str = string.gsub(str, "(\\item)(%s+)", "%1{}%2")
131 -- \textcolor 146 -- \textcolor
132 str = string.gsub(str, "\\(textcolor%s?)(%b{})(%b{})", 147 str = string.gsub(str, "\\(textcolor%s?)(%b{})(%b{})",
133 function(tag, bodycolor, bodytext) 148 function(tag, bodycolor, bodytext)
@@ -189,10 +204,15 @@ local function arbnum(str) -- not used, see below
189 return str 204 return str
190end 205end
191 206
192local function indnum(str) 207local function indnum(str, dir)
193 str = string.gsub(str, "([0-9%,%-%/]+)", function(num) 208 if dir == "ltr"
194 return string.reverse(num) 209 then
195 end) 210 -- do nothing
211 else
212 str = string.gsub(str, "([0-9%,%-%/]+)", function(num)
213 return string.reverse(num)
214 end)
215 end
196 if indorarbnum == "Indian" 216 if indorarbnum == "Indian"
197 then 217 then
198 for i = 1,#numbers do 218 for i = 1,#numbers do
@@ -820,16 +840,16 @@ local function processarbtoutf(str)
820 end) 840 end)
821 return string.format("%s{%s}", tag, body) 841 return string.format("%s{%s}", tag, body)
822 end) 842 end)
823 str = string.gsub(str, "(\\bayt)%s?(%b{})(%b[])(%b{})", function(tag, argi, argii, argiii) 843 str = string.gsub(str, "(\\bayt)%s?(%+?)(%b{})(%b[])(%b{})", function(tag, plus, argi, argii, argiii)
824 argi = string.sub(argi, 2, -2) 844 argi = string.sub(argi, 2, -2)
825 argii = string.sub(argii, 2, -2) 845 argii = string.sub(argii, 2, -2)
826 argiii = string.sub(argiii, 2, -2) 846 argiii = string.sub(argiii, 2, -2)
827 return string.format("%s*{\\arb{%s}}[\\arb{%s}]{\\arb{%s}}", tag, argi, argii, argiii) 847 return string.format("%s%s*{\\arb{%s}}[\\arb{%s}]{\\arb{%s}}", tag, argi, argii, argiii)
828 end) 848 end)
829 str = string.gsub(str, "(\\bayt)%s?(%b{})(%b{})", function(tag, argi, argii) 849 str = string.gsub(str, "(\\bayt)%s?(%+?)(%b{})(%b{})", function(tag, plus, argi, argii)
830 argi = string.sub(argi, 2, -2) 850 argi = string.sub(argi, 2, -2)
831 argii = string.sub(argii, 2, -2) 851 argii = string.sub(argii, 2, -2)
832 return string.format("%s*{\\arb{%s}}{\\arb{%s}}", tag, argi, argii) 852 return string.format("%s%s*{\\arb{%s}}{\\arb{%s}}", tag, plus, argi, argii)
833 end) 853 end)
834 str = string.gsub(str, "(\\prname)%s?(%b{})", function(tag, body) 854 str = string.gsub(str, "(\\prname)%s?(%b{})", function(tag, body)
835 body = string.sub(body, 2, -2) 855 body = string.sub(body, 2, -2)
@@ -1287,7 +1307,9 @@ end
1287function arabluatex.ayah(str) 1307function arabluatex.ayah(str)
1288 if tonumber(str) ~= nil and str.len(str) < 4 then 1308 if tonumber(str) ~= nil and str.len(str) < 4 then
1289 if tex.textdir == "TRT" then 1309 if tex.textdir == "TRT" then
1290 str = indnum(str).."^^^^06dd" 1310 -- end of ayah is typeset LTR and the number comes after the
1311 -- sign (see https://github.com/aliftype/amiri/issues/263#issuecomment-1872979252)
1312 str = "{\\textdir TLT ".."^^^^06dd"..indnum(str, "ltr").."}"
1291 elseif tex.textdir == "TLT" then 1313 elseif tex.textdir == "TLT" then
1292 str = "\\arb[trans]{("..str..")}" 1314 str = "\\arb[trans]{("..str..")}"
1293 end 1315 end
diff --git a/arabluatex_fullvoc.lua b/arabluatex_fullvoc.lua
index e34f12d..7483734 100644
--- a/arabluatex_fullvoc.lua
+++ b/arabluatex_fullvoc.lua
@@ -2,24 +2,23 @@
2This file is part of the `arabluatex' package 2This file is part of the `arabluatex' package
3 3
4ArabLuaTeX -- Processing ArabTeX notation under LuaLaTeX 4ArabLuaTeX -- Processing ArabTeX notation under LuaLaTeX
5Copyright (C) 2016--2022 Robert Alessi 5Copyright (C) 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023
6Robert Alessi <alessi@robertalessi.net>
6 7
7Please send error reports and suggestions for improvements to Robert 8Permission to use, copy, modify, and distribute this software for any
8Alessi <alessi@robertalessi.net> 9purpose with or without fee is hereby granted, provided that the above
9 10copyright notice and this permission notice appear in all copies.
10This program is free software: you can redistribute it and/or modify
11it under the terms of the GNU General Public License as published by
12the Free Software Foundation, either version 3 of the License, or
13(at your option) any later version.
14 11
15This program is distributed in the hope that it will be useful, but 12THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
16WITHOUT ANY WARRANTY; without even the implied warranty of 13WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
17MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
18General Public License for more details. 15ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
16WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
17ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
18OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
19 19
20You should have received a copy of the GNU General Public License 20Please send error reports and suggestions for improvements to Robert
21along with this program. If not, see 21Alessi <alessi@robertalessi.net>
22<http://www.gnu.org/licenses/>.
23--]] 22--]]
24 23
25hamzafv = { 24hamzafv = {
diff --git a/arabluatex_novoc.lua b/arabluatex_novoc.lua
index f2d0d5a..1800655 100644
--- a/arabluatex_novoc.lua
+++ b/arabluatex_novoc.lua
@@ -2,24 +2,23 @@
2This file is part of the `arabluatex' package 2This file is part of the `arabluatex' package
3 3
4ArabLuaTeX -- Processing ArabTeX notation under LuaLaTeX 4ArabLuaTeX -- Processing ArabTeX notation under LuaLaTeX
5Copyright (C) 2016--2022 Robert Alessi 5Copyright (C) 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023
6Robert Alessi <alessi@robertalessi.net>
6 7
7Please send error reports and suggestions for improvements to Robert 8Permission to use, copy, modify, and distribute this software for any
8Alessi <alessi@robertalessi.net> 9purpose with or without fee is hereby granted, provided that the above
9 10copyright notice and this permission notice appear in all copies.
10This program is free software: you can redistribute it and/or modify
11it under the terms of the GNU General Public License as published by
12the Free Software Foundation, either version 3 of the License, or
13(at your option) any later version.
14 11
15This program is distributed in the hope that it will be useful, but 12THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
16WITHOUT ANY WARRANTY; without even the implied warranty of 13WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
17MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
18General Public License for more details. 15ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
16WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
17ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
18OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
19 19
20You should have received a copy of the GNU General Public License 20Please send error reports and suggestions for improvements to Robert
21along with this program. If not, see 21Alessi <alessi@robertalessi.net>
22<http://www.gnu.org/licenses/>.
23--]] 22--]]
24 23
25tanwinnv = { 24tanwinnv = {
diff --git a/arabluatex_trans.lua b/arabluatex_trans.lua
index 8791b62..c3c21e1 100644
--- a/arabluatex_trans.lua
+++ b/arabluatex_trans.lua
@@ -2,24 +2,23 @@
2This file is part of the `arabluatex' package 2This file is part of the `arabluatex' package
3 3
4ArabLuaTeX -- Processing ArabTeX notation under LuaLaTeX 4ArabLuaTeX -- Processing ArabTeX notation under LuaLaTeX
5Copyright (C) 2016--2022 Robert Alessi 5Copyright (C) 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023
6Robert Alessi <alessi@robertalessi.net>
6 7
7Please send error reports and suggestions for improvements to Robert 8Permission to use, copy, modify, and distribute this software for any
8Alessi <alessi@robertalessi.net> 9purpose with or without fee is hereby granted, provided that the above
9 10copyright notice and this permission notice appear in all copies.
10This program is free software: you can redistribute it and/or modify
11it under the terms of the GNU General Public License as published by
12the Free Software Foundation, either version 3 of the License, or
13(at your option) any later version.
14 11
15This program is distributed in the hope that it will be useful, but 12THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
16WITHOUT ANY WARRANTY; without even the implied warranty of 13WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
17MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
18General Public License for more details. 15ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
16WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
17ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
18OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
19 19
20You should have received a copy of the GNU General Public License 20Please send error reports and suggestions for improvements to Robert
21along with this program. If not, see 21Alessi <alessi@robertalessi.net>
22<http://www.gnu.org/licenses/>.
23--]] 22--]]
24 23
25-- common 24-- common
diff --git a/arabluatex_voc.lua b/arabluatex_voc.lua
index 4db5d3a..6211b4b 100644
--- a/arabluatex_voc.lua
+++ b/arabluatex_voc.lua
@@ -2,24 +2,23 @@
2This file is part of the `arabluatex' package 2This file is part of the `arabluatex' package
3 3
4ArabLuaTeX -- Processing ArabTeX notation under LuaLaTeX 4ArabLuaTeX -- Processing ArabTeX notation under LuaLaTeX
5Copyright (C) 2016--2022 Robert Alessi 5Copyright (C) 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023
6Robert Alessi <alessi@robertalessi.net>
6 7
7Please send error reports and suggestions for improvements to Robert 8Permission to use, copy, modify, and distribute this software for any
8Alessi <alessi@robertalessi.net> 9purpose with or without fee is hereby granted, provided that the above
9 10copyright notice and this permission notice appear in all copies.
10This program is free software: you can redistribute it and/or modify
11it under the terms of the GNU General Public License as published by
12the Free Software Foundation, either version 3 of the License, or
13(at your option) any later version.
14 11
15This program is distributed in the hope that it will be useful, but 12THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
16WITHOUT ANY WARRANTY; without even the implied warranty of 13WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
17MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
18General Public License for more details. 15ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
16WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
17ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
18OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
19 19
20You should have received a copy of the GNU General Public License 20Please send error reports and suggestions for improvements to Robert
21along with this program. If not, see 21Alessi <alessi@robertalessi.net>
22<http://www.gnu.org/licenses/>.
23--]] 22--]]
24 23
25arbmarks = { 24arbmarks = {
diff --git a/makefile b/makefile
index 900ae1d..d88512f 100644
--- a/makefile
+++ b/makefile
@@ -1,5 +1,6 @@
1pkg := arabluatex 1pkg := arabluatex
2ver := $(shell ltxfileinfo -v $(pkg).dtx|sed -e 's/^v//') 2#VERS := $(shell ltxfileinfo -v $(pkg).dtx|sed -e 's/^v//')
3VERS := $(shell typeoutfileinfo $(pkg).dtx | egrep -o '\+.*$$' | awk '{ print $$6 }' | sed -e 's/^v//')
3TEXMFDIR := $(shell kpsewhich -expand-var='$$TEXMFHOME') 4TEXMFDIR := $(shell kpsewhich -expand-var='$$TEXMFHOME')
4HOMEDIR := $$HOME 5HOMEDIR := $$HOME
5CMP = lualatex-dev 6CMP = lualatex-dev
@@ -28,20 +29,20 @@ local: clean sty
28 mkdir -p $(TEXMFDIR)/tex/lualatex/arabluatex; \ 29 mkdir -p $(TEXMFDIR)/tex/lualatex/arabluatex; \
29 fi 30 fi
30 cp $(pkg)*.{sty,lua} $(TEXMFDIR)/tex/lualatex/arabluatex 31 cp $(pkg)*.{sty,lua} $(TEXMFDIR)/tex/lualatex/arabluatex
31 if [ ! -d "$(HOMEDIR)/.emacs.d/auctex/auto" ]; then \ 32 if [ ! -d "$(HOMEDIR)/.emacs.d/auctex/style" ]; then \
32 mkdir -p $(HOMEDIR)/.emacs.d/auctex/auto; \ 33 mkdir -p $(HOMEDIR)/.emacs.d/auctex/style; \
33 fi 34 fi
34 cp $(pkg)*.el $(HOMEDIR)/.emacs.d/auctex/auto 35 cp $(pkg)*.el $(HOMEDIR)/.emacs.d/auctex/style
35 36
36inst: doc 37inst: doc
37 if [ ! -d "$(TEXMFDIR)/tex/lualatex/arabluatex" ]; then \ 38 if [ ! -d "$(TEXMFDIR)/tex/lualatex/arabluatex" ]; then \
38 mkdir -p $(TEXMFDIR)/tex/lualatex/arabluatex; \ 39 mkdir -p $(TEXMFDIR)/tex/lualatex/arabluatex; \
39 fi 40 fi
40 cp $(pkg)*.{sty,lua} $(TEXMFDIR)/tex/lualatex/arabluatex 41 cp $(pkg)*.{sty,lua} $(TEXMFDIR)/tex/lualatex/arabluatex
41 if [ ! -d "$(HOMEDIR)/.emacs.d/auctex/auto" ]; then \ 42 if [ ! -d "$(HOMEDIR)/.emacs.d/auctex/style" ]; then \
42 mkdir -p $(HOMEDIR)/.emacs.d/auctex/auto; \ 43 mkdir -p $(HOMEDIR)/.emacs.d/auctex/style; \
43 fi 44 fi
44 cp $(pkg)*.el $(HOMEDIR)/.emacs.d/auctex/auto 45 cp $(pkg)*.el $(HOMEDIR)/.emacs.d/auctex/style
45 if [ ! -d "$(TEXMFDIR)/doc/lualatex/arabluatex" ]; then \ 46 if [ ! -d "$(TEXMFDIR)/doc/lualatex/arabluatex" ]; then \
46 mkdir -p $(TEXMFDIR)/doc/lualatex/arabluatex; \ 47 mkdir -p $(TEXMFDIR)/doc/lualatex/arabluatex; \
47 fi 48 fi
@@ -49,16 +50,19 @@ inst: doc
49 cp -r samples/ $(TEXMFDIR)/doc/lualatex/arabluatex 50 cp -r samples/ $(TEXMFDIR)/doc/lualatex/arabluatex
50 51
51auctex: clean 52auctex: clean
52 if [ ! -d "$(HOMEDIR)/.emacs.d/auctex/auto" ]; then \ 53 if [ ! -d "$(HOMEDIR)/.emacs.d/auctex/style" ]; then \
53 mkdir -p $(HOMEDIR)/.emacs.d/auctex/auto; \ 54 mkdir -p $(HOMEDIR)/.emacs.d/auctex/style; \
54 fi 55 fi
55 cp $(pkg)*.el $(HOMEDIR)/.emacs.d/auctex/auto 56 cp $(pkg)*.el $(HOMEDIR)/.emacs.d/auctex/style
56 57
57zip: all 58zip: all
58 ln -sf . $(pkg) 59 ln -sf . $(pkg)
59 zip -Drq $(PWD)/$(pkg)-$(ver).zip $(pkg)/{samples,README.md,$(pkg)*.{pdf,sty,lua,el}} 60 zip -Drq $(PWD)/$(pkg)-$(VERS).zip $(pkg)/{samples,README.md,$(pkg)*.{pdf,sty,lua,el}}
60 rm $(pkg) 61 rm $(pkg)
61 62
63hal: clean
64 zip -Drq $(PWD)/$(pkg)-$(VERS).zip *
65
62package: clean all 66package: clean all
63 mkdir -p arabluatex/samples/ 67 mkdir -p arabluatex/samples/
64 cp *.{lua,ins,dtx,md,pdf} makefile README.tex arabluatex/ # .bib is in dtx 68 cp *.{lua,ins,dtx,md,pdf} makefile README.tex arabluatex/ # .bib is in dtx
@@ -71,21 +75,21 @@ package: clean all
71 mkdir -p source/lualatex/arabluatex/ 75 mkdir -p source/lualatex/arabluatex/
72 cp *.{ins,dtx,tex,md} makefile source/lualatex/arabluatex/ # .bib is in dtx 76 cp *.{ins,dtx,tex,md} makefile source/lualatex/arabluatex/ # .bib is in dtx
73 zip -r arabluatex.tds.zip tex doc source 77 zip -r arabluatex.tds.zip tex doc source
74 tar czf arabluatex-$(ver).tar.gz arabluatex.tds.zip arabluatex/ 78 tar czf arabluatex-$(VERS).tar.gz arabluatex.tds.zip arabluatex/
75 79
76clean: 80clean:
77 rm -rf $(TEXMFDIR)/{tex,doc}/lualatex/arabluatex/ 81 rm -rf $(TEXMFDIR)/{tex,doc}/lualatex/arabluatex/
78 rm -rf $(HOMEDIR)/.emacs.d/auctex/auto/arabluatex*.{el,elc} 82 rm -rf $(HOMEDIR)/.emacs.d/auctex/style/arabluatex*.{el,elc}
79 rm -rf tex/ doc/ source/ auto/ 83 rm -rf tex/ doc/ source/ auto/
80 rm -rf arabluatex/ 84 rm -rf arabluatex/
81 rm -rf saved/ TMP/ _minted-arabluatex/ 85 rm -rf saved/ TMP/ _minted-arabluatex/
82 find ./samples/ | grep -v "\./samples/$$" | grep -v ".*tex$$" | xargs rm -rf 86 find ./samples/ | grep -v "\./samples/$$" | grep -v ".*tex$$" | xargs rm -rf
83 mkdir saved 87 mkdir saved
84 cp *.{lua,ins,dtx,tex,el} makefile saved # .bib is in dtx 88 cp *.{lua,ins,dtx,tex,el} AUTHORS.md LICENSE makefile saved # .bib is in dtx
85 rm *.* 89 rm *.*
86 cp saved/* . 90 cp saved/* .
87 rm -rf saved/ 91 rm -rf saved/
88 pandoc -s README.tex -o README.md && sed -i 's/{#.*}//g' README.md 92 pandoc README.tex -o README.md && sed -i 's/{#.*}//g' README.md
89 pandoc -s README.tex -o about.html 93 pandoc README.tex -o about.html
90 94
91.PHONY: sty doc all local inst auctex zip package clean 95.PHONY: sty doc all local inst auctex zip package clean
diff --git a/samples/al-Jahiz.tex b/samples/al-Jahiz.tex
index 74d8973..d7dd3f7 100644
--- a/samples/al-Jahiz.tex
+++ b/samples/al-Jahiz.tex
@@ -28,9 +28,9 @@
28\SetArbEasy 28\SetArbEasy
29 29
30\PassOptionsToPackage{pdfa}{hyperref} 30\PassOptionsToPackage{pdfa}{hyperref}
31\usepackage{hyperxmp}
32\usepackage{hyperref} 31\usepackage{hyperref}
33\hypersetup{colorlinks, linkcolor=blue, pdfauthor={Robert Alessi}} 32\hypersetup{colorlinks, linkcolor=blue, pdfauthor={Robert Alessi}}
33\usepackage{hyperxmp}
34 34
35\begin{document} 35\begin{document}
36\begin{filecontents*}{dajaja.tex} 36\begin{filecontents*}{dajaja.tex}
diff --git a/samples/exporting.tex b/samples/exporting.tex
index 7f22c2c..16066f0 100644
--- a/samples/exporting.tex
+++ b/samples/exporting.tex
@@ -134,10 +134,10 @@
134{\textquoteright}{\textquoteleft} 134{\textquoteright}{\textquoteleft}
135 135
136\PassOptionsToPackage{pdfa}{hyperref} 136\PassOptionsToPackage{pdfa}{hyperref}
137\usepackage{hyperxmp}
138\usepackage{hyperref} 137\usepackage{hyperref}
139\hypersetup{colorlinks, linkcolor=blue, pdfauthor={Robert 138\hypersetup{colorlinks, linkcolor=blue, pdfauthor={Robert
140 Alessi}} 139 Alessi}}
140\usepackage{hyperxmp}
141 141
142\title{\large Exporting Unicode Arabic to an external 142\title{\large Exporting Unicode Arabic to an external
143 .tex source file} 143 .tex source file}