aboutsummaryrefslogtreecommitdiff
path: root/arabluatex.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'arabluatex.dtx')
-rw-r--r--arabluatex.dtx107
1 files changed, 84 insertions, 23 deletions
diff --git a/arabluatex.dtx b/arabluatex.dtx
index c50ab6c..87a2604 100644
--- a/arabluatex.dtx
+++ b/arabluatex.dtx
@@ -27,7 +27,7 @@
27%<package-info>\NeedsTeXFormat{LaTeX2e}[1999/12/01] 27%<package-info>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
28%<package-info>\ProvidesPackage{arabluatex} 28%<package-info>\ProvidesPackage{arabluatex}
29%<*package-info> 29%<*package-info>
30 [2017/06/20 v1.8.5 An ArabTeX-like interface for LuaLaTeX] 30 [2017/07/05 v1.9 An ArabTeX-like interface for LuaLaTeX]
31%</package-info> 31%</package-info>
32% 32%
33%<*driver> 33%<*driver>
@@ -155,7 +155,7 @@
155\defaultfontfeatures{RawFeature={+liga}} 155\defaultfontfeatures{RawFeature={+liga}}
156\setmainfont{Old Standard}[SmallCapsFont={Latin Modern Roman Caps}, 156\setmainfont{Old Standard}[SmallCapsFont={Latin Modern Roman Caps},
157 RawFeature={+mark;+ccmp;+ss05;+ss06}] 157 RawFeature={+mark;+ccmp;+ss05;+ss06}]
158\usepackage{arabluatex}[2017/06/20] 158\usepackage{arabluatex}[2017/07/05]
159\usepackage[nopar]{quran} 159\usepackage[nopar]{quran}
160\usepackage{varioref} 160\usepackage{varioref}
161\usepackage{hyperxmp} 161\usepackage{hyperxmp}
@@ -227,7 +227,7 @@
227%</driver> 227%</driver>
228% \fi 228% \fi
229% 229%
230% \CheckSum{0} 230% \CheckSum{704}
231% 231%
232% \CharacterTable 232% \CharacterTable
233% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z 233% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
@@ -760,10 +760,11 @@ vowels (see §~3).
760% & \texttt{dmg} & \texttt{loc} & \texttt{arabica} & \\ \midrule 760% & \texttt{dmg} & \texttt{loc} & \texttt{arabica} & \\ \midrule
761% \endhead \footnotetext{See below \vref{sec:transliteration}.} 761% \endhead \footnotetext{See below \vref{sec:transliteration}.}
762% \label{tab:arabtex-consonants} 762% \label{tab:arabtex-consonants}
763% \arb[voc]{'i 'a 'u}\footnote{For \arb[trans]{'alif} as a consonant, 763% \arb[voc]{'i 'a 'u}\footnote{See below, \emph{Rem{.} a.} For
764% see \textcite[i. 16 D]{Wright}. The \arb[trans]{hamzaT} itself is 764% \arb[trans]{'alif} as a consonant, see \textcite[i. 16
765% encoded \texttt{<'>} and may be followed by either \meta{u, a} or 765% D]{Wright}. The \arb[trans]{hamzaT} itself is encoded \texttt{<'>}
766% \meta{i}. See below \vref{ref:hamza}.} & \dmg{'u 'a 'i} & 766% and may be followed by either \meta{u, a} or \meta{i}. See below
767% \vref{ref:hamza}.} & \dmg{'u 'a 'i} &
767% \loc{|'u, |'a, |'i} & \brill{|'u, |'a, |'i} & |'u| or |'a| or |'i| \\ 768% \loc{|'u, |'a, |'i} & \brill{|'u, |'a, |'i} & |'u| or |'a| or |'i| \\
768% \arb[novoc]{b} & \dmg{b} & \loc{b} & \brill{b} & |b| \\ 769% \arb[novoc]{b} & \dmg{b} & \loc{b} & \brill{b} & |b| \\
769% \arb[novoc]{t} & \dmg{t} & \loc{t} & \brill{t} & |t| \\ 770% \arb[novoc]{t} & \dmg{t} & \loc{t} & \brill{t} & |t| \\
@@ -791,11 +792,45 @@ vowels (see §~3).
791% \arb[novoc]{n} & \dmg{n} & \loc{n} & \brill{n} & |n| \\ 792% \arb[novoc]{n} & \dmg{n} & \loc{n} & \brill{n} & |n| \\
792% \arb[novoc]{h} & \dmg{h} & \loc{h} & \brill{h} & |h| \\ 793% \arb[novoc]{h} & \dmg{h} & \loc{h} & \brill{h} & |h| \\
793% \arb[novoc]{w} & \dmg{w} & \loc{w} & \brill{w} & |w| \\ 794% \arb[novoc]{w} & \dmg{w} & \loc{w} & \brill{w} & |w| \\
794% \arb[novoc]{y} & \dmg{y} & \loc{y} & \brill{y} & |y| \\ 795% \arb[novoc]{y} & \dmg{y} & \loc{y} & \brill{y} & |y|\footnote{For
796% the letter \arb[novoc]{.y} with no diacritical point below, see
797% \emph{Rem{.} b.} below.} \\
795% \arb[novoc]{T} & \dmg{aT} & \loc{aT} & \brill{aT} & |T| \\ 798% \arb[novoc]{T} & \dmg{aT} & \loc{aT} & \brill{aT} & |T| \\
796% \bottomrule 799% \bottomrule
797% \caption*{\Cref*{tab:arabtex-consonants}: Standard Arab\TeX\ (consonants)} 800% \caption*{\Cref*{tab:arabtex-consonants}: Standard Arab\TeX\ (consonants)}
798% \end{longtable} 801% \end{longtable}
802% \begin{quoting}
803% \textsc{Rem.}~\emph{a.} Please note that in all cases of elision,
804% the \arb[trans]{'alifu 'l-wa.sli} is expressed only by the vowel
805% that accompanies the omitted \arb[trans]{hamzaT}: \meta{u, a, i}
806% as in |wa-inhazama| \arb[fullvoc]{wa-inhazama}
807% \arb[trans]{wa-inhazama}. For more details on the definite article
808% and the \arb[trans]{'alifu 'l-wa.sli} see
809% \vref{ref:definite-article}.
810%
811% That said, \arb{.A} as a consonant is actually the \emph{spiritus
812% lenis} of the Greeks and is distinguished by the
813% \arb[trans]{hamzaT} \arb[novoc]{(|"')} as it is shown in the above
814% table. However, the bare \arb[trans]{'alif} may also be encoded as
815% |.A| whether it be followed by a vowel or not, like so: |wa-.An|
816% \arb{wa-.An} \arb[trans]{wa-.An} (where the dot symbolizes the
817% absence of vowel), |wa-.Aan| \arb{wa-.Aan} \arb[trans]{wa-.Aan},
818% |wa-.Ain| \arb{wa-.Ain} \arb[trans]{wa-.Ain}.
819%
820% \textsc{Rem.}~\emph{b.} The letter \arb[novoc]{y} with two points
821% below, \arb{al-yA'u 'l-mu_tannATu min ta.hti-hA}, may also be
822% written without diacritical points as \arb[novoc]{Y}. When it is
823% used as a consonant, it is encoded |aY|, where |a| recalls the
824% \arb[trans]{fat.haT} placed above the preceding letter in
825% vocalized Arabic, like so: |qaY'uN| \arb{qaY'uN}
826% \arb[trans]{qaY'uN}, |^saY'uN| \arb{^saY'uN} \arb[trans]{^saY'uN},
827% |^saY'aN| \arb[trans]{^saY'aN} \arb{^saY'aN}.
828%
829% The same result may be achieved by encoding this letter as |.y|,
830% like so: |qa.y'uN| \arb{qa.y'uN} \arb[trans]{qa.y'uN}, |^sa.y'uN|
831% \arb{^sa.y'uN} \arb[trans]{^sa.y'uN}, |^sa.y'aN|
832% \arb[trans]{^sa.y'aN} \arb{^sa.y'aN}.
833% \end{quoting}
799% 834%
800% \subsection{Additional characters} 835% \subsection{Additional characters}
801% \changes{v1.8.5}{2017/06/20}{Six additional Persian characters are 836% \changes{v1.8.5}{2017/06/20}{Six additional Persian characters are
@@ -823,7 +858,7 @@ vowels (see §~3).
823% included in this standard. However, as \texttt{arabica} is based on 858% included in this standard. However, as \texttt{arabica} is based on
824% \texttt{dmg}, the \texttt{dmg} equivalents have been used here.} 859% \texttt{dmg}, the \texttt{dmg} equivalents have been used here.}
825% \label{tab:arabtex-additional-characters} 860% \label{tab:arabtex-additional-characters}
826% \arb[novoc]{p} & \dmg{p} & \loc{p} & \brill{p} & \verb|p| \\ 861% \hskip-1em\arb[novoc]{p} & \dmg{p} & \loc{p} & \brill{p} & \verb|p| \\
827% \arb[novoc]{^c} & \dmg{^c} & \loc{^c} & \brill{^c} & \verb|^c| \\ 862% \arb[novoc]{^c} & \dmg{^c} & \loc{^c} & \brill{^c} & \verb|^c| \\
828% \arb[novoc]{^z} & \dmg{^z} & \loc{^z} & \brill{^z} & \verb|^z| \\ 863% \arb[novoc]{^z} & \dmg{^z} & \loc{^z} & \brill{^z} & \verb|^z| \\
829% \arb[novoc]{v}\footnote{\label{fn:not-in-dmg}This character is not found in 864% \arb[novoc]{v}\footnote{\label{fn:not-in-dmg}This character is not found in
@@ -862,7 +897,9 @@ vowels (see §~3).
862% \label{tab:arabtex-long-vowels} 897% \label{tab:arabtex-long-vowels}
863% \arb[novoc]{A} & \dmg{A} & \loc{A} & \brill{A} & \verb|A| \\ 898% \arb[novoc]{A} & \dmg{A} & \loc{A} & \brill{A} & \verb|A| \\
864% \arb[novoc]{U} & \dmg{U} & \loc{U} & \brill{U} & \verb|U| \\ 899% \arb[novoc]{U} & \dmg{U} & \loc{U} & \brill{U} & \verb|U| \\
865% \arb[novoc]{I} & \dmg{I} & \loc{I} & \brill{I} & \verb|I| \\ 900% \arb[novoc]{I} & \dmg{I} & \loc{I} & \brill{I} &
901% \verb|I|\footnote{For the letter \arb[novoc]{I} with no diacritical
902% points, see \emph{Rem{.} c.} below.} \\
866% \arb[novoc]{_A}\footnote{$=$ \arb[trans]{al-'alif-u 'l-maq.sUraT-u}.} 903% \arb[novoc]{_A}\footnote{$=$ \arb[trans]{al-'alif-u 'l-maq.sUraT-u}.}
867% & \dmg{_A} & \loc{_A} & \brill{_A} & \verb|_A| or \verb|Y| \\ 904% & \dmg{_A} & \loc{_A} & \brill{_A} & \verb|_A| or \verb|Y| \\
868% \arb[novoc]{B_a} & \dmg{B_a} & \loc{B_a} & \brill{B_a} & \verb|_a| \\ 905% \arb[novoc]{B_a} & \dmg{B_a} & \loc{B_a} & \brill{B_a} & \verb|_a| \\
@@ -895,7 +932,7 @@ vowels (see §~3).
895% \textsc{Rem.}~\emph{c.} The letter \arb[novoc]{y} with two points 932% \textsc{Rem.}~\emph{c.} The letter \arb[novoc]{y} with two points
896% below, \arb{al-yA'u 'l-mu_tannATu min ta.hti-hA}, may also be 933% below, \arb{al-yA'u 'l-mu_tannATu min ta.hti-hA}, may also be
897% written without diacritical points as \arb[novoc]{Y}. When it is 934% written without diacritical points as \arb[novoc]{Y}. When it is
898% used as a long vowel, it is encoded |iY|, which recalls the 935% used as a long vowel, it is encoded |iY|, where |i| recalls the
899% \arb[trans]{kasraT} placed below the preceding letter in vocalized 936% \arb[trans]{kasraT} placed below the preceding letter in vocalized
900% Arabic, like so: |liY| \arb{liY} \arb[trans]{liY}, |yam^siY| 937% Arabic, like so: |liY| \arb{liY} \arb[trans]{liY}, |yam^siY|
901% \arb{yam^siY} \arb[trans]{yam^siY}. 938% \arb{yam^siY} \arb[trans]{yam^siY}.
@@ -2870,24 +2907,44 @@ qAla barzawayhi bn-u 'azhar-a, ra's-u 'a.tibbA'-i fAris-a...
2870%</example> 2907%</example>
2871% \fi 2908% \fi
2872% 2909%
2873% \section{New commands to be inserted in Arabic 2910% \subsection{New commands}
2874% environments}
2875% \label{sec:declare-new-commands} 2911% \label{sec:declare-new-commands}
2912% \NEWfeature{v1.9}%
2876% In some particular cases, it may be useful to define new commands to 2913% In some particular cases, it may be useful to define new commands to
2877% be inserted in Arabic environments. From the general principle laid 2914% be inserted in Arabic environments. From the general principle laid
2878% \vpageref{ref:cmd-inside-arabic}, it follows that 2915% \vpageref{ref:cmd-inside-arabic}, it follows that any command that
2879% 2916% is found inside an Arabic environment is assumed to have Arabic text
2880% For example, to distinguish words with a different 2917% in its argument which \package{arabluatex} will process as such
2881% color,\footnote{See below \vref{sec:textcolor} for more information 2918% before passing it on to the command itself for any further
2882% on two-argument commands.} one may proceed like so:--- % 2919% processing. As a result of this feature, such a command as:\\
2920% \arabluaverb{\newcommand{\fvarabic}[1]{\arb[fullvoc]{#1}}}\\
2921% will work as expected, but will always output non-vocalized Arabic
2922% if it is inserted in a |novoc| Arabic environment because its
2923% argument will have been processed by the |novoc| rules before the
2924% command |\fvarabic| itself can see it.
2925%
2926% \DescribeMacro{\MkArbBreak} The \cs{MkArbBreak}\marg{csv list of
2927% commands} command may be used to give any command---either new or
2928% already existing---the precedence over \package{arabluatex} inside
2929% Arabic environments. It takes as argument a comma-separated list of
2930% commands each of which must be stripped of its leading
2931% character |\|, like so:---\\
2932% \arabluaverb{\MkBreakArb{onecmd, anothercmd, yetanothercmd, ...}}
2933%
2934% For example, here follows a way to define a new command |\fvred| to
2935% distinguish words with a different color and always print them in
2936% fully vocalized Arabic:---\footnote{See below \vref{sec:textcolor} for
2937% more information on two-argument commands.} %
2883% \iffalse 2938% \iffalse
2884%<*example> 2939%<*example>
2885% \fi 2940% \fi
2886\begin{arabluacode} 2941\begin{arabluacode}
2887\begin{arab} 2942 \MkArbBreak{fvred}
2943 \newcommand{\fvred}[1]{\textcolor{red}{\arb[fullvoc]{#1}}}
2944\begin{arab}[voc]
2888 _tumma "intalaqa _dU 'l-qarn-ayni 'il_A 'ummaT-iN 'u_hr_A fI 2945 _tumma "intalaqa _dU 'l-qarn-ayni 'il_A 'ummaT-iN 'u_hr_A fI
2889 \textcolor{red}{\arb[fullvoc]{((ma.tli`-i 'l-^sams-i))}} wa-lA 2946 \fvred{((ma.tli`-i 'l-^sams-i))} wa-lA binA'-a la-hum
2890 binA'-a la-hum yu'amminu-hum mina 'l-^sams-i. 2947 yu'amminu-hum mina 'l-^sams-i.
2891\end{arab} 2948\end{arab}
2892\end{arabluacode} 2949\end{arabluacode}
2893% \iffalse 2950% \iffalse
@@ -3196,7 +3253,7 @@ wa-ya.sIru ta.hta 'l-jild-i
3196% \begin{macrocode} 3253% \begin{macrocode}
3197\NeedsTeXFormat{LaTeX2e} 3254\NeedsTeXFormat{LaTeX2e}
3198\ProvidesPackage{arabluatex}% 3255\ProvidesPackage{arabluatex}%
3199[2017/06/20 v1.8.5 An ArabTeX-like interface for LuaLaTeX] 3256[2017/07/05 v1.9 An ArabTeX-like interface for LuaLaTeX]
3200\RequirePackage{ifluatex} 3257\RequirePackage{ifluatex}
3201% \end{macrocode} 3258% \end{macrocode}
3202% \package{arabluatex} requires \LuaLaTeX\ of course. Issue a warning 3259% \package{arabluatex} requires \LuaLaTeX\ of course. Issue a warning
@@ -3288,8 +3345,12 @@ wa-ya.sIru ta.hta 'l-jild-i
3288% \end{macrocode} 3345% \end{macrocode}
3289% \end{macro} 3346% \end{macro}
3290% \begin{macro}{\MkArbBreak} 3347% \begin{macro}{\MkArbBreak}
3291% \changes{v1.9}{2017/07/02}{New \cs{MkArbBreak} command for inserting 3348% \changes{v1.9}{2017/07/05}{New \cs{MkArbBreak} command for inserting
3292% user-defined macros in Arabic environments} 3349% user-defined macros in Arabic environments}
3350% The \cs{MkArbBreak}\marg{csv list of commands} command may be used
3351% to give any command---either new or already existing---the
3352% precedence over \package{arabluatex} inside Arabic environments. It
3353% is actually coded in Lua.
3293% \begin{macrocode} 3354% \begin{macrocode}
3294\DeclareDocumentCommand{\MkArbBreak}{m}{% 3355\DeclareDocumentCommand{\MkArbBreak}{m}{%
3295 \luadirect{mkarbbreak(\luastringN{#1})}} 3356 \luadirect{mkarbbreak(\luastringN{#1})}}