diff options
-rw-r--r-- | AUTHORS.md | 8 | ||||
-rw-r--r-- | LICENSE | 17 | ||||
-rw-r--r-- | README.md | 123 | ||||
-rw-r--r-- | README.tex | 81 | ||||
-rw-r--r-- | about.html | 134 | ||||
-rw-r--r-- | arabluatex.dtx | 1300 | ||||
-rw-r--r-- | arabluatex.el | 35 | ||||
-rw-r--r-- | arabluatex.ins | 66 | ||||
-rw-r--r-- | arabluatex.lua | 125 | ||||
-rw-r--r-- | arabluatex_fullvoc.lua | 67 | ||||
-rw-r--r-- | arabluatex_novoc.lua | 45 | ||||
-rw-r--r-- | arabluatex_trans.lua | 203 | ||||
-rw-r--r-- | arabluatex_voc.lua | 66 | ||||
-rw-r--r-- | makefile | 52 | ||||
-rw-r--r-- | samples/al-Jahiz.tex | 5 | ||||
-rw-r--r-- | samples/exporting.tex | 2 |
16 files changed, 1056 insertions, 1273 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 @@ | |||
1 | Author of the `arabluatex` package | ||
2 | ================================== | ||
3 | |||
4 | Robert 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> | ||
@@ -0,0 +1,17 @@ | |||
1 | arabluatex -- ArabTeX for LuaLaTeX | ||
2 | ---------------------------------- | ||
3 | |||
4 | Copyright (c) 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 | ||
5 | Robert Alessi <alessi@robertalessi.net> | ||
6 | |||
7 | Permission to use, copy, modify, and distribute this software for any | ||
8 | purpose with or without fee is hereby granted, provided that the above | ||
9 | copyright notice and this permission notice appear in all copies. | ||
10 | |||
11 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | ||
12 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | ||
13 | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | ||
14 | ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | ||
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. | ||
@@ -1,55 +1,47 @@ | |||
1 | --- | 1 | # Overview |
2 | author: | 2 | |
3 | - Robert Alessi | 3 | This package provides for [LuaLaTeX](https://luatex.org) an |
4 | title: 'The arabluatex package -- README file' | 4 | [ArabTeX](https://ctan.org/pkg/arabtex)-like interface to generate |
5 | --- | 5 | Arabic writing from an [ascii]{.smallcaps} transliteration. It is |
6 | 6 | particularly well-suited for complex documents such as technical | |
7 | \maketitle | 7 | documents or critical editions where a lot of left-to-right commands |
8 | Overview | 8 | intertwine with Arabic writing. arabluatex is able to process any |
9 | ======== | 9 | ArabTeX input notation. Its output can be set in the same modes of |
10 | 10 | vocalization as ArabTeX, or in different roman transliterations. It | |
11 | This package provides for [LuaLaTeX](http://luatex.org) an | 11 | further allows many typographical refinements. It can also operate with |
12 | [ArabTeX](http://ctan.org/pkg/arabtex)-like interface to generate Arabic | 12 | the [ekdosis](https://ctan.org/pkg/ekdosis) package to produce from |
13 | writing from an [ascii]{.smallcaps} transliteration. It is particularly | 13 | `.tex` source files, in addition to printed books, `TEI xml` compliant |
14 | well-suited for complex documents such as technical documents or | 14 | critical editions and/or lexicons that can be searched, analyzed and |
15 | critical editions where a lot of left-to-right commands intertwine with | 15 | correlated in various ways. |
16 | Arabic writing. arabluatex is able to process any ArabTeX input | 16 | |
17 | notation. Its output can be set in the same modes of vocalization as | 17 | # License and disclamer |
18 | ArabTeX, or in different roman transliterations. It further allows many | ||
19 | typographical refinements. It will eventually interact with some other | ||
20 | packages yet to come to produce from `.tex` source files, in addition to | ||
21 | printed books, `TEI xml` compliant critical editions and/or lexicons | ||
22 | that can be searched, analyzed and correlated in various ways. | ||
23 | |||
24 | License and disclamer | ||
25 | ===================== | ||
26 | 18 | ||
27 | ArabLuaTeX -- Processing ArabTeX notation under LuaLaTeX | 19 | ArabLuaTeX -- Processing ArabTeX notation under LuaLaTeX |
28 | 20 | ||
29 | Copyright ⓒ 2016--2020 Robert Alessi | 21 | Copyright ⓒ 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Robert Alessi |
22 | \<`alessi@robertalessi.net`\> | ||
23 | |||
24 | Permission to use, copy, modify, and distribute this software for any | ||
25 | purpose with or without fee is hereby granted, provided that the above | ||
26 | copyright notice and this permission notice appear in all copies. | ||
27 | |||
28 | THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL | ||
29 | WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES | ||
30 | OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE | ||
31 | FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY | ||
32 | DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER | ||
33 | IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING | ||
34 | OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | ||
30 | 35 | ||
31 | Please send error reports and suggestions for improvements to Robert | 36 | Please send error reports and suggestions for improvements to Robert |
32 | Alessi: | 37 | Alessi: |
33 | 38 | ||
34 | - email: <alessi@robertalessi.net> | 39 | - email: <alessi@robertalessi.net> |
35 | 40 | ||
36 | - website: <http://www.robertalessi.net/arabluatex> | 41 | - website: <https://sr.ht/~ralessi/arabluatex> |
37 | 42 | ||
38 | - comments, feature requests, bug reports: | 43 | - comments, feature requests, bug reports: |
39 | <https://gitlab.com/ralessi/arabluatex/issues> | 44 | <https://todo.sr.ht/~ralessi/arabluatex> |
40 | |||
41 | This program is free software: you can redistribute it and/or modify it | ||
42 | under the terms of the GNU General Public License as published by the | ||
43 | Free Software Foundation, either version 3 of the License, or (at your | ||
44 | option) any later version. | ||
45 | |||
46 | This program is distributed in the hope that it will be useful, but | ||
47 | WITHOUT ANY WARRANTY; without even the implied warranty of | ||
48 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General | ||
49 | Public License for more details. | ||
50 | |||
51 | You should have received a copy of the GNU General Public License along | ||
52 | with this program. If not, see \<http://www.gnu.org/licenses/\>. | ||
53 | 45 | ||
54 | This release of arabluatex consists of the following source files: | 46 | This release of arabluatex consists of the following source files: |
55 | 47 | ||
@@ -67,20 +59,7 @@ This release of arabluatex consists of the following source files: | |||
67 | 59 | ||
68 | - `arabluatex_trans.lua` | 60 | - `arabluatex_trans.lua` |
69 | 61 | ||
70 | License applicable to the documentation | 62 | # Installation |
71 | --------------------------------------- | ||
72 | |||
73 | Copyright ⓒ 2016--2020 Robert Alessi | ||
74 | |||
75 | Permission is granted to copy, distribute and/or modify this document | ||
76 | under the terms of the GNU Free Documentation License, Version 1.3 or | ||
77 | any later version published by the Free Software Foundation; with no | ||
78 | Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A | ||
79 | copy of the license is included in the section entitled "GNU Free | ||
80 | Documentation License" of the documentation. | ||
81 | |||
82 | Installation | ||
83 | ============ | ||
84 | 63 | ||
85 | 1. Run `'lualatex arabluatex.ins'` to produce the `arabluatex.sty` | 64 | 1. Run `'lualatex arabluatex.ins'` to produce the `arabluatex.sty` |
86 | file; | 65 | file; |
@@ -107,41 +86,39 @@ Installation | |||
107 | `arabluatex.el` to their `~/.emacs.d/auctex/auto` local directory. | 86 | `arabluatex.el` to their `~/.emacs.d/auctex/auto` local directory. |
108 | This will enable the appropriate hooks for ArabLuaTeX in AUCTeX. | 87 | This will enable the appropriate hooks for ArabLuaTeX in AUCTeX. |
109 | 88 | ||
110 | Development, Git Repository | 89 | # Development, Git Repository |
111 | =========================== | ||
112 | 90 | ||
113 | Browse the code | 91 | ## Browse the code |
114 | --------------- | ||
115 | 92 | ||
116 | You can browse ArabLuaTeX repository on the web: | 93 | You can browse ArabLuaTeX repository on the web: |
117 | <http://git.robertalessi.net/arabluatex> | 94 | <http://git.robertalessi.net/arabluatex>\ |
95 | or\ | ||
96 | <https://sr.ht/~ralessi/arabluatex> | ||
118 | 97 | ||
119 | From this page, you can download all the releases of ArabLuaTeX. For | 98 | From this page, you can download all the releases of ArabLuaTeX. For |
120 | instructions on how to install ArabLuaTeX, please see above. | 99 | instructions on how to install ArabLuaTeX, please see above. |
121 | 100 | ||
122 | Comments, Feature requests, Bug Reports | 101 | ## Comments, Feature requests, Bug Reports |
123 | --------------------------------------- | ||
124 | 102 | ||
125 | <https://gitlab.com/ralessi/arabluatex/issues> | 103 | <https://todo.sr.ht/~ralessi/arabluatex> |
126 | 104 | ||
127 | Download the repository | 105 | ## Download the repository |
128 | ----------------------- | ||
129 | 106 | ||
130 | ArabLuaTeX development is facilitated by git, a distributed version | 107 | ArabLuaTeX development is facilitated by git, a distributed version |
131 | control system. You will need to install git (most GNU/Linux | 108 | control system. You will need to install git (most Unix/Linux |
132 | distributions package it in their repositories). | 109 | distributions package it in their repositories). |
133 | 110 | ||
134 | Use this command to download the repository | 111 | Use this command to download the repository |
135 | 112 | ||
136 | git clone http://git.robertalessi.net/arabluatex | 113 | git clone https://git.sr.ht/~ralessi/arabluatex |
137 | 114 | ||
138 | A new directory named arabluatex will have been created, containing | 115 | A new directory named arabluatex will have been created, containing |
139 | ArabLuaTeX. | 116 | ArabLuaTeX. |
140 | 117 | ||
141 | Git hosting | 118 | ## Git hosting |
142 | ----------- | ||
143 | 119 | ||
144 | Make an account on <https://gitlab.com> and navigate (while logged in) | 120 | Make an account on <https://sr.ht> and navigate (while logged in) to |
145 | to <https://gitlab.com/ralessi/arabluatex>. Click *Fork* and you will | 121 | <https://git.sr.ht/~ralessi/arabluatex>. Click *Clone repo to your |
146 | have in your account your own repository of `arabluatex` where you will | 122 | account* and you will have in your account your own repository of |
147 | be able to make whatever changes you like to. | 123 | `arabluatex` where you will be able to make whatever changes you like |
124 | to. | ||
@@ -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} |
19 | This package provides for \href{http://luatex.org}{Lua\LaTeX} an | 19 | This package provides for \href{https://luatex.org}{Lua\LaTeX} |
20 | \href{http://ctan.org/pkg/arabtex}{Arab\TeX}-like interface to | 20 | an \href{https://ctan.org/pkg/arabtex}{Arab\TeX}-like interface to |
21 | generate Arabic writing from an \textsc{ascii} transliteration. It is | 21 | generate Arabic writing from an \textsc{ascii} transliteration. It is |
22 | particularly well-suited for complex documents such as technical | 22 | particularly well-suited for complex documents such as technical |
23 | documents or critical editions where a lot of left-to-right commands | 23 | documents or critical editions where a lot of left-to-right commands |
24 | intertwine with Arabic writing. arabluatex is able to process any | 24 | intertwine with Arabic writing. arabluatex is able to process any |
25 | Arab\TeX\ input notation. Its output can be set in the same modes of | 25 | Arab\TeX\ input notation. Its output can be set in the same modes of |
26 | vocalization as Arab\TeX, or in different roman transliterations. It | 26 | vocalization as Arab\TeX, or in different roman transliterations. It |
27 | further allows many typographical refinements. It will eventually | 27 | further allows many typographical refinements. It can also operate |
28 | interact with some other packages yet to come to produce from | 28 | with the \href{https://ctan.org/pkg/ekdosis}{ekdosis} package to |
29 | \verb|.tex| source files, in addition to printed books, \texttt{TEI | 29 | produce 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 |
31 | searched, analyzed and correlated in various ways. | 31 | be searched, analyzed and correlated in various ways. |
32 | 32 | ||
33 | \section*{License and disclamer} | 33 | \section*{License and disclamer} |
34 | ArabLuaTeX -- Processing ArabTeX notation under LuaLaTeX | 34 | ArabLuaTeX -- Processing ArabTeX notation under LuaLaTeX |
35 | 35 | ||
36 | Copyright ⓒ 2016--2020 Robert Alessi | 36 | Copyright ⓒ 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 |
37 | Robert Alessi <\verb|alessi@robertalessi.net|> | ||
38 | |||
39 | Permission to use, copy, modify, and distribute this software for any | ||
40 | purpose with or without fee is hereby granted, provided that the above | ||
41 | copyright notice and this permission notice appear in all copies. | ||
42 | |||
43 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | ||
44 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | ||
45 | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | ||
46 | ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | ||
47 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | ||
48 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | ||
49 | OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | ||
37 | 50 | ||
38 | Please send error reports and suggestions for improvements to Robert | 51 | Please send error reports and suggestions for improvements to Robert |
39 | Alessi: | 52 | Alessi: |
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 | ||
47 | This program is free software: you can redistribute it and/or modify | ||
48 | it under the terms of the GNU General Public License as published by | ||
49 | the Free Software Foundation, either version 3 of the License, or | ||
50 | (at your option) any later version. | ||
51 | |||
52 | This program is distributed in the hope that it will be useful, but | ||
53 | WITHOUT ANY WARRANTY; without even the implied warranty of | ||
54 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
55 | General Public License for more details. | ||
56 | |||
57 | You should have received a copy of the GNU General Public License | ||
58 | along with this program. If not, see | ||
59 | <http://www.gnu.org/licenses/>. | ||
60 | |||
61 | This release of arabluatex consists of the following | 60 | This release of arabluatex consists of the following |
62 | source files: | 61 | source 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} | ||
75 | Copyright ⓒ 2016--2020 Robert Alessi | ||
76 | |||
77 | Permission is granted to copy, distribute and/or modify this document | ||
78 | under the terms of the GNU Free Documentation License, Version 1.3 or | ||
79 | any later version published by the Free Software Foundation; with no | ||
80 | Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A | ||
81 | copy of the license is included in the section entitled ``GNU Free | ||
82 | Documentation 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 | ||
113 | You can browse ArabLua\TeX\ repository on the web: | 101 | You can browse ArabLua\TeX\ repository on the web: |
114 | \url{http://git.robertalessi.net/arabluatex} | 102 | \url{http://git.robertalessi.net/arabluatex}\\ |
103 | or\\ | ||
104 | \url{https://sr.ht/~ralessi/arabluatex} | ||
115 | 105 | ||
116 | From this page, you can download all the releases of ArabLua\TeX. For | 106 | From this page, you can download all the releases of ArabLua\TeX. For |
117 | instructions on how to install ArabLua\TeX, please see above. | 107 | instructions 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} |
125 | ArabLua\TeX\ development is facilitated by git, a distributed version | 115 | ArabLua\TeX\ development is facilitated by git, a distributed version |
126 | control system. You will need to install git (most GNU/Linux | 116 | control system. You will need to install git (most Unix/Linux |
127 | distributions package it in their repositories). | 117 | distributions package it in their repositories). |
128 | 118 | ||
129 | Use this command to download the repository | 119 | Use this command to download the repository |
130 | \begin{verbatim} | 120 | \begin{verbatim} |
131 | git clone http://git.robertalessi.net/arabluatex | 121 | git clone https://git.sr.ht/~ralessi/arabluatex |
132 | \end{verbatim} | 122 | \end{verbatim} |
133 | 123 | ||
134 | |||
135 | A new directory named arabluatex will have been created, containing | 124 | A new directory named arabluatex will have been created, containing |
136 | ArabLuaTeX. | 125 | ArabLuaTeX. |
137 | 126 | ||
138 | \subsection*{Git hosting} | 127 | \subsection*{Git hosting} |
139 | \label{sec:git-hosting} | 128 | \label{sec:git-hosting} |
140 | Make an account on \url{https://gitlab.com} and navigate (while | 129 | Make an account on \url{https://sr.ht} and navigate (while logged in) |
141 | logged in) to \url{https://gitlab.com/ralessi/arabluatex}. Click | 130 | to \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 | 132 | repository of \verb|arabluatex| where you will be able to make |
144 | like to. | 133 | whatever changes you like to. |
145 | 134 | ||
146 | \end{document} \ No newline at end of file | 135 | \end{document} \ No newline at end of file |
@@ -1,39 +1,47 @@ | |||
1 | <!DOCTYPE html> | 1 | <h1 class="unnumbered" id="sec:overview">Overview</h1> |
2 | <html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang=""> | 2 | <p>This package provides for <a href="https://luatex.org">LuaLaTeX</a> |
3 | <head> | 3 | an <a href="https://ctan.org/pkg/arabtex">ArabTeX</a>-like interface to |
4 | <meta charset="utf-8" /> | 4 | generate Arabic writing from an <span class="smallcaps">ascii</span> |
5 | <meta name="generator" content="pandoc" /> | 5 | transliteration. It is particularly well-suited for complex documents |
6 | <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" /> | 6 | such as technical documents or critical editions where a lot of |
7 | <meta name="author" content="Robert Alessi" /> | 7 | left-to-right commands intertwine with Arabic writing. arabluatex is |
8 | <title>The arabluatex package – README file</title> | 8 | able to process any ArabTeX input notation. Its output can be set in the |
9 | <style type="text/css"> | 9 | same modes of vocalization as ArabTeX, or in different roman |
10 | code{white-space: pre-wrap;} | 10 | transliterations. It further allows many typographical refinements. It |
11 | span.smallcaps{font-variant: small-caps;} | 11 | can also operate with the <a |
12 | span.underline{text-decoration: underline;} | 12 | href="https://ctan.org/pkg/ekdosis">ekdosis</a> package to produce from |
13 | div.column{display: inline-block; vertical-align: top; width: 50%;} | 13 | <code>.tex</code> source files, in addition to printed books, |
14 | </style> | 14 | <code>TEI xml</code> compliant critical editions and/or lexicons that |
15 | </head> | 15 | can be searched, analyzed and correlated in various ways.</p> |
16 | <body> | 16 | <h1 class="unnumbered" id="license-and-disclamer">License and |
17 | <header> | 17 | disclamer</h1> |
18 | <h1 class="title">The arabluatex package – README file</h1> | ||
19 | <p class="author">Robert Alessi</p> | ||
20 | </header> | ||
21 | |||
22 | <h1 id="sec:overview" class="unnumbered unnumbered">Overview</h1> | ||
23 | <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> | ||
24 | <h1 id="license-and-disclamer" class="unnumbered unnumbered">License and disclamer</h1> | ||
25 | <p>ArabLuaTeX – Processing ArabTeX notation under LuaLaTeX</p> | 18 | <p>ArabLuaTeX – Processing ArabTeX notation under LuaLaTeX</p> |
26 | <p>Copyright ⓒ 2016–2020 Robert Alessi</p> | 19 | <p>Copyright ⓒ 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Robert |
27 | <p>Please send error reports and suggestions for improvements to Robert Alessi:</p> | 20 | Alessi <<code>alessi@robertalessi.net</code>></p> |
21 | <p>Permission to use, copy, modify, and distribute this software for any | ||
22 | purpose with or without fee is hereby granted, provided that the above | ||
23 | copyright notice and this permission notice appear in all copies.</p> | ||
24 | <p>THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL | ||
25 | WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES | ||
26 | OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE | ||
27 | FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY | ||
28 | DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER | ||
29 | IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING | ||
30 | OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS | ||
31 | SOFTWARE.</p> | ||
32 | <p>Please send error reports and suggestions for improvements to Robert | ||
33 | Alessi:</p> | ||
28 | <ul> | 34 | <ul> |
29 | <li><p>email: <a href="mailto:alessi@robertalessi.net">alessi@robertalessi.net</a></p></li> | 35 | <li><p>email: <a |
30 | <li><p>website: <a href="http://www.robertalessi.net/arabluatex" class="uri">http://www.robertalessi.net/arabluatex</a></p></li> | 36 | href="mailto:alessi@robertalessi.net">alessi@robertalessi.net</a></p></li> |
31 | <li><p>comments, feature requests, bug reports: <a href="https://gitlab.com/ralessi/arabluatex/issues" class="uri">https://gitlab.com/ralessi/arabluatex/issues</a></p></li> | 37 | <li><p>website: <a href="https://sr.ht/~ralessi/arabluatex" |
38 | class="uri">https://sr.ht/~ralessi/arabluatex</a></p></li> | ||
39 | <li><p>comments, feature requests, bug reports: <a | ||
40 | href="https://todo.sr.ht/~ralessi/arabluatex" | ||
41 | class="uri">https://todo.sr.ht/~ralessi/arabluatex</a></p></li> | ||
32 | </ul> | 42 | </ul> |
33 | <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 |
34 | <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> | 44 | files:</p> |
35 | <p>You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.</p> | ||
36 | <p>This release of arabluatex consists of the following source files:</p> | ||
37 | <ul> | 45 | <ul> |
38 | <li><p><code>arabluatex.ins</code></p></li> | 46 | <li><p><code>arabluatex.ins</code></p></li> |
39 | <li><p><code>arabluatex.dtx</code></p></li> | 47 | <li><p><code>arabluatex.dtx</code></p></li> |
@@ -43,13 +51,14 @@ | |||
43 | <li><p><code>arabluatex_novoc.lua</code></p></li> | 51 | <li><p><code>arabluatex_novoc.lua</code></p></li> |
44 | <li><p><code>arabluatex_trans.lua</code></p></li> | 52 | <li><p><code>arabluatex_trans.lua</code></p></li> |
45 | </ul> | 53 | </ul> |
46 | <h2 id="sec:documentation-license" class="unnumbered unnumbered">License applicable to the documentation</h2> | 54 | <h1 class="unnumbered" id="sec:installation">Installation</h1> |
47 | <p>Copyright ⓒ 2016–2020 Robert Alessi</p> | ||
48 | <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> | ||
49 | <h1 id="sec:installation" class="unnumbered unnumbered">Installation</h1> | ||
50 | <ol> | 55 | <ol> |
51 | <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 |
52 | <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" class="uri">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 | ||
59 | into 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" | ||
61 | class="uri">https://texfaq.org/FAQ-inst-wlcf</a> for more on this:</p> | ||
53 | <ul> | 62 | <ul> |
54 | <li><p><code>arabluatex.sty</code></p></li> | 63 | <li><p><code>arabluatex.sty</code></p></li> |
55 | <li><p><code>arabluatex-patch.sty</code></p></li> | 64 | <li><p><code>arabluatex-patch.sty</code></p></li> |
@@ -59,20 +68,39 @@ | |||
59 | <li><p><code>arabluatex_novoc.lua</code></p></li> | 68 | <li><p><code>arabluatex_novoc.lua</code></p></li> |
60 | <li><p><code>arabluatex_trans.lua</code></p></li> | 69 | <li><p><code>arabluatex_trans.lua</code></p></li> |
61 | </ul></li> | 70 | </ul></li> |
62 | <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> | ||
73 | local directory. This will enable the appropriate hooks for | ||
74 | ArabLuaTeX in AUCTeX.</p></li> | ||
63 | </ol> | 75 | </ol> |
64 | <h1 id="sec:devel-git-repos">Development, Git Repository</h1> | 76 | <h1 id="sec:devel-git-repos">Development, Git Repository</h1> |
65 | <h2 id="sec:browse-code" class="unnumbered unnumbered">Browse the code</h2> | 77 | <h2 class="unnumbered" id="sec:browse-code">Browse the code</h2> |
66 | <p>You can browse ArabLuaTeX repository on the web: <a href="http://git.robertalessi.net/arabluatex" class="uri">http://git.robertalessi.net/arabluatex</a></p> | 78 | <p>You can browse ArabLuaTeX repository on the web: <a |
67 | <p>From this page, you can download all the releases of ArabLuaTeX. For instructions on how to install ArabLuaTeX, please see above.</p> | 79 | href="http://git.robertalessi.net/arabluatex" |
68 | <h2 id="sec:comm-feat-requ" class="unnumbered unnumbered">Comments, Feature requests, Bug Reports</h2> | 80 | class="uri">http://git.robertalessi.net/arabluatex</a><br /> |
69 | <p><a href="https://gitlab.com/ralessi/arabluatex/issues" class="uri">https://gitlab.com/ralessi/arabluatex/issues</a></p> | 81 | or<br /> |
70 | <h2 id="sec:download-repository" class="unnumbered unnumbered">Download the repository</h2> | 82 | <a href="https://sr.ht/~ralessi/arabluatex" |
71 | <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> | 83 | class="uri">https://sr.ht/~ralessi/arabluatex</a></p> |
84 | <p>From this page, you can download all the releases of ArabLuaTeX. For | ||
85 | instructions on how to install ArabLuaTeX, please see above.</p> | ||
86 | <h2 class="unnumbered" id="sec:comm-feat-requ">Comments, Feature | ||
87 | requests, Bug Reports</h2> | ||
88 | <p><a href="https://todo.sr.ht/~ralessi/arabluatex" | ||
89 | class="uri">https://todo.sr.ht/~ralessi/arabluatex</a></p> | ||
90 | <h2 class="unnumbered" id="sec:download-repository">Download the | ||
91 | repository</h2> | ||
92 | <p>ArabLuaTeX development is facilitated by git, a distributed version | ||
93 | control system. You will need to install git (most Unix/Linux | ||
94 | distributions package it in their repositories).</p> | ||
72 | <p>Use this command to download the repository</p> | 95 | <p>Use this command to download the repository</p> |
73 | <pre><code>git clone http://git.robertalessi.net/arabluatex</code></pre> | 96 | <pre><code>git clone https://git.sr.ht/~ralessi/arabluatex</code></pre> |
74 | <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 |
75 | <h2 id="sec:git-hosting" class="unnumbered unnumbered">Git hosting</h2> | 98 | ArabLuaTeX.</p> |
76 | <p>Make an account on <a href="https://gitlab.com" class="uri">https://gitlab.com</a> and navigate (while logged in) to <a href="https://gitlab.com/ralessi/arabluatex" class="uri">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> | 99 | <h2 class="unnumbered" id="sec:git-hosting">Git hosting</h2> |
77 | </body> | 100 | <p>Make an account on <a href="https://sr.ht" |
78 | </html> | 101 | class="uri">https://sr.ht</a> and navigate (while logged in) to <a |
102 | href="https://git.sr.ht/~ralessi/arabluatex" | ||
103 | class="uri">https://git.sr.ht/~ralessi/arabluatex</a>. Click <em>Clone | ||
104 | repo to your account</em> and you will have in your account your own | ||
105 | repository of <code>arabluatex</code> where you will be able to make | ||
106 | whatever changes you like to.</p> | ||
diff --git a/arabluatex.dtx b/arabluatex.dtx index 92e04df..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--2020 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 | [2020/03/23 v1.20 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--2020 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 | % | ||
45 | % This program is free software: you can redistribute it and/or modify | ||
46 | % it under the terms of the GNU General Public License as published by | ||
47 | % the Free Software Foundation, either version 3 of the License, or | ||
48 | % (at your option) any later version. | ||
49 | % | 42 | % |
50 | % This program is distributed in the hope that it will be useful, but | 43 | % Permission to use, copy, modify, and distribute this software for any |
51 | % WITHOUT ANY WARRANTY; without even the implied warranty of | 44 | % purpose with or without fee is hereby granted, provided that the above |
52 | % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | 45 | % copyright notice and this permission notice appear in all copies. |
53 | % General Public License for more details. | 46 | % |
47 | % THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | ||
48 | % WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | ||
49 | % MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | ||
50 | % ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | ||
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}, |
@@ -161,14 +169,23 @@ | |||
161 | \usepackage{fontspec} | 169 | \usepackage{fontspec} |
162 | \defaultfontfeatures{Renderer=Harfbuzz} | 170 | \defaultfontfeatures{Renderer=Harfbuzz} |
163 | \usepackage[english]{babel} | 171 | \usepackage[english]{babel} |
164 | \usepackage{dox} | 172 | %^^A dox does not work with the latest latex-dev: |
165 | \doxitem{Option}{option}{options} | 173 | \ifdefined\SpecialMacroIndex |
174 | \NewDocElement{Option}{option} | ||
175 | \else | ||
176 | \usepackage{dox} | ||
177 | \doxitem{Option}{option}{options} | ||
178 | \fi | ||
166 | \usepackage{microtype} | 179 | \usepackage{microtype} |
167 | \babelfont{rm}{Old Standard} | 180 | \babelfont{rm}[RawFeature=onum]{Old Standard} |
168 | \babelfont{sf}{NewComputerModern Sans} | 181 | \babelfont{sf}{NewComputerModernSans10} |
169 | \babelfont{tt}{NewComputerModern Mono} | 182 | \babelfont{tt}{NewComputerModernMono10} |
183 | \usepackage{manfnt} | ||
184 | \usepackage{lettrine} | ||
185 | \newcommand\danger{\lettrine[loversize=-.5]{\textdbend}{\hskip6pt}} | ||
170 | \usepackage{metalogox} | 186 | \usepackage{metalogox} |
171 | \usepackage{arabluatex}[2020/03/23] | 187 | \usepackage{arabluatex}[2023/05/21] |
188 | \SetTranslitConvention{dmg+} | ||
172 | \SetArbUp{\textsuperscript{\thinspace#1}} % Old Standard needs this | 189 | \SetArbUp{\textsuperscript{\thinspace#1}} % Old Standard needs this |
173 | \usepackage[nopar]{quran} | 190 | \usepackage[nopar]{quran} |
174 | \usepackage[noindex]{nameauth} | 191 | \usepackage[noindex]{nameauth} |
@@ -176,7 +193,7 @@ | |||
176 | \usepackage{latexcolors} | 193 | \usepackage{latexcolors} |
177 | \PassOptionsToPackage{bookmarks=true}{hyperref} | 194 | \PassOptionsToPackage{bookmarks=true}{hyperref} |
178 | \usepackage[numbered]{hypdoc} | 195 | \usepackage[numbered]{hypdoc} |
179 | \usepackage{uri} | 196 | \newcommand{\phts}{\phantomsection} |
180 | \usepackage[loadlang=en]{metastr} | 197 | \usepackage[loadlang=en]{metastr} |
181 | \hypersetup{ | 198 | \hypersetup{ |
182 | colorlinks, | 199 | colorlinks, |
@@ -206,6 +223,7 @@ | |||
206 | \metaset[sep]{draft}{ -- } | 223 | \metaset[sep]{draft}{ -- } |
207 | \metasetlang{en-US} | 224 | \metasetlang{en-US} |
208 | \metaset{title}{arabluatex} | 225 | \metaset{title}{arabluatex} |
226 | \metaset[print]{title}{\textsf{arabluatex}} | ||
209 | \metaset{date}{\filedate} | 227 | \metaset{date}{\filedate} |
210 | \metaset{draft}{\fileversion} | 228 | \metaset{draft}{\fileversion} |
211 | \metaset{subject}{ArabTeX} | 229 | \metaset{subject}{ArabTeX} |
@@ -220,18 +238,24 @@ | |||
220 | \metaset{partof}{The arabluatex Package} | 238 | \metaset{partof}{The arabluatex Package} |
221 | \metaset[print]{partof}{The \textsf{arabluatex} Package} | 239 | \metaset[print]{partof}{The \textsf{arabluatex} Package} |
222 | \metaset{copyrightowner}{\metapick[#1]{author}} | 240 | \metaset{copyrightowner}{\metapick[#1]{author}} |
223 | \metaset{copyrightdate}{2016--2020} | 241 | \metaset{copyrightdate}{2016, 2017, 2018, 2019, 2020, 2021, 2022, |
224 | \metaset{licensemessage}{Permission is granted to copy, distribute | 242 | 2023} |
225 | and/or modify this document under the terms of the GNU Free | 243 | \metaset{licensemessage}{Permission to use, copy, modify, and |
226 | Documentation License, Version 1.3 or any later version published by | 244 | distribute this software for any purpose with or without fee is |
227 | the Free Software Foundation; with no Invariant Sections, no | 245 | hereby granted, provided that the above copyright notice and this |
228 | Front-Cover Texts, and no Back-Cover Texts. A copy of the license | 246 | permission notice appear in all copies. |
229 | is included in the section entitled ``GNU Free Documentation | 247 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL |
230 | License''.} | 248 | WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED |
231 | \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} | ||
232 | \metaset[print]{licenseurl}{% | 257 | \metaset[print]{licenseurl}{% |
233 | \url{https://www.gnu.org/licenses/fdl-1.3.html}} | 258 | \url{https://cvsweb.openbsd.org/src/share/misc/license.template?rev=HEAD}} |
234 | \metaset[cmd]{licenselogo}{\includegraphics[scale=0.75]{#1}} | ||
235 | \metawritepdfinfo | 259 | \metawritepdfinfo |
236 | \metawritepdfaux | 260 | \metawritepdfaux |
237 | \metawritepdfpreamble | 261 | \metawritepdfpreamble |
@@ -247,8 +271,11 @@ | |||
247 | \setlist[enumerate,2]{label=\roman*.} | 271 | \setlist[enumerate,2]{label=\roman*.} |
248 | \newlist{enumabjad}{enumerate}{10} | 272 | \newlist{enumabjad}{enumerate}{10} |
249 | \setlist[enumabjad]{label={\abjad{\arabic*}}} | 273 | \setlist[enumabjad]{label={\abjad{\arabic*}}} |
250 | \usepackage{multicol} | 274 | \newlist{remarks}{enumerate}{10} |
251 | \setlength\IndexMin{100pt} | 275 | \setlist[remarks]{ |
276 | label*=\textsc{Rem.} \emph{\alph*}, | ||
277 | left=0.25in, | ||
278 | before=\smaller} | ||
252 | \usepackage{quoting} | 279 | \usepackage{quoting} |
253 | \quotingsetup{noorphans, rightmargin=0pt} | 280 | \quotingsetup{noorphans, rightmargin=0pt} |
254 | \renewcommand*{\quotingfont}{\footnotesize} | 281 | \renewcommand*{\quotingfont}{\footnotesize} |
@@ -268,15 +295,16 @@ | |||
268 | bottom=0mm} | 295 | bottom=0mm} |
269 | \newtcblisting{example}{minted options={linenos, numbersep=0mm, | 296 | \newtcblisting{example}{minted options={linenos, numbersep=0mm, |
270 | fontsize=\smaller}} | 297 | fontsize=\smaller}} |
271 | \newtcblisting{code}{minted options={linenos, numbersep=0mm, | 298 | \newtcblisting{alcode}{minted options={linenos, numbersep=0mm, |
272 | fontsize=\smaller}, listing only} | 299 | fontsize=\smaller}, listing only} |
300 | \VerbatimFootnotes | ||
273 | \newcommand{\package}[1]{\textsf{#1}\index{#1=#1 (package)}} | 301 | \newcommand{\package}[1]{\textsf{#1}\index{#1=#1 (package)}} |
274 | \usepackage[contents]{colordoc} | 302 | \usepackage[contents]{colordoc} |
275 | \usepackage{csquotes} | 303 | \usepackage{csquotes} |
276 | \DeclareQuoteStyle{arabic} | 304 | \DeclareQuoteStyle{arabic} |
277 | {\rmfamily\textquotedblright}{\rmfamily\textquotedblleft} | 305 | {\rmfamily\textquotedblright}{\rmfamily\textquotedblleft} |
278 | {\rmfamily\textquoteright}{\rmfamily\textquoteleft} | 306 | {\rmfamily\textquoteright}{\rmfamily\textquoteleft} |
279 | \usepackage[style=authoryear, indexing=cite]{biblatex} | 307 | \usepackage[style=oxnotes-inote,indexing=cite]{biblatex} |
280 | \DeclareIndexFieldFormat{indextitle}{\index{#1=\emph{#1}}} | 308 | \DeclareIndexFieldFormat{indextitle}{\index{#1=\emph{#1}}} |
281 | \addbibresource{arabluatex.bib} | 309 | \addbibresource{arabluatex.bib} |
282 | \NewDocumentCommand{\newfeature}{o}{% | 310 | \NewDocumentCommand{\newfeature}{o}{% |
@@ -286,6 +314,8 @@ | |||
286 | {\marginpar{\hfill\emph{New feature} #1}}% | 314 | {\marginpar{\hfill\emph{New feature} #1}}% |
287 | \ignorespaces | 315 | \ignorespaces |
288 | } | 316 | } |
317 | \usepackage{uri} | ||
318 | \usepackage[obeyspaces]{xurl} | ||
289 | \usepackage{multicol} | 319 | \usepackage{multicol} |
290 | \usepackage{tocloft} | 320 | \usepackage{tocloft} |
291 | \renewcommand\cftlotprehook{\begin{multicols}{2}} | 321 | \renewcommand\cftlotprehook{\begin{multicols}{2}} |
@@ -293,24 +323,27 @@ | |||
293 | \renewcommand\cftlottitlefont{\Large\bfseries} | 323 | \renewcommand\cftlottitlefont{\Large\bfseries} |
294 | \usepackage{etoc} | 324 | \usepackage{etoc} |
295 | \etocsettocdepth{paragraph} | 325 | \etocsettocdepth{paragraph} |
326 | \makeatletter | ||
296 | \newcommand{\altableofcontents}{% | 327 | \newcommand{\altableofcontents}{% |
297 | \begingroup | 328 | \begingroup |
298 | \etocsetstyle{section}{}{} | 329 | \etocsetstyle{section}{}{} |
299 | {\etocsavedsectiontocline{% | 330 | {\l@section{% |
300 | \numberline{\etocnumber}\etocname}{\etocpage}}{} | 331 | \numberline{\etocnumber}\etocname}{\etocpage}}{} |
301 | \etocsetstyle{subsection}{}{} | 332 | \etocsetstyle{subsection}{}{} |
302 | {\etocsavedsubsectiontocline{% | 333 | {\l@subsection{% |
303 | \numberline{\etocnumber}\etocname}{\etocpage}}{}% | 334 | \numberline{\etocnumber}\etocname}{\etocpage}}{}% |
304 | \etocsetstyle{subsubsection}{}{} | 335 | \etocsetstyle{subsubsection}{}{} |
305 | {\etocsavedsubsubsectiontocline{% | 336 | {\l@subsubsection{% |
306 | \numberline{\etocnumber}\etocname}{\etocpage}}{}% | 337 | \numberline{\etocnumber}\etocname}{\etocpage}}{}% |
307 | \etocsetstyle{paragraph}{}{\leftskip2cm\rightskip 2.2em \parfillskip | 338 | \etocsetstyle{paragraph}{}{\leftskip2cm\rightskip 2.2em \parfillskip |
308 | 0pt plus 1fil\relax \nobreak} | 339 | 0pt plus 1fil\relax \nobreak} |
309 | {\noindent\etocname{} \etocpage{} }{\par}% | 340 | {\noindent\etocname{} \etocpage{} }{\par}% |
310 | \etocmulticolstyle[2]{\section*{Contents}} | 341 | \etocmulticolstyle[2]{\section*{Contents}} |
311 | \pdfbookmark[1]{Contents}{toc} | 342 | \pdfbookmark[1]{Contents}{toc} |
312 | \tableofcontents | 343 | \etoctoclines |
344 | \localtableofcontents | ||
313 | \endgroup} | 345 | \endgroup} |
346 | \makeatother | ||
314 | \setlength\IndexMin{100pt} | 347 | \setlength\IndexMin{100pt} |
315 | \EnableCrossrefs | 348 | \EnableCrossrefs |
316 | \RecordChanges | 349 | \RecordChanges |
@@ -392,6 +425,7 @@ | |||
392 | % \altableofcontents | 425 | % \altableofcontents |
393 | % \listoftables | 426 | % \listoftables |
394 | % \normalsize | 427 | % \normalsize |
428 | % \VerbatimFootnotes | ||
395 | % | 429 | % |
396 | % \begin{abstract} | 430 | % \begin{abstract} |
397 | % This package provides for {\LuaLaTeX} an Arab{\TeX}-like interface | 431 | % This package provides for {\LuaLaTeX} an Arab{\TeX}-like interface |
@@ -403,53 +437,59 @@ | |||
403 | % 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 |
404 | % vocalization as Arab\TeX, or in different roman | 438 | % vocalization as Arab\TeX, or in different roman |
405 | % transliterations. It further allows many typographical | 439 | % transliterations. It further allows many typographical |
406 | % refinements. It will eventually interact with some other packages | 440 | % refinements. Furthermore, it can interact with the \pkg{ekdosis} |
407 | % yet to come to produce from \verb|.tex| source files, in addition | 441 | % package to produce from \verb|.tex| source files, in addition to |
408 | % to printed books, \texttt{TEI xml} compliant critical editions | 442 | % printed books, \texttt{TEI xml} compliant critical editions and/or |
409 | % and/or lexicons that can be searched, analyzed and correlated in | 443 | % lexicons that can be searched, analyzed and correlated in various |
410 | % various ways. | 444 | % ways. |
411 | % \end{abstract} | 445 | % \end{abstract} |
412 | % | 446 | % |
413 | % \section*{License and Disclaimer} | 447 | % \section*{License and Disclaimer} |
414 | % \addcontentsline{toc}{section}{License and disclamer} | 448 | % \addcontentsline{toc}{section}{License and disclamer} |
415 | % \subsection*{License Applicable to this Document} | 449 | % \leavevmode\marginpar{\hfill\texttt{OpenBSD}} \pkg{arabluatex} is |
416 | % \pdfbookmark[2]{Licence applicable to this document}{copyright-doc} | 450 | % licensed under the terms of the so-called OpenBSD license, as it is |
417 | % \leavevmode\marginpar{\hfill\texttt{fdl1.3}} | 451 | % modelled after the ISC copyright, which is functionally equivalent |
418 | % \metapick[print]{rightstext} (See below \vref{sec:fdl}.) | 452 | % to a two-term BSD copyright with language removed that is made |
419 | % | 453 | % unnecessary by the Berne convention.\footnote{More information about |
420 | % \subsection*{License Applicable to the Software} | 454 | % the OpenBSD policy to which \pkg{arabluatex} adheres: |
421 | % \pdfbookmark[2]{Licence applicable to the software}{copyright-soft} | 455 | % \url{https://www.openbsd.org/policy.html}.} |
422 | % \label{sec:license-software} | ||
423 | % | 456 | % |
424 | % \package{arabluatex} --- \metapick[print]{subtitle} | 457 | % \iffalse |
425 | % \metapick[print]{copyrightstatement} | 458 | %<*example> |
459 | % \fi | ||
460 | \begin{minted}[linenos=false]{text} | ||
461 | arabluatex -- ArabTeX for LuaLaTeX | ||
462 | ---------------------------------------------------------- | ||
463 | |||
464 | Copyright (c) 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 | ||
465 | Robert Alessi <alessi@robertalessi.net> | ||
466 | |||
467 | Permission to use, copy, modify, and distribute this software for any | ||
468 | purpose with or without fee is hereby granted, provided that the above | ||
469 | copyright notice and this permission notice appear in all copies. | ||
470 | |||
471 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | ||
472 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | ||
473 | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | ||
474 | ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | ||
475 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | ||
476 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | ||
477 | OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | ||
478 | \end{minted} | ||
479 | % \iffalse | ||
480 | %</example> | ||
481 | % \fi | ||
426 | % | 482 | % |
427 | % Please send error reports and suggestions for improvements to Robert | 483 | % Please send error reports and suggestions for improvements to Robert |
428 | % Alessi: | 484 | % Alessi: |
429 | % \begin{itemize} | 485 | % \begin{itemize} |
430 | % \item email: \mailto[arabluatex package]{alessi@roberalessi.net} | 486 | % \item email: \mailto[arabluatex package]{alessi@roberalessi.net} |
431 | % \item website: \url{http://www.robertalessi.net/arabluatex} | 487 | % \item website: \url{https://sr.ht/~ralessi/arabluatex/} |
432 | % \item development: \url{http://git.robertalessi.net/arabluatex} | 488 | % \item development: \url{http://git.robertalessi.net/arabluatex} |
433 | % \item comments, feature requests, bug reports: | 489 | % \item comments, feature requests, bug reports: |
434 | % \url{https://gitlab.com/ralessi/arabluatex/issues} | 490 | % \url{https://todo.sr.ht/~ralessi/arabluatex} |
435 | % \end{itemize} | 491 | % \end{itemize} |
436 | % | 492 | % |
437 | % \leavevmode\marginpar{\hfill\texttt{gpl3+}} | ||
438 | % This program is free software: you can redistribute it and/or modify | ||
439 | % it under the terms of the GNU General Public License as published by | ||
440 | % the Free Software Foundation, either version 3 of the License, or | ||
441 | % (at your option) any later version. | ||
442 | % | ||
443 | % This program is distributed in the hope that it will be useful, but | ||
444 | % WITHOUT ANY WARRANTY; without even the implied warranty of | ||
445 | % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
446 | % General Public License for more details. | ||
447 | % | ||
448 | % You should have received a copy of the GNU General Public License | ||
449 | % along with this program. If not, see | ||
450 | % \href{http://www.gnu.org/licenses}% | ||
451 | % {\texttt{<http://www.gnu.org/licenses/>}}. | ||
452 | % | ||
453 | % This release of \package{arabluatex} consists of the following | 493 | % This release of \package{arabluatex} consists of the following |
454 | % source files: | 494 | % source files: |
455 | % \begin{itemize} | 495 | % \begin{itemize} |
@@ -581,21 +621,25 @@ | |||
581 | % issue a warning message and attempt to load the Amiri | 621 | % issue a warning message and attempt to load the Amiri |
582 | % font\footnote{\textcite{pkg:amiri}.} like so:---\\ | 622 | % font\footnote{\textcite{pkg:amiri}.} like so:---\\ |
583 | % \tcboxverb{\newfontfamily\arabicfont{Amiri}[Script=Arabic]} | 623 | % \tcboxverb{\newfontfamily\arabicfont{Amiri}[Script=Arabic]} |
584 | % \begin{quoting} | 624 | % \begin{remarks} |
585 | % \textsc{Rem.} By default Amiri places the \arb[trans]{kasraT} in | 625 | % \item By default Amiri places the \arb[trans]{kasraT} in combination |
586 | % combination with the \arb[trans]{ta^sdId} below the consonant, | 626 | % with the \arb[trans]{ta^sdId} below the consonant, like so: |
587 | % like so: \arb{BBi}\,. That is correct, as at least in the oldest | 627 | % \arb{BBi}\,. That is correct, as at least in the oldest |
588 | % manuscripts {\renewfontfamily\arabicfont{Amiri}[Script=Arabic, | 628 | % manuscripts {\renewfontfamily\arabicfont{Amiri}[Script=Arabic, |
589 | % RawFeature={+ss05}]\arb{BBi}} may stand for \arb{BBa} as | 629 | % RawFeature={+ss05}]\arb{BBi}} may stand for \arb{BBa} as well as |
590 | % well as \arb{BBi}\,. See \textcite[i. 14 C--D]{Wright}. The placement | 630 | % \arb{BBi}\,. See \textcite[i. 14 C--D]{Wright}. The placement of |
591 | % of the \arb[trans]{kasraT} above the consonant may be obtained by | 631 | % the \arb[trans]{kasraT} above the consonant may be obtained by |
592 | % selecting the |ss05| feature of the Amiri font, like | 632 | % selecting the |ss05| feature of the Amiri font, like |
593 | % so:---\footnote{See the documentation of \package{amiri}, | 633 | % so:---\footnote{See the documentation of \package{amiri}, |
594 | % \textcite[6]{pkg:amiri}.}\\ | 634 | % \textcite[6]{pkg:amiri}.}\\ |
595 | % \tcboxverb{\newfontfamily\arabicfont{Amiri}[Script=Arabic,RawFeature={+ss05}]} | 635 | % \tcboxverb{\newfontfamily\arabicfont{Amiri}[Script=Arabic,RawFeature={+ss05}]} |
596 | % | 636 | % |
597 | % Other Arabic fonts may behave differently. | 637 | % Other Arabic fonts may behave differently. |
598 | % \end{quoting} | 638 | % |
639 | % \item \cs{newfontfamily} can be used to have | ||
640 | % either Indian of Arabic numbers printed. See | ||
641 | % \vpageref{ref:arabic-numbers} for more information. | ||
642 | % \end{remarks} | ||
599 | % | 643 | % |
600 | % \subsection{Options} | 644 | % \subsection{Options} |
601 | % \label{sec:options} | 645 | % \label{sec:options} |
@@ -629,8 +673,8 @@ | |||
629 | % standards. At present, three standards are supported (see below | 673 | % standards. At present, three standards are supported (see below |
630 | % \vref{sec:transliteration} for more details): | 674 | % \vref{sec:transliteration} for more details): |
631 | % \begin{description} | 675 | % \begin{description} |
632 | % \item[dmg] \emph{Deutsche Morgenländische Gesellschaft}, which is | 676 | % \item[dmg/dmg+] \emph{Deutsche Morgenländische Gesellschaft} |dmg| |
633 | % selected by default; | 677 | % is selected by default; |
634 | % \item[loc] \emph{Library of Congress}; | 678 | % \item[loc] \emph{Library of Congress}; |
635 | % \item[arabica] \emph{Arabica}. | 679 | % \item[arabica] \emph{Arabica}. |
636 | % \end{description} | 680 | % \end{description} |
@@ -797,11 +841,11 @@ | |||
797 | % \iffalse | 841 | % \iffalse |
798 | %<*example> | 842 | %<*example> |
799 | % \fi | 843 | % \fi |
800 | \begin{code} | 844 | \begin{alcode} |
801 | \begin{arab} | 845 | \begin{arab} |
802 | [...] | 846 | [...] |
803 | \end{arab} | 847 | \end{arab} |
804 | \end{code} | 848 | \end{alcode} |
805 | % \iffalse | 849 | % \iffalse |
806 | %</example> | 850 | %</example> |
807 | % \fi | 851 | % \fi |
@@ -858,14 +902,14 @@ | |||
858 | % all of the Arabic consonants. | 902 | % all of the Arabic consonants. |
859 | % | 903 | % |
860 | % \newcommand{\dmg}[1]{% | 904 | % \newcommand{\dmg}[1]{% |
861 | % \SetTranslitConvention{dmg}% | 905 | % \SetTranslitConvention{dmg+}% |
862 | % \arb[trans]{#1}} | 906 | % \arb[trans]{#1}} |
863 | % \newcommand{\loc}[1]{% | 907 | % \newcommand{\loc}[1]{% |
864 | % \SetTranslitConvention{loc}% | 908 | % \SetTranslitConvention{loc}% |
865 | % \arb[trans]{#1}\SetTranslitConvention{dmg}} | 909 | % \arb[trans]{#1}\SetTranslitConvention{dmg+}} |
866 | % \newcommand{\brill}[1]{% | 910 | % \newcommand{\brill}[1]{% |
867 | % \SetTranslitConvention{arabica}% | 911 | % \SetTranslitConvention{arabica}% |
868 | % \arb[trans]{#1}\SetTranslitConvention{dmg}} | 912 | % \arb[trans]{#1}\SetTranslitConvention{dmg+}} |
869 | % \begin{longtable}{lllll} | 913 | % \begin{longtable}{lllll} |
870 | % \bottomrule | 914 | % \bottomrule |
871 | % \caption[]{Standard Arab\TeX\ (consonants)} | 915 | % \caption[]{Standard Arab\TeX\ (consonants)} |
@@ -874,19 +918,19 @@ | |||
874 | % \captionlistentry{Standard Arab\TeX\ (consonants)} | 918 | % \captionlistentry{Standard Arab\TeX\ (consonants)} |
875 | % Letter & \multicolumn{3}{l}{Transliteration\footnotemark} | 919 | % Letter & \multicolumn{3}{l}{Transliteration\footnotemark} |
876 | % & Arab\TeX\ notation \\ | 920 | % & Arab\TeX\ notation \\ |
877 | % & \texttt{dmg} & \texttt{loc} & \texttt{arabica} & \\ \midrule | 921 | % & \texttt{dmg+} & \texttt{loc} & \texttt{arabica} & \\ \midrule |
878 | % \endfirsthead | 922 | % \endfirsthead |
879 | % \toprule | 923 | % \toprule |
880 | % Letter & \multicolumn{3}{l}{Transliteration} | 924 | % Letter & \multicolumn{3}{l}{Transliteration} |
881 | % & Arab\TeX\ notation \\ | 925 | % & Arab\TeX\ notation \\ |
882 | % & \texttt{dmg} & \texttt{loc} & \texttt{arabica} & \\ \midrule | 926 | % & \texttt{dmg+} & \texttt{loc} & \texttt{arabica} & \\ \midrule |
883 | % \endhead \footnotetext{See below \vref{sec:transliteration}.} | 927 | % \endhead \footnotetext{See below \vref{sec:transliteration}.} |
884 | % \label{tab:arabtex-consonants} | 928 | % \label{tab:arabtex-consonants} |
885 | % \arb[voc]{'i 'a 'u}\footnote{See below, \emph{Rem{.} a.} For | 929 | % \arb[voc]{'i 'a 'u}\footnote{See below, \emph{Rem{.} a.} For |
886 | % \arb[trans]{'alif} as a consonant, see \textcite[i. 16 | 930 | % \arb[trans]{'alif} as a consonant, see \textcite[i. 16 |
887 | % D]{Wright}. The \arb[trans]{hamzaT} itself is encoded \texttt{<'>} | 931 | % D]{Wright}. The \arb[trans]{hamzaT} itself is encoded \texttt{<'>} |
888 | % and may be followed by either \meta{u, a} or \meta{i}. See below | 932 | % and may be followed by either \meta{u, a} or \meta{i}. See below |
889 | % \vref{ref:hamza}.} & \dmg{'u, 'a, 'i} & | 933 | % \vref{ref:hamza}.} & \dmg{|'u, |'a, |'i} & |
890 | % \loc{|'u, |'a, |'i} & \brill{|'u, |'a, |'i} & |'u| or |'a| or |'i| \\ | 934 | % \loc{|'u, |'a, |'i} & \brill{|'u, |'a, |'i} & |'u| or |'a| or |'i| \\ |
891 | % \arb[novoc]{b} & \dmg{b} & \loc{b} & \brill{b} & |b| \\ | 935 | % \arb[novoc]{b} & \dmg{b} & \loc{b} & \brill{b} & |b| \\ |
892 | % \arb[novoc]{t} & \dmg{t} & \loc{t} & \brill{t} & |t| \\ | 936 | % \arb[novoc]{t} & \dmg{t} & \loc{t} & \brill{t} & |t| \\ |
@@ -917,14 +961,14 @@ | |||
917 | % \arb[novoc]{w} & \dmg{w} & \loc{w} & \brill{w} & |w| \\ | 961 | % \arb[novoc]{w} & \dmg{w} & \loc{w} & \brill{w} & |w| \\ |
918 | % \arb[novoc]{y} & \dmg{y} & \loc{y} & \brill{y} & |y|\footnote{For | 962 | % \arb[novoc]{y} & \dmg{y} & \loc{y} & \brill{y} & |y|\footnote{For |
919 | % the letter \arb[novoc]{.y} with no diacritical points below, see | 963 | % the letter \arb[novoc]{.y} with no diacritical points below, see |
920 | % \emph{Rem{.} b.} below.} \\ | 964 | % \vref{ref:dotless-ya} below.} \\ |
921 | % \arb[novoc]{T} & \dmg{aT} & \loc{aT} & \brill{aT} & |T| \\ | 965 | % \arb[novoc]{T} & \dmg{aT} & \loc{aT} & \brill{aT} & |T| \\ |
922 | % \end{longtable} | 966 | % \end{longtable} |
923 | % \begin{quoting} | 967 | % \begin{remarks} |
924 | % \textsc{Rem.}~\emph{a.} Please note that in all cases of elision, | 968 | % \item Please note that in all cases of elision, the |
925 | % the \arb[trans]{'alifu 'l-wa.sli} is expressed only by the vowel | 969 | % \arb[trans]{'alifu 'l-wa.sli} is expressed only by the vowel that |
926 | % that accompanies the omitted \arb[trans]{hamzaT}: \meta{u, a, i} | 970 | % accompanies the omitted \arb[trans]{hamzaT}: \meta{u, a, i} as in |
927 | % as in |wa-inhazama| \arb[fullvoc]{wa-inhazama} | 971 | % |wa-inhazama| \arb[fullvoc]{wa-inhazama} |
928 | % \arb[trans]{wa-inhazama}. For more details on the definite article | 972 | % \arb[trans]{wa-inhazama}. For more details on the definite article |
929 | % and the \arb[trans]{'alifu 'l-wa.sli} see | 973 | % and the \arb[trans]{'alifu 'l-wa.sli} see |
930 | % \vref{ref:definite-article}. | 974 | % \vref{ref:definite-article}. |
@@ -938,10 +982,10 @@ | |||
938 | % absence of vowel), |wa-.Aan| \arb{wa-.Aan} \arb[trans]{wa-.Aan}, | 982 | % absence of vowel), |wa-.Aan| \arb{wa-.Aan} \arb[trans]{wa-.Aan}, |
939 | % |wa-.Ain| \arb{wa-.Ain} \arb[trans]{wa-.Ain}. | 983 | % |wa-.Ain| \arb{wa-.Ain} \arb[trans]{wa-.Ain}. |
940 | % | 984 | % |
941 | % \textsc{Rem.}~\emph{b.} The letter \arb[novoc]{y} with two points | 985 | % \item \label{ref:dotless-ya}The letter \arb[novoc]{y} with two |
942 | % below, \arb{al-yA'u 'l-mu_tannATu min ta.hti-hA}, may also be | 986 | % points below, \arb{al-yA'u 'l-mu_tannATu min ta.hti-hA}, may also |
943 | % written without diacritical points as \arb[novoc]{Y}. When it is | 987 | % be written without diacritical points as \arb[novoc]{Y}. When it |
944 | % used as a consonant, it is encoded |aY|, where |a| recalls the | 988 | % is used as a consonant, it is encoded |aY|, where |a| recalls the |
945 | % \arb[trans]{fat.haT} placed above the preceding letter in | 989 | % \arb[trans]{fat.haT} placed above the preceding letter in |
946 | % vocalized Arabic, like so: |qaY'uN| \arb{qaY'uN} | 990 | % vocalized Arabic, like so: |qaY'uN| \arb{qaY'uN} |
947 | % \arb[trans]{qaY'uN}, |^saY'uN| \arb{^saY'uN} \arb[trans]{^saY'uN}, | 991 | % \arb[trans]{qaY'uN}, |^saY'uN| \arb{^saY'uN} \arb[trans]{^saY'uN}, |
@@ -951,14 +995,15 @@ | |||
951 | % like so: |qa.y'uN| \arb{qa.y'uN} \arb[trans]{qa.y'uN}, |^sa.y'uN| | 995 | % like so: |qa.y'uN| \arb{qa.y'uN} \arb[trans]{qa.y'uN}, |^sa.y'uN| |
952 | % \arb{^sa.y'uN} \arb[trans]{^sa.y'uN}, |^sa.y'aN| | 996 | % \arb{^sa.y'uN} \arb[trans]{^sa.y'uN}, |^sa.y'aN| |
953 | % \arb[trans]{^sa.y'aN} \arb{^sa.y'aN}. | 997 | % \arb[trans]{^sa.y'aN} \arb{^sa.y'aN}. |
954 | % \end{quoting} | 998 | % \end{remarks} |
955 | % | 999 | % |
956 | % \subsection{Additional characters} | 1000 | % \subsection{Additional characters} |
957 | % \changes{v1.8.5}{2017/06/20}{Six additional Persian characters are | 1001 | % \changes{v1.8.5}{2017/06/20}{Six additional Persian characters are |
958 | % now available} | 1002 | % now available} |
959 | % \newfeature[v1.8.5]\Vref{tab:arabtex-additional-characters} gives | 1003 | % \newfeature[v1.8.5]\Vref{tab:arabtex-additional-characters} gives |
960 | % the Arab\TeX\ equivalents for some additional Persian characters. | 1004 | % the Arab\TeX\ equivalents for some additional Persian characters. |
961 | % | 1005 | % |
1006 | % \enlargethispage{2\baselineskip} | ||
962 | % \begin{longtable}{lllll} | 1007 | % \begin{longtable}{lllll} |
963 | % \bottomrule | 1008 | % \bottomrule |
964 | % \caption[]{Standard Arab\TeX\ (additional characters)} | 1009 | % \caption[]{Standard Arab\TeX\ (additional characters)} |
@@ -967,13 +1012,13 @@ | |||
967 | % \captionlistentry{Standard Arab\TeX\ (additional characters)} | 1012 | % \captionlistentry{Standard Arab\TeX\ (additional characters)} |
968 | % Letter & \multicolumn{3}{l}{Transliteration\footnotemark} | 1013 | % Letter & \multicolumn{3}{l}{Transliteration\footnotemark} |
969 | % & Arab\TeX\ notation \\ | 1014 | % & Arab\TeX\ notation \\ |
970 | % & \texttt{dmg} & \texttt{loc} & \texttt{arabica}\footnotemark | 1015 | % & \texttt{dmg+} & \texttt{loc} & \texttt{arabica}\footnotemark |
971 | % & \\ \midrule | 1016 | % & \\ \midrule |
972 | % \endfirsthead | 1017 | % \endfirsthead |
973 | % \toprule | 1018 | % \toprule |
974 | % Letter & \multicolumn{3}{l}{Transliteration} | 1019 | % Letter & \multicolumn{3}{l}{Transliteration} |
975 | % & Arab\TeX\ notation \\ | 1020 | % & Arab\TeX\ notation \\ |
976 | % & \texttt{dmg} & \texttt{loc} & \texttt{arabica} & \\ \midrule | 1021 | % & \texttt{dmg+} & \texttt{loc} & \texttt{arabica} & \\ \midrule |
977 | % \endhead | 1022 | % \endhead |
978 | % \addtocounter{footnote}{-1} | 1023 | % \addtocounter{footnote}{-1} |
979 | % \footnotetext{See below \vref{sec:transliteration}.} | 1024 | % \footnotetext{See below \vref{sec:transliteration}.} |
@@ -993,11 +1038,11 @@ | |||
993 | % \arb[novoc]{^n}\footnote{See \vref{fn:not-in-dmg}.} & \dmg{^n} & | 1038 | % \arb[novoc]{^n}\footnote{See \vref{fn:not-in-dmg}.} & \dmg{^n} & |
994 | % \loc{^n} & \brill{^n} & \verb|^n| \\ | 1039 | % \loc{^n} & \brill{^n} & \verb|^n| \\ |
995 | % \end{longtable} | 1040 | % \end{longtable} |
996 | % \begin{quoting} | 1041 | % \begin{remarks} |
997 | % \textsc{Rem.} The alveolar consonants \arb[novoc]{^c} and | 1042 | % \item[\textsc{Rem.}] The alveolar consonants \arb[novoc]{^c} and |
998 | % \arb[novoc]{^z} are processed as solar letters by | 1043 | % \arb[novoc]{^z} are processed as solar letters by |
999 | % \package{arabluatex}. | 1044 | % \package{arabluatex}. |
1000 | % \end{quoting} | 1045 | % \end{remarks} |
1001 | % | 1046 | % |
1002 | % \subsection{Vowels} | 1047 | % \subsection{Vowels} |
1003 | % \subsubsection{Long vowels} | 1048 | % \subsubsection{Long vowels} |
@@ -1012,12 +1057,12 @@ | |||
1012 | % \captionlistentry{Standard Arab\TeX\ (long vowels)} | 1057 | % \captionlistentry{Standard Arab\TeX\ (long vowels)} |
1013 | % Letter & \multicolumn{3}{l}{Transliteration\footnotemark} | 1058 | % Letter & \multicolumn{3}{l}{Transliteration\footnotemark} |
1014 | % & Arab\TeX\ notation \\ | 1059 | % & Arab\TeX\ notation \\ |
1015 | % & \texttt{dmg} & \texttt{loc} & \texttt{arabica} & \\ \midrule | 1060 | % & \texttt{dmg+} & \texttt{loc} & \texttt{arabica} & \\ \midrule |
1016 | % \endfirsthead | 1061 | % \endfirsthead |
1017 | % \toprule | 1062 | % \toprule |
1018 | % Letter & \multicolumn{3}{l}{Transliteration} | 1063 | % Letter & \multicolumn{3}{l}{Transliteration} |
1019 | % & Arab\TeX\ notation \\ | 1064 | % & Arab\TeX\ notation \\ |
1020 | % & \texttt{dmg} & \texttt{loc} & \texttt{arabica} & \\ \midrule | 1065 | % & \texttt{dmg+} & \texttt{loc} & \texttt{arabica} & \\ \midrule |
1021 | % \endhead \footnotetext{See below \vref{sec:transliteration}.} | 1066 | % \endhead \footnotetext{See below \vref{sec:transliteration}.} |
1022 | % \label{tab:arabtex-long-vowels} | 1067 | % \label{tab:arabtex-long-vowels} |
1023 | % \arb[novoc]{A} & \dmg{A} & \loc{A} & \brill{A} & \verb|A| \\ | 1068 | % \arb[novoc]{A} & \dmg{A} & \loc{A} & \brill{A} & \verb|A| \\ |
@@ -1032,10 +1077,10 @@ | |||
1032 | % \arb[novoc]{B_i} & \dmg{B_i} & \loc{B_i} & \brill{B_i} & \verb|_i| \\ | 1077 | % \arb[novoc]{B_i} & \dmg{B_i} & \loc{B_i} & \brill{B_i} & \verb|_i| \\ |
1033 | % \end{longtable} | 1078 | % \end{longtable} |
1034 | % | 1079 | % |
1035 | % \begin{quoting} | 1080 | % \begin{remarks} |
1036 | % \textsc{Rem.}~\emph{a.} The long vowels \arb[trans]{A, U, I}, | 1081 | % \item The long vowels \arb[trans]{A, U, I}, otherwise called |
1037 | % otherwise called \arb[trans]{.hurUf-u 'l-madd-i}, \emph{the | 1082 | % \arb[trans]{.hurUf-u 'l-madd-i}, \emph{the letters of |
1038 | % letters of prolongation}, involve the placing of the short vowels | 1083 | % prolongation}, involve the placing of the short vowels |
1039 | % \arb[trans]{Ba, Bu, Bi} before the letters \arb[novoc]{A}, | 1084 | % \arb[trans]{Ba, Bu, Bi} before the letters \arb[novoc]{A}, |
1040 | % \arb[novoc]{U}, \arb[novoc]{I} respectively. \package{arabluatex} | 1085 | % \arb[novoc]{U}, \arb[novoc]{I} respectively. \package{arabluatex} |
1041 | % does that automatically in case any from |voc|, |fullvoc| or | 1086 | % does that automatically in case any from |voc|, |fullvoc| or |
@@ -1043,23 +1088,23 @@ | |||
1043 | % \arb[voc]{qIla} \arb[trans]{qIla}, \arb[voc]{yaqUlu} | 1088 | % \arb[voc]{qIla} \arb[trans]{qIla}, \arb[voc]{yaqUlu} |
1044 | % \arb[trans]{yaqUlu}. | 1089 | % \arb[trans]{yaqUlu}. |
1045 | % | 1090 | % |
1046 | % \textsc{Rem.}~\emph{b.} Defective writings, such as | 1091 | % \item Defective writings, such as \arb[novoc]{B_a}, |
1047 | % \arb[novoc]{B_a}, \arb[trans]{al-'alif-u 'l-ma.h_dUfaT-u}, or | 1092 | % \arb[trans]{al-'alif-u 'l-ma.h_dUfaT-u}, or defective writings of |
1048 | % defective writings of \arb[trans]{B_u} and \arb[trans]{B_i} are | 1093 | % \arb[trans]{B_u} and \arb[trans]{B_i} are encoded |_a| |_u| and |
1049 | % encoded |_a| |_u| and |_i| respectively, e.g. |_d_alika| | 1094 | % |_i| respectively, e.g. |_d_alika| \arb[voc]{_d_alika}, |
1050 | % \arb[voc]{_d_alika}, |al-mal_a'ikaT-u| |'l-ra.hm_an-u| | 1095 | % |al-mal_a'ikaT-u| |'l-ra.hm_an-u| \arb[voc]{al-mal_a'ikaT-u |
1051 | % \arb[voc]{al-mal_a'ikaT-u 'l-ra.hm_an-u}, |.hu_dayfaT-u| |bn-u| | 1096 | % 'l-ra.hm_an-u}, |.hu_dayfaT-u| |bn-u| |'l-yamAn_i| |
1052 | % |'l-yamAn_i| \arb[fullvoc]{.hu_dayfaT-u bn-u 'l-yamAn_i} for | 1097 | % \arb[fullvoc]{.hu_dayfaT-u bn-u 'l-yamAn_i} for |
1053 | % \arb[trans]{\uc{.hu_dayfaT-u} bn-u 'l-\uc{yamAn_i}}, etc. | 1098 | % \arb[trans]{\uc{.hu_dayfaT-u} bn-u 'l-\uc{yamAn_i}}, etc. |
1054 | % | 1099 | % |
1055 | % \textsc{Rem.}~\emph{c.} The letter \arb[novoc]{y} with two points | 1100 | % \item The letter \arb[novoc]{y} with two points below, \arb{al-yA'u |
1056 | % below, \arb{al-yA'u 'l-mu_tannATu min ta.hti-hA}, may also be | 1101 | % 'l-mu_tannATu min ta.hti-hA}, may also be written without |
1057 | % written without diacritical points as \arb[novoc]{Y}. When it is | 1102 | % diacritical points as \arb[novoc]{Y}. When it is used as a long |
1058 | % used as a long vowel, it is encoded |iY|, where |i| recalls the | 1103 | % vowel, it is encoded |iY|, where |i| recalls the |
1059 | % \arb[trans]{kasraT} placed below the preceding letter in vocalized | 1104 | % \arb[trans]{kasraT} placed below the preceding letter in vocalized |
1060 | % Arabic, like so: |liY| \arb{liY} \arb[trans]{liY}, |yam^siY| | 1105 | % Arabic, like so: |liY| \arb{liY} \arb[trans]{liY}, |yam^siY| |
1061 | % \arb{yam^siY} \arb[trans]{yam^siY}. | 1106 | % \arb{yam^siY} \arb[trans]{yam^siY}. |
1062 | % \end{quoting} | 1107 | % \end{remarks} |
1063 | % | 1108 | % |
1064 | % \subsubsection{Short vowels} | 1109 | % \subsubsection{Short vowels} |
1065 | % \Vref{tab:arabtex-short-vowels} gives the Arab\TeX\ equivalents for | 1110 | % \Vref{tab:arabtex-short-vowels} gives the Arab\TeX\ equivalents for |
@@ -1073,12 +1118,12 @@ | |||
1073 | % \captionlistentry{Standard Arab\TeX\ (short vowels)} | 1118 | % \captionlistentry{Standard Arab\TeX\ (short vowels)} |
1074 | % Letter & \multicolumn{3}{l}{Transliteration\footnotemark} | 1119 | % Letter & \multicolumn{3}{l}{Transliteration\footnotemark} |
1075 | % & Arab\TeX\ notation \\ | 1120 | % & Arab\TeX\ notation \\ |
1076 | % & \texttt{dmg} & \texttt{loc} & \texttt{arabica} & \\ \midrule | 1121 | % & \texttt{dmg+} & \texttt{loc} & \texttt{arabica} & \\ \midrule |
1077 | % \endfirsthead | 1122 | % \endfirsthead |
1078 | % \toprule | 1123 | % \toprule |
1079 | % Letter & \multicolumn{3}{l}{Transliteration} | 1124 | % Letter & \multicolumn{3}{l}{Transliteration} |
1080 | % & Arab\TeX\ notation \\ | 1125 | % & Arab\TeX\ notation \\ |
1081 | % & \texttt{dmg} & \texttt{loc} & \texttt{arabica} & \\ \midrule | 1126 | % & \texttt{dmg+} & \texttt{loc} & \texttt{arabica} & \\ \midrule |
1082 | % \endhead \footnotetext{See below \vref{sec:transliteration}.} | 1127 | % \endhead \footnotetext{See below \vref{sec:transliteration}.} |
1083 | % \label{tab:arabtex-short-vowels} | 1128 | % \label{tab:arabtex-short-vowels} |
1084 | % \arb[voc]{Ba} & \dmg{Ba} & \loc{Ba} & \brill{Ba} & \verb|a| \\ | 1129 | % \arb[voc]{Ba} & \dmg{Ba} & \loc{Ba} & \brill{Ba} & \verb|a| \\ |
@@ -1912,11 +1957,11 @@ | |||
1912 | % \captionlistentry{\enquote{Quoted} \arb[trans]{hamzaT}} | 1957 | % \captionlistentry{\enquote{Quoted} \arb[trans]{hamzaT}} |
1913 | % Letter & \multicolumn{3}{l}{Transliteration\footnotemark} | 1958 | % Letter & \multicolumn{3}{l}{Transliteration\footnotemark} |
1914 | % & Arab\TeX\ notation \\ | 1959 | % & Arab\TeX\ notation \\ |
1915 | % & \texttt{dmg} & \texttt{loc} & \texttt{arabica} & \\ \midrule | 1960 | % & \texttt{dmg+} & \texttt{loc} & \texttt{arabica} & \\ \midrule |
1916 | % \endfirsthead | 1961 | % \endfirsthead |
1917 | % \toprule Letter & \multicolumn{3}{l}{Transliteration} | 1962 | % \toprule Letter & \multicolumn{3}{l}{Transliteration} |
1918 | % & Arab\TeX\ notation \\ | 1963 | % & Arab\TeX\ notation \\ |
1919 | % & \texttt{dmg} & \texttt{loc} & \texttt{arabica} & \\ \midrule | 1964 | % & \texttt{dmg+} & \texttt{loc} & \texttt{arabica} & \\ \midrule |
1920 | % \endhead | 1965 | % \endhead |
1921 | % \footnotetext{See below \vref{sec:transliteration}.} | 1966 | % \footnotetext{See below \vref{sec:transliteration}.} |
1922 | % \label{tab:quoted-hamza} | 1967 | % \label{tab:quoted-hamza} |
@@ -2071,6 +2116,34 @@ | |||
2071 | % |sanaT-i| |1024| \arb[voc]{fI sanaT-i 1024} | 2116 | % |sanaT-i| |1024| \arb[voc]{fI sanaT-i 1024} |
2072 | % \end{quote} | 2117 | % \end{quote} |
2073 | % | 2118 | % |
2119 | % \needspace{2\baselineskip} | ||
2120 | % \DescribeMacro{\SetArbNumbers}\newfeature[v1.21] | ||
2121 | % \phts\label{ref:arabic-numbers} | ||
2122 | % \cs{SetArbNumbers}\verb+{Indian|Arabic}+ % | ||
2123 | % \hfill\tcboxverb{Default: Indian}\\ | ||
2124 | % As described above, \package{arabluatex} prints Indian numbers by | ||
2125 | % default. \cs{SetArbNumbers}|{Arabic}| can be used at any point of | ||
2126 | % the document to have Arabic numbers printed. Furthermore, | ||
2127 | % \cs{SetArbNumbers}|{Arabic}| gives control over the way numbers are | ||
2128 | % to be printed by means of the |anum| font feature, like so:--- | ||
2129 | % | ||
2130 | % \iffalse | ||
2131 | %<*example> | ||
2132 | % \fi | ||
2133 | \begin{alcode} | ||
2134 | \usepackage{arabluatex} | ||
2135 | \SetArbNumbers{Arabic} | ||
2136 | % use '+anum' for Arabic numbers or '-anum' for Indian numbers: | ||
2137 | \newfontfamily\arabicfont{Amiri}[Script=Arabic, RawFeature={+anum}] | ||
2138 | \end{alcode} | ||
2139 | % \iffalse | ||
2140 | %</example> | ||
2141 | % \fi | ||
2142 | % | ||
2143 | % \danger \cs{SetArbNumbers} must be used \emph{outside} Arabic | ||
2144 | % environments. Once used, this commands operates on subsequent Arabic | ||
2145 | % environments. | ||
2146 | % | ||
2074 | % \subsubsection{The \emph{abjad}} | 2147 | % \subsubsection{The \emph{abjad}} |
2075 | % \label{sec:abjad} | 2148 | % \label{sec:abjad} |
2076 | % The numbers may also be expressed with letters from right to left | 2149 | % The numbers may also be expressed with letters from right to left |
@@ -2088,19 +2161,19 @@ | |||
2088 | % kitAbu-hu fI 'l-`AdAt-i} \arb[trans]{\abjad{45} kitAbu-hu fI | 2161 | % kitAbu-hu fI 'l-`AdAt-i} \arb[trans]{\abjad{45} kitAbu-hu fI |
2089 | % 'l-`AdAt-i}. | 2162 | % 'l-`AdAt-i}. |
2090 | % \end{quote} | 2163 | % \end{quote} |
2091 | % \begin{quoting} | 2164 | % \begin{remarks} |
2092 | % \textsc{Rem.}~\emph{a.} As can be seen in the above given example, | 2165 | % \item As can be seen in the above given example, |
2093 | % \package{arabluatex} expresses the \arb[trans]{'abjad} numbers in | 2166 | % \package{arabluatex} expresses the \arb[trans]{'abjad} numbers in |
2094 | % Roman numerals if it finds the \cs{abjad} command in any of the | 2167 | % Roman numerals if it finds the \cs{abjad} command in any of the |
2095 | % transliteration modes. | 2168 | % transliteration modes. |
2096 | % | 2169 | % |
2097 | % \textsc{Rem.}~\emph{b.} \cs{abjad} may also be found outside | 2170 | % \item \cs{abjad} may also be found outside Arabic environments. In |
2098 | % Arabic environments. In that case, \package{arabluatex} does not | 2171 | % that case, \package{arabluatex} does not print the stroke as a |
2099 | % print the stroke as a distinctive mark over the number for it is | 2172 | % distinctive mark over the number for it is not surrounded by other |
2100 | % not surrounded by other Arabic words. In case one nonetheless | 2173 | % Arabic words. In case one nonetheless wishes to print the stroke, |
2101 | % wishes to print the stroke, he can either use the \cs{aoline*} | 2174 | % he can either use the \cs{aoline*} command that is described below |
2102 | % command that is described below in \vref{sec:underlining} or | 2175 | % in \vref{sec:underlining} or insert the \arb[trans]{'ab^gad} |
2103 | % insert the \arb[trans]{'ab^gad} number in |\arb[novoc]{}|:--- | 2176 | % number in |\arb[novoc]{}|:--- |
2104 | % \begin{quote} | 2177 | % \begin{quote} |
2105 | % |The| |\arb[trans]{'abjad}| |number| |for| |1874| |is| | 2178 | % |The| |\arb[trans]{'abjad}| |number| |for| |1874| |is| |
2106 | % |\abjad{1874}| The \arb[trans]{'abjad} number for 1874 is | 2179 | % |\abjad{1874}| The \arb[trans]{'abjad} number for 1874 is |
@@ -2114,7 +2187,7 @@ | |||
2114 | % |\arb[novoc]{\abjad{1874}}| The \arb[trans]{'abjad} number for | 2187 | % |\arb[novoc]{\abjad{1874}}| The \arb[trans]{'abjad} number for |
2115 | % 1874 is \arb[novoc]{\abjad{1874}}. | 2188 | % 1874 is \arb[novoc]{\abjad{1874}}. |
2116 | % \end{quote} | 2189 | % \end{quote} |
2117 | % \end{quoting} | 2190 | % \end{remarks} |
2118 | % | 2191 | % |
2119 | % \newfeature[v1.12]\cs{abjad} may also be used to convert values of | 2192 | % \newfeature[v1.12]\cs{abjad} may also be used to convert values of |
2120 | % counters into \arb[trans]{'ab^gad} numbers, like so:--- % | 2193 | % counters into \arb[trans]{'ab^gad} numbers, like so:--- % |
@@ -2154,12 +2227,12 @@ | |||
2154 | % \captionlistentry{Additional Arabic codings} | 2227 | % \captionlistentry{Additional Arabic codings} |
2155 | % Letter & \multicolumn{3}{l}{Transliteration\footnotemark} | 2228 | % Letter & \multicolumn{3}{l}{Transliteration\footnotemark} |
2156 | % & Arab\TeX\ notation \\ | 2229 | % & Arab\TeX\ notation \\ |
2157 | % & \texttt{dmg} & \texttt{loc} & \texttt{arabica} & \\ \midrule | 2230 | % & \texttt{dmg+} & \texttt{loc} & \texttt{arabica} & \\ \midrule |
2158 | % \endfirsthead | 2231 | % \endfirsthead |
2159 | % \toprule | 2232 | % \toprule |
2160 | % Letter & \multicolumn{3}{l}{Transliteration} | 2233 | % Letter & \multicolumn{3}{l}{Transliteration} |
2161 | % & Arab\TeX\ notation \\ | 2234 | % & Arab\TeX\ notation \\ |
2162 | % & \texttt{dmg} & \texttt{loc} & \texttt{arabica} \\ \midrule | 2235 | % & \texttt{dmg+} & \texttt{loc} & \texttt{arabica} \\ \midrule |
2163 | % \endhead \footnotetext{See below \vref{sec:transliteration}.} | 2236 | % \endhead \footnotetext{See below \vref{sec:transliteration}.} |
2164 | % \label{tab:additional-arabic-codings} | 2237 | % \label{tab:additional-arabic-codings} |
2165 | % \arb[novoc]{.b} & \dmg{.b} & \loc{.b} & \brill{.b} & |.b| \\ | 2238 | % \arb[novoc]{.b} & \dmg{.b} & \loc{.b} & \brill{.b} & |.b| \\ |
@@ -2168,6 +2241,15 @@ | |||
2168 | % \arb[novoc]{.q} & \dmg{.q} & \loc{.q} & \brill{.q} & |.q| \\ | 2241 | % \arb[novoc]{.q} & \dmg{.q} & \loc{.q} & \brill{.q} & |.q| \\ |
2169 | % \arb[novoc]{.k} & \dmg{.k} & \loc{.k} & \brill{.k} & |.k| \\ | 2242 | % \arb[novoc]{.k} & \dmg{.k} & \loc{.k} & \brill{.k} & |.k| \\ |
2170 | % \arb[novoc]{.n} & \dmg{.n} & \loc{.n} & \brill{.n} & |.n| \\ | 2243 | % \arb[novoc]{.n} & \dmg{.n} & \loc{.n} & \brill{.n} & |.n| \\ |
2244 | % \arb[novoc]{H} & \dmg{aH} & \loc{aH} & \brill{aH} & | ||
2245 | % |H|\footnote{This letter can be used to encode the \arb[trans]{tA' | ||
2246 | % marbUtaT} devoid of diacritical points as it is found in some | ||
2247 | % manuscripts, with the same \arb[trans]{tanwIn} and the same | ||
2248 | % short vowels as the standard \arb[trans]{tA' marbUtaT} with two | ||
2249 | % points above, e. g. |al-madInaHa|, |madInaHaN|, \arb{al-madInaHa}, | ||
2250 | % \arb{madInaHaN}.} \\ | ||
2251 | % \arb[novoc]{.y} & \dmg{.y} & \loc{.y} & \brill{.y} & | ||
2252 | % |.y|\footnote{See above \vref{ref:dotless-ya}.} \\ | ||
2171 | % \arb[novoc]{((} & \dmg{((} & \loc{((} & \brill{((} & |((| \\ | 2253 | % \arb[novoc]{((} & \dmg{((} & \loc{((} & \brill{((} & |((| \\ |
2172 | % \arb[novoc]{))} & \dmg{))} & \loc{))} & \brill{))} & |))| \\ | 2254 | % \arb[novoc]{))} & \dmg{))} & \loc{))} & \brill{))} & |))| \\ |
2173 | % \end{longtable} | 2255 | % \end{longtable} |
@@ -2194,18 +2276,18 @@ | |||
2194 | % \arb[trans]{\abjad{45}: kitAbu-hu \aemph{fI 'l-\uc{`AdAt-i}}}. | 2276 | % \arb[trans]{\abjad{45}: kitAbu-hu \aemph{fI 'l-\uc{`AdAt-i}}}. |
2195 | % \end{quote} | 2277 | % \end{quote} |
2196 | % | 2278 | % |
2197 | % \begin{quoting} | 2279 | % \begin{remarks} |
2198 | % \textsc{Rem.}~\emph{a.} As the above example shows, | 2280 | % \item As the above example shows, \package{arabluatex} places the |
2199 | % \package{arabluatex} places the horizontal stroke \emph{under} the | 2281 | % horizontal stroke \emph{under} the emphasized words in any of the |
2200 | % emphasized words in any of the transliteration modes. | 2282 | % transliteration modes. |
2201 | % | 2283 | % |
2202 | % \textsc{Rem.}~\emph{b.} \newfeature[v1.9.2]\DescribeMacro{\aemph*} | 2284 | % \item \newfeature[v1.9.2]\DescribeMacro{\aemph*} \cs{aemph*} is also |
2203 | % \cs{aemph*} is also provided should one wish to always have the | 2285 | % provided should one wish to always have the horizontal stroke |
2204 | % horizontal stroke printed over the emphasized words, like so: | 2286 | % printed over the emphasized words, like so: |\abjad{45}:| |
2205 | % |\abjad{45}:| |kitAbu-hu| |\aemph*{fI| |'l-`AdAt-i}| | 2287 | % |kitAbu-hu| |\aemph*{fI| |'l-`AdAt-i}| \arb[voc]{\abjad{45}: |
2206 | % \arb[voc]{\abjad{45}: kitAbu-hu \aemph*{fI 'l-`AdAt-i}} | 2288 | % kitAbu-hu \aemph*{fI 'l-`AdAt-i}} \arb[trans]{\abjad{45}: |
2207 | % \arb[trans]{\abjad{45}: kitAbu-hu \aemph*{fI 'l-\uc{`AdAt-i}}}. | 2289 | % kitAbu-hu \aemph*{fI 'l-\uc{`AdAt-i}}}. |
2208 | % \end{quoting} | 2290 | % \end{remarks} |
2209 | % | 2291 | % |
2210 | % \subsubsection{Underlining words or numbers} | 2292 | % \subsubsection{Underlining words or numbers} |
2211 | % \label{sec:underlining} | 2293 | % \label{sec:underlining} |
@@ -2235,11 +2317,11 @@ | |||
2235 | % \iffalse | 2317 | % \iffalse |
2236 | %<*example> | 2318 | %<*example> |
2237 | % \fi | 2319 | % \fi |
2238 | \begin{code} | 2320 | \begin{alcode} |
2239 | \begin{arabverse}[key1=value1, key2=value2, ...] | 2321 | \begin{arabverse}[key1=value1, key2=value2, ...] |
2240 | <verses> | 2322 | <verses> |
2241 | \end{arabverse} | 2323 | \end{arabverse} |
2242 | \end{code} | 2324 | \end{alcode} |
2243 | % \iffalse | 2325 | % \iffalse |
2244 | %</example> | 2326 | %</example> |
2245 | % \fi | 2327 | % \fi |
@@ -2308,8 +2390,9 @@ | |||
2308 | % 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 |
2309 | % functions that lines of poetry have already been processed. That | 2391 | % functions that lines of poetry have already been processed. That |
2310 | % 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} |
2311 | % should be used.} Additionally, every \cs{bayt} command \emph{must} | 2393 | % should be used.} Additionally, every \cs{bayt} command \emph{must} |
2312 | % be followed with |\\| like so:---% | 2394 | % be followed with |\\| like so:--- |
2395 | % | ||
2313 | % \iffalse | 2396 | % \iffalse |
2314 | %<*example> | 2397 | %<*example> |
2315 | % \fi | 2398 | % \fi |
@@ -2444,6 +2527,16 @@ | |||
2444 | % 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 |
2445 | % loaded \emph{after} \package{arabluatex}.} | 2528 | % loaded \emph{after} \package{arabluatex}.} |
2446 | % | 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 | % | ||
2447 | % \paragraph{Line numbering} | 2540 | % \paragraph{Line numbering} |
2448 | % Inside the |arabverse| environment, the |linenumbers| environment of | 2541 | % Inside the |arabverse| environment, the |linenumbers| environment of |
2449 | % 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 |
@@ -2466,7 +2559,7 @@ | |||
2466 | % \iffalse | 2559 | % \iffalse |
2467 | %<*example> | 2560 | %<*example> |
2468 | % \fi | 2561 | % \fi |
2469 | \begin{code} | 2562 | \begin{alcode} |
2470 | \begin{arab}[fullvoc] | 2563 | \begin{arab}[fullvoc] |
2471 | qAla imru'u 'l-\uc{q}aysi fI mu`allaqati-hi: | 2564 | qAla imru'u 'l-\uc{q}aysi fI mu`allaqati-hi: |
2472 | \end{arab} | 2565 | \end{arab} |
@@ -2475,7 +2568,7 @@ | |||
2475 | 'l-`arU.di 'l-'_Ul_A mina 'l-.tawIli)}] | 2568 | 'l-`arU.di 'l-'_Ul_A mina 'l-.tawIli)}] |
2476 | \SetArbDflt* | 2569 | \SetArbDflt* |
2477 | \begin{linenumbers*} | 2570 | \begin{linenumbers*} |
2478 | \bayt{qifA nabki min _dikr_A .habIbiN wa-manzili}{bi-saq.ti | 2571 | \bayt{qifA nabki min _dikr_A .habIbiN wa-manzili}{bi-siq.ti |
2479 | 'l-liw_A bayna \uc{'l-d}a_hUli fa-\uc{.h}awmali}\\ | 2572 | 'l-liw_A bayna \uc{'l-d}a_hUli fa-\uc{.h}awmali}\\ |
2480 | \bayt{fa-\uc{t}U.di.ha fa-'l-\uc{m}iqrATi lam ya`fu | 2573 | \bayt{fa-\uc{t}U.di.ha fa-'l-\uc{m}iqrATi lam ya`fu |
2481 | rasmu-hA}{limA nasa^gat-hA min ^ganUbiN wa-^sam'ali}\\ | 2574 | rasmu-hA}{limA nasa^gat-hA min ^ganUbiN wa-^sam'ali}\\ |
@@ -2489,7 +2582,7 @@ | |||
2489 | rasmiN dArisiN min mu`awwali}\\ | 2582 | rasmiN dArisiN min mu`awwali}\\ |
2490 | \end{linenumbers*} | 2583 | \end{linenumbers*} |
2491 | \end{arabverse} | 2584 | \end{arabverse} |
2492 | \end{code} | 2585 | \end{alcode} |
2493 | % \iffalse | 2586 | % \iffalse |
2494 | %</example> | 2587 | %</example> |
2495 | % \fi% | 2588 | % \fi% |
@@ -2504,7 +2597,7 @@ | |||
2504 | % 'l-`arU.di 'l-'_Ul_A mina 'l-.tawIli)}, width=.25\linewidth] | 2597 | % 'l-`arU.di 'l-'_Ul_A mina 'l-.tawIli)}, width=.25\linewidth] |
2505 | % \SetArbDflt* | 2598 | % \SetArbDflt* |
2506 | % \begin{linenumbers*} | 2599 | % \begin{linenumbers*} |
2507 | % \bayt{qifA nabki min _dikr_A .habIbiN wa-manzili}{bi-saq.ti | 2600 | % \bayt{qifA nabki min _dikr_A .habIbiN wa-manzili}{bi-siq.ti |
2508 | % 'l-liw_A bayna \uc{'l-d}a_hUli fa-\uc{.h}awmali}\\ | 2601 | % 'l-liw_A bayna \uc{'l-d}a_hUli fa-\uc{.h}awmali}\\ |
2509 | % \bayt{fa-\uc{t}U.di.ha fa-'l-\uc{m}iqrATi lam ya`fu | 2602 | % \bayt{fa-\uc{t}U.di.ha fa-'l-\uc{m}iqrATi lam ya`fu |
2510 | % rasmu-hA}{limA nasa^gat-hA min ^ganUbiN wa-^sam'ali}\\ | 2603 | % rasmu-hA}{limA nasa^gat-hA min ^ganUbiN wa-^sam'ali}\\ |
@@ -2529,7 +2622,7 @@ | |||
2529 | % 'l-`arU.di 'l-'_Ul_A mina 'l-.tawIli)}, width=.4\linewidth] | 2622 | % 'l-`arU.di 'l-'_Ul_A mina 'l-.tawIli)}, width=.4\linewidth] |
2530 | % \SetArbDflt* | 2623 | % \SetArbDflt* |
2531 | % \begin{linenumbers*} | 2624 | % \begin{linenumbers*} |
2532 | % \bayt{qifA nabki min _dikr_A .habIbiN wa-manzili}{bi-saq.ti | 2625 | % \bayt{qifA nabki min _dikr_A .habIbiN wa-manzili}{bi-siq.ti |
2533 | % 'l-liw_A bayna \uc{'l-d}a_hUli fa-\uc{.h}awmali}\\ | 2626 | % 'l-liw_A bayna \uc{'l-d}a_hUli fa-\uc{.h}awmali}\\ |
2534 | % \bayt{fa-\uc{t}U.di.ha fa-'l-\uc{m}iqrATi lam ya`fu | 2627 | % \bayt{fa-\uc{t}U.di.ha fa-'l-\uc{m}iqrATi lam ya`fu |
2535 | % rasmu-hA}{limA nasa^gat-hA min ^ganUbiN wa-^sam'ali}\\ | 2628 | % rasmu-hA}{limA nasa^gat-hA min ^ganUbiN wa-^sam'ali}\\ |
@@ -2558,7 +2651,7 @@ | |||
2558 | % 'l-`arU.di 'l-'_Ul_A mina 'l-.tawIli)}, width=.3\linewidth] | 2651 | % 'l-`arU.di 'l-'_Ul_A mina 'l-.tawIli)}, width=.3\linewidth] |
2559 | % \SetArbDflt* | 2652 | % \SetArbDflt* |
2560 | % \begin{linenumbers*} | 2653 | % \begin{linenumbers*} |
2561 | % \bayt{qifA nabki min _dikr_A .habIbiN wa-manzili}{bi-saq.ti | 2654 | % \bayt{qifA nabki min _dikr_A .habIbiN wa-manzili}{bi-siq.ti |
2562 | % 'l-liw_A bayna \uc{'l-d}a_hUli fa-\uc{.h}awmali}\\ | 2655 | % 'l-liw_A bayna \uc{'l-d}a_hUli fa-\uc{.h}awmali}\\ |
2563 | % \bayt{fa-\uc{t}U.di.ha fa-'l-\uc{m}iqrATi lam ya`--fu | 2656 | % \bayt{fa-\uc{t}U.di.ha fa-'l-\uc{m}iqrATi lam ya`--fu |
2564 | % rasmu---hA}{limA nasa^gat-hA mi--n ^gan----UbiN wa-^sam'ali}\\ | 2657 | % rasmu---hA}{limA nasa^gat-hA mi--n ^gan----UbiN wa-^sam'ali}\\ |
@@ -2586,7 +2679,7 @@ | |||
2586 | % \SetArbDflt* | 2679 | % \SetArbDflt* |
2587 | % \scriptsize | 2680 | % \scriptsize |
2588 | % \begin{linenumbers*} | 2681 | % \begin{linenumbers*} |
2589 | % \bayt{qifA nabki min _dikr_A .habIbiN wa-manzili}{bi-saq.ti | 2682 | % \bayt{qifA nabki min _dikr_A .habIbiN wa-manzili}{bi-siq.ti |
2590 | % 'l-liw_A bayna \uc{'l-d}a_hUli fa-\uc{.h}awmali}\\ | 2683 | % 'l-liw_A bayna \uc{'l-d}a_hUli fa-\uc{.h}awmali}\\ |
2591 | % \bayt{fa-\uc{t}U.di.ha fa-'l-\uc{m}iqrATi lam ya`fu | 2684 | % \bayt{fa-\uc{t}U.di.ha fa-'l-\uc{m}iqrATi lam ya`fu |
2592 | % rasmu-hA}{limA nasa^gat-hA min ^ganUbiN wa-^sam'ali}\\ | 2685 | % rasmu-hA}{limA nasa^gat-hA min ^ganUbiN wa-^sam'ali}\\ |
@@ -2946,12 +3039,12 @@ | |||
2946 | % \captionlistentry{Arab\TeX\ diacritics for \cs{arbcolor}} | 3039 | % \captionlistentry{Arab\TeX\ diacritics for \cs{arbcolor}} |
2947 | % Diacritic & \multicolumn{3}{l}{Transliteration\footnotemark} | 3040 | % Diacritic & \multicolumn{3}{l}{Transliteration\footnotemark} |
2948 | % & Arab\TeX\ notation \\ | 3041 | % & Arab\TeX\ notation \\ |
2949 | % & \texttt{dmg} & \texttt{loc} & \texttt{arabica} & \\ \midrule | 3042 | % & \texttt{dmg+} & \texttt{loc} & \texttt{arabica} & \\ \midrule |
2950 | % \endfirsthead | 3043 | % \endfirsthead |
2951 | % \toprule | 3044 | % \toprule |
2952 | % Diacritic & \multicolumn{3}{l}{Transliteration} | 3045 | % Diacritic & \multicolumn{3}{l}{Transliteration} |
2953 | % & Arab\TeX\ notation \\ | 3046 | % & Arab\TeX\ notation \\ |
2954 | % & \texttt{dmg} & \texttt{loc} & \texttt{arabica} & \\ \midrule | 3047 | % & \texttt{dmg+} & \texttt{loc} & \texttt{arabica} & \\ \midrule |
2955 | % \endhead \footnotetext{See below \vref{sec:transliteration}.} | 3048 | % \endhead \footnotetext{See below \vref{sec:transliteration}.} |
2956 | % \label{tab:arbcolor-diacritics} | 3049 | % \label{tab:arbcolor-diacritics} |
2957 | % \arb{B.a} & \dmg{.a} & \loc{.a} & \brill{.a} & \verb|.a| \\ | 3050 | % \arb{B.a} & \dmg{.a} & \loc{.a} & \brill{.a} & \verb|.a| \\ |
@@ -3040,8 +3133,8 @@ | |||
3040 | % \arb{^gAmi`aT|\arbcolor[red]{\arbnull{T}aN}} | 3133 | % \arb{^gAmi`aT|\arbcolor[red]{\arbnull{T}aN}} |
3041 | % \arb[trans]{^gAmi`aT|\arbcolor[red]{\arbnull{T}aN}}. | 3134 | % \arb[trans]{^gAmi`aT|\arbcolor[red]{\arbnull{T}aN}}. |
3042 | % \end{quote} | 3135 | % \end{quote} |
3043 | % \begin{quoting} | 3136 | % \begin{remarks} |
3044 | % \textsc{Rem.} Note that in the last example | 3137 | % \item[\textsc{Rem.}] Note that in the last example |
3045 | % (\arb[trans]{^gAmi`aT|\arbcolor[red]{\arbnull{T}aN}}), the | 3138 | % (\arb[trans]{^gAmi`aT|\arbcolor[red]{\arbnull{T}aN}}), the |
3046 | % \enquote*{pipe} character has been inserted before | 3139 | % \enquote*{pipe} character has been inserted before |
3047 | % \cs{arbcolor}. Otherwise, the |dmg| mode of the transliteration | 3140 | % \cs{arbcolor}. Otherwise, the |dmg| mode of the transliteration |
@@ -3050,7 +3143,7 @@ | |||
3050 | % \txtrans{t}).\footnote{See also \vpageref{ref:ta-marbutah-pipe} | 3143 | % \txtrans{t}).\footnote{See also \vpageref{ref:ta-marbutah-pipe} |
3051 | % \enquote{Discarding the \arb[trans]{'i`rAb}} for more | 3144 | % \enquote{Discarding the \arb[trans]{'i`rAb}} for more |
3052 | % information.} | 3145 | % information.} |
3053 | % \end{quoting} | 3146 | % \end{remarks} |
3054 | % | 3147 | % |
3055 | % The \arb[trans]{tanwIn} preceding a \arb[novoc]{_A} conveys even | 3148 | % The \arb[trans]{tanwIn} preceding a \arb[novoc]{_A} conveys even |
3056 | % more intricate business to the rendering with the utmost accuracy in | 3149 | % more intricate business to the rendering with the utmost accuracy in |
@@ -3107,10 +3200,10 @@ | |||
3107 | %</example> | 3200 | %</example> |
3108 | % \fi% | 3201 | % \fi% |
3109 | % | 3202 | % |
3110 | % \begin{quoting} | 3203 | % \begin{remarks} |
3111 | % \textsc{Rem.} In the preceding example, any consonant could have | 3204 | % \item[\textsc{Rem.}] In the preceding example, any consonant could |
3112 | % been passed as argument to the \cs{arbnull} command. | 3205 | % have been passed as argument to the \cs{arbnull} command. |
3113 | % \end{quoting} | 3206 | % \end{remarks} |
3114 | % | 3207 | % |
3115 | % \paragraph{\texorpdfstring{\arb[trans]{^sad\-daT}}{šaddah}} | 3208 | % \paragraph{\texorpdfstring{\arb[trans]{^sad\-daT}}{šaddah}} |
3116 | % In the following example, it is assumed that the | 3209 | % In the following example, it is assumed that the |
@@ -3197,6 +3290,9 @@ | |||
3197 | % adopted by the International Convention of Orientalist Scholars in | 3290 | % adopted by the International Convention of Orientalist Scholars in |
3198 | % Rome in 1935.\footnote{See \textcite{dmg}.} |dmg| transliteration | 3291 | % Rome in 1935.\footnote{See \textcite{dmg}.} |dmg| transliteration |
3199 | % convention is selected by default; | 3292 | % convention is selected by default; |
3293 | % \item[dmg+] This is the same as above, with the difference that the | ||
3294 | % hamza is always printed, even in words preceded by the definite | ||
3295 | % article, as in \arb[trans]{al-'asadu}. | ||
3200 | % \item[loc] \emph{Library of Congress}: this standard is part of a | 3296 | % \item[loc] \emph{Library of Congress}: this standard is part of a |
3201 | % large set of standards for romanization of non-roman scripts | 3297 | % large set of standards for romanization of non-roman scripts |
3202 | % adopted by the American Library Association and the Library of | 3298 | % adopted by the American Library Association and the Library of |
@@ -3219,16 +3315,16 @@ | |||
3219 | % transliteration mode, which is set to |dmg| by default, may be | 3315 | % transliteration mode, which is set to |dmg| by default, may be |
3220 | % changed at any point of the document by the | 3316 | % changed at any point of the document by the |
3221 | % \cs{SetTranslitConvention}\marg{mode} command , where \meta{mode} | 3317 | % \cs{SetTranslitConvention}\marg{mode} command , where \meta{mode} |
3222 | % may be either |dmg|, |loc| or |arabica|. This command is also | 3318 | % may be either |dmg|, |dmg+|, |loc| or |arabica|. This command is also |
3223 | % accepted in the preamble should one wish to set the transliteration | 3319 | % accepted in the preamble should one wish to set the transliteration |
3224 | % mode globally, e.g.:---% | 3320 | % mode globally, e.g.:---% |
3225 | % \iffalse | 3321 | % \iffalse |
3226 | %<*example> | 3322 | %<*example> |
3227 | % \fi | 3323 | % \fi |
3228 | \begin{code} | 3324 | \begin{alcode} |
3229 | \usepackage{arabluatex} | 3325 | \usepackage{arabluatex} |
3230 | \SetTranslitConvention{loc} | 3326 | \SetTranslitConvention{loc} |
3231 | \end{code} | 3327 | \end{alcode} |
3232 | % \iffalse | 3328 | % \iffalse |
3233 | %</example> | 3329 | %</example> |
3234 | % \fi | 3330 | % \fi |
@@ -3250,10 +3346,10 @@ | |||
3250 | % \iffalse | 3346 | % \iffalse |
3251 | %<*example> | 3347 | %<*example> |
3252 | % \fi | 3348 | % \fi |
3253 | \begin{code} | 3349 | \begin{alcode} |
3254 | \newfontfamily\translitfont{Gentium Plus}[Ligatures=TeX] | 3350 | \newfontfamily\translitfont{Gentium Plus}[Ligatures=TeX] |
3255 | \SetTranslitFont{\translitfont} | 3351 | \SetTranslitFont{\translitfont} |
3256 | \end{code} | 3352 | \end{alcode} |
3257 | % \iffalse | 3353 | % \iffalse |
3258 | %</example> | 3354 | %</example> |
3259 | % \fi | 3355 | % \fi |
@@ -3366,14 +3462,15 @@ | |||
3366 | %</example> | 3462 | %</example> |
3367 | % \fi | 3463 | % \fi |
3368 | % | 3464 | % |
3369 | % \begin{quoting}\label{ref:prname-star} | 3465 | % \begin{remarks} |
3370 | % \textsc{Rem.} \DescribeMacro{\prname*} \package{arabluatex} also | 3466 | % \item[\textsc{Rem.}] \label{ref:prname-star} |
3371 | % provides \cs{prname*} which only renders in upright roman style | 3467 | % \DescribeMacro{\prname*} \package{arabluatex} also provides |
3372 | % already transliterated proper names without applying any further | 3468 | % \cs{prname*} which only renders in upright roman style already |
3469 | % transliterated proper names without applying any further | ||
3373 | % processing. It is mostly used internally and applied to proper | 3470 | % processing. It is mostly used internally and applied to proper |
3374 | % names exported in Unicode to an external selected | 3471 | % names exported in Unicode to an external selected |
3375 | % file.\footnote{See below \vref{sec:arabtex2utf} for more details.} | 3472 | % file.\footnote{See below \vref{sec:arabtex2utf} for more details.} |
3376 | % \end{quoting} | 3473 | % \end{remarks} |
3377 | % | 3474 | % |
3378 | % \subsection{Additional note on \texttt{dmg} convention} | 3475 | % \subsection{Additional note on \texttt{dmg} convention} |
3379 | % \label{sec:additional-note-dmg} | 3476 | % \label{sec:additional-note-dmg} |
@@ -3444,29 +3541,29 @@ | |||
3444 | % \arb[voc]{al-.zulm-Atu} \arb[trans]{al-.zulm-Atu}. | 3541 | % \arb[voc]{al-.zulm-Atu} \arb[trans]{al-.zulm-Atu}. |
3445 | % \end{quote} | 3542 | % \end{quote} |
3446 | % | 3543 | % |
3447 | % \begin{quoting} | 3544 | % \begin{remarks} |
3448 | % \textsc{Rem.}~\emph{a.} As the \arb[trans]{tanwIn} is passed over | 3545 | % \item As the \arb[trans]{tanwIn} is passed over in pronunciation |
3449 | % in pronunciation when it is followed by the letters | 3546 | % when it is followed by the letters \arb[novoc]{r}, \arb[novoc]{l}, |
3450 | % \arb[novoc]{r}, \arb[novoc]{l}, \arb[novoc]{m}, \arb[novoc]{w}, | 3547 | % \arb[novoc]{m}, \arb[novoc]{w}, \arb[novoc]{y} (see |
3451 | % \arb[novoc]{y} (see \vref{ref:assimilation}), it may be desirable | 3548 | % \vref{ref:assimilation}), it may be desirable to further |
3452 | % to further distinguish it by putting it above the line, but not to | 3549 | % distinguish it by putting it above the line, but not to do the |
3453 | % do the same for \arb[trans]{.gayr mun.sarif} terminations. This | 3550 | % same for \arb[trans]{.gayr mun.sarif} terminations. This can be |
3454 | % can be achieved by simply omitting the hyphen before any | 3551 | % achieved by simply omitting the hyphen before any |
3455 | % \arb[trans]{.gayr mun.sarif} termination:---\\ | 3552 | % \arb[trans]{.gayr mun.sarif} termination:---\\ |
3456 | % |kAna| |.ganiyyaN| |l_akinna-hu| |labisa| |^gubbaTaN| |mumazzaqaN| | 3553 | % |kAna| |.ganiyyaN| |l_akinna-hu| |labisa| |^gubbaTaN| |mumazzaqaN| |
3457 | % |'aydu-hA| \arb[voc]{kAna .ganiyyaN l_akinna-hu labisa ^gubbaTaN | 3554 | % |'aydu-hA| \arb[voc]{kAna .ganiyyaN l_akinna-hu labisa ^gubbaTaN |
3458 | % mumazzaqaN 'aydu-hA} \arb[trans]{kAna .ganiyyaN l_akinna-hu labisa | 3555 | % mumazzaqaN 'aydu-hA} \arb[trans]{kAna .ganiyyaN l_akinna-hu labisa |
3459 | % ^gubbaTaN mumazzaqaN 'aydu-hA}. | 3556 | % ^gubbaTaN mumazzaqaN 'aydu-hA}. |
3460 | % | 3557 | % |
3461 | % \textsc{Rem.}~\emph{b.} Although the hyphen before the | 3558 | % \item Although the hyphen before the \arb[trans]{tanwIn} is optional |
3462 | % \arb[trans]{tanwIn} is optional as \package{arabluatex} always | 3559 | % as \package{arabluatex} always parses nouns with such termination, |
3463 | % parses nouns with such termination, it may also be used to mark | 3560 | % it may also be used to mark |
3464 | % better the inflectional endings:---\\ | 3561 | % better the inflectional endings:---\\ |
3465 | % |mana`a| |'l-nAs-a| |kAffaT-aN| |min| |mu_hA.tabati-hi| | 3562 | % |mana`a| |'l-nAs-a| |kAffaT-aN| |min| |mu_hA.tabati-hi| |
3466 | % |'a.had-uN| |bi-sayyidi-nA| \arb[voc]{mana`a 'l-nAs-a kAffaT-aN | 3563 | % |'a.had-uN| |bi-sayyidi-nA| \arb[voc]{mana`a 'l-nAs-a kAffaT-aN |
3467 | % min mu_hA.tabati-hi 'a.had-uN bi-sayyidi-nA} \arb[trans]{mana`a | 3564 | % min mu_hA.tabati-hi 'a.had-uN bi-sayyidi-nA} \arb[trans]{mana`a |
3468 | % 'l-nAs-a kAffaT-aN min mu_hA.tabati-hi 'a.had-uN bi-sayyidi-nA}. | 3565 | % 'l-nAs-a kAffaT-aN min mu_hA.tabati-hi 'a.had-uN bi-sayyidi-nA}. |
3469 | % \end{quoting} | 3566 | % \end{remarks} |
3470 | % | 3567 | % |
3471 | % \paragraph{\texorpdfstring{Discar\-ding the | 3568 | % \paragraph{\texorpdfstring{Discar\-ding the |
3472 | % \arb[trans]{'i`rAb}}{Discarding the ʾiʿrāb}} | 3569 | % \arb[trans]{'i`rAb}}{Discarding the ʾiʿrāb}} |
@@ -3484,17 +3581,17 @@ | |||
3484 | % state): |.hikmaT| |al-l_ah| \arb[trans]{.hikmaT| \uc{al-l_ah}}, | 3581 | % state): |.hikmaT| |al-l_ah| \arb[trans]{.hikmaT| \uc{al-l_ah}}, |
3485 | % |fi.d.daT| |al-darAhim| \arb[trans]{fi.d.daT al-darAhim}. | 3582 | % |fi.d.daT| |al-darAhim| \arb[trans]{fi.d.daT al-darAhim}. |
3486 | % \end{enumerate} | 3583 | % \end{enumerate} |
3487 | % \begin{quoting} | 3584 | % \begin{remarks} |
3488 | % \textsc{Rem.} It may so happen, as in the absence of the article | 3585 | % \item[\textsc{Rem.}] It may so happen, as in the absence of the |
3489 | % before the annexed word, that \package{arabluatex} be unable to | 3586 | % article before the annexed word, that \package{arabluatex} be |
3490 | % determine which of the above two cases the word ending with | 3587 | % unable to determine which of the above two cases the word ending |
3491 | % \arb[trans]{tA' marbU.taT} falls into. The \enquote*{pipe} | 3588 | % with \arb[trans]{tA' marbU.taT} falls into. The \enquote*{pipe} |
3492 | % character (see \vref{sec:pipe}) may be appended to that word to | 3589 | % character (see \vref{sec:pipe}) may be appended to that word to |
3493 | % indicate that what follows is in the construct state: | 3590 | % indicate that what follows is in the construct state: |
3494 | % |\uc{r}isAlaT| |fI| |tartIb| \verb+qirA'aT|+ |kutub| | 3591 | % |\uc{r}isAlaT| |fI| |tartIb| \verb+qirA'aT|+ |kutub| |
3495 | % |\uc{^g}AlInUs| \arb[trans]{\uc{r}isAlaT fI tartIb qirA'aT| | 3592 | % |\uc{^g}AlInUs| \arb[trans]{\uc{r}isAlaT fI tartIb qirA'aT| kutub |
3496 | % kutub \uc{^g}AlInUs}. | 3593 | % \uc{^g}AlInUs}. |
3497 | % \end{quoting} | 3594 | % \end{remarks} |
3498 | % | 3595 | % |
3499 | % | 3596 | % |
3500 | % \paragraph{Uncertain short vowels} | 3597 | % \paragraph{Uncertain short vowels} |
@@ -3511,9 +3608,9 @@ | |||
3511 | % \arb[trans]{\uc{ju.hA}} and his donkey (\arb[voc]{\uc{ju.hA | 3608 | % \arb[trans]{\uc{ju.hA}} and his donkey (\arb[voc]{\uc{ju.hA |
3512 | % wa-.himAru-hu}}). See the code \vpageref{ref:juha-code}:--- | 3609 | % wa-.himAru-hu}}). See the code \vpageref{ref:juha-code}:--- |
3513 | % | 3610 | % |
3514 | % \SetTranslitConvention{dmg} | 3611 | % \SetTranslitConvention{dmg+} |
3515 | % \begin{arab}[trans] | 3612 | % \begin{arab}[trans] |
3516 | % \LR{\textbf{\emph{\enquote*{dmg}} standard:}} 'at_A .sadIquN 'il_A | 3613 | % \LR{\textbf{\emph{\enquote*{dmg+}} standard:}} 'at_A .sadIquN 'il_A |
3517 | % \uc{ju.hA} ya.tlubu min-hu .himAra-hu li-yarkaba-hu fI safraTiN | 3614 | % \uc{ju.hA} ya.tlubu min-hu .himAra-hu li-yarkaba-hu fI safraTiN |
3518 | % qa.sIraTiN fa-qAla la-hu: \enquote{sawfa 'u`Idu-hu 'ilay-ka fI | 3615 | % qa.sIraTiN fa-qAla la-hu: \enquote{sawfa 'u`Idu-hu 'ilay-ka fI |
3519 | % 'l-masA'-i wa-'adfa`u la-ka 'ujraTaN.} fa-qAla \uc{ju.hA}: | 3616 | % 'l-masA'-i wa-'adfa`u la-ka 'ujraTaN.} fa-qAla \uc{ju.hA}: |
@@ -3540,7 +3637,7 @@ | |||
3540 | % \enquote{.garIbuN 'amru-ka yA .sadIqI 'a-tu.saddiqu 'l-.himAr-a | 3637 | % \enquote{.garIbuN 'amru-ka yA .sadIqI 'a-tu.saddiqu 'l-.himAr-a |
3541 | % wa-tuka_d_diba-nI?} | 3638 | % wa-tuka_d_diba-nI?} |
3542 | % \end{arab} | 3639 | % \end{arab} |
3543 | % \SetTranslitConvention{dmg} | 3640 | % \SetTranslitConvention{dmg+} |
3544 | % | 3641 | % |
3545 | % \SetTranslitConvention{arabica} | 3642 | % \SetTranslitConvention{arabica} |
3546 | % \begin{arab}[trans] | 3643 | % \begin{arab}[trans] |
@@ -3556,7 +3653,7 @@ | |||
3556 | % \uc{ju.hA}: \enquote{.garIbuN 'amru-ka yA .sadIqI 'a-tu.saddiqu | 3653 | % \uc{ju.hA}: \enquote{.garIbuN 'amru-ka yA .sadIqI 'a-tu.saddiqu |
3557 | % 'l-.himAr-a wa-tuka_d_diba-nI?} | 3654 | % 'l-.himAr-a wa-tuka_d_diba-nI?} |
3558 | % \end{arab} | 3655 | % \end{arab} |
3559 | % \SetTranslitConvention{dmg} | 3656 | % \SetTranslitConvention{dmg+} |
3560 | % | 3657 | % |
3561 | % \section{Buckwalter input scheme} | 3658 | % \section{Buckwalter input scheme} |
3562 | % \label{sec:buckwalter-scheme} | 3659 | % \label{sec:buckwalter-scheme} |
@@ -3580,10 +3677,10 @@ | |||
3580 | % \iffalse | 3677 | % \iffalse |
3581 | %<*example> | 3678 | %<*example> |
3582 | % \fi | 3679 | % \fi |
3583 | \begin{code} | 3680 | \begin{alcode} |
3584 | \usepackage{arabluatex} | 3681 | \usepackage{arabluatex} |
3585 | \SetInputScheme{buckwalter} | 3682 | \SetInputScheme{buckwalter} |
3586 | \end{code} | 3683 | \end{alcode} |
3587 | % \iffalse | 3684 | % \iffalse |
3588 | %</example> | 3685 | %</example> |
3589 | % \fi | 3686 | % \fi |
@@ -3616,13 +3713,13 @@ | |||
3616 | % \captionlistentry{Buckwalter input scheme} | 3713 | % \captionlistentry{Buckwalter input scheme} |
3617 | % Letter & \multicolumn{3}{l}{Transliteration\footnotemark} | 3714 | % Letter & \multicolumn{3}{l}{Transliteration\footnotemark} |
3618 | % & \multicolumn{2}{l}{Buckwalter notation} \\ | 3715 | % & \multicolumn{2}{l}{Buckwalter notation} \\ |
3619 | % & \texttt{dmg} & \texttt{loc} & \texttt{arabica} & |base/xml| & | 3716 | % & \texttt{dmg+} & \texttt{loc} & \texttt{arabica} & |base/xml| & |
3620 | % |safe| \\ \midrule | 3717 | % |safe| \\ \midrule |
3621 | % \endfirsthead | 3718 | % \endfirsthead |
3622 | % \toprule | 3719 | % \toprule |
3623 | % Letter & \multicolumn{3}{l}{Transliteration} | 3720 | % Letter & \multicolumn{3}{l}{Transliteration} |
3624 | % & \multicolumn{2}{l}{Buckwalter notation} \\ | 3721 | % & \multicolumn{2}{l}{Buckwalter notation} \\ |
3625 | % & \texttt{dmg} & \texttt{loc} & \texttt{arabica} & |base/xml| & | 3722 | % & \texttt{dmg+} & \texttt{loc} & \texttt{arabica} & |base/xml| & |
3626 | % |safe| \\ \midrule | 3723 | % |safe| \\ \midrule |
3627 | % \endhead \footnotetext{See \vref{sec:transliteration}.} | 3724 | % \endhead \footnotetext{See \vref{sec:transliteration}.} |
3628 | % \label{tab:buckwalter-scheme} | 3725 | % \label{tab:buckwalter-scheme} |
@@ -3736,11 +3833,11 @@ | |||
3736 | % \iffalse | 3833 | % \iffalse |
3737 | %<*example> | 3834 | %<*example> |
3738 | % \fi | 3835 | % \fi |
3739 | \begin{code} | 3836 | \begin{alcode} |
3740 | \begin{txarab} | 3837 | \begin{txarab} |
3741 | <Unicode Arabic text> | 3838 | <Unicode Arabic text> |
3742 | \end{txarab} | 3839 | \end{txarab} |
3743 | \end{code} | 3840 | \end{alcode} |
3744 | % \iffalse | 3841 | % \iffalse |
3745 | %</example> | 3842 | %</example> |
3746 | % \fi | 3843 | % \fi |
@@ -3839,6 +3936,7 @@ | |||
3839 | % for that, but should it happen, it may be necessary to redefine in | 3936 | % for that, but should it happen, it may be necessary to redefine in |
3840 | % the preamble the \LaTeX\ macro \cs{thefootnote} like so:---\\ | 3937 | % the preamble the \LaTeX\ macro \cs{thefootnote} like so:---\\ |
3841 | % \tcboxverb{\renewcommand*{\thefootnote}{\textsuperscript{\LR{\arabic{footnote}}}}} | 3938 | % \tcboxverb{\renewcommand*{\thefootnote}{\textsuperscript{\LR{\arabic{footnote}}}}} |
3939 | % | ||
3842 | % \DescribeMacro{\FixArbFtnmk} Another solution is to put in the | 3940 | % \DescribeMacro{\FixArbFtnmk} Another solution is to put in the |
3843 | % preamble, below the line that loads \package{arabluatex}, the | 3941 | % preamble, below the line that loads \package{arabluatex}, the |
3844 | % \cs{FixArbFtnmk} command. However, for more control over the layout | 3942 | % \cs{FixArbFtnmk} command. However, for more control over the layout |
@@ -3973,13 +4071,13 @@ | |||
3973 | % \iffalse | 4071 | % \iffalse |
3974 | %<*example> | 4072 | %<*example> |
3975 | % \fi | 4073 | % \fi |
3976 | \begin{code} | 4074 | \begin{alcode} |
3977 | \begin{arab} | 4075 | \begin{arab} |
3978 | \begin{<environment>}[<options>] | 4076 | \begin{<environment>}[<options>] |
3979 | <Arabic text> | 4077 | <Arabic text> |
3980 | \end{<environment>} | 4078 | \end{<environment>} |
3981 | \end{arab} | 4079 | \end{arab} |
3982 | \end{code} | 4080 | \end{alcode} |
3983 | % \iffalse | 4081 | % \iffalse |
3984 | %</example> | 4082 | %</example> |
3985 | % \fi | 4083 | % \fi |
@@ -4076,13 +4174,13 @@ | |||
4076 | % \iffalse | 4174 | % \iffalse |
4077 | %<*example> | 4175 | %<*example> |
4078 | % \fi | 4176 | % \fi |
4079 | \begin{code} | 4177 | \begin{alcode} |
4080 | % preamble:--- | 4178 | % preamble:--- |
4081 | \usepackage{enumitem} | 4179 | \usepackage{enumitem} |
4082 | \newlist{enumabjad}{enumerate}{10} | 4180 | \newlist{enumabjad}{enumerate}{10} |
4083 | \setlist[enumabjad]{nosep, label={\abjad{\arabic*}}} | 4181 | \setlist[enumabjad]{nosep, label={\abjad{\arabic*}}} |
4084 | \usepackage{multicol} | 4182 | \usepackage{multicol} |
4085 | \end{code} | 4183 | \end{alcode} |
4086 | \begin{example} | 4184 | \begin{example} |
4087 | From \textcite[i. 29 B--C]{Wright}:--- The derived forms of the | 4185 | From \textcite[i. 29 B--C]{Wright}:--- The derived forms of the |
4088 | triliteral verb are usually reckoned fifteen in number, but the | 4186 | triliteral verb are usually reckoned fifteen in number, but the |
@@ -4125,10 +4223,10 @@ | |||
4125 | % \iffalse | 4223 | % \iffalse |
4126 | %<*example> | 4224 | %<*example> |
4127 | % \fi | 4225 | % \fi |
4128 | \begin{code} | 4226 | \begin{alcode} |
4129 | \usepackage[french]{babel} | 4227 | \usepackage[french]{babel} |
4130 | \frenchsetup{StandardLists=true} | 4228 | \frenchsetup{StandardLists=true} |
4131 | \end{code} | 4229 | \end{alcode} |
4132 | % \iffalse | 4230 | % \iffalse |
4133 | %</example> | 4231 | %</example> |
4134 | % \fi% | 4232 | % \fi% |
@@ -4146,12 +4244,12 @@ | |||
4146 | % \iffalse | 4244 | % \iffalse |
4147 | %<*example> | 4245 | %<*example> |
4148 | % \fi | 4246 | % \fi |
4149 | \begin{code} | 4247 | \begin{alcode} |
4150 | \usepackage{csquotes} | 4248 | \usepackage{csquotes} |
4151 | \DeclareQuoteStyle{arabic} | 4249 | \DeclareQuoteStyle{arabic} |
4152 | {\textquotedblright}{\textquotedblleft} | 4250 | {\textquotedblright}{\textquotedblleft} |
4153 | {\textquoteright}{\textquoteleft} | 4251 | {\textquoteright}{\textquoteleft} |
4154 | \end{code} | 4252 | \end{alcode} |
4155 | % \iffalse | 4253 | % \iffalse |
4156 | %</example> | 4254 | %</example> |
4157 | % \fi | 4255 | % \fi |
@@ -4170,11 +4268,11 @@ | |||
4170 | % \iffalse | 4268 | % \iffalse |
4171 | %</example> | 4269 | %</example> |
4172 | % \fi | 4270 | % \fi |
4173 | % \begin{quoting} | 4271 | % \begin{remarks} |
4174 | % \textsc{Rem.} Do not forget to set back the quoting style to its | 4272 | % \item[\textsc{Rem.}] Do not forget to set back the quoting style to |
4175 | % initial state once the Arabic environment is closed. See the last | 4273 | % its initial state once the Arabic environment is closed. See the |
4176 | % line in the code above. | 4274 | % last line in the code above. |
4177 | % \end{quoting} | 4275 | % \end{remarks} |
4178 | % | 4276 | % |
4179 | % \subsection{Two-argument special commands} | 4277 | % \subsection{Two-argument special commands} |
4180 | % \label{sec:two-arg-cmds} | 4278 | % \label{sec:two-arg-cmds} |
@@ -4223,7 +4321,7 @@ | |||
4223 | % \iffalse | 4321 | % \iffalse |
4224 | %<*example> | 4322 | %<*example> |
4225 | % \fi | 4323 | % \fi |
4226 | \begin{code} | 4324 | \begin{alcode} |
4227 | \beginnumbering | 4325 | \beginnumbering |
4228 | \pstart | 4326 | \pstart |
4229 | \begin{arab} | 4327 | \begin{arab} |
@@ -4232,7 +4330,7 @@ | |||
4232 | \end{arab} | 4330 | \end{arab} |
4233 | \pend | 4331 | \pend |
4234 | \endnumbering | 4332 | \endnumbering |
4235 | \end{code} | 4333 | \end{alcode} |
4236 | % \iffalse | 4334 | % \iffalse |
4237 | %</example> | 4335 | %</example> |
4238 | % \fi | 4336 | % \fi |
@@ -4257,10 +4355,10 @@ | |||
4257 | % \iffalse | 4355 | % \iffalse |
4258 | %<*example> | 4356 | %<*example> |
4259 | % \fi | 4357 | % \fi |
4260 | \begin{code} | 4358 | \begin{alcode} |
4261 | \usepackage{arabluatex} | 4359 | \usepackage{arabluatex} |
4262 | \usepackage[nopar]{quran} | 4360 | \usepackage[nopar]{quran} |
4263 | \end{code} | 4361 | \end{alcode} |
4264 | % \iffalse | 4362 | % \iffalse |
4265 | %</example> | 4363 | %</example> |
4266 | % \fi | 4364 | % \fi |
@@ -4299,12 +4397,12 @@ | |||
4299 | % \iffalse | 4397 | % \iffalse |
4300 | %<*example> | 4398 | %<*example> |
4301 | % \fi | 4399 | % \fi |
4302 | \begin{code} | 4400 | \begin{alcode} |
4303 | % preamble | 4401 | % preamble |
4304 | \usepackage[export]{arabluatex} | 4402 | \usepackage[export]{arabluatex} |
4305 | % or: | 4403 | % or: |
4306 | \usepackage[export=true]{arabluatex} | 4404 | \usepackage[export=true]{arabluatex} |
4307 | \end{code} | 4405 | \end{alcode} |
4308 | % \iffalse | 4406 | % \iffalse |
4309 | %</example> | 4407 | %</example> |
4310 | % \fi | 4408 | % \fi |
@@ -4324,11 +4422,11 @@ | |||
4324 | % \iffalse | 4422 | % \iffalse |
4325 | %<*example> | 4423 | %<*example> |
4326 | % \fi | 4424 | % \fi |
4327 | \begin{code} | 4425 | \begin{alcode} |
4328 | \begin{arabexport} | 4426 | \begin{arabexport} |
4329 | <Running paragraphs of either Arabic or non-Arabic text> | 4427 | <Running paragraphs of either Arabic or non-Arabic text> |
4330 | \end{arabexport} | 4428 | \end{arabexport} |
4331 | \end{code} | 4429 | \end{alcode} |
4332 | % \iffalse | 4430 | % \iffalse |
4333 | %</example> | 4431 | %</example> |
4334 | % \fi | 4432 | % \fi |
@@ -4386,11 +4484,11 @@ | |||
4386 | % \iffalse | 4484 | % \iffalse |
4387 | %<*example> | 4485 | %<*example> |
4388 | % \fi | 4486 | % \fi |
4389 | \begin{code} | 4487 | \begin{alcode} |
4390 | Package arabluatex Warning: There are still 'arabtex' strings | 4488 | Package arabluatex Warning: There are still 'arabtex' strings |
4391 | to be converted. Please open <jobname><suffix>.tex and compile | 4489 | to be converted. Please open <jobname><suffix>.tex and compile |
4392 | it one more time. | 4490 | it one more time. |
4393 | \end{code} | 4491 | \end{alcode} |
4394 | % \iffalse | 4492 | % \iffalse |
4395 | %</example> | 4493 | %</example> |
4396 | % \fi | 4494 | % \fi |
@@ -4408,9 +4506,9 @@ | |||
4408 | % \iffalse | 4506 | % \iffalse |
4409 | %<*example> | 4507 | %<*example> |
4410 | % \fi | 4508 | % \fi |
4411 | \begin{code} | 4509 | \begin{alcode} |
4412 | pandoc file_out.tex -s -o file_out.odt | 4510 | pandoc file_out.tex -s -o file_out.odt |
4413 | \end{code} | 4511 | \end{alcode} |
4414 | % \iffalse | 4512 | % \iffalse |
4415 | %</example> | 4513 | %</example> |
4416 | % \fi | 4514 | % \fi |
@@ -4422,7 +4520,7 @@ | |||
4422 | % \iffalse | 4520 | % \iffalse |
4423 | %<*example> | 4521 | %<*example> |
4424 | % \fi | 4522 | % \fi |
4425 | \begin{code} | 4523 | \begin{alcode} |
4426 | % preamble: | 4524 | % preamble: |
4427 | \usepackage{arabluatex} % note that 'export' has been removed | 4525 | \usepackage{arabluatex} % note that 'export' has been removed |
4428 | \renewcommand{\txarb}[1]{#1} | 4526 | \renewcommand{\txarb}[1]{#1} |
@@ -4432,7 +4530,7 @@ | |||
4432 | % be safe to say: | 4530 | % be safe to say: |
4433 | \renewcommand{\prname}[2]{#2} | 4531 | \renewcommand{\prname}[2]{#2} |
4434 | % &c | 4532 | % &c |
4435 | \end{code} | 4533 | \end{alcode} |
4436 | % \iffalse | 4534 | % \iffalse |
4437 | %</example> | 4535 | %</example> |
4438 | % \fi | 4536 | % \fi |
@@ -4461,546 +4559,6 @@ | |||
4461 | % \end{enumerate} | 4559 | % \end{enumerate} |
4462 | % \end{enumerate} | 4560 | % \end{enumerate} |
4463 | % | 4561 | % |
4464 | % \section{GNU Free Documentation License} | ||
4465 | % \label{sec:fdl} | ||
4466 | % \textbf{Version 1.3, 3 November 2008} | ||
4467 | % | ||
4468 | % \begin{center} | ||
4469 | % Version 1.3, 3 November 2008 | ||
4470 | % | ||
4471 | % Copyright \copyright{} 2000, 2001, 2002, 2007, 2008 Free | ||
4472 | % Software Foundation, Inc. | ||
4473 | % | ||
4474 | % \bigskip | ||
4475 | % | ||
4476 | % \url{https://fsf.org/} | ||
4477 | % | ||
4478 | % \bigskip | ||
4479 | % | ||
4480 | % Everyone is permitted to copy and distribute verbatim copies | ||
4481 | % of this license document, but changing it is not allowed. | ||
4482 | % \end{center} | ||
4483 | % | ||
4484 | % \needspace{3\baselineskip} | ||
4485 | % \begin{center} | ||
4486 | % {\bf\large Preamble} | ||
4487 | % \end{center} | ||
4488 | % | ||
4489 | % The purpose of this License is to make a manual, textbook, or other | ||
4490 | % functional and useful document \enquote{free} in the sense of | ||
4491 | % freedom: to assure everyone the effective freedom to copy and | ||
4492 | % redistribute it, with or without modifying it, either commercially | ||
4493 | % or noncommercially. Secondarily, this License preserves for the | ||
4494 | % author and publisher a way to get credit for their work, while not | ||
4495 | % being considered responsible for modifications made by others. | ||
4496 | % | ||
4497 | % This License is a kind of \enquote{copyleft}, which means that | ||
4498 | % derivative works of the document must themselves be free in the same | ||
4499 | % sense. It complements the GNU General Public License, which is a | ||
4500 | % copyleft license designed for free software. | ||
4501 | % | ||
4502 | % We have designed this License in order to use it for manuals for | ||
4503 | % free software, because free software needs free documentation: a | ||
4504 | % free program should come with manuals providing the same freedoms | ||
4505 | % that the software does. But this License is not limited to software | ||
4506 | % manuals; it can be used for any textual work, regardless of subject | ||
4507 | % matter or whether it is published as a printed book. We recommend | ||
4508 | % this License principally for works whose purpose is instruction or | ||
4509 | % reference. | ||
4510 | % | ||
4511 | % \needspace{3\baselineskip} | ||
4512 | % \begin{center} | ||
4513 | % {\large\bf 1. APPLICABILITY AND DEFINITIONS\par} | ||
4514 | % \end{center} | ||
4515 | % | ||
4516 | % This License applies to any manual or other work, in any medium, | ||
4517 | % that contains a notice placed by the copyright holder saying it can | ||
4518 | % be distributed under the terms of this License. Such a notice | ||
4519 | % grants a world-wide, royalty-free license, unlimited in duration, to | ||
4520 | % use that work under the conditions stated herein. The | ||
4521 | % \enquote{\textbf{Document}}, below, refers to any such manual or | ||
4522 | % work. Any member of the public is a licensee, and is addressed as | ||
4523 | % \enquote{\textbf{you}}. You accept the license if you copy, modify | ||
4524 | % or distribute the work in a way requiring permission under copyright | ||
4525 | % law. | ||
4526 | % | ||
4527 | % A \enquote{\textbf{Modified Version}} of the Document means any work | ||
4528 | % containing the Document or a portion of it, either copied verbatim, | ||
4529 | % or with modifications and/or translated into another language. | ||
4530 | % | ||
4531 | % A \enquote{\textbf{Secondary Section}} is a named appendix or a | ||
4532 | % front-matter section of the Document that deals exclusively with the | ||
4533 | % relationship of the publishers or authors of the Document to the | ||
4534 | % Document's overall subject (or to related matters) and contains | ||
4535 | % nothing that could fall directly within that overall subject. | ||
4536 | % (Thus, if the Document is in part a textbook of mathematics, a | ||
4537 | % Secondary Section may not explain any mathematics.) The | ||
4538 | % relationship could be a matter of historical connection with the | ||
4539 | % subject or with related matters, or of legal, commercial, | ||
4540 | % philosophical, ethical or political position regarding them. | ||
4541 | % | ||
4542 | % The \enquote{\textbf{Invariant Sections}} are certain Secondary | ||
4543 | % Sections whose titles are designated, as being those of Invariant | ||
4544 | % Sections, in the notice that says that the Document is released | ||
4545 | % under this License. If a section does not fit the above definition | ||
4546 | % of Secondary then it is not allowed to be designated as Invariant. | ||
4547 | % The Document may contain zero Invariant Sections. If the Document | ||
4548 | % does not identify any Invariant Sections then there are none. | ||
4549 | % | ||
4550 | % The \enquote{\textbf{Cover Texts}} are certain short passages of | ||
4551 | % text that are listed, as Front-Cover Texts or Back-Cover Texts, in | ||
4552 | % the notice that says that the Document is released under this | ||
4553 | % License. A Front-Cover Text may be at most 5 words, and a | ||
4554 | % Back-Cover Text may be at most 25 words. | ||
4555 | % | ||
4556 | % A \enquote{\textbf{Transparent}} copy of the Document means a | ||
4557 | % machine-readable copy, represented in a format whose specification | ||
4558 | % is available to the general public, that is suitable for revising | ||
4559 | % the document straightforwardly with generic text editors or (for | ||
4560 | % images composed of pixels) generic paint programs or (for drawings) | ||
4561 | % some widely available drawing editor, and that is suitable for input | ||
4562 | % to text formatters or for automatic translation to a variety of | ||
4563 | % formats suitable for input to text formatters. A copy made in an | ||
4564 | % otherwise Transparent file format whose markup, or absence of | ||
4565 | % markup, has been arranged to thwart or discourage subsequent | ||
4566 | % modification by readers is not Transparent. An image format is not | ||
4567 | % Transparent if used for any substantial amount of text. A copy that | ||
4568 | % is not \enquote{Transparent} is called \enquote{\textbf{Opaque}}. | ||
4569 | % | ||
4570 | % Examples of suitable formats for Transparent copies include plain | ||
4571 | % ASCII without markup, Texinfo input format, LaTeX input format, SGML | ||
4572 | % or XML using a publicly available DTD, and standard-conforming | ||
4573 | % simple HTML, PostScript or PDF designed for human modification. | ||
4574 | % Examples of transparent image formats include PNG, XCF and JPG. | ||
4575 | % Opaque formats include proprietary formats that can be read and | ||
4576 | % edited only by proprietary word processors, SGML or XML for which | ||
4577 | % the DTD and/or processing tools are not generally available, and the | ||
4578 | % machine-generated HTML, PostScript or PDF produced by some word | ||
4579 | % processors for output purposes only. | ||
4580 | % | ||
4581 | % The \enquote{\textbf{Title Page}} means, for a printed book, the | ||
4582 | % title page itself, plus such following pages as are needed to hold, | ||
4583 | % legibly, the material this License requires to appear in the title | ||
4584 | % page. For works in formats which do not have any title page as | ||
4585 | % such, \enquote{Title Page} means the text near the most prominent | ||
4586 | % appearance of the work's title, preceding the beginning of the body | ||
4587 | % of the text. | ||
4588 | % | ||
4589 | % The \enquote{\textbf{publisher}} means any person or entity that | ||
4590 | % distributes copies of the Document to the public. | ||
4591 | % | ||
4592 | % A section \enquote{\textbf{Entitled XYZ}} means a named subunit of | ||
4593 | % the Document whose title either is precisely XYZ or contains XYZ in | ||
4594 | % parentheses following text that translates XYZ in another language. | ||
4595 | % (Here XYZ stands for a specific section name mentioned below, such | ||
4596 | % as \enquote{\textbf{Acknowledgements}}, | ||
4597 | % \enquote{\textbf{Dedications}}, \enquote{\textbf{Endorsements}}, or | ||
4598 | % \enquote{\textbf{History}}.) To \enquote{\textbf{Preserve the | ||
4599 | % Title}} of such a section when you modify the Document means that it | ||
4600 | % remains a section \enquote{Entitled XYZ} according to this | ||
4601 | % definition. | ||
4602 | % | ||
4603 | % The Document may include Warranty Disclaimers next to the notice | ||
4604 | % which states that this License applies to the Document. These | ||
4605 | % Warranty Disclaimers are considered to be included by reference in | ||
4606 | % this License, but only as regards disclaiming warranties: any other | ||
4607 | % implication that these Warranty Disclaimers may have is void and has | ||
4608 | % no effect on the meaning of this License. | ||
4609 | % | ||
4610 | % \needspace{3\baselineskip} | ||
4611 | % \begin{center} | ||
4612 | % {\large\bf 2. VERBATIM COPYING\par} | ||
4613 | % \end{center} | ||
4614 | % | ||
4615 | % You may copy and distribute the Document in any medium, either | ||
4616 | % commercially or noncommercially, provided that this License, the | ||
4617 | % copyright notices, and the license notice saying this License | ||
4618 | % applies to the Document are reproduced in all copies, and that you | ||
4619 | % add no other conditions whatsoever to those of this License. You | ||
4620 | % may not use technical measures to obstruct or control the reading or | ||
4621 | % further copying of the copies you make or distribute. However, you | ||
4622 | % may accept compensation in exchange for copies. If you distribute a | ||
4623 | % large enough number of copies you must also follow the conditions in | ||
4624 | % section~3. | ||
4625 | % | ||
4626 | % You may also lend copies, under the same conditions stated above, | ||
4627 | % and you may publicly display copies. | ||
4628 | % | ||
4629 | % \needspace{3\baselineskip} | ||
4630 | % \begin{center} | ||
4631 | % {\large\bf 3. COPYING IN QUANTITY\par} | ||
4632 | % \end{center} | ||
4633 | % | ||
4634 | % If you publish printed copies (or copies in media that commonly have | ||
4635 | % printed covers) of the Document, numbering more than 100, and the | ||
4636 | % Document's license notice requires Cover Texts, you must enclose the | ||
4637 | % copies in covers that carry, clearly and legibly, all these Cover | ||
4638 | % Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on | ||
4639 | % the back cover. Both covers must also clearly and legibly identify | ||
4640 | % you as the publisher of these copies. The front cover must present | ||
4641 | % the full title with all words of the title equally prominent and | ||
4642 | % visible. You may add other material on the covers in addition. | ||
4643 | % Copying with changes limited to the covers, as long as they preserve | ||
4644 | % the title of the Document and satisfy these conditions, can be | ||
4645 | % treated as verbatim copying in other respects. | ||
4646 | % | ||
4647 | % If the required texts for either cover are too voluminous to fit | ||
4648 | % legibly, you should put the first ones listed (as many as fit | ||
4649 | % reasonably) on the actual cover, and continue the rest onto adjacent | ||
4650 | % pages. | ||
4651 | % | ||
4652 | % If you publish or distribute Opaque copies of the Document numbering | ||
4653 | % more than 100, you must either include a machine-readable | ||
4654 | % Transparent copy along with each Opaque copy, or state in or with | ||
4655 | % each Opaque copy a computer-network location from which the general | ||
4656 | % network-using public has access to download using public-standard | ||
4657 | % network protocols a complete Transparent copy of the Document, free | ||
4658 | % of added material. If you use the latter option, you must take | ||
4659 | % reasonably prudent steps, when you begin distribution of Opaque | ||
4660 | % copies in quantity, to ensure that this Transparent copy will remain | ||
4661 | % thus accessible at the stated location until at least one year after | ||
4662 | % the last time you distribute an Opaque copy (directly or through | ||
4663 | % your agents or retailers) of that edition to the public. | ||
4664 | % | ||
4665 | % It is requested, but not required, that you contact the authors of | ||
4666 | % the Document well before redistributing any large number of copies, | ||
4667 | % to give them a chance to provide you with an updated version of the | ||
4668 | % Document. | ||
4669 | % | ||
4670 | % \needspace{3\baselineskip} | ||
4671 | % \begin{center} | ||
4672 | % {\large\bf 4. MODIFICATIONS\par} | ||
4673 | % \end{center} | ||
4674 | % | ||
4675 | % You may copy and distribute a Modified Version of the Document under | ||
4676 | % the conditions of sections 2 and 3 above, provided that you release | ||
4677 | % the Modified Version under precisely this License, with the Modified | ||
4678 | % Version filling the role of the Document, thus licensing | ||
4679 | % distribution and modification of the Modified Version to whoever | ||
4680 | % possesses a copy of it. In addition, you must do these things in | ||
4681 | % the Modified Version: | ||
4682 | % | ||
4683 | % \begin{itemize} | ||
4684 | % \item[A.] Use in the Title Page (and on the covers, if any) a title | ||
4685 | % distinct from that of the Document, and from those of previous | ||
4686 | % versions (which should, if there were any, be listed in the | ||
4687 | % History section of the Document). You may use the same title as a | ||
4688 | % previous version if the original publisher of that version gives | ||
4689 | % permission. | ||
4690 | % | ||
4691 | % \item[B.] List on the Title Page, as authors, one or more persons | ||
4692 | % or entities responsible for authorship of the modifications in | ||
4693 | % the Modified Version, together with at least five of the | ||
4694 | % principal authors of the Document (all of its principal authors, | ||
4695 | % if it has fewer than five), unless they release you from this | ||
4696 | % requirement. | ||
4697 | % | ||
4698 | % \item[C.] State on the Title page the name of the publisher of the | ||
4699 | % Modified Version, as the publisher. | ||
4700 | % | ||
4701 | % \item[D.] Preserve all the copyright notices of the Document. | ||
4702 | % | ||
4703 | % \item[E.] Add an appropriate copyright notice for your | ||
4704 | % modifications adjacent to the other copyright notices. | ||
4705 | % | ||
4706 | % \item[F.] Include, immediately after the copyright notices, a | ||
4707 | % license notice giving the public permission to use the Modified | ||
4708 | % Version under the terms of this License, in the form shown in the | ||
4709 | % Addendum below. | ||
4710 | % | ||
4711 | % \item[G.] Preserve in that license notice the full lists of | ||
4712 | % Invariant Sections and required Cover Texts given in the | ||
4713 | % Document's license notice. | ||
4714 | % | ||
4715 | % \item[H.] Include an unaltered copy of this License. | ||
4716 | % | ||
4717 | % \item[I.] Preserve the section Entitled \enquote{History}, | ||
4718 | % Preserve its Title, and add to it an item stating at least the | ||
4719 | % title, year, new authors, and publisher of the Modified Version | ||
4720 | % as given on the Title Page. If there is no section Entitled | ||
4721 | % \enquote{History} in the Document, create one stating the title, | ||
4722 | % year, authors, and publisher of the Document as given on its | ||
4723 | % Title Page, then add an item describing the Modified Version as | ||
4724 | % stated in the previous sentence. | ||
4725 | % | ||
4726 | % \item[J.] Preserve the network location, if any, given in the | ||
4727 | % Document for public access to a Transparent copy of the Document, | ||
4728 | % and likewise the network locations given in the Document for | ||
4729 | % previous versions it was based on. These may be placed in the | ||
4730 | % \enquote{History} section. You may omit a network location for a | ||
4731 | % work that was published at least four years before the Document | ||
4732 | % itself, or if the original publisher of the version it refers to | ||
4733 | % gives permission. | ||
4734 | % | ||
4735 | % \item[K.] For any section Entitled \enquote{Acknowledgements} or | ||
4736 | % \enquote{Dedications}, Preserve the Title of the section, and | ||
4737 | % preserve in the section all the substance and tone of each of the | ||
4738 | % contributor acknowledgements and/or dedications given therein. | ||
4739 | % | ||
4740 | % \item[L.] Preserve all the Invariant Sections of the Document, | ||
4741 | % unaltered in their text and in their titles. Section numbers or | ||
4742 | % the equivalent are not considered part of the section titles. | ||
4743 | % | ||
4744 | % \item[M.] Delete any section Entitled \enquote{Endorsements}. | ||
4745 | % Such a section may not be included in the Modified Version. | ||
4746 | % | ||
4747 | % \item[N.] Do not retitle any existing section to be Entitled | ||
4748 | % \enquote{Endorsements} or to conflict in title with any Invariant | ||
4749 | % Section. | ||
4750 | % | ||
4751 | % \item[O.] Preserve any Warranty Disclaimers. | ||
4752 | % \end{itemize} | ||
4753 | % | ||
4754 | % If the Modified Version includes new front-matter sections or | ||
4755 | % appendices that qualify as Secondary Sections and contain no | ||
4756 | % material copied from the Document, you may at your option designate | ||
4757 | % some or all of these sections as invariant. To do this, add their | ||
4758 | % titles to the list of Invariant Sections in the Modified Version's | ||
4759 | % license notice. These titles must be distinct from any other | ||
4760 | % section titles. | ||
4761 | % | ||
4762 | % You may add a section Entitled \enquote{Endorsements}, provided it | ||
4763 | % contains nothing but endorsements of your Modified Version by | ||
4764 | % various parties---for example, statements of peer review or that the | ||
4765 | % text has been approved by an organization as the authoritative | ||
4766 | % definition of a standard. | ||
4767 | % | ||
4768 | % You may add a passage of up to five words as a Front-Cover Text, and | ||
4769 | % a passage of up to 25 words as a Back-Cover Text, to the end of the | ||
4770 | % list of Cover Texts in the Modified Version. Only one passage of | ||
4771 | % Front-Cover Text and one of Back-Cover Text may be added by (or | ||
4772 | % through arrangements made by) any one entity. If the Document | ||
4773 | % already includes a cover text for the same cover, previously added | ||
4774 | % by you or by arrangement made by the same entity you are acting on | ||
4775 | % behalf of, you may not add another; but you may replace the old one, | ||
4776 | % on explicit permission from the previous publisher that added the | ||
4777 | % old one. | ||
4778 | % | ||
4779 | % The author(s) and publisher(s) of the Document do not by this | ||
4780 | % License give permission to use their names for publicity for or to | ||
4781 | % assert or imply endorsement of any Modified Version. | ||
4782 | % | ||
4783 | % \needspace{3\baselineskip} | ||
4784 | % \begin{center} | ||
4785 | % {\large\bf 5. COMBINING DOCUMENTS\par} | ||
4786 | % \end{center} | ||
4787 | % | ||
4788 | % You may combine the Document with other documents released under | ||
4789 | % this License, under the terms defined in section~4 above for | ||
4790 | % modified versions, provided that you include in the combination all | ||
4791 | % of the Invariant Sections of all of the original documents, | ||
4792 | % unmodified, and list them all as Invariant Sections of your combined | ||
4793 | % work in its license notice, and that you preserve all their Warranty | ||
4794 | % Disclaimers. | ||
4795 | % | ||
4796 | % The combined work need only contain one copy of this License, and | ||
4797 | % multiple identical Invariant Sections may be replaced with a single | ||
4798 | % copy. If there are multiple Invariant Sections with the same name | ||
4799 | % but different contents, make the title of each such section unique | ||
4800 | % by adding at the end of it, in parentheses, the name of the original | ||
4801 | % author or publisher of that section if known, or else a unique | ||
4802 | % number. Make the same adjustment to the section titles in the list | ||
4803 | % of Invariant Sections in the license notice of the combined work. | ||
4804 | % | ||
4805 | % In the combination, you must combine any sections Entitled | ||
4806 | % \enquote{History} in the various original documents, forming one | ||
4807 | % section Entitled \enquote{History}; likewise combine any sections | ||
4808 | % Entitled \enquote{Acknowledgements}, and any sections Entitled | ||
4809 | % \enquote{Dedications}. You must delete all sections Entitled | ||
4810 | % \enquote{Endorsements}. | ||
4811 | % | ||
4812 | % \needspace{3\baselineskip} | ||
4813 | % \begin{center} | ||
4814 | % {\large\bf 6. COLLECTIONS OF DOCUMENTS\par} | ||
4815 | % \end{center} | ||
4816 | % | ||
4817 | % You may make a collection consisting of the Document and other | ||
4818 | % documents released under this License, and replace the individual | ||
4819 | % copies of this License in the various documents with a single copy | ||
4820 | % that is included in the collection, provided that you follow the | ||
4821 | % rules of this License for verbatim copying of each of the documents | ||
4822 | % in all other respects. | ||
4823 | % | ||
4824 | % You may extract a single document from such a collection, and | ||
4825 | % distribute it individually under this License, provided you insert a | ||
4826 | % copy of this License into the extracted document, and follow this | ||
4827 | % License in all other respects regarding verbatim copying of that | ||
4828 | % document. | ||
4829 | % | ||
4830 | % \needspace{3\baselineskip} | ||
4831 | % \begin{center} | ||
4832 | % {\large\bf 7. AGGREGATION WITH INDEPENDENT WORKS\par} | ||
4833 | % \end{center} | ||
4834 | % | ||
4835 | % A compilation of the Document or its derivatives with other separate | ||
4836 | % and independent documents or works, in or on a volume of a storage | ||
4837 | % or distribution medium, is called an \enquote{aggregate} if the | ||
4838 | % copyright resulting from the compilation is not used to limit the | ||
4839 | % legal rights of the compilation's users beyond what the individual | ||
4840 | % works permit. When the Document is included in an aggregate, this | ||
4841 | % License does not apply to the other works in the aggregate which are | ||
4842 | % not themselves derivative works of the Document. | ||
4843 | % | ||
4844 | % If the Cover Text requirement of section~3 is applicable to these | ||
4845 | % copies of the Document, then if the Document is less than one half | ||
4846 | % of the entire aggregate, the Document's Cover Texts may be placed on | ||
4847 | % covers that bracket the Document within the aggregate, or the | ||
4848 | % electronic equivalent of covers if the Document is in electronic | ||
4849 | % form. Otherwise they must appear on printed covers that bracket the | ||
4850 | % whole aggregate. | ||
4851 | % | ||
4852 | % \needspace{3\baselineskip} | ||
4853 | % \begin{center} | ||
4854 | % {\large\bf 8. TRANSLATION\par} | ||
4855 | % \end{center} | ||
4856 | % | ||
4857 | % Translation is considered a kind of modification, so you may | ||
4858 | % distribute translations of the Document under the terms of | ||
4859 | % section~4. Replacing Invariant Sections with translations requires | ||
4860 | % special permission from their copyright holders, but you may include | ||
4861 | % translations of some or all Invariant Sections in addition to the | ||
4862 | % original versions of these Invariant Sections. You may include a | ||
4863 | % translation of this License, and all the license notices in the | ||
4864 | % Document, and any Warranty Disclaimers, provided that you also | ||
4865 | % include the original English version of this License and the | ||
4866 | % original versions of those notices and disclaimers. In case of a | ||
4867 | % disagreement between the translation and the original version of | ||
4868 | % this License or a notice or disclaimer, the original version will | ||
4869 | % prevail. | ||
4870 | % | ||
4871 | % If a section in the Document is Entitled \enquote{Acknowledgements}, | ||
4872 | % \enquote{Dedications}, or \enquote{History}, the requirement | ||
4873 | % (section~4) to Preserve its Title (section~1) will typically require | ||
4874 | % changing the actual title. | ||
4875 | % | ||
4876 | % \needspace{3\baselineskip} | ||
4877 | % \begin{center} | ||
4878 | % {\large\bf 9. TERMINATION\par} | ||
4879 | % \end{center} | ||
4880 | % | ||
4881 | % You may not copy, modify, sublicense, or distribute the Document | ||
4882 | % except as expressly provided under this License. Any attempt | ||
4883 | % otherwise to copy, modify, sublicense, or distribute it is void, and | ||
4884 | % will automatically terminate your rights under this License. | ||
4885 | % | ||
4886 | % However, if you cease all violation of this License, then your | ||
4887 | % license from a particular copyright holder is reinstated (a) | ||
4888 | % provisionally, unless and until the copyright holder explicitly and | ||
4889 | % finally terminates your license, and (b) permanently, if the | ||
4890 | % copyright holder fails to notify you of the violation by some | ||
4891 | % reasonable means prior to 60 days after the cessation. | ||
4892 | % | ||
4893 | % Moreover, your license from a particular copyright holder is | ||
4894 | % reinstated permanently if the copyright holder notifies you of the | ||
4895 | % violation by some reasonable means, this is the first time you have | ||
4896 | % received notice of violation of this License (for any work) from | ||
4897 | % that copyright holder, and you cure the violation prior to 30 days | ||
4898 | % after your receipt of the notice. | ||
4899 | % | ||
4900 | % Termination of your rights under this section does not terminate the | ||
4901 | % licenses of parties who have received copies or rights from you | ||
4902 | % under this License. If your rights have been terminated and not | ||
4903 | % permanently reinstated, receipt of a copy of some or all of the same | ||
4904 | % material does not give you any rights to use it. | ||
4905 | % | ||
4906 | % \needspace{3\baselineskip} | ||
4907 | % \begin{center} | ||
4908 | % {\large\bf 10. FUTURE REVISIONS OF THIS LICENSE\par} | ||
4909 | % \end{center} | ||
4910 | % | ||
4911 | % The Free Software Foundation may publish new, revised versions of | ||
4912 | % the GNU Free Documentation License from time to time. Such new | ||
4913 | % versions will be similar in spirit to the present version, but may | ||
4914 | % differ in detail to address new problems or concerns. See | ||
4915 | % \url{https://www.gnu.org/licenses/}. | ||
4916 | % | ||
4917 | % Each version of the License is given a distinguishing version | ||
4918 | % number. If the Document specifies that a particular numbered | ||
4919 | % version of this License \enquote{or any later version} applies to | ||
4920 | % it, you have the option of following the terms and conditions either | ||
4921 | % of that specified version or of any later version that has been | ||
4922 | % published (not as a draft) by the Free Software Foundation. If the | ||
4923 | % Document does not specify a version number of this License, you may | ||
4924 | % choose any version ever published (not as a draft) by the Free | ||
4925 | % Software Foundation. If the Document specifies that a proxy can | ||
4926 | % decide which future versions of this License can be used, that | ||
4927 | % proxy's public statement of acceptance of a version permanently | ||
4928 | % authorizes you to choose that version for the Document. | ||
4929 | % | ||
4930 | % \needspace{3\baselineskip} | ||
4931 | % \begin{center} | ||
4932 | % {\large\bf 11. RELICENSING\par} | ||
4933 | % \end{center} | ||
4934 | % | ||
4935 | % \enquote{Massive Multiauthor Collaboration Site} (or \enquote{MMC | ||
4936 | % Site}) means any World Wide Web server that publishes copyrightable | ||
4937 | % works and also provides prominent facilities for anybody to edit | ||
4938 | % those works. A public wiki that anybody can edit is an example of | ||
4939 | % such a server. A \enquote{Massive Multiauthor Collaboration} (or | ||
4940 | % \enquote{MMC}) contained in the site means any set of copyrightable | ||
4941 | % works thus published on the MMC site. | ||
4942 | % | ||
4943 | % \enquote{CC-BY-SA} means the Creative Commons Attribution-Share | ||
4944 | % Alike 3.0 license published by Creative Commons Corporation, a | ||
4945 | % not-for-profit corporation with a principal place of business in San | ||
4946 | % Francisco, California, as well as future copyleft versions of that | ||
4947 | % license published by that same organization. | ||
4948 | % | ||
4949 | % \enquote{Incorporate} means to publish or republish a Document, in | ||
4950 | % whole or in part, as part of another Document. | ||
4951 | % | ||
4952 | % An MMC is \enquote{eligible for relicensing} if it is licensed under | ||
4953 | % this License, and if all works that were first published under this | ||
4954 | % License somewhere other than this MMC, and subsequently incorporated | ||
4955 | % in whole or in part into the MMC, (1) had no cover texts or | ||
4956 | % invariant sections, and (2) were thus incorporated prior to November | ||
4957 | % 1, 2008. | ||
4958 | % | ||
4959 | % The operator of an MMC Site may republish an MMC contained in the | ||
4960 | % site under CC-BY-SA on the same site at any time before August 1, | ||
4961 | % 2009, provided the MMC is eligible for relicensing. | ||
4962 | % | ||
4963 | % \needspace{3\baselineskip} | ||
4964 | % \begin{center} | ||
4965 | % {\large\bf ADDENDUM: How to use this License for your documents\par} | ||
4966 | % \end{center} | ||
4967 | % | ||
4968 | % To use this License in a document you have written, include a copy | ||
4969 | % of the License in the document and put the following copyright and | ||
4970 | % license notices just after the title page: | ||
4971 | % | ||
4972 | % \bigskip | ||
4973 | % \begin{quote} | ||
4974 | % Copyright \copyright{} YEAR YOUR NAME. Permission is granted to | ||
4975 | % copy, distribute and/or modify this document under the terms of | ||
4976 | % the GNU Free Documentation License, Version 1.3 or any later | ||
4977 | % version published by the Free Software Foundation; with no | ||
4978 | % Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. | ||
4979 | % A copy of the license is included in the section entitled | ||
4980 | % \enquote{GNU Free Documentation License}. | ||
4981 | % \end{quote} | ||
4982 | % \bigskip | ||
4983 | % | ||
4984 | % If you have Invariant Sections, Front-Cover Texts and Back-Cover | ||
4985 | % Texts, replace the \enquote{with \dots\ Texts.}\ line with this: | ||
4986 | % | ||
4987 | % \bigskip | ||
4988 | % \begin{quote} | ||
4989 | % with the Invariant Sections being LIST THEIR TITLES, with the | ||
4990 | % Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST. | ||
4991 | % \end{quote} | ||
4992 | % \bigskip | ||
4993 | % | ||
4994 | % If you have Invariant Sections without Cover Texts, or some other | ||
4995 | % combination of the three, merge those two alternatives to suit the | ||
4996 | % situation. | ||
4997 | % | ||
4998 | % If your document contains nontrivial examples of program code, we | ||
4999 | % recommend releasing these examples in parallel under your choice of | ||
5000 | % free software license, such as the GNU General Public License, | ||
5001 | % to permit their use in free software. | ||
5002 | % | ||
5003 | % | ||
5004 | % \StopEventually{} | 4562 | % \StopEventually{} |
5005 | % | 4563 | % |
5006 | % \section{Implementation} | 4564 | % \section{Implementation} |
@@ -5089,8 +4647,16 @@ | |||
5089 | % it to suit our purpose: | 4647 | % it to suit our purpose: |
5090 | % \begin{macrocode} | 4648 | % \begin{macrocode} |
5091 | \AtBeginDocument{\ifdef{\LR}% | 4649 | \AtBeginDocument{\ifdef{\LR}% |
5092 | {\RenewDocumentCommand{\LR}{m}{\bgroup\textdir TLT\rmfamily#1\egroup}} | 4650 | {\RenewDocumentCommand{\LR}{m}{\bgroup\textdir TLT\reset@font#1\egroup}} |
5093 | {\NewDocumentCommand{\LR}{m}{\bgroup\textdir TLT\rmfamily#1\egroup}}} | 4651 | {\NewDocumentCommand{\LR}{m}{\bgroup\textdir TLT\reset@font#1\egroup}}} |
4652 | % \end{macrocode} | ||
4653 | % \end{macro} | ||
4654 | % \begin{macro}{\SetArbNumbers} | ||
4655 | % \changes{v1.21}{2023/05/21}{selects Indian or Arabic numbers} | ||
4656 | % \begin{macrocode} | ||
4657 | \NewDocumentCommand{\SetArbNumbers}{m}{% | ||
4658 | \luadirect{arabluatex.setnums(\luastringN{#1})}% | ||
4659 | } | ||
5094 | % \end{macrocode} | 4660 | % \end{macrocode} |
5095 | % \end{macro} | 4661 | % \end{macro} |
5096 | % \begin{macro}{\RL} This one typesets its argument from right to | 4662 | % \begin{macro}{\RL} This one typesets its argument from right to |
@@ -5249,7 +4815,7 @@ | |||
5249 | % \end{macrocode} | 4815 | % \end{macrocode} |
5250 | % \end{macro} | 4816 | % \end{macro} |
5251 | % \begin{macro}{\altrfont} | 4817 | % \begin{macro}{\altrfont} |
5252 | % \changes{v1.21}{2020/07/13}{new command \cs{altrfont} to store | 4818 | % \changes{v1.21}{2023/05/21}{new command \cs{altrfont} to store |
5253 | % font and shape information (trans mode)} Finally \cs{altrfont} | 4819 | % font and shape information (trans mode)} Finally \cs{altrfont} |
5254 | % is used internally by \package{arabluatex} to store family and | 4820 | % is used internally by \package{arabluatex} to store family and |
5255 | % shape information about the font to be used for transliterated | 4821 | % shape information about the font to be used for transliterated |
@@ -5486,55 +5052,63 @@ | |||
5486 | % \begin{macrocode} | 5052 | % \begin{macrocode} |
5487 | \newlength{\al@bayt@width} | 5053 | \newlength{\al@bayt@width} |
5488 | \newlength{\al@gutter@width} | 5054 | \newlength{\al@gutter@width} |
5055 | \newlength{\al@verse@twidth} | ||
5489 | \setlength{\al@bayt@width}{.3\textwidth} | 5056 | \setlength{\al@bayt@width}{.3\textwidth} |
5490 | \setlength{\al@gutter@width}{.15\al@bayt@width} | 5057 | \setlength{\al@gutter@width}{.15\al@bayt@width} |
5491 | \define@key[al]{verse}{width}{\setlength{\al@bayt@width}{#1}} | 5058 | \define@key[al]{verse}{width}{\setlength{\al@bayt@width}{#1}} |
5492 | \define@key[al]{verse}{gutter}{\setlength{\al@gutter@width}{#1}} | 5059 | \define@key[al]{verse}{gutter}{\setlength{\al@gutter@width}{#1}} |
5493 | \define@key[al]{verse}{metre}{\arb{#1}} | 5060 | \define@key[al]{verse}{metre}{\def\al@verse@metre@value{\arb{#1}}} |
5494 | \define@key[al]{verse}{color}[]{\color{#1}} | 5061 | \define@key[al]{verse}{color}[]{\color{#1}} |
5495 | \define@boolkey[al]{verse}{utf}[true]{} | 5062 | \define@boolkey[al]{verse}{utf}[true]{} |
5496 | \define@boolkey[al]{verse}{delim}[true]{} | 5063 | \define@boolkey[al]{verse}{delim}[true]{} |
5497 | \define@boolkey[al]{verse}{export}[true]{} | 5064 | \define@boolkey[al]{verse}{export}[true]{} |
5498 | \define@choicekey[al]{verse}{mode}{fullvoc, voc, novoc, | 5065 | \define@choicekey[al]{verse}{mode}{fullvoc, voc, novoc, |
5499 | trans}{\def\al@mode{#1}} | 5066 | trans}{\def\al@mode{#1}} |
5500 | \presetkeys[al]{verse}{metre={}, utf=false, | 5067 | \presetkeys[al]{verse}{utf=false, delim=false}{} |
5501 | delim=false}{} | ||
5502 | % \end{macrocode} | 5068 | % \end{macrocode} |
5503 | % Then follows the environment itself: | 5069 | % Then follows the environment itself: |
5504 | % \begin{macrocode} | 5070 | % \begin{macrocode} |
5505 | \NewDocumentEnvironment{arabverse}{!O{}}% | 5071 | \NewDocumentEnvironment{arabverse}{!O{}}% |
5506 | {\bgroup\setkeys[al]{verse}[width, gutter, color, utf, delim, | 5072 | {\bgroup\setkeys[al]{verse}[width, gutter, color, utf, delim, |
5507 | metre]{#1}% | 5073 | metre]{#1}% |
5508 | \if@pkg@export\ifal@verse@export% | 5074 | \if@pkg@export |
5509 | \ArbOutFile{\begin{arabverse}}% | 5075 | \ifal@verse@export |
5510 | % \ifx\al@mode\al@mode@trans% | 5076 | \ArbOutFile{\begin{arabverse}}% |
5511 | % \luadirect{arabluatex.tooutfile(\luastringN{[#1]})}% | 5077 | % \ifx\al@mode\al@mode@trans% |
5512 | % \else% | 5078 | % \luadirect{arabluatex.tooutfile(\luastringN{[#1]})}% |
5513 | \IfSubStr[1]{#1}{utf}% | 5079 | % \else% |
5080 | \IfSubStr[1]{#1}{utf}% | ||
5514 | {\luadirect{arabluatex.tooutfile(\luastringN{[#1]})}}% | 5081 | {\luadirect{arabluatex.tooutfile(\luastringN{[#1]})}}% |
5515 | {\luadirect{arabluatex.tooutfile(\luastringN{[#1, utf]})}}% | 5082 | {\luadirect{arabluatex.tooutfile(\luastringN{[#1, utf]})}}% |
5516 | % \fi | 5083 | % \fi |
5517 | \else\fi\else\fi\egroup% | 5084 | \else |
5518 | \par\centering\noindent\bgroup\setkeys[al]{verse}[metre]{#1}% | 5085 | \fi |
5519 | % \ifx\al@mode\al@mode@trans% | 5086 | \else |
5520 | % \ifal@verse@utf\setRL\else\setLR\fi% | 5087 | \fi |
5521 | % \else\setRL\fi% | 5088 | \egroup |
5522 | \ifal@verse@utf% | 5089 | \centering\noindent\bgroup\setkeys[al]{verse}[metre]{#1}% |
5523 | \ifx\al@mode\al@mode@trans\setLR\else\setRL\fi% | 5090 | % \ifx\al@mode\al@mode@trans% |
5524 | \else% | 5091 | % \ifal@verse@utf\setRL\else\setLR\fi% |
5525 | \ifx\al@mode\al@mode@trans\setLR\else\setRL\fi% | 5092 | % \else\setRL\fi% |
5526 | \fi% | 5093 | \ifal@verse@utf |
5527 | \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] | ||
5528 | }% | 5101 | }% |
5529 | {\endarab@v@export | 5102 | {\endarab@v@export |
5530 | \hfill\setkeys[al]{verse}[width, gutter, color, utf, delim, mode, | 5103 | \setkeys[al]{verse}[width, gutter, color, utf, delim, mode, |
5531 | export]{#1}% | 5104 | export]{#1}% |
5532 | \egroup\par% | 5105 | \ifdefined\al@verse@metre@value\hfill\al@verse@metre@value\fi |
5106 | \egroup | ||
5533 | \bgroup\setkeys[al]{verse}[width, gutter, color, utf, delim, mode, | 5107 | \bgroup\setkeys[al]{verse}[width, gutter, color, utf, delim, mode, |
5534 | metre]{#1}% | 5108 | metre]{#1}% |
5535 | \if@pkg@export\ifal@verse@export% | 5109 | \if@pkg@export\ifal@verse@export |
5536 | \ArbOutFile{\end{arabverse}} | 5110 | \ArbOutFile{\end{arabverse}}% |
5537 | \else\fi\else\fi\egroup} | 5111 | \else\fi\else\fi\egroup} |
5538 | % \end{macrocode} | 5112 | % \end{macrocode} |
5539 | % \begin{macro}{\bayt} | 5113 | % \begin{macro}{\bayt} |
5540 | % \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 |
@@ -5583,22 +5157,33 @@ | |||
5583 | \def\al@hemistich@delim{*} | 5157 | \def\al@hemistich@delim{*} |
5584 | \NewDocumentCommand{\SetHemistichDelim}{m}{\def\al@hemistich@delim{#1}} | 5158 | \NewDocumentCommand{\SetHemistichDelim}{m}{\def\al@hemistich@delim{#1}} |
5585 | \def\al@verse@stroke{\leavevmode\xleaders\hbox{\arb{--}}\hfill\kern0pt} | 5159 | \def\al@verse@stroke{\leavevmode\xleaders\hbox{\arb{--}}\hfill\kern0pt} |
5586 | \NewDocumentCommand{\bayt}{s m o m}{% | 5160 | \providebool{ekd@state} |
5587 | \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}% | ||
5588 | \ifdefined\savenotes\savenotes\else\fi% | 5173 | \ifdefined\savenotes\savenotes\else\fi% |
5589 | \edef\al@tatweel{--}% | 5174 | \edef\al@tatweel{--}% |
5590 | \ifal@warp@bayt% | 5175 | \ifal@warp@bayt% |
5591 | \adjustbox{width=\al@bayt@width, height=\Height}{\arb@utf{#2}}% | 5176 | \adjustbox{width=\al@bayt@width, height=\Height}{\arb@utf{#3}}% |
5592 | \else% | 5177 | \else% |
5593 | \makebox[\al@bayt@width][s]{\arb@utf{#2}}% | 5178 | \makebox[\al@bayt@width][s]{\arb@utf{#3}}% |
5594 | \fi% | 5179 | \fi% |
5595 | \IfNoValueTF{#3}{% | 5180 | \IfNoValueTF{#4}{% |
5596 | \ifal@verse@delim\makebox[\al@gutter@width][c]{\al@hemistich@delim}% | 5181 | \ifal@verse@delim\makebox[\al@gutter@width][c]{\al@hemistich@delim}% |
5597 | \else% | 5182 | \else% |
5598 | \hspace{\al@gutter@width}% | 5183 | \hspace{\al@gutter@width}% |
5599 | \fi | 5184 | \fi |
5600 | }{% | 5185 | }{% |
5601 | \edef\@tempa{#3}% | 5186 | \edef\@tempa{#4}% |
5602 | \ifx\@tempa\al@tatweel% | 5187 | \ifx\@tempa\al@tatweel% |
5603 | \ifx\al@mode\al@mode@trans% | 5188 | \ifx\al@mode\al@mode@trans% |
5604 | \hspace{\al@gutter@width}% | 5189 | \hspace{\al@gutter@width}% |
@@ -5608,17 +5193,17 @@ | |||
5608 | \else% | 5193 | \else% |
5609 | \ifx\al@mode\al@mode@trans% | 5194 | \ifx\al@mode\al@mode@trans% |
5610 | \ifal@warp@bayt% | 5195 | \ifal@warp@bayt% |
5611 | \adjustbox{width=\al@gutter@width, height=\Height}{\arb@utf{#3}}% | 5196 | \adjustbox{width=\al@gutter@width, height=\Height}{\arb@utf{#4}}% |
5612 | \else% | 5197 | \else% |
5613 | \makebox[\al@gutter@width][s]{\arb@utf{#3}}% | 5198 | \makebox[\al@gutter@width][s]{\arb@utf{#4}}% |
5614 | \fi% | 5199 | \fi% |
5615 | \else% | 5200 | \else% |
5616 | \makebox[\al@gutter@width][s]{\arb@utf{#3}}% | 5201 | \makebox[\al@gutter@width][s]{\arb@utf{#4}}% |
5617 | \fi\fi}% | 5202 | \fi\fi}% |
5618 | \ifal@warp@bayt% | 5203 | \ifal@warp@bayt% |
5619 | \adjustbox{width=\al@bayt@width, height=\Height}{\arb@utf{#4}}% | 5204 | \adjustbox{width=\al@bayt@width, height=\Height}{\arb@utf{#5}}% |
5620 | \else% | 5205 | \else% |
5621 | \makebox[\al@bayt@width][s]{\arb@utf{#4}}% | 5206 | \makebox[\al@bayt@width][s]{\arb@utf{#5}}% |
5622 | \fi% | 5207 | \fi% |
5623 | \ifdefined\spewnotes\spewnotes\else\fi% | 5208 | \ifdefined\spewnotes\spewnotes\else\fi% |
5624 | } | 5209 | } |
@@ -5855,14 +5440,37 @@ | |||
5855 | \NewDocumentEnvironment{arab@v@export}{O{} +b}{% | 5440 | \NewDocumentEnvironment{arab@v@export}{O{} +b}{% |
5856 | \setkeys[al]{verse}[width, gutter, color, utf, delim, mode, | 5441 | \setkeys[al]{verse}[width, gutter, color, utf, delim, mode, |
5857 | metre]{#1} | 5442 | metre]{#1} |
5858 | \if@pkg@export\ifal@verse@export% | 5443 | \if@pkg@export |
5859 | \par | 5444 | \ifal@verse@export |
5860 | #2 | 5445 | \ifekd@state |
5861 | \luadirect{arabluatex.doexport("arabverse")} | 5446 | \begin{ekdverse}[width=\al@verse@twidth] |
5862 | \luadirect{tex.sprint(arabluatex.arbtoutf(\luastringN{#2}))} | 5447 | #2 |
5863 | \luadirect{arabluatex.doexport("no")} | 5448 | \end{ekdverse} |
5864 | \else\par#2\fi\else\par#2\fi | 5449 | \else |
5865 | }{\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 | }{} | ||
5866 | % \end{macrocode} | 5474 | % \end{macrocode} |
5867 | % \end{environment} | 5475 | % \end{environment} |
5868 | % \begin{macro}{\arbpardir} | 5476 | % \begin{macro}{\arbpardir} |
diff --git a/arabluatex.el b/arabluatex.el index 063fa61..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--2020 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,7 +125,9 @@ | |||
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" |
130 | '("SetArbNumbers" "Indian or Arabic") | ||
128 | "arbnull" | 131 | "arbnull" |
129 | "abraces" | 132 | "abraces" |
130 | "LR" | 133 | "LR" |
diff --git a/arabluatex.ins b/arabluatex.ins index f51c46d..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--2020 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. | |||
43 | This file is part of the `arabluatex' package | 40 | This file is part of the `arabluatex' package |
44 | 41 | ||
45 | ArabLuaTeX -- Processing ArabTeX notation under LuaLaTeX | 42 | ArabLuaTeX -- Processing ArabTeX notation under LuaLaTeX |
46 | Copyright (C) 2016--2020 Robert Alessi | 43 | Copyright (C) 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 |
47 | 44 | Robert Alessi <alessi@robertalessi.net> | |
48 | Please send error reports and suggestions for improvements to Robert | 45 | |
49 | Alessi <alessi@robertalessi.net> | 46 | Permission to use, copy, modify, and distribute this software for any |
50 | 47 | purpose with or without fee is hereby granted, provided that the above | |
51 | This program is free software: you can redistribute it and/or modify | 48 | copyright notice and this permission notice appear in all copies. |
52 | it under the terms of the GNU General Public License as published by | 49 | |
53 | the Free Software Foundation, either version 3 of the License, or | 50 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
54 | (at your option) any later version. | 51 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF |
55 | 52 | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | |
56 | This program is distributed in the hope that it will be useful, but | 53 | ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES |
57 | WITHOUT ANY WARRANTY; without even the implied warranty of | 54 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN |
58 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | 55 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
59 | General Public License for more details. | 56 | OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
60 | 57 | ||
61 | You should have received a copy of the GNU General Public License | 58 | Please send error reports and suggestions for improvements to |
62 | along with this program. If not, see | 59 | Robert Alessi <alessi@robertalessi.net> |
63 | <http://www.gnu.org/licenses/>. | ||
64 | 60 | ||
65 | This release of 'arabluatex' consists of the following source files: | 61 | This release of 'arabluatex' consists of the following source files: |
66 | - arabluatex.ins | 62 | - arabluatex.ins |
diff --git a/arabluatex.lua b/arabluatex.lua index 72b1e38..114a569 100644 --- a/arabluatex.lua +++ b/arabluatex.lua | |||
@@ -2,24 +2,23 @@ | |||
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 -- Processing ArabTeX notation under LuaLaTeX |
5 | Copyright (C) 2016--2020 Robert Alessi | 5 | Copyright (C) 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 |
6 | Robert Alessi <alessi@robertalessi.net> | ||
6 | 7 | ||
7 | Please send error reports and suggestions for improvements to Robert | 8 | Permission to use, copy, modify, and distribute this software for any |
8 | Alessi <alessi@robertalessi.net> | 9 | purpose with or without fee is hereby granted, provided that the above |
10 | copyright notice and this permission notice appear in all copies. | ||
9 | 11 | ||
10 | This program is free software: you can redistribute it and/or modify | 12 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
11 | it under the terms of the GNU General Public License as published by | 13 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF |
12 | the Free Software Foundation, either version 3 of the License, or | 14 | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR |
13 | (at your option) any later version. | 15 | ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES |
16 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | ||
17 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | ||
18 | OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | ||
14 | 19 | ||
15 | This program is distributed in the hope that it will be useful, but | 20 | Please send error reports and suggestions for improvements to Robert |
16 | WITHOUT ANY WARRANTY; without even the implied warranty of | 21 | Alessi <alessi@robertalessi.net> |
17 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
18 | General Public License for more details. | ||
19 | |||
20 | You should have received a copy of the GNU General Public License | ||
21 | along with this program. If not, see | ||
22 | <http://www.gnu.org/licenses/>. | ||
23 | --]] | 22 | --]] |
24 | 23 | ||
25 | arabluatex = {} | 24 | arabluatex = {} |
@@ -54,11 +53,26 @@ local cmd = lpeg.Cs(dblbkslash * ascii^1 * cmdstar^-1) | |||
54 | local rawcmd = lpeg.Cs(dblbkslash * ascii^1) | 53 | local rawcmd = lpeg.Cs(dblbkslash * ascii^1) |
55 | local aftercmd = lpeg.Cs(lpeg.S("*[{,.?;:'`\"") + dblbkslash) | 54 | local aftercmd = lpeg.Cs(lpeg.S("*[{,.?;:'`\"") + dblbkslash) |
56 | local cmdargs = lpeg.Cs(spce^-1 * bsqbracketsii * bcbracesii * bsqbrackets^-1) | 55 | local cmdargs = lpeg.Cs(spce^-1 * bsqbracketsii * bcbracesii * bsqbrackets^-1) |
56 | local cmdargsnobs = lpeg.Cs(spce^-1 * bcbracesii) | ||
57 | local arbargs = lpeg.Cs(spce^-1 * bsqbrackets^-1 * bcbraces) | 57 | local arbargs = lpeg.Cs(spce^-1 * bsqbrackets^-1 * bcbraces) |
58 | local baytargs = lpeg.Cs(spce * bcbraces * bsqbrackets^-1 * bcbraces) | 58 | local baytargs = lpeg.Cs(spce * bcbraces * bsqbrackets^-1 * bcbraces) |
59 | local arind = lpeg.Cs(dblbkslash * lpeg.P("arind") * spce^-1 * bsqbracketsii) | 59 | local arind = lpeg.Cs(dblbkslash * lpeg.P("arind") * spce^-1 * bsqbracketsii) |
60 | 60 | ||
61 | local function protectarb(str) | 61 | local 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,11 +104,11 @@ local outofarb = { | |||
90 | local albrkcmds = { | 104 | local albrkcmds = { |
91 | "begin", | 105 | "begin", |
92 | "end", | 106 | "end", |
93 | "par", | ||
94 | "LRmarginpar", | 107 | "LRmarginpar", |
95 | "arbmark", | 108 | "arbmark", |
96 | "abjad", | 109 | "abjad", |
97 | "ayah" | 110 | "ayah", |
111 | "SetArbNumbers" | ||
98 | } | 112 | } |
99 | local brkcmds = {} | 113 | local brkcmds = {} |
100 | 114 | ||
@@ -120,13 +134,15 @@ function arabluatex.mkarbbreak(str, opt) | |||
120 | end | 134 | end |
121 | 135 | ||
122 | local function breakcmd(str) | 136 | local function breakcmd(str) |
137 | -- \par | ||
138 | str = gsub(str, dblbkslash * lpeg.Cs("par") * cmdargsnobs, "\\al@brk{%1%2%3}") | ||
123 | -- process \item[], then \item[] | 139 | -- process \item[], then \item[] |
124 | str = string.gsub(str, "\\(item.?)(%b[])", | 140 | str = string.gsub(str, "\\(item.?)(%b[])", |
125 | function(tag, body) | 141 | function(tag, body) |
126 | body = string.sub(body, 2, -2) | 142 | body = string.sub(body, 2, -2) |
127 | return string.format("\\al@brk{\\item[\\arb{%s}] }", body) | 143 | return string.format("\\al@brk{\\item[\\arb{%s}] }", body) |
128 | end) | 144 | end) |
129 | str = string.gsub(str, "(\\item)(%s+)", "%1{}%2") | 145 | str = string.gsub(str, "(\\item)(%s+)", "%1{}%2") |
130 | -- \textcolor | 146 | -- \textcolor |
131 | str = string.gsub(str, "\\(textcolor%s?)(%b{})(%b{})", | 147 | str = string.gsub(str, "\\(textcolor%s?)(%b{})(%b{})", |
132 | function(tag, bodycolor, bodytext) | 148 | function(tag, bodycolor, bodytext) |
@@ -170,19 +186,38 @@ local function holdcmd(str) | |||
170 | return str | 186 | return str |
171 | end | 187 | end |
172 | 188 | ||
173 | local function arbnum(str) | 189 | local indorarbnum = "Indian" |
190 | |||
191 | function arabluatex.setnums(opt) | ||
192 | if opt == "Indian" | ||
193 | then | ||
194 | indorarbnum = "Indian" | ||
195 | else | ||
196 | indorarbnum = "Arabic" | ||
197 | end | ||
198 | end | ||
199 | |||
200 | local function arbnum(str) -- not used, see below | ||
174 | str = string.gsub(str, "([0-9%,%-%/]+)", function(num) | 201 | str = string.gsub(str, "([0-9%,%-%/]+)", function(num) |
175 | return string.reverse(num) | 202 | return string.reverse(num) |
176 | end) | 203 | end) |
177 | return str | 204 | return str |
178 | end | 205 | end |
179 | 206 | ||
180 | local function indnum(str) | 207 | local function indnum(str, dir) |
181 | str = string.gsub(str, "([0-9%,%-%/]+)", function(num) | 208 | if dir == "ltr" |
182 | return string.reverse(num) | 209 | then |
183 | end) | 210 | -- do nothing |
184 | for i = 1,#numbers do | 211 | else |
185 | str = string.gsub(str, numbers[i].a, numbers[i].b) | 212 | str = string.gsub(str, "([0-9%,%-%/]+)", function(num) |
213 | return string.reverse(num) | ||
214 | end) | ||
215 | end | ||
216 | if indorarbnum == "Indian" | ||
217 | then | ||
218 | for i = 1,#numbers do | ||
219 | str = string.gsub(str, numbers[i].a, numbers[i].b) | ||
220 | end | ||
186 | end | 221 | end |
187 | return str | 222 | return str |
188 | end | 223 | end |
@@ -590,11 +625,19 @@ local function novoceasy(str) | |||
590 | return str | 625 | return str |
591 | end | 626 | end |
592 | 627 | ||
593 | local function transdmg(str, rules) | 628 | local function transdmg(str, mode, rules) |
594 | str = string.gsub(str, "\\arb(%b{})", function(inside) | 629 | str = string.gsub(str, "\\arb(%b{})", function(inside) |
595 | inside = string.sub(inside, 2, -2) | 630 | inside = string.sub(inside, 2, -2) |
596 | for i = 1,#hamzatrdmg do | 631 | if mode == "dmg" |
597 | inside = string.gsub(inside, hamzatrdmg[i].a, hamzatrdmg[i].b) | 632 | then |
633 | for i = 1,#hamzatrnoinitialdmg do | ||
634 | inside = string.gsub(inside, hamzatrnoinitialdmg[i].a, hamzatrnoinitialdmg[i].b) | ||
635 | end | ||
636 | elseif mode == "dmg+" | ||
637 | then | ||
638 | for i = 1,#hamzatrdmg do | ||
639 | inside = string.gsub(inside, hamzatrdmg[i].a, hamzatrdmg[i].b) | ||
640 | end | ||
598 | end | 641 | end |
599 | for i = 1,#tanwintrdmg do | 642 | for i = 1,#tanwintrdmg do |
600 | inside = string.gsub(inside, tanwintrdmg[i].a, tanwintrdmg[i].b) | 643 | inside = string.gsub(inside, tanwintrdmg[i].a, tanwintrdmg[i].b) |
@@ -797,16 +840,16 @@ local function processarbtoutf(str) | |||
797 | end) | 840 | end) |
798 | return string.format("%s{%s}", tag, body) | 841 | return string.format("%s{%s}", tag, body) |
799 | end) | 842 | end) |
800 | 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) |
801 | argi = string.sub(argi, 2, -2) | 844 | argi = string.sub(argi, 2, -2) |
802 | argii = string.sub(argii, 2, -2) | 845 | argii = string.sub(argii, 2, -2) |
803 | argiii = string.sub(argiii, 2, -2) | 846 | argiii = string.sub(argiii, 2, -2) |
804 | 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) |
805 | end) | 848 | end) |
806 | 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) |
807 | argi = string.sub(argi, 2, -2) | 850 | argi = string.sub(argi, 2, -2) |
808 | argii = string.sub(argii, 2, -2) | 851 | argii = string.sub(argii, 2, -2) |
809 | 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) |
810 | end) | 853 | end) |
811 | str = string.gsub(str, "(\\prname)%s?(%b{})", function(tag, body) | 854 | str = string.gsub(str, "(\\prname)%s?(%b{})", function(tag, body) |
812 | body = string.sub(body, 2, -2) | 855 | body = string.sub(body, 2, -2) |
@@ -1062,8 +1105,8 @@ function arabluatex.processtrans(str, mode, rules, scheme) | |||
1062 | if scheme == "buckwalter" then | 1105 | if scheme == "buckwalter" then |
1063 | str = processbuckw(str) | 1106 | str = processbuckw(str) |
1064 | end | 1107 | end |
1065 | if mode == "dmg" then | 1108 | if mode == "dmg" or mode == "dmg+" then |
1066 | str = transdmg(str, rules) | 1109 | str = transdmg(str, mode, rules) |
1067 | elseif mode == "loc" then | 1110 | elseif mode == "loc" then |
1068 | str = transloc(str) | 1111 | str = transloc(str) |
1069 | elseif mode == "arabica" then | 1112 | elseif mode == "arabica" then |
@@ -1264,7 +1307,9 @@ end | |||
1264 | function arabluatex.ayah(str) | 1307 | function arabluatex.ayah(str) |
1265 | if tonumber(str) ~= nil and str.len(str) < 4 then | 1308 | if tonumber(str) ~= nil and str.len(str) < 4 then |
1266 | if tex.textdir == "TRT" then | 1309 | if tex.textdir == "TRT" then |
1267 | 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").."}" | ||
1268 | elseif tex.textdir == "TLT" then | 1313 | elseif tex.textdir == "TLT" then |
1269 | str = "\\arb[trans]{("..str..")}" | 1314 | str = "\\arb[trans]{("..str..")}" |
1270 | end | 1315 | end |
diff --git a/arabluatex_fullvoc.lua b/arabluatex_fullvoc.lua index a53adce..7483734 100644 --- a/arabluatex_fullvoc.lua +++ b/arabluatex_fullvoc.lua | |||
@@ -2,24 +2,23 @@ | |||
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 -- Processing ArabTeX notation under LuaLaTeX |
5 | Copyright (C) 2016--2020 Robert Alessi | 5 | Copyright (C) 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 |
6 | Robert Alessi <alessi@robertalessi.net> | ||
6 | 7 | ||
7 | Please send error reports and suggestions for improvements to Robert | 8 | Permission to use, copy, modify, and distribute this software for any |
8 | Alessi <alessi@robertalessi.net> | 9 | purpose with or without fee is hereby granted, provided that the above |
9 | 10 | copyright notice and this permission notice appear in all copies. | |
10 | This program is free software: you can redistribute it and/or modify | ||
11 | it under the terms of the GNU General Public License as published by | ||
12 | the Free Software Foundation, either version 3 of the License, or | ||
13 | (at your option) any later version. | ||
14 | 11 | ||
15 | This program is distributed in the hope that it will be useful, but | 12 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
16 | WITHOUT ANY WARRANTY; without even the implied warranty of | 13 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF |
17 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | 14 | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR |
18 | General Public License for more details. | 15 | ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES |
16 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | ||
17 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | ||
18 | OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | ||
19 | 19 | ||
20 | You should have received a copy of the GNU General Public License | 20 | Please send error reports and suggestions for improvements to Robert |
21 | along with this program. If not, see | 21 | Alessi <alessi@robertalessi.net> |
22 | <http://www.gnu.org/licenses/>. | ||
23 | --]] | 22 | --]] |
24 | 23 | ||
25 | hamzafv = { | 24 | hamzafv = { |
@@ -104,7 +103,7 @@ hamzafv = { | |||
104 | -- mi'aT is special orthography (unlike ^say'aN and .zim'aN): | 103 | -- mi'aT is special orthography (unlike ^say'aN and .zim'aN): |
105 | -- {a="(%^sa%.?[yY])(\"?%|?)(%')(aN)", b="%1%2ئ%4"}, --new | 104 | -- {a="(%^sa%.?[yY])(\"?%|?)(%')(aN)", b="%1%2ئ%4"}, --new |
106 | -- {a="(.zi?m)(%')(aN)", b="%1ئ%3"}, --new | 105 | -- {a="(.zi?m)(%')(aN)", b="%1ئ%3"}, --new |
107 | {a="(mi)(%')(a[Tt])", b="%1ائ%3"}, | 106 | {a="(mi)(%')(a[TtH])", b="%1ائ%3"}, |
108 | {a="(mi)(%')(aN%_?[AY])", b="%1أ%3"}, | 107 | {a="(mi)(%')(aN%_?[AY])", b="%1أ%3"}, |
109 | -- final hamzah is on the line after a letter of prolongation or a | 108 | -- final hamzah is on the line after a letter of prolongation or a |
110 | -- consonant with sukūn | 109 | -- consonant with sukūn |
@@ -256,7 +255,7 @@ hamzafveasy = { -- differences marked below with 'easy' | |||
256 | -- mi'aT is special orthography (unlike ^say'aN and .zim'aN) | 255 | -- mi'aT is special orthography (unlike ^say'aN and .zim'aN) |
257 | -- {a="(%^sa%.?[yY])(\"?%|?)(%')(aN)", b="%1%2ئ%4"}, --new | 256 | -- {a="(%^sa%.?[yY])(\"?%|?)(%')(aN)", b="%1%2ئ%4"}, --new |
258 | -- {a="(.zi?m)(%')(aN)", b="%1ئ%3"}, --new | 257 | -- {a="(.zi?m)(%')(aN)", b="%1ئ%3"}, --new |
259 | {a="(mi)(%')(a[Tt])", b="%1ائ%3"}, | 258 | {a="(mi)(%')(a[TtH])", b="%1ائ%3"}, |
260 | {a="(mi)(%')(aN%_?[AY])", b="%1أ%3"}, | 259 | {a="(mi)(%')(aN%_?[AY])", b="%1أ%3"}, |
261 | -- easy (begin) | 260 | -- easy (begin) |
262 | -- The Munjid says that such words as radI'aN do not have the | 261 | -- The Munjid says that such words as radI'aN do not have the |
@@ -351,9 +350,9 @@ tanwinfv = { -- with assimilations (\SetArbDflt*) | |||
351 | {a="(O[%S]-)(%-?aN)(Y)(O)([rlmnwy])", b="%5%5"}, | 350 | {a="(O[%S]-)(%-?aN)(Y)(O)([rlmnwy])", b="%5%5"}, |
352 | {a="%-?(aN)(_A)(%s)([rlmnwy])", b="ًى%3%4%4"}, | 351 | {a="%-?(aN)(_A)(%s)([rlmnwy])", b="ًى%3%4%4"}, |
353 | {a="%-?(aN)(Y)(%s)([rlmnwy])", b="ًى%3%4%4"}, | 352 | {a="%-?(aN)(Y)(%s)([rlmnwy])", b="ًى%3%4%4"}, |
354 | {a="(T)%-?(aN)(%s)([rlmnwy])", b="%1ً%3%4%4"}, | 353 | {a="([TH])%-?(aN)(%s)([rlmnwy])", b="%1ً%3%4%4"}, |
355 | -- {a="(ء)%-?(aN)(%s)([rlmnwy])", b="%1%2%3%4%4"}, --new | 354 | -- {a="(ء)%-?(aN)(%s)([rlmnwy])", b="%1%2%3%4%4"}, --new |
356 | {a="([^TA])%-?(aN)(%s)([rlmnwy])", b="%1ًا%3%4%4"}, | 355 | {a="([^TAH])%-?(aN)(%s)([rlmnwy])", b="%1ًا%3%4%4"}, |
357 | {a="%-?(iNI?)(%s)([rlmnwy])", b="ٍ%2%3%3"}, | 356 | {a="%-?(iNI?)(%s)([rlmnwy])", b="ٍ%2%3%3"}, |
358 | -- assimilations (end) | 357 | -- assimilations (end) |
359 | {a="(O[%S]-)(%-?aN)(_A)(O)([uai])", b="ٱ"}, | 358 | {a="(O[%S]-)(%-?aN)(_A)(O)([uai])", b="ٱ"}, |
@@ -363,9 +362,9 @@ tanwinfv = { -- with assimilations (\SetArbDflt*) | |||
363 | {a="(B)%-?(\"aN)", b="%1"}, | 362 | {a="(B)%-?(\"aN)", b="%1"}, |
364 | {a="%-?(\"aN)(_A)", b="ى"}, | 363 | {a="%-?(\"aN)(_A)", b="ى"}, |
365 | {a="%-?(\"aN)(Y)", b="ى"}, | 364 | {a="%-?(\"aN)(Y)", b="ى"}, |
366 | {a="(T)%-?(\"aN)", b="%1"}, | 365 | {a="([TH])%-?(\"aN)", b="%1"}, |
367 | {a="([اآ])(ء)%-?(\"aN)", b="%1%2"}, --new | 366 | {a="([اآ])(ء)%-?(\"aN)", b="%1%2"}, --new |
368 | {a="([^TA])%-?(\"aN)", b="%1ا"}, | 367 | {a="([^TAH])%-?(\"aN)", b="%1ا"}, |
369 | {a="%-?(\"iNI?)", b=""}, | 368 | {a="%-?(\"iNI?)", b=""}, |
370 | -- quoted tanwīn (end) | 369 | -- quoted tanwīn (end) |
371 | {a="%-?(uN)", b="ٌ"}, | 370 | {a="%-?(uN)", b="ٌ"}, |
@@ -373,15 +372,15 @@ tanwinfv = { -- with assimilations (\SetArbDflt*) | |||
373 | -- needed by \arbcolor: | 372 | -- needed by \arbcolor: |
374 | {a="%-?(aN)(O[%S]-%_AO)", b="ً"}, | 373 | {a="%-?(aN)(O[%S]-%_AO)", b="ً"}, |
375 | {a="%-?(aN)(O[%S]-YO)", b="ً"}, | 374 | {a="%-?(aN)(O[%S]-YO)", b="ً"}, |
376 | {a="(O[%S]-TO)%-?(aN)", b="ً"}, | 375 | {a="(O[%S]-[TH]O)%-?(aN)", b="ً"}, |
377 | {a="(O[%S]-)([اآ])(ء)(O)%-?(aN)", b="ً"}, --new | 376 | {a="(O[%S]-)([اآ])(ء)(O)%-?(aN)", b="ً"}, --new |
378 | {a="(O[%S]-[^TA]O)%-?(aN)", b="ًا"}, | 377 | {a="(O[%S]-[^TAH]O)%-?(aN)", b="ًا"}, |
379 | -- | 378 | -- |
380 | {a="%-?(aN)(_A)", b="ًى"}, | 379 | {a="%-?(aN)(_A)", b="ًى"}, |
381 | {a="%-?(aN)(Y)", b="ًى"}, | 380 | {a="%-?(aN)(Y)", b="ًى"}, |
382 | {a="(T)%-?(aN)", b="%1ً"}, | 381 | {a="([TH])%-?(aN)", b="%1ً"}, |
383 | {a="([اآ])(ء)%-?(aN)", b="%1%2ً"}, --new | 382 | {a="([اآ])(ء)%-?(aN)", b="%1%2ً"}, --new |
384 | {a="([^TA])%-?(aN)", b="%1ًا"}, | 383 | {a="([^TAH])%-?(aN)", b="%1ًا"}, |
385 | {a="%-?(iNI?)", b="ٍ"} | 384 | {a="%-?(iNI?)", b="ٍ"} |
386 | } | 385 | } |
387 | 386 | ||
@@ -405,9 +404,9 @@ tanwinfveasy = { -- no assimilations (see below) | |||
405 | --easy {a="(O[%S]-)(%-?aN)(Y)(O)([rlmnwy])", b="%5%5"}, | 404 | --easy {a="(O[%S]-)(%-?aN)(Y)(O)([rlmnwy])", b="%5%5"}, |
406 | --easy {a="%-?(aN)(_A)(%s)([rlmnwy])", b="ًى%3%4%4"}, | 405 | --easy {a="%-?(aN)(_A)(%s)([rlmnwy])", b="ًى%3%4%4"}, |
407 | --easy {a="%-?(aN)(Y)(%s)([rlmnwy])", b="ًى%3%4%4"}, | 406 | --easy {a="%-?(aN)(Y)(%s)([rlmnwy])", b="ًى%3%4%4"}, |
408 | --easy {a="(T)%-?(aN)(%s)([rlmnwy])", b="%1ً%3%4%4"}, | 407 | --easy {a="([TH])%-?(aN)(%s)([rlmnwy])", b="%1ً%3%4%4"}, |
409 | --easy {a="(ء)%-?(aN)(%s)([rlmnwy])", b="%1%2%3%4%4"}, --new | 408 | --easy {a="(ء)%-?(aN)(%s)([rlmnwy])", b="%1%2%3%4%4"}, --new |
410 | --easy {a="([^TA])%-?(aN)(%s)([rlmnwy])", b="%1ًا%3%4%4"}, | 409 | --easy {a="([^TAH])%-?(aN)(%s)([rlmnwy])", b="%1ًا%3%4%4"}, |
411 | --easy {a="%-?(iNI?)(%s)([rlmnwy])", b="ٍ%2%3%3"}, | 410 | --easy {a="%-?(iNI?)(%s)([rlmnwy])", b="ٍ%2%3%3"}, |
412 | -- assimilations (end) | 411 | -- assimilations (end) |
413 | {a="(O[%S]-)(%-?aN)(_A)(O)([uai])", b="ٱ"}, | 412 | {a="(O[%S]-)(%-?aN)(_A)(O)([uai])", b="ٱ"}, |
@@ -417,9 +416,9 @@ tanwinfveasy = { -- no assimilations (see below) | |||
417 | {a="(B)%-?(\"aN)", b="%1"}, | 416 | {a="(B)%-?(\"aN)", b="%1"}, |
418 | {a="%-?(\"aN)(_A)", b="ى"}, | 417 | {a="%-?(\"aN)(_A)", b="ى"}, |
419 | {a="%-?(\"aN)(Y)", b="ى"}, | 418 | {a="%-?(\"aN)(Y)", b="ى"}, |
420 | {a="(T)%-?(\"aN)", b="%1"}, | 419 | {a="([TH])%-?(\"aN)", b="%1"}, |
421 | {a="([اآ])(ء)%-?(\"aN)", b="%1%2"}, --new | 420 | {a="([اآ])(ء)%-?(\"aN)", b="%1%2"}, --new |
422 | {a="([^TA])%-?(\"aN)", b="%1ا"}, | 421 | {a="([^TAH])%-?(\"aN)", b="%1ا"}, |
423 | {a="%-?(\"iNI?)", b=""}, | 422 | {a="%-?(\"iNI?)", b=""}, |
424 | -- quoted tanwīn (end) | 423 | -- quoted tanwīn (end) |
425 | {a="%-?(uN)", b="ٌ"}, | 424 | {a="%-?(uN)", b="ٌ"}, |
@@ -427,15 +426,15 @@ tanwinfveasy = { -- no assimilations (see below) | |||
427 | -- needed by \arbcolor: | 426 | -- needed by \arbcolor: |
428 | {a="%-?(aN)(O[%S]-%_AO)", b="ً"}, | 427 | {a="%-?(aN)(O[%S]-%_AO)", b="ً"}, |
429 | {a="%-?(aN)(O[%S]-YO)", b="ً"}, | 428 | {a="%-?(aN)(O[%S]-YO)", b="ً"}, |
430 | {a="(O[%S]-TO)%-?(aN)", b="ً"}, | 429 | {a="(O[%S]-[TH]O)%-?(aN)", b="ً"}, |
431 | {a="(O[%S]-)([اآ])(ء)(O)%-?(aN)", b="ً"}, --new | 430 | {a="(O[%S]-)([اآ])(ء)(O)%-?(aN)", b="ً"}, --new |
432 | {a="(O[%S]-[^TA]O)%-?(aN)", b="ًا"}, | 431 | {a="(O[%S]-[^TAH]O)%-?(aN)", b="ًا"}, |
433 | -- | 432 | -- |
434 | {a="%-?(aN)(_A)", b="ًى"}, | 433 | {a="%-?(aN)(_A)", b="ًى"}, |
435 | {a="%-?(aN)(Y)", b="ًى"}, | 434 | {a="%-?(aN)(Y)", b="ًى"}, |
436 | {a="(T)%-?(aN)", b="%1ً"}, | 435 | {a="([TH])%-?(aN)", b="%1ً"}, |
437 | {a="([اآ])(ء)%-?(aN)", b="%1%2ً"}, --new | 436 | {a="([اآ])(ء)%-?(aN)", b="%1%2ً"}, --new |
438 | {a="([^TA])%-?(aN)", b="%1ًا"}, | 437 | {a="([^TAH])%-?(aN)", b="%1ًا"}, |
439 | {a="%-?(iNI?)", b="ٍ"} | 438 | {a="%-?(iNI?)", b="ٍ"} |
440 | } | 439 | } |
441 | 440 | ||
@@ -1007,6 +1006,7 @@ singlefv = { | |||
1007 | {a="w", b="و"}, | 1006 | {a="w", b="و"}, |
1008 | {a="y", b="ي"}, | 1007 | {a="y", b="ي"}, |
1009 | {a="T", b="ة"}, | 1008 | {a="T", b="ة"}, |
1009 | {a="H", b="ه"}, | ||
1010 | -- additional characters (begin) | 1010 | -- additional characters (begin) |
1011 | {a="p", b="پ"}, | 1011 | {a="p", b="پ"}, |
1012 | {a="v", b="ڤ"}, | 1012 | {a="v", b="ڤ"}, |
@@ -1042,6 +1042,7 @@ singlefveasy = { -- see the differences under 'easy' tag below | |||
1042 | {a="y", b="ي"}, | 1042 | {a="y", b="ي"}, |
1043 | {a="T", b="ة"}, | 1043 | {a="T", b="ة"}, |
1044 | -- additional characters (begin) | 1044 | -- additional characters (begin) |
1045 | {a="H", b="ه"}, | ||
1045 | {a="p", b="پ"}, | 1046 | {a="p", b="پ"}, |
1046 | {a="v", b="ڤ"}, | 1047 | {a="v", b="ڤ"}, |
1047 | {a="g", b="گ"}, | 1048 | {a="g", b="گ"}, |
diff --git a/arabluatex_novoc.lua b/arabluatex_novoc.lua index f3410e7..1800655 100644 --- a/arabluatex_novoc.lua +++ b/arabluatex_novoc.lua | |||
@@ -2,24 +2,23 @@ | |||
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 -- Processing ArabTeX notation under LuaLaTeX |
5 | Copyright (C) 2016--2020 Robert Alessi | 5 | Copyright (C) 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 |
6 | Robert Alessi <alessi@robertalessi.net> | ||
6 | 7 | ||
7 | Please send error reports and suggestions for improvements to Robert | 8 | Permission to use, copy, modify, and distribute this software for any |
8 | Alessi <alessi@robertalessi.net> | 9 | purpose with or without fee is hereby granted, provided that the above |
9 | 10 | copyright notice and this permission notice appear in all copies. | |
10 | This program is free software: you can redistribute it and/or modify | ||
11 | it under the terms of the GNU General Public License as published by | ||
12 | the Free Software Foundation, either version 3 of the License, or | ||
13 | (at your option) any later version. | ||
14 | 11 | ||
15 | This program is distributed in the hope that it will be useful, but | 12 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
16 | WITHOUT ANY WARRANTY; without even the implied warranty of | 13 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF |
17 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | 14 | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR |
18 | General Public License for more details. | 15 | ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES |
16 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | ||
17 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | ||
18 | OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | ||
19 | 19 | ||
20 | You should have received a copy of the GNU General Public License | 20 | Please send error reports and suggestions for improvements to Robert |
21 | along with this program. If not, see | 21 | Alessi <alessi@robertalessi.net> |
22 | <http://www.gnu.org/licenses/>. | ||
23 | --]] | 22 | --]] |
24 | 23 | ||
25 | tanwinnv = { | 24 | tanwinnv = { |
@@ -36,9 +35,9 @@ tanwinnv = { | |||
36 | -- {a="(O[%S]-)(%-?aN)(Y)(O)([rlmnwy])", b="%5%5"}, | 35 | -- {a="(O[%S]-)(%-?aN)(Y)(O)([rlmnwy])", b="%5%5"}, |
37 | -- {a="%-?(aN)(_A)(%s)([rlmnwy])", b="ى%3%4%4"}, | 36 | -- {a="%-?(aN)(_A)(%s)([rlmnwy])", b="ى%3%4%4"}, |
38 | -- {a="%-?(aN)(Y)(%s)([rlmnwy])", b="ى%3%4%4"}, | 37 | -- {a="%-?(aN)(Y)(%s)([rlmnwy])", b="ى%3%4%4"}, |
39 | -- {a="(T)%-?(aN)(%s)([rlmnwy])", b="%1%3%4%4"}, | 38 | -- {a="([TH])%-?(aN)(%s)([rlmnwy])", b="%1%3%4%4"}, |
40 | -- {a="(ء)%-?(aN)(%s)([rlmnwy])", b="%1%3%4%4"}, | 39 | -- {a="(ء)%-?(aN)(%s)([rlmnwy])", b="%1%3%4%4"}, |
41 | -- {a="([^TA])%-?(aN)(%s)([rlmnwy])", b="%1ا%3%4%4"}, | 40 | -- {a="([^TAH])%-?(aN)(%s)([rlmnwy])", b="%1ا%3%4%4"}, |
42 | -- {a="%-?(iNI?)(%s)([rlmnwy])", b="|%2%3%3"}, | 41 | -- {a="%-?(iNI?)(%s)([rlmnwy])", b="|%2%3%3"}, |
43 | -- assimilations (end) | 42 | -- assimilations (end) |
44 | -- "quoted" tanwīn (begin) | 43 | -- "quoted" tanwīn (begin) |
@@ -46,9 +45,9 @@ tanwinnv = { | |||
46 | {a="(B)%-?(\"aN)", b="%1ً"}, | 45 | {a="(B)%-?(\"aN)", b="%1ً"}, |
47 | {a="%-?(\"aN)(_A)", b="ًى"}, | 46 | {a="%-?(\"aN)(_A)", b="ًى"}, |
48 | {a="%-?(\"aN)(Y)", b="ًى"}, | 47 | {a="%-?(\"aN)(Y)", b="ًى"}, |
49 | {a="(T)%-?(\"aN)", b="%1ً"}, | 48 | {a="([TH])%-?(\"aN)", b="%1ً"}, |
50 | {a="([اآ])(ء)%-?(\"aN)", b="%1%2ً"}, --new | 49 | {a="([اآ])(ء)%-?(\"aN)", b="%1%2ً"}, --new |
51 | {a="([^TA])%-?(\"aN)", b="%1ًا"}, | 50 | {a="([^TAH])%-?(\"aN)", b="%1ًا"}, |
52 | {a="%-?(\"iNI?)", b="ٍ"}, | 51 | {a="%-?(\"iNI?)", b="ٍ"}, |
53 | -- "quoted" tanwīn (end) | 52 | -- "quoted" tanwīn (end) |
54 | {a="%-?(uN)", b=""}, | 53 | {a="%-?(uN)", b=""}, |
@@ -56,15 +55,15 @@ tanwinnv = { | |||
56 | -- needed by \arbcolor: | 55 | -- needed by \arbcolor: |
57 | {a="%-?(aN)(O[%S]-%_AO)", b=""}, | 56 | {a="%-?(aN)(O[%S]-%_AO)", b=""}, |
58 | {a="%-?(aN)(O[%S]-YO)", b=""}, | 57 | {a="%-?(aN)(O[%S]-YO)", b=""}, |
59 | {a="(O[%S]-TO)%-?(aN)", b=""}, | 58 | {a="(O[%S]-[TH]O)%-?(aN)", b=""}, |
60 | {a="(O[%S]-)([اآ])(ء)(O)%-?(aN)", b=""}, --new | 59 | {a="(O[%S]-)([اآ])(ء)(O)%-?(aN)", b=""}, --new |
61 | {a="(O[%S]-[^TA]O)%-?(aN)", b=""}, | 60 | {a="(O[%S]-[^TAH]O)%-?(aN)", b=""}, |
62 | -- | 61 | -- |
63 | {a="%-?(aN)(_A)", b="ى"}, | 62 | {a="%-?(aN)(_A)", b="ى"}, |
64 | {a="%-?(aN)(Y)", b="ى"}, | 63 | {a="%-?(aN)(Y)", b="ى"}, |
65 | {a="(T)%-?(aN)", b="%1"}, | 64 | {a="([TH])%-?(aN)", b="%1"}, |
66 | {a="([اآ])(ء)%-?(aN)", b="%1%2"}, --new | 65 | {a="([اآ])(ء)%-?(aN)", b="%1%2"}, --new |
67 | {a="([^TA])%-?(aN)", b="%1ا"}, | 66 | {a="([^TAH])%-?(aN)", b="%1ا"}, |
68 | {a="%-?(iNI?)", b=""}, | 67 | {a="%-?(iNI?)", b=""}, |
69 | -- ʾalif al-waṣl: put it back on with \arbnull | 68 | -- ʾalif al-waṣl: put it back on with \arbnull |
70 | {a="(O[%S]-)([%'a]l%-)(O)(\"?[uai])", b="%4"}, | 69 | {a="(O[%S]-)([%'a]l%-)(O)(\"?[uai])", b="%4"}, |
diff --git a/arabluatex_trans.lua b/arabluatex_trans.lua index 455b57b..c3c21e1 100644 --- a/arabluatex_trans.lua +++ b/arabluatex_trans.lua | |||
@@ -2,24 +2,23 @@ | |||
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 -- Processing ArabTeX notation under LuaLaTeX |
5 | Copyright (C) 2016--2020 Robert Alessi | 5 | Copyright (C) 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 |
6 | Robert Alessi <alessi@robertalessi.net> | ||
6 | 7 | ||
7 | Please send error reports and suggestions for improvements to Robert | 8 | Permission to use, copy, modify, and distribute this software for any |
8 | Alessi <alessi@robertalessi.net> | 9 | purpose with or without fee is hereby granted, provided that the above |
9 | 10 | copyright notice and this permission notice appear in all copies. | |
10 | This program is free software: you can redistribute it and/or modify | ||
11 | it under the terms of the GNU General Public License as published by | ||
12 | the Free Software Foundation, either version 3 of the License, or | ||
13 | (at your option) any later version. | ||
14 | 11 | ||
15 | This program is distributed in the hope that it will be useful, but | 12 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
16 | WITHOUT ANY WARRANTY; without even the implied warranty of | 13 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF |
17 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | 14 | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR |
18 | General Public License for more details. | 15 | ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES |
16 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | ||
17 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | ||
18 | OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | ||
19 | 19 | ||
20 | You should have received a copy of the GNU General Public License | 20 | Please send error reports and suggestions for improvements to Robert |
21 | along with this program. If not, see | 21 | Alessi <alessi@robertalessi.net> |
22 | <http://www.gnu.org/licenses/>. | ||
23 | --]] | 22 | --]] |
24 | 23 | ||
25 | -- common | 24 | -- common |
@@ -202,6 +201,91 @@ hamzatrdmg = { | |||
202 | {a="(i)(')([^uaiUAI])", b="%1ʾ%3"} | 201 | {a="(i)(')([^uaiUAI])", b="%1ʾ%3"} |
203 | } | 202 | } |
204 | 203 | ||
204 | hamzatrnoinitialdmg = { | ||
205 | -- next lines for ʾalif alone | ||
206 | {a="(%.A)l%-(%^n)", b=".|l-%2"}, --additional (^n is lunar) | ||
207 | {a="([%(%[%|%<%s%-O])(%.A)l%-(%^n)", b="%1.|l-%3"}, --additional (^n is lunar) --p | ||
208 | {a="(%.A)l%-([%_%^%.]?[tdrzsnc])", b=".|%2-%2"}, | ||
209 | {a="([%(%[%|%<%s%-O])(%.A)l%-([%_%^%.]?[tdrzsnc])", b="%1.|%3-%3"}, --p | ||
210 | {a="(%.A)([uai])l%-(%^n)", b="||%2l-%3"}, --additional (^n is lunar) | ||
211 | {a="([%(%[%|%<%s%-O])(%.A)([uai])l%-(%^n)", b="%1||%3l-%4"}, --additional (^n is lunar) --p | ||
212 | {a="(%.A)([uai])l%-([%_%^%.]?[tdrzsnc])", b="||%2%3-%3"}, | ||
213 | {a="([%(%[%|%<%s%-O])(%.A)([uai])l%-([%_%^%.]?[tdrzsnc])", b="%1||%3%4-%4"}, --p | ||
214 | {a="(%.A)([^uai])", b=".|%2"}, | ||
215 | {a="(%.A)([uai])", b="||%2"}, | ||
216 | -- hard coded hamza | ||
217 | {a="|\"'", b="ʾ"}, | ||
218 | {a="A\"'", b="ʾA"}, | ||
219 | {a="[au]\"'", b="ʾ"}, | ||
220 | {a="w\"'", b="ʾ"}, | ||
221 | {a="i\"'", b="ʾ"}, | ||
222 | {a="y\"'", b="ʾ"}, | ||
223 | -- hamza takes tašdīd too | ||
224 | {a="''([Uu])", b="ʾʾ%1"}, | ||
225 | {a="''([Aa])", b="ʾʾ%1"}, | ||
226 | {a="''([Ii])", b="ʾʾ%1"}, | ||
227 | -- initial long u and i (for a, see below) | ||
228 | {a="%'%_U", b="||U"}, | ||
229 | {a="%'%_I", b="||I"}, | ||
230 | -- taḫfīfu 'l-hamza | ||
231 | {a="'u'([^uaiUAI])", b="|U%1"}, | ||
232 | {a="'i'([^uaiUAI])", b="|I%1"}, | ||
233 | {a="^u'([^uaiUAI])", b="U%1"}, | ||
234 | {a="([^uaiUAIYN][%s%(%[%<])u'([^uaiUAI])", b="%1U%2"}, | ||
235 | {a="^i'([^uaiUAI])", b="I%1"}, | ||
236 | {a="([^uaiUAIYN][%s%(%[%<])i'([^uaiUAI])", b="%1I%2"}, | ||
237 | -- madda (historic writing below) | ||
238 | {a="'a'([^uaiUAI])", b="ʾA%1"}, | ||
239 | {a="'a?A", b="ʾA"}, | ||
240 | {a="(A)(')(i)$", b="%1ʾ%3"}, | ||
241 | {a="(A)(')(i)(%W)", b="%1ʾ%3%4"}, | ||
242 | {a="(A)(')(i)", b="%1ʾ%3"}, -- historic madda | ||
243 | {a="(A)(')", b="%1ʾ"}, -- historic madda | ||
244 | -- initial (needs both ^ and %W patterns) | ||
245 | -- 'aw: the diphthong is to be resolved into 'awi' (next 8 lines) | ||
246 | {a="^('aw)(O)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-O)", b="%1i"}, | ||
247 | {a="(%W)('aw)(O)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-O)", b="%1%2i"}, | ||
248 | {a="^('aw)(O)(\"?[uai])([%S]-O)", b="%1i"}, | ||
249 | {a="(%W)('aw)(O)(\"?[uai])([%S]-O)", b="%1%2i"}, | ||
250 | {a="^('aw)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1i%2%3"}, | ||
251 | {a="(%W)('aw)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1%2i%3%4"}, | ||
252 | {a="^('aw)(%s)([%(%[%|%<]?\"?[uai])", b="%1i%2%3"}, --p | ||
253 | {a="(%W)('aw)(%s)([%(%[%|%<]?\"?[uai])", b="%1%2i%3%4"}, --p | ||
254 | -- then the 'initial' rules for the remaining cases | ||
255 | {a="^(')([ua])", b="||%2"}, | ||
256 | {a="^(')(i)", b="||%2"}, | ||
257 | -- consider replacing initial %W with [%s%(%[%<%-]: | ||
258 | -- {a="(%W)(')([ua])", b="%1||%3"}, | ||
259 | -- {a="(%W)(')(i)", b="%1||%3"}, | ||
260 | {a="([%s%(%[%<%-])(')([ua])", b="%1||%3"}, | ||
261 | {a="([%s%(%[%<%-])(')(i)", b="%1||%3"}, | ||
262 | -- final | ||
263 | {a="([Iy])(')(aN)$", b="%1ʾ%3"}, | ||
264 | {a="([Iy])(')(aN)(%W)", b="%1ʾ%3%4"}, | ||
265 | {a="([^uai])(')([uai]N?)$", b="%1ʾ%3"}, | ||
266 | {a="([^uai])(')([uai]N?)(%W)", b="%1ʾ%3%4"}, | ||
267 | {a="([UI])(')([uai])$", b="%1ʾ%3"}, | ||
268 | {a="([UI])(')([uai])(%W)", b="%1ʾ%3%4"}, | ||
269 | -- middle | ||
270 | {a="(U)(')", b="%1ʾ"}, | ||
271 | {a="([Iy])(')", b="%1ʾ"}, | ||
272 | {a="([^uai])(')([uU])", b="%1ʾ%3"}, | ||
273 | {a="([^uai])(')(%_?[aAY])", b="%1ʾ%3"}, | ||
274 | {a="([^uai])(')([iI])", b="%1ʾ%3"}, | ||
275 | {a="(u)(')([uU])", b="%1ʾ%3"}, | ||
276 | {a="(u)(')(%_?[aAY])", b="%1ʾ%3"}, | ||
277 | {a="(u)(')([iI])", b="%1ʾ%3"}, | ||
278 | {a="(a)(')(%_?[aAY])", b="%1ʾ%3"}, | ||
279 | {a="(a)(')([uU])", b="%1ʾ%3"}, | ||
280 | {a="(a)(')([iI])", b="%1ʾ%3"}, | ||
281 | {a="(i)(')(%_?[aAY])", b="%1ʾ%3"}, | ||
282 | {a="(i)(')([uU])", b="%1ʾ%3"}, | ||
283 | {a="(i)(')([iI])", b="%1ʾ%3"}, | ||
284 | {a="(a)(')([^uaiUAI])", b="%1ʾ%3"}, | ||
285 | {a="(u)(')([^uaiUAI])", b="%1ʾ%3"}, | ||
286 | {a="(i)(')([^uaiUAI])", b="%1ʾ%3"} | ||
287 | } | ||
288 | |||
205 | tanwintrdmg = { | 289 | tanwintrdmg = { |
206 | {a="%-?([uai]NU)(O)([ui])([%S]-O)", b="\\arbup{un%3}"}, | 290 | {a="%-?([uai]NU)(O)([ui])([%S]-O)", b="\\arbup{un%3}"}, |
207 | {a="%-?([uai]NU)(%s)([ui])", b="\\arbup{un%3}%2'"}, | 291 | {a="%-?([uai]NU)(%s)([ui])", b="\\arbup{un%3}%2'"}, |
@@ -216,41 +300,41 @@ tanwintrdmg = { | |||
216 | {a="%-?(uN)(O)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-O)", b="\\arbup{uni}"}, | 300 | {a="%-?(uN)(O)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-O)", b="\\arbup{uni}"}, |
217 | {a="%-?(aN)(_A)(O)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-O)", b="ạ\\arbup{ni}"}, | 301 | {a="%-?(aN)(_A)(O)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-O)", b="ạ\\arbup{ni}"}, |
218 | {a="%-?(aN)(Y)(O)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-O)", b="ạ\\arbup{ni}"}, | 302 | {a="%-?(aN)(Y)(O)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-O)", b="ạ\\arbup{ni}"}, |
219 | {a="(T)%-?(aN)(O)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-O)", b="t\\arbup{ani}"}, | 303 | {a="([TH])%-?(aN)(O)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-O)", b="t\\arbup{ani}"}, |
220 | {a="([^TA])%-?(aN)(O)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-O)", b="%1\\arbup{ani}"}, | 304 | {a="([^TAH])%-?(aN)(O)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-O)", b="%1\\arbup{ani}"}, |
221 | {a="%-?(iN)(O)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-O)", b="\\arbup{ini}"}, | 305 | {a="%-?(iN)(O)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)([%S]-O)", b="\\arbup{ini}"}, |
222 | {a="%-?(uN)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="\\arbup{uni}%2%3"}, | 306 | {a="%-?(uN)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="\\arbup{uni}%2%3"}, |
223 | {a="%-?(aN)(_A)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="ạ\\arbup{ni}%3%4"}, | 307 | {a="%-?(aN)(_A)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="ạ\\arbup{ni}%3%4"}, |
224 | {a="%-?(aN)(Y)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="ạ\\arbup{ni}%3%4"}, | 308 | {a="%-?(aN)(Y)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="ạ\\arbup{ni}%3%4"}, |
225 | {a="(T)%-?(aN)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="t\\arbup{ani}%3%4"}, | 309 | {a="([TH])%-?(aN)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="t\\arbup{ani}%3%4"}, |
226 | {a="([^TA])%-?(aN)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1\\arbup{ani}%3%4"}, | 310 | {a="([^TAH])%-?(aN)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1\\arbup{ani}%3%4"}, |
227 | {a="%-?(iN)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="\\arbup{ini}%2%3"}, | 311 | {a="%-?(iN)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="\\arbup{ini}%2%3"}, |
228 | -- tanwīn preceding 'lla_dI/'llatI | 312 | -- tanwīn preceding 'lla_dI/'llatI |
229 | {a="%-?(uN)(O)('lla[%_]?[dt])([%S]-O)", b="\\arbup{uni}"}, | 313 | {a="%-?(uN)(O)('lla[%_]?[dt])([%S]-O)", b="\\arbup{uni}"}, |
230 | {a="%-?(aN)(_A)(O)('lla[%_]?[dt])([%S]-O)", b="ạ\\arbup{ni}"}, | 314 | {a="%-?(aN)(_A)(O)('lla[%_]?[dt])([%S]-O)", b="ạ\\arbup{ni}"}, |
231 | {a="%-?(aN)(Y)(O)('lla[%_]?[dt])([%S]-O)", b="ạ\\arbup{ni}"}, | 315 | {a="%-?(aN)(Y)(O)('lla[%_]?[dt])([%S]-O)", b="ạ\\arbup{ni}"}, |
232 | {a="(T)%-?(aN)(O)('lla[%_]?[dt])([%S]-O)", b="t\\arbup{ani}"}, | 316 | {a="([TH])%-?(aN)(O)('lla[%_]?[dt])([%S]-O)", b="t\\arbup{ani}"}, |
233 | {a="([^TA])%-?(aN)(O)('lla[%_]?[dt])([%S]-O)", b="%1\\arbup{ani}"}, | 317 | {a="([^TAH])%-?(aN)(O)('lla[%_]?[dt])([%S]-O)", b="%1\\arbup{ani}"}, |
234 | {a="%-?(iN)(O)('lla[%_]?[dt])([%S]-O)", b="\\arbup{ini}"}, | 318 | {a="%-?(iN)(O)('lla[%_]?[dt])([%S]-O)", b="\\arbup{ini}"}, |
235 | {a="%-?(uN)(%s)('lla[%_]?[dt])", b="\\arbup{uni}%2%3"}, | 319 | {a="%-?(uN)(%s)('lla[%_]?[dt])", b="\\arbup{uni}%2%3"}, |
236 | {a="%-?(aN)(_A)(%s)('lla[%_]?[dt])", b="ạ\\arbup{ni}%3%4"}, | 320 | {a="%-?(aN)(_A)(%s)('lla[%_]?[dt])", b="ạ\\arbup{ni}%3%4"}, |
237 | {a="%-?(aN)(Y)(%s)('lla[%_]?[dt])", b="ạ\\arbup{ni}%3%4"}, | 321 | {a="%-?(aN)(Y)(%s)('lla[%_]?[dt])", b="ạ\\arbup{ni}%3%4"}, |
238 | {a="(T)%-?(aN)(%s)('lla[%_]?[dt])", b="t\\arbup{ani}%3%4"}, | 322 | {a="([TH])%-?(aN)(%s)('lla[%_]?[dt])", b="t\\arbup{ani}%3%4"}, |
239 | {a="([^TA])%-?(aN)(%s)('lla[%_]?[dt])", b="%1\\arbup{ani}%3%4"}, | 323 | {a="([^TAH])%-?(aN)(%s)('lla[%_]?[dt])", b="%1\\arbup{ani}%3%4"}, |
240 | {a="%-?(iN)(%s)('lla[%_]?[dt])", b="\\arbup{ini}%2%3"}, | 324 | {a="%-?(iN)(%s)('lla[%_]?[dt])", b="\\arbup{ini}%2%3"}, |
241 | -- tanwīn + alif without hamza and kasra (ibn) or dhamma (uhrub) | 325 | -- tanwīn + alif without hamza and kasra (ibn) or dhamma (uhrub) |
242 | {a="%-?(uN)(O)([ui])([%S]-O)", b="\\arbup{un%3}"}, | 326 | {a="%-?(uN)(O)([ui])([%S]-O)", b="\\arbup{un%3}"}, |
243 | {a="%-?(aN)(_A)(O)([ui])([%S]-O)", b="ạ\\arbup{n%4}"}, | 327 | {a="%-?(aN)(_A)(O)([ui])([%S]-O)", b="ạ\\arbup{n%4}"}, |
244 | {a="%-?(aN)(Y)(O)([ui])([%S]-O)", b="ạ\\arbup{n%4}"}, | 328 | {a="%-?(aN)(Y)(O)([ui])([%S]-O)", b="ạ\\arbup{n%4}"}, |
245 | {a="(T)%-?(aN)(O)([ui])([%S]-O)", b="t\\arbup{an%4}"}, | 329 | {a="([TH])%-?(aN)(O)([ui])([%S]-O)", b="t\\arbup{an%4}"}, |
246 | {a="([^TA])%-?(aN)(O)([ui])([%S]-O)", b="%1\\arbup{an%4}"}, | 330 | {a="([^TAH])%-?(aN)(O)([ui])([%S]-O)", b="%1\\arbup{an%4}"}, |
247 | {a="%-?(iN)(O)([ui])([%S]-O)", b="\\arbup{in%3}"}, | 331 | {a="%-?(iN)(O)([ui])([%S]-O)", b="\\arbup{in%3}"}, |
248 | {a="(O[%S]-)([uai]N)(O)(\"?[ui])", b="'"}, | 332 | {a="(O[%S]-)([uai]N)(O)(\"?[ui])", b="'"}, |
249 | {a="%-?(uN)(%s)([ui])", b="\\arbup{un%3}%2'"}, | 333 | {a="%-?(uN)(%s)([ui])", b="\\arbup{un%3}%2'"}, |
250 | {a="%-?(aN)(_A)(%s)([ui])", b="ạ\\arbup{n%4}%3'"}, | 334 | {a="%-?(aN)(_A)(%s)([ui])", b="ạ\\arbup{n%4}%3'"}, |
251 | {a="%-?(aN)(Y)(%s)([ui])", b="ạ\\arbup{n%4}%3'"}, | 335 | {a="%-?(aN)(Y)(%s)([ui])", b="ạ\\arbup{n%4}%3'"}, |
252 | {a="(T)%-?(aN)(%s)([ui])", b="t\\arbup{an%4}%3'"}, | 336 | {a="([TH])%-?(aN)(%s)([ui])", b="t\\arbup{an%4}%3'"}, |
253 | {a="([^TA])%-?(aN)(%s)([ui])", b="%1\\arbup{an%4}%3'"}, | 337 | {a="([^TAH])%-?(aN)(%s)([ui])", b="%1\\arbup{an%4}%3'"}, |
254 | {a="%-?(iN)(%s)([ui])", b="\\arbup{in%3}%2'"}, | 338 | {a="%-?(iN)(%s)([ui])", b="\\arbup{in%3}%2'"}, |
255 | -- | 339 | -- |
256 | -- {a="uN", b="\\arbup{un}"}, (now included in the last line of this table) | 340 | -- {a="uN", b="\\arbup{un}"}, (now included in the last line of this table) |
@@ -258,13 +342,13 @@ tanwintrdmg = { | |||
258 | -- needed by \arbcolor: | 342 | -- needed by \arbcolor: |
259 | {a="%-?(aN)(O[%S]-%_AO)", b="ạ\\arbup{n}"}, | 343 | {a="%-?(aN)(O[%S]-%_AO)", b="ạ\\arbup{n}"}, |
260 | {a="%-?(aN)(O[%S]-YO)", b="ạ\\arbup{n}"}, | 344 | {a="%-?(aN)(O[%S]-YO)", b="ạ\\arbup{n}"}, |
261 | {a="(O[%S]-TO)%-?(\"?aN)", b="\\arbup{an}"}, | 345 | {a="(O[%S]-[TH]O)%-?(\"?aN)", b="\\arbup{an}"}, |
262 | {a="(O[%S]-[^TA]O)%-?(\"?aN)", b="\\arbup{an}"}, | 346 | {a="(O[%S]-[^TAH]O)%-?(\"?aN)", b="\\arbup{an}"}, |
263 | -- | 347 | -- |
264 | {a="%-?(aN)(_A)", b="ạ\\arbup{n}"}, | 348 | {a="%-?(aN)(_A)", b="ạ\\arbup{n}"}, |
265 | {a="%-?(aN)(Y)", b="ạ\\arbup{n}"}, | 349 | {a="%-?(aN)(Y)", b="ạ\\arbup{n}"}, |
266 | {a="(T)%-?(\"?aN)", b="t\\arbup{an}"}, | 350 | {a="([TH])%-?(\"?aN)", b="t\\arbup{an}"}, |
267 | {a="([^TA])%-?(\"?aN)", b="%1\\arbup{an}"}, | 351 | {a="([^TAH])%-?(\"?aN)", b="%1\\arbup{an}"}, |
268 | {a="%-?([ui])N", b="\\arbup{%1n}"} | 352 | {a="%-?([ui])N", b="\\arbup{%1n}"} |
269 | } | 353 | } |
270 | 354 | ||
@@ -414,18 +498,20 @@ digraphstrdmg = { | |||
414 | {a="([%_]?[Uu])(%s)([%(%[%|%<]?['][%_%^%.]?[l'btjghxdrzs`fqkmnwy][%-l])", b="u%2%3"}, | 498 | {a="([%_]?[Uu])(%s)([%(%[%|%<]?['][%_%^%.]?[l'btjghxdrzs`fqkmnwy][%-l])", b="u%2%3"}, |
415 | {a="([%_]?[Ii])(%s)([%(%[%|%<]?['][%_%^%.]?[l'btjghxdrzs`fqkmnwy][%-l])", b="i%2%3"}, | 499 | {a="([%_]?[Ii])(%s)([%(%[%|%<]?['][%_%^%.]?[l'btjghxdrzs`fqkmnwy][%-l])", b="i%2%3"}, |
416 | {a="%-%-", b=""}, | 500 | {a="%-%-", b=""}, |
417 | {a="iyyaT(%p*)$", b="īyaT%1"}, | 501 | -- {a="iyyaT(%p*)$", b="īyaT%1"}, -- previously. is now: |
418 | {a="iyyaT(%p*%s)", b="īyaT%1"}, | 502 | {a="iyya([TH])(%p*)$", b="īya%1%2"}, |
503 | -- {a="iyyaT(%p*%s)", b="īyaT%1"}, -- previously. is now: | ||
504 | {a="iyya([TH])(%p*%s)", b="īya%1%2"}, | ||
419 | {a="iyy(%p*)$", b="ī%1"}, | 505 | {a="iyy(%p*)$", b="ī%1"}, |
420 | {a="iyy(%p*%s)", b="ī%1"}, | 506 | {a="iyy(%p*%s)", b="ī%1"}, |
421 | -- {a="T([^uai])", b="%1"}, | 507 | -- {a="[TH]([^uai])", b="%1"}, |
422 | {a="T(\\arbup)", b="t%1"}, | 508 | {a="[TH](\\arbup)", b="t%1"}, |
423 | {a="([a%'][%_%^%.]?[tdrzsln]%-)(%S-)T([%(%[%|%<%s])(a[%_%^%.]?[tdrzsln]%-)", b="%1%2h%3%4"}, --p | 509 | {a="([a%'][%_%^%.]?[tdrzsln]%-)(%S-)[TH]([%(%[%|%<%s])(a[%_%^%.]?[tdrzsln]%-)", b="%1%2h%3%4"}, --p |
424 | {a="T([%(%[%|%<%s])(a[%_%^%.]?[tdrzsln]%-)", b="t%1%2"}, --p | 510 | {a="[TH]([%(%[%|%<%s])(a[%_%^%.]?[tdrzsln]%-)", b="t%1%2"}, --p |
425 | {a="T([%|\"])", b="t%1"}, | 511 | {a="[TH]([%|\"])", b="t%1"}, |
426 | {a="T(%p*%s)", b="h%1"}, | 512 | {a="[TH](%p*%s)", b="h%1"}, |
427 | {a="T(%p*)$", b="h%1"}, | 513 | {a="[TH](%p*)$", b="h%1"}, |
428 | {a="T(%p*)(%W)", b="h%1%2"}, | 514 | {a="[TH](%p*)(%W)", b="h%1%2"}, |
429 | {a="_t", b="ṯ"}, | 515 | {a="_t", b="ṯ"}, |
430 | {a="%^g", b="ǧ"}, | 516 | {a="%^g", b="ǧ"}, |
431 | {a="%.h", b="ḥ"}, | 517 | {a="%.h", b="ḥ"}, |
@@ -480,6 +566,7 @@ singletrdmg = { | |||
480 | {a="y", b="y"}, | 566 | {a="y", b="y"}, |
481 | {a="T", b="t"}, | 567 | {a="T", b="t"}, |
482 | -- additional characters (begin) | 568 | -- additional characters (begin) |
569 | {a="H", b="t"}, | ||
483 | {a="p", b="p"}, | 570 | {a="p", b="p"}, |
484 | {a="v", b="v"}, | 571 | {a="v", b="v"}, |
485 | {a="g", b="g"}, | 572 | {a="g", b="g"}, |
@@ -595,13 +682,13 @@ tanwintrloc = { | |||
595 | -- needed by \arbcolor: | 682 | -- needed by \arbcolor: |
596 | {a="%-?(aN)(O[%S]-%_AO)", b="an"}, | 683 | {a="%-?(aN)(O[%S]-%_AO)", b="an"}, |
597 | {a="%-?(aN)(O[%S]-YO)", b="an"}, | 684 | {a="%-?(aN)(O[%S]-YO)", b="an"}, |
598 | {a="(O[%S]-TO)%-?(\"?aN)", b="an"}, | 685 | {a="(O[%S]-[TH]O)%-?(\"?aN)", b="an"}, |
599 | {a="(O[%S]-[^TA]O)%-?(\"?aN)", b="an"}, | 686 | {a="(O[%S]-[^TAH]O)%-?(\"?aN)", b="an"}, |
600 | -- | 687 | -- |
601 | {a="%-?(aN)(_A)", b="an"}, | 688 | {a="%-?(aN)(_A)", b="an"}, |
602 | {a="%-?(aN)(Y)", b="an"}, | 689 | {a="%-?(aN)(Y)", b="an"}, |
603 | {a="(T)%-?(\"?aN)", b="tan"}, | 690 | {a="([TH])%-?(\"?aN)", b="tan"}, |
604 | {a="([^TA])%-?(\"?aN)", b="%1an"} | 691 | {a="([^TAH])%-?(\"?aN)", b="%1an"} |
605 | } | 692 | } |
606 | 693 | ||
607 | trigraphstrloc = { -- trigraphs or more | 694 | trigraphstrloc = { -- trigraphs or more |
@@ -688,12 +775,12 @@ digraphstrloc = { | |||
688 | {a="iyy(%p*%s)", b="ī%1"}, | 775 | {a="iyy(%p*%s)", b="ī%1"}, |
689 | {a="iyy", b="īy"}, | 776 | {a="iyy", b="īy"}, |
690 | {a="([tkdsg])(h)", b="%1'%2"}, | 777 | {a="([tkdsg])(h)", b="%1'%2"}, |
691 | -- {a="T([^uai])", b="h%1"}, | 778 | -- {a="[TH]([^uai])", b="h%1"}, |
692 | {a="([a%']l%-)(%S-)T([%(%[%|%<%s])(al%-)", b="%1%2h%3%4"}, --p | 779 | {a="([a%']l%-)(%S-)[TH]([%(%[%|%<%s])(al%-)", b="%1%2h%3%4"}, --p |
693 | {a="T([%(%[%|%<%s])(al%-)", b="t%1%2"}, --p | 780 | {a="[TH]([%(%[%|%<%s])(al%-)", b="t%1%2"}, --p |
694 | {a="T([%|\"])", b="t%1"}, | 781 | {a="[TH]([%|\"])", b="t%1"}, |
695 | {a="T(%p*)$", b="h%1"}, | 782 | {a="[TH](%p*)$", b="h%1"}, |
696 | {a="T(%p*%s)", b="h%1"}, | 783 | {a="[TH](%p*%s)", b="h%1"}, |
697 | {a="_t", b="th"}, | 784 | {a="_t", b="th"}, |
698 | {a="%^g", b="j"}, | 785 | {a="%^g", b="j"}, |
699 | {a="%.h", b="ḥ"}, | 786 | {a="%.h", b="ḥ"}, |
@@ -747,6 +834,7 @@ singletrloc = { | |||
747 | {a="y", b="y"}, | 834 | {a="y", b="y"}, |
748 | {a="T", b="t"}, | 835 | {a="T", b="t"}, |
749 | -- additional characters (begin) | 836 | -- additional characters (begin) |
837 | {a="H", b="t"}, | ||
750 | {a="p", b="p"}, | 838 | {a="p", b="p"}, |
751 | {a="v", b="v"}, | 839 | {a="v", b="v"}, |
752 | {a="g", b="g"}, | 840 | {a="g", b="g"}, |
@@ -942,12 +1030,12 @@ digraphstrarabica = { | |||
942 | {a="%-%-", b=""}, | 1030 | {a="%-%-", b=""}, |
943 | {a="iyy(%p*)$", b="ī%1"}, | 1031 | {a="iyy(%p*)$", b="ī%1"}, |
944 | {a="iyy(%p*%s)", b="ī%1"}, | 1032 | {a="iyy(%p*%s)", b="ī%1"}, |
945 | -- {a="T([^uai])", b="h%1"}, | 1033 | -- {a="[TH]([^uai])", b="h%1"}, |
946 | {a="([a%']l%-)(%S-)aT([%(%[%|%<%s])(al%-)", b="%1%2a%3%4"}, --p | 1034 | {a="([a%']l%-)(%S-)a[TH]([%(%[%|%<%s])(al%-)", b="%1%2a%3%4"}, --p |
947 | {a="aT([%(%[%|%<%s])(al%-)", b="at%1%2"}, --p | 1035 | {a="a[TH]([%(%[%|%<%s])(al%-)", b="at%1%2"}, --p |
948 | {a="T([%|\"])", b="t%1"}, | 1036 | {a="[TH]([%|\"])", b="t%1"}, |
949 | {a="aT(%p*)$", b="a%1"}, | 1037 | {a="a[TH](%p*)$", b="a%1"}, |
950 | {a="aT(%p*%s)", b="a%1"}, | 1038 | {a="a[TH](%p*%s)", b="a%1"}, |
951 | {a="_t", b="ṯ"}, | 1039 | {a="_t", b="ṯ"}, |
952 | {a="%^g", b="ǧ"}, | 1040 | {a="%^g", b="ǧ"}, |
953 | {a="%.h", b="ḥ"}, | 1041 | {a="%.h", b="ḥ"}, |
@@ -1001,6 +1089,7 @@ singletrarabica = { | |||
1001 | {a="y", b="y"}, | 1089 | {a="y", b="y"}, |
1002 | {a="T", b="t"}, | 1090 | {a="T", b="t"}, |
1003 | -- additional characters (begin) | 1091 | -- additional characters (begin) |
1092 | {a="H", b="t"}, | ||
1004 | {a="p", b="p"}, | 1093 | {a="p", b="p"}, |
1005 | {a="v", b="v"}, | 1094 | {a="v", b="v"}, |
1006 | {a="g", b="g"}, | 1095 | {a="g", b="g"}, |
diff --git a/arabluatex_voc.lua b/arabluatex_voc.lua index 7301540..6211b4b 100644 --- a/arabluatex_voc.lua +++ b/arabluatex_voc.lua | |||
@@ -2,24 +2,23 @@ | |||
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 -- Processing ArabTeX notation under LuaLaTeX |
5 | Copyright (C) 2016--2020 Robert Alessi | 5 | Copyright (C) 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 |
6 | Robert Alessi <alessi@robertalessi.net> | ||
6 | 7 | ||
7 | Please send error reports and suggestions for improvements to Robert | 8 | Permission to use, copy, modify, and distribute this software for any |
8 | Alessi <alessi@robertalessi.net> | 9 | purpose with or without fee is hereby granted, provided that the above |
9 | 10 | copyright notice and this permission notice appear in all copies. | |
10 | This program is free software: you can redistribute it and/or modify | ||
11 | it under the terms of the GNU General Public License as published by | ||
12 | the Free Software Foundation, either version 3 of the License, or | ||
13 | (at your option) any later version. | ||
14 | 11 | ||
15 | This program is distributed in the hope that it will be useful, but | 12 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
16 | WITHOUT ANY WARRANTY; without even the implied warranty of | 13 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF |
17 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | 14 | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR |
18 | General Public License for more details. | 15 | ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES |
16 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | ||
17 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | ||
18 | OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | ||
19 | 19 | ||
20 | You should have received a copy of the GNU General Public License | 20 | Please send error reports and suggestions for improvements to Robert |
21 | along with this program. If not, see | 21 | Alessi <alessi@robertalessi.net> |
22 | <http://www.gnu.org/licenses/>. | ||
23 | --]] | 22 | --]] |
24 | 23 | ||
25 | arbmarks = { | 24 | arbmarks = { |
@@ -243,7 +242,7 @@ hamza = { | |||
243 | -- mi'aT is special orthography (unlike ^say'aN and .zim'aN): | 242 | -- mi'aT is special orthography (unlike ^say'aN and .zim'aN): |
244 | -- {a="(%^sa%.?[yY])(\"?%|?)(%')(aN)", b="%1%2ئ%4"}, --new | 243 | -- {a="(%^sa%.?[yY])(\"?%|?)(%')(aN)", b="%1%2ئ%4"}, --new |
245 | -- {a="(.zi?m)(%')(aN)", b="%1ئ%3"}, --new | 244 | -- {a="(.zi?m)(%')(aN)", b="%1ئ%3"}, --new |
246 | {a="(mi)(%')(a[Tt])", b="%1ائ%3"}, | 245 | {a="(mi)(%')(a[TtH])", b="%1ائ%3"}, |
247 | {a="(mi)(%')(aN%_?[AY])", b="%1أ%3"}, | 246 | {a="(mi)(%')(aN%_?[AY])", b="%1أ%3"}, |
248 | -- final hamzah is on the line after a letter of prolongation or a | 247 | -- final hamzah is on the line after a letter of prolongation or a |
249 | -- consonant with sukūn | 248 | -- consonant with sukūn |
@@ -368,7 +367,7 @@ hamzaeasy = { -- differences marked below with 'easy' | |||
368 | -- mi'aT is special orthography (unlike ^say'aN and .zim'aN) | 367 | -- mi'aT is special orthography (unlike ^say'aN and .zim'aN) |
369 | -- {a="(%^sa%.?[yY])(\"?%|?)(%')(aN)", b="%1%2ئ%4"}, --new | 368 | -- {a="(%^sa%.?[yY])(\"?%|?)(%')(aN)", b="%1%2ئ%4"}, --new |
370 | -- {a="(.zi?m)(%')(aN)", b="%1ئ%3"}, --new | 369 | -- {a="(.zi?m)(%')(aN)", b="%1ئ%3"}, --new |
371 | {a="(mi)(%')(a[Tt])", b="%1ائ%3"}, | 370 | {a="(mi)(%')(a[TtH])", b="%1ائ%3"}, |
372 | {a="(mi)(%')(aN%_?[AY])", b="%1أ%3"}, | 371 | {a="(mi)(%')(aN%_?[AY])", b="%1أ%3"}, |
373 | -- easy (begin) | 372 | -- easy (begin) |
374 | -- The Munjid says that such words as radI'aN do not have the | 373 | -- The Munjid says that such words as radI'aN do not have the |
@@ -443,9 +442,9 @@ tanwin = { | |||
443 | {a="(O[%S]-)(%-?aN)(Y)(O)([rlmnwy])", b="%5%5"}, | 442 | {a="(O[%S]-)(%-?aN)(Y)(O)([rlmnwy])", b="%5%5"}, |
444 | {a="%-?(aN)(_A)(%s)([rlmnwy])", b="ًى%3%4%4"}, | 443 | {a="%-?(aN)(_A)(%s)([rlmnwy])", b="ًى%3%4%4"}, |
445 | {a="%-?(aN)(Y)(%s)([rlmnwy])", b="ًى%3%4%4"}, | 444 | {a="%-?(aN)(Y)(%s)([rlmnwy])", b="ًى%3%4%4"}, |
446 | {a="(T)%-?(aN)(%s)([rlmnwy])", b="%1ً%3%4%4"}, | 445 | {a="([TH])%-?(aN)(%s)([rlmnwy])", b="%1ً%3%4%4"}, |
447 | {a="(ء)%-?(aN)(%s)([rlmnwy])", b="%1%2%3%4%4"}, --new | 446 | {a="(ء)%-?(aN)(%s)([rlmnwy])", b="%1%2%3%4%4"}, --new |
448 | {a="([^TA])%-?(aN)(%s)([rlmnwy])", b="%1ًا%3%4%4"}, | 447 | {a="([^TAH])%-?(aN)(%s)([rlmnwy])", b="%1ًا%3%4%4"}, |
449 | {a="%-?(iNI?)(%s)([rlmnwy])", b="ٍ%2%3%3"}, | 448 | {a="%-?(iNI?)(%s)([rlmnwy])", b="ٍ%2%3%3"}, |
450 | -- assimilations (end) | 449 | -- assimilations (end) |
451 | {a="(O[%S]-)(%-?aN)(_A)(O)([uai])", b="%5"}, | 450 | {a="(O[%S]-)(%-?aN)(_A)(O)([uai])", b="%5"}, |
@@ -455,9 +454,9 @@ tanwin = { | |||
455 | {a="(B)%-?(\"aN)", b="%1"}, | 454 | {a="(B)%-?(\"aN)", b="%1"}, |
456 | {a="%-?(\"aN)(_A)", b="ى"}, | 455 | {a="%-?(\"aN)(_A)", b="ى"}, |
457 | {a="%-?(\"aN)(Y)", b="ى"}, | 456 | {a="%-?(\"aN)(Y)", b="ى"}, |
458 | {a="(T)%-?(\"aN)", b="%1"}, | 457 | {a="([TH])%-?(\"aN)", b="%1"}, |
459 | {a="([اآ])(ء)%-?(\"aN)", b="%1%2"}, --new | 458 | {a="([اآ])(ء)%-?(\"aN)", b="%1%2"}, --new |
460 | {a="([^TA])%-?(\"aN)", b="%1ا"}, | 459 | {a="([^TAH])%-?(\"aN)", b="%1ا"}, |
461 | {a="%-?(\"iNI?)", b=""}, | 460 | {a="%-?(\"iNI?)", b=""}, |
462 | -- quoted tanwīn (end) | 461 | -- quoted tanwīn (end) |
463 | {a="%-?(uN)", b="ٌ"}, | 462 | {a="%-?(uN)", b="ٌ"}, |
@@ -465,15 +464,15 @@ tanwin = { | |||
465 | -- needed by \arbcolor: | 464 | -- needed by \arbcolor: |
466 | {a="%-?(aN)(O[%S]-%_AO)", b="ً"}, | 465 | {a="%-?(aN)(O[%S]-%_AO)", b="ً"}, |
467 | {a="%-?(aN)(O[%S]-YO)", b="ً"}, | 466 | {a="%-?(aN)(O[%S]-YO)", b="ً"}, |
468 | {a="(O[%S]-TO)%-?(aN)", b="ً"}, | 467 | {a="(O[%S]-[TH]O)%-?(aN)", b="ً"}, |
469 | {a="(O[%S]-)([اآ])(ء)(O)%-?(aN)", b="ً"}, --new | 468 | {a="(O[%S]-)([اآ])(ء)(O)%-?(aN)", b="ً"}, --new |
470 | {a="(O[%S]-[^TA]O)%-?(aN)", b="ًا"}, | 469 | {a="(O[%S]-[^TAH]O)%-?(aN)", b="ًا"}, |
471 | -- | 470 | -- |
472 | {a="%-?(aN)(_A)", b="ًى"}, | 471 | {a="%-?(aN)(_A)", b="ًى"}, |
473 | {a="%-?(aN)(Y)", b="ًى"}, | 472 | {a="%-?(aN)(Y)", b="ًى"}, |
474 | {a="(T)%-?(aN)", b="%1ً"}, | 473 | {a="([TH])%-?(aN)", b="%1ً"}, |
475 | {a="([اآ])(ء)%-?(aN)", b="%1%2ً"}, --new | 474 | {a="([اآ])(ء)%-?(aN)", b="%1%2ً"}, --new |
476 | {a="([^TA])%-?(aN)", b="%1ًا"}, | 475 | {a="([^TAH])%-?(aN)", b="%1ًا"}, |
477 | {a="%-?(iNI?)", b="ٍ"} | 476 | {a="%-?(iNI?)", b="ٍ"} |
478 | } | 477 | } |
479 | 478 | ||
@@ -492,9 +491,9 @@ tanwineasy = { -- 'easy' requires some lines to be taken out: | |||
492 | -- {a="(O[%S]-)(%-?aN)(Y)(O)([rlmnwy])", b="%5%5"}, | 491 | -- {a="(O[%S]-)(%-?aN)(Y)(O)([rlmnwy])", b="%5%5"}, |
493 | -- {a="%-?(aN)(_A)(%s)([rlmnwy])", b="ًى%3%4%4"}, | 492 | -- {a="%-?(aN)(_A)(%s)([rlmnwy])", b="ًى%3%4%4"}, |
494 | -- {a="%-?(aN)(Y)(%s)([rlmnwy])", b="ًى%3%4%4"}, | 493 | -- {a="%-?(aN)(Y)(%s)([rlmnwy])", b="ًى%3%4%4"}, |
495 | -- {a="(T)%-?(aN)(%s)([rlmnwy])", b="%1ً%3%4%4"}, | 494 | -- {a="([TH])%-?(aN)(%s)([rlmnwy])", b="%1ً%3%4%4"}, |
496 | -- {a="(ء)%-?(aN)(%s)([rlmnwy])", b="%1%2%3%4%4"}, --new | 495 | -- {a="(ء)%-?(aN)(%s)([rlmnwy])", b="%1%2%3%4%4"}, --new |
497 | -- {a="([^TA])%-?(aN)(%s)([rlmnwy])", b="%1ًا%3%4%4"}, | 496 | -- {a="([^TAH])%-?(aN)(%s)([rlmnwy])", b="%1ًا%3%4%4"}, |
498 | -- {a="%-?(iNI?)(%s)([rlmnwy])", b="ٍ%2%3%3"}, | 497 | -- {a="%-?(iNI?)(%s)([rlmnwy])", b="ٍ%2%3%3"}, |
499 | -- assimilations (end) | 498 | -- assimilations (end) |
500 | {a="(O[%S]-)(%-?aN)(_A)(O)([uai])", b="%5"}, | 499 | {a="(O[%S]-)(%-?aN)(_A)(O)([uai])", b="%5"}, |
@@ -504,9 +503,9 @@ tanwineasy = { -- 'easy' requires some lines to be taken out: | |||
504 | {a="(B)%-?(\"aN)", b="%1"}, | 503 | {a="(B)%-?(\"aN)", b="%1"}, |
505 | {a="%-?(\"aN)(_A)", b="ى"}, | 504 | {a="%-?(\"aN)(_A)", b="ى"}, |
506 | {a="%-?(\"aN)(Y)", b="ى"}, | 505 | {a="%-?(\"aN)(Y)", b="ى"}, |
507 | {a="(T)%-?(\"aN)", b="%1"}, | 506 | {a="([TH])%-?(\"aN)", b="%1"}, |
508 | {a="([اآ])(ء)%-?(\"aN)", b="%1%2"}, --new | 507 | {a="([اآ])(ء)%-?(\"aN)", b="%1%2"}, --new |
509 | {a="([^TA])%-?(\"aN)", b="%1ا"}, | 508 | {a="([^TAH])%-?(\"aN)", b="%1ا"}, |
510 | {a="%-?(\"iNI?)", b=""}, | 509 | {a="%-?(\"iNI?)", b=""}, |
511 | -- quoted tanwīn (end) | 510 | -- quoted tanwīn (end) |
512 | {a="%-?(uN)", b="ٌ"}, | 511 | {a="%-?(uN)", b="ٌ"}, |
@@ -514,15 +513,15 @@ tanwineasy = { -- 'easy' requires some lines to be taken out: | |||
514 | -- needed by \arbcolor: | 513 | -- needed by \arbcolor: |
515 | {a="%-?(aN)(O[%S]-%_AO)", b="ً"}, | 514 | {a="%-?(aN)(O[%S]-%_AO)", b="ً"}, |
516 | {a="%-?(aN)(O[%S]-YO)", b="ً"}, | 515 | {a="%-?(aN)(O[%S]-YO)", b="ً"}, |
517 | {a="(O[%S]-TO)%-?(aN)", b="ً"}, | 516 | {a="(O[%S]-[TH]O)%-?(aN)", b="ً"}, |
518 | {a="(O[%S]-)([اآ])(ء)(O)%-?(aN)", b="ً"}, --new | 517 | {a="(O[%S]-)([اآ])(ء)(O)%-?(aN)", b="ً"}, --new |
519 | {a="(O[%S]-[^TA]O)%-?(aN)", b="ًا"}, | 518 | {a="(O[%S]-[^TAH]O)%-?(aN)", b="ًا"}, |
520 | -- | 519 | -- |
521 | {a="%-?(aN)(_A)", b="ًى"}, | 520 | {a="%-?(aN)(_A)", b="ًى"}, |
522 | {a="%-?(aN)(Y)", b="ًى"}, | 521 | {a="%-?(aN)(Y)", b="ًى"}, |
523 | {a="(T)%-?(aN)", b="%1ً"}, | 522 | {a="([TH])%-?(aN)", b="%1ً"}, |
524 | {a="([اآ])(ء)%-?(aN)", b="%1%2ً"}, --new | 523 | {a="([اآ])(ء)%-?(aN)", b="%1%2ً"}, --new |
525 | {a="([^TA])%-?(aN)", b="%1ًا"}, | 524 | {a="([^TAH])%-?(aN)", b="%1ًا"}, |
526 | {a="%-?(iNI?)", b="ٍ"} | 525 | {a="%-?(iNI?)", b="ٍ"} |
527 | } | 526 | } |
528 | 527 | ||
@@ -836,6 +835,7 @@ single = { | |||
836 | {a="y", b="ي"}, | 835 | {a="y", b="ي"}, |
837 | {a="T", b="ة"}, | 836 | {a="T", b="ة"}, |
838 | -- additional characters (begin) | 837 | -- additional characters (begin) |
838 | {a="H", b="ه"}, | ||
839 | {a="p", b="پ"}, | 839 | {a="p", b="پ"}, |
840 | {a="v", b="ڤ"}, | 840 | {a="v", b="ڤ"}, |
841 | {a="g", b="گ"}, | 841 | {a="g", b="گ"}, |
@@ -1,5 +1,6 @@ | |||
1 | pkg := arabluatex | 1 | pkg := arabluatex |
2 | ver := $(shell ltxfileinfo -v $(pkg).dtx|sed -e 's/^v//') | 2 | #VERS := $(shell ltxfileinfo -v $(pkg).dtx|sed -e 's/^v//') |
3 | VERS := $(shell typeoutfileinfo $(pkg).dtx | egrep -o '\+.*$$' | awk '{ print $$6 }' | sed -e 's/^v//') | ||
3 | TEXMFDIR := $(shell kpsewhich -expand-var='$$TEXMFHOME') | 4 | TEXMFDIR := $(shell kpsewhich -expand-var='$$TEXMFHOME') |
4 | HOMEDIR := $$HOME | 5 | HOMEDIR := $$HOME |
5 | CMP = lualatex-dev | 6 | CMP = lualatex-dev |
@@ -28,16 +29,39 @@ 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 |
36 | |||
37 | inst: doc | ||
38 | if [ ! -d "$(TEXMFDIR)/tex/lualatex/arabluatex" ]; then \ | ||
39 | mkdir -p $(TEXMFDIR)/tex/lualatex/arabluatex; \ | ||
40 | fi | ||
41 | cp $(pkg)*.{sty,lua} $(TEXMFDIR)/tex/lualatex/arabluatex | ||
42 | if [ ! -d "$(HOMEDIR)/.emacs.d/auctex/style" ]; then \ | ||
43 | mkdir -p $(HOMEDIR)/.emacs.d/auctex/style; \ | ||
44 | fi | ||
45 | cp $(pkg)*.el $(HOMEDIR)/.emacs.d/auctex/style | ||
46 | if [ ! -d "$(TEXMFDIR)/doc/lualatex/arabluatex" ]; then \ | ||
47 | mkdir -p $(TEXMFDIR)/doc/lualatex/arabluatex; \ | ||
48 | fi | ||
49 | cp $(pkg).pdf $(TEXMFDIR)/doc/lualatex/arabluatex | ||
50 | cp -r samples/ $(TEXMFDIR)/doc/lualatex/arabluatex | ||
35 | 51 | ||
36 | auctex: clean | 52 | auctex: clean |
37 | if [ ! -d "$(HOMEDIR)/.emacs.d/auctex/auto" ]; then \ | 53 | if [ ! -d "$(HOMEDIR)/.emacs.d/auctex/style" ]; then \ |
38 | mkdir -p $(HOMEDIR)/.emacs.d/auctex/auto; \ | 54 | mkdir -p $(HOMEDIR)/.emacs.d/auctex/style; \ |
39 | fi | 55 | fi |
40 | cp $(pkg)*.el $(HOMEDIR)/.emacs.d/auctex/auto | 56 | cp $(pkg)*.el $(HOMEDIR)/.emacs.d/auctex/style |
57 | |||
58 | zip: all | ||
59 | ln -sf . $(pkg) | ||
60 | zip -Drq $(PWD)/$(pkg)-$(VERS).zip $(pkg)/{samples,README.md,$(pkg)*.{pdf,sty,lua,el}} | ||
61 | rm $(pkg) | ||
62 | |||
63 | hal: clean | ||
64 | zip -Drq $(PWD)/$(pkg)-$(VERS).zip * | ||
41 | 65 | ||
42 | package: clean all | 66 | package: clean all |
43 | mkdir -p arabluatex/samples/ | 67 | mkdir -p arabluatex/samples/ |
@@ -51,21 +75,21 @@ package: clean all | |||
51 | mkdir -p source/lualatex/arabluatex/ | 75 | mkdir -p source/lualatex/arabluatex/ |
52 | 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 |
53 | zip -r arabluatex.tds.zip tex doc source | 77 | zip -r arabluatex.tds.zip tex doc source |
54 | tar czf arabluatex-$(ver).tar.gz arabluatex.tds.zip arabluatex/ | 78 | tar czf arabluatex-$(VERS).tar.gz arabluatex.tds.zip arabluatex/ |
55 | 79 | ||
56 | clean: | 80 | clean: |
57 | rm -rf $(TEXMFDIR)/tex/lualatex/arabluatex/ | 81 | rm -rf $(TEXMFDIR)/{tex,doc}/lualatex/arabluatex/ |
58 | rm -rf $(HOMEDIR)/.emacs.d/auctex/auto/arabluatex*.{el,elc} | 82 | rm -rf $(HOMEDIR)/.emacs.d/auctex/style/arabluatex*.{el,elc} |
59 | rm -rf tex/ doc/ source/ auto/ | 83 | rm -rf tex/ doc/ source/ auto/ |
60 | rm -rf arabluatex/ | 84 | rm -rf arabluatex/ |
61 | rm -rf saved/ TMP/ _minted-arabluatex/ | 85 | rm -rf saved/ TMP/ _minted-arabluatex/ |
62 | find ./samples/ | grep -v "\./samples/$$" | grep -v ".*tex$$" | xargs rm -rf | 86 | find ./samples/ | grep -v "\./samples/$$" | grep -v ".*tex$$" | xargs rm -rf |
63 | mkdir saved | 87 | mkdir saved |
64 | 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 |
65 | rm *.* | 89 | rm *.* |
66 | cp saved/* . | 90 | cp saved/* . |
67 | rm -rf saved/ | 91 | rm -rf saved/ |
68 | 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 |
69 | pandoc -s README.tex -o about.html | 93 | pandoc README.tex -o about.html |
70 | 94 | ||
71 | .PHONY: sty doc all local auctex 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 6c34bcc..d7dd3f7 100644 --- a/samples/al-Jahiz.tex +++ b/samples/al-Jahiz.tex | |||
@@ -5,10 +5,9 @@ | |||
5 | % | 5 | % |
6 | \documentclass[fontsize=12pt, paper=letter, DIV=classic]{scrartcl} | 6 | \documentclass[fontsize=12pt, paper=letter, DIV=classic]{scrartcl} |
7 | \usepackage{fontspec} | 7 | \usepackage{fontspec} |
8 | \usepackage[default]{fontsetup} | ||
8 | \usepackage[english]{babel} | 9 | \usepackage[english]{babel} |
9 | \babelfont{rm}{Old Standard} | 10 | \babelfont{rm}{Old Standard} |
10 | \babelfont{sf}{NewComputerModern Sans} | ||
11 | \babelfont{tt}{NewComputerModern Mono} | ||
12 | \usepackage{filecontents} | 11 | \usepackage{filecontents} |
13 | 12 | ||
14 | \usepackage{xcolor} | 13 | \usepackage{xcolor} |
@@ -29,9 +28,9 @@ | |||
29 | \SetArbEasy | 28 | \SetArbEasy |
30 | 29 | ||
31 | \PassOptionsToPackage{pdfa}{hyperref} | 30 | \PassOptionsToPackage{pdfa}{hyperref} |
32 | \usepackage{hyperxmp} | ||
33 | \usepackage{hyperref} | 31 | \usepackage{hyperref} |
34 | \hypersetup{colorlinks, linkcolor=blue, pdfauthor={Robert Alessi}} | 32 | \hypersetup{colorlinks, linkcolor=blue, pdfauthor={Robert Alessi}} |
33 | \usepackage{hyperxmp} | ||
35 | 34 | ||
36 | \begin{document} | 35 | \begin{document} |
37 | \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} |