--[[ This file is part of the `arabluatex' package ArabLuaTeX -- Processing ArabTeX notation under LuaLaTeX Copyright (C) 2016 Robert Alessi Please send error reports and suggestions for improvements to Robert Alessi This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . --]] abjad = { {"a\"'", "b", "j", "d", "h", "w", "z", ".h", ".t"}, {"y", "k", "l", "m", "n", "s", "`", "f", ".s", }, {"q", "r", "^s", "t", "_t", "x", "_d", ".d", ".z", }, {".g"} } numbers = { {a="0", b="٠"}, {a="1", b="١"}, {a="2", b="٢"}, {a="3", b="٣"}, {a="4", b="٤"}, {a="5", b="٥"}, {a="6", b="٦"}, {a="7", b="٧"}, {a="8", b="٨"}, {a="9", b="٩"} } raw = { {a="A", b="َا"}, {a="U", b="ُو"}, {a="I", b="ِي"}, {a="b", b="ب"}, {a="t", b="ت"}, {a="j", b="ج"}, {a="x", b="خ"}, {a="d", b="د"}, {a="r", b="ر"}, {a="z", b="ز"}, {a="s", b="س"}, {a="f", b="ف"}, {a="`", b="ع"}, {a="f", b="ف"}, {a="q", b="ق"}, {a="k", b="ك"}, {a="l", b="ل"}, {a="m", b="م"}, {a="n", b="ن"}, {a="h", b="ه"}, {a="w", b="و"}, {a="y", b="ي"}, {a="T", b="ة"}, {a="u", b="ُ"}, {a="a", b="َ"}, {a="i", b="ِ"} } buckwalter = { --- hard coded madda: hold it for now {a="%|", b="@"}, {a="M", b="@"}, -- BW safe {a="%_", b="--"}, -- taṭwīl -- prevent any unwanted šadda from being generated {a="bb", b="b|b"}, {a="tt", b="t|t"}, {a="vv", b="v|v"}, {a="jj", b="j|j"}, {a="HH", b="H|H"}, {a="xx", b="x|x"}, {a="dd", b="d|d"}, {a="%*%*", b="*|*"}, {a="VV", b="V|V"}, -- BW safe {a="rr", b="r|r"}, {a="ss", b="s|s"}, {a="%$%$", b="$|$"}, {a="cc", b="c|c"}, -- BW safe {a="SS", b="S|S"}, {a="DD", b="D|D"}, {a="TT", b="T|T"}, {a="ZZ", b="Z|Z"}, {a="EE", b="E|E"}, {a="gg", b="g|g"}, {a="ff", b="f|f"}, {a="qq", b="q|q"}, {a="kk", b="k|k"}, {a="ll", b="l|l"}, {a="mm", b="m|m"}, {a="nn", b="n|n"}, {a="hh", b="h|h"}, {a="ww", b="w|w"}, {a="yy", b="y|y"}, -- hamza begin -- look into this later on: -- {a="%>a?A", b="@@@"}, -- hold this (madda) -- {a="%>a\'([^uai])", b="@@@%1"}, -- hold this (madda) {a="a?A\'", b="@@"}, -- hold this (classic madda) {a="\'", b="|\"\'"}, {a="C", b="|\"\'"}, -- BW safe {a="%>", b="a\"\'"}, {a="O", b="a\"\'"}, -- BW safe {a="%&", b="w\"\'"}, {a="W", b="w\"\'"}, -- BW safe {a="%<", b="i\"\'"}, {a="I", b="i\"\'"}, -- BW safe {a="%]", b="y\"\'"}, {a="Q", b="y\"\'"}, -- hamza end -- trigraphs {a="^Aal%-?", b="al-"}, {a="(%W)Aal%-?", b="%1al-"}, {a="(%s)Aal%-?", b="%1al-"}, {a="([%-%s])Al%-?", b="%1\'l-"}, {a="^A", b="a"}, {a="(%W)A", b="%1a"}, {a="(%s)A", b="%1a"}, {a="(al%-[%g])(%~)", b="%1"}, {a="(\'l%-[%g])(%~)", b="%1"}, -- digraphs begin {a="aA", b="A"}, {a="uw([^%~])", b="U%1"}, {a="iy([^%~])", b="I%1"}, -- digraphs end -- madda: get it back now -- {a="%@%@%@", b="\'A"}, {a="%@%@", b="A\'"}, -- give back classic madda {a="%@", b="A\"\'"}, -- hard coded madda -- šadda: {a="([%g])(%~)", b="%1%1"}, {a="%`", b="_a"}, {a="e", b="_a"}, -- BW safe {a="v", b="_t"}, {a="H", b=".h"}, {a="%*", b="_d"}, {a="V", b="_d"}, -- BW safe {a="%$", b="^s"}, {a="c", b="^s"}, -- BW safe {a="S", b=".s"}, {a="D", b=".d"}, {a="T", b=".t"}, {a="Z", b=".z"}, {a="E", b="`"}, {a="g", b=".g"}, {a="p", b="T"}, {a="N", b="uN"}, {a="F", b="aN"}, {a="K", b="iN"}, {a="o", b="\""}, -- hard-coded connective alif {a="%[", b="ٱ"}, {a="L", b="ٱ"} -- BW safe } hamza = { -- next line for ʾiʿrāb hyphen {a="(')(%-)([uaiUAI])", b="%1%3"}, -- hard coded hamza {a="|\"'", b="ء"}, {a="A\"'", b="آ"}, {a="[au]\"'", b="أ"}, {a="w\"'", b="ؤ"}, {a="i\"'", b="إ"}, {a="y\"'", b="ئ"}, -- hamza takes tašdīd too {a="''([Uu])", b="ؤؤ%1"}, {a="''([Aa])", b="أأ%1"}, {a="''([Ii])", b="ئئ%1"}, -- inseparable adverbial particle 'a- + 'a {a="\'(a)%-\'(a)", b="أ%1اأ%2"}, -- initial long u and i (for a, see below) {a="%'%_U", b="أU"}, {a="%'%_I", b="إI"}, -- taḫfīfu 'l-hamza {a="'u'([^uaiUAI])", b="أU%1"}, {a="'i'([^uaiUAI])", b="إI%1"}, -- madda (historic writing below) {a="'a'([^uaiUAI])", b="آ%1"}, {a="([^uiUI])\'a?A([%_%^%.]?[%`%'btjghxdrzsfqklmnywAY])", b="%1آ%2"}, {a="^\'a?A([%_%^%.]?[%`%'btjghxdrzsfqklmnywAY])", b="آ%1"}, {a="(%W)\'a?A([%_%^%.]?[%`%'btjghxdrzsfqklmnywAY])", b="%1آ%2"}, {a="(A)(')(uN?)$", b="aآء%3"}, {a="(A)(')(uN?)(%W)", b="aآء%3%4"}, {a="(A)(')(iN?)$", b="aآء%3"}, {a="(A)(')(iN?)(%W)", b="aآء%3%4"}, {a="(A)(')([iI])", b="aآئ%3"}, -- historic madda {a="(A)(')(u)", b="aآؤ%3"}, -- historic madda {a="(A)(')", b="aآء"}, -- historic madda -- initial (needs both ^ and %W patterns) -- 'aw: the diphthong is to be resoved into 'awi' (next 4 lines) {a="^('aw)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1i%2%3"}, {a="(%W)('aw)(%s)(['][%_%^%.]?[l'btjghxdrzs`fqkmnwy]%-)", b="%1%2i%3%4"}, {a="^('aw)(%s)([%(%[%|%<]?\"?[uai])", b="%1i%2%3"}, {a="(%W)('aw)(%s)([%(%[%|%<]?\"?[uai])", b="%1%2i%3%4"}, -- then the 'initial' rules for the remaining cases {a="^(')([ua])", b="أ%2"}, {a="^(')(i)", b="إ%2"}, {a="(%W)(')([ua])", b="%1أ%3"}, {a="(%W)(')(i)", b="%1إ%3"}, -- final -- ^say'aN and .zim'aN are special orthographies {a="(%^say)(%')(aN)", b="%1ئ%3"}, {a="(.zi?m)(%')(aN)", b="%1ئ%3"}, {a="([^uai])(')([uai][^%.%^%_]N?)$", b="%1ء%3"}, {a="([^uai])(')([uai][^%.%^%_]N?)(%W)", b="%1ء%3%4"}, -- u {a="(u)(')([uai][^%.%^%_]N?)$", b="%1ؤ%3"}, {a="(u)(')([uai][^%.%^%_]N?)(%W)", b="%1ؤ%3%4"}, {a="(u)(')$", b="%1ؤ"}, {a="(u)(')(%W)", b="%1ؤ%3"}, -- a {a="(a)(')(A)$", b="%1آ"}, {a="(a)(')(A)(%W)", b="%1آ%4"}, {a="(a)(')([u][^%.%^%_]N?)$", b="%1أ%3"}, {a="(a)(')([u][^%.%^%_]N?)(%W)", b="%1أ%3%4"}, {a="(a)(')(a)$", b="%1أ%3"}, {a="(a)(')(a)(%W)", b="%1أ%3%4"}, {a="(a)(')(aN)$", b="%1أً"}, {a="(a)(')(aN)(%W)", b="%1أً%4"}, {a="(a)(')([i][^%.%^%_]N?)$", b="%1إ%3"}, {a="(a)(')([i][^%.%^%_]N?)(%W)", b="%1إ%3%4"}, {a="(a)(')$", b="%1أ"}, {a="(a)(')(%W)", b="%1أ%3"}, -- i {a="(i)(')([uai][^%.%^%_]N?)$", b="%1ئ%3"}, {a="(i)(')([uai][^%.%^%_]N?)(%W)", b="%1ئ%3%4"}, {a="(i)(')$", b="%1ئ"}, {a="(i)(')(%W)", b="%1ئ%3"}, -- -- middle {a="(U)(')", b="%1ء"}, {a="([Iy])(')", b="%1ئ"}, {a="([^uai])(')([uU])", b="%1ؤ%3"}, {a="([^uai])(')([aA])", b="%1أ%3"}, {a="([^uai])(')([iI])", b="%1ئ%3"}, {a="(u)(')([uU])", b="%1ؤ%3"}, {a="(u)(')([aA])", b="%1ؤ%3"}, {a="(u)(')([iI])", b="%1ئ%3"}, {a="(a)(')([aA])", b="%1أ%3"}, {a="(a)(')([uU])", b="%1ؤ%3"}, {a="(a)(')([iI])", b="%1ئ%3"}, {a="(i)(')([aA])", b="%1ئ%3"}, {a="(i)(')([uU])", b="%1ئ%3"}, {a="(i)(')([iI])", b="%1ئ%3"}, {a="(a)(')([^uaiUAI])", b="%1أ%3"}, {a="(u)(')([^uaiUAI])", b="%1ؤ%3"}, {a="(i)(')([^uaiUAI])", b="%1ئ%3"} } hamzaeasy = { -- differences marked below with 'easy' -- next line for ʾiʿrāb hyphen {a="(')(%-)([uaiUAI])", b="%1%3"}, -- hard coded hamza {a="|\"'", b="ء"}, {a="A\"'", b="آ"}, {a="[au]\"'", b="أ"}, {a="w\"'", b="ؤ"}, {a="i\"'", b="إ"}, {a="y\"'", b="ئ"}, -- hamza takes tašdīd too {a="''([Uu])", b="ؤؤ%1"}, {a="''([Aa])", b="أأ%1"}, {a="''([Ii])", b="ئئ%1"}, -- inseparable adverbial particle 'a- + 'a {a="\'(a)%-\'(a)", b="أ%1اأ%2"}, -- initial long u and i (for a, see below) {a="%'%_U", b="أU"}, {a="%'%_I", b="إI"}, -- taḫfīfu 'l-hamza {a="'u'([^uaiUAI])", b="أU%1"}, {a="'i'([^uaiUAI])", b="إI%1"}, -- madda (historic writing below) {a="'a'([^uaiUAI])", b="آ%1"}, {a="([^uiUI])\'a?A([%_%^%.]?[%`%'btjghxdrzsfqklmnywAY])", b="%1آ%2"% % This file is public domain % To compile this document, do: % 'lualatex --shell-escape al-Jahiz' % \documentclass[fontsize=12pt, paper=letter, DIV=classic]{scrartcl} \usepackage{fontspec} \setmainfont{Old Standard} \usepackage{filecontents} \usepackage{xcolor} \usepackage[outputdir=TMP]{minted} \definecolor{bg}{rgb}{0.95,0.95,0.95} \usepackage{ccicons} \usepackage{lineno} \usepackage{setspace} \onehalfspacing \usepackage{csquotes} \DeclareQuoteStyle{arabic} {\rmfamily\textquotedblright}{\rmfamily\textquotedblleft} {\rmfamily\textquoteright}{\rmfamily\textquoteleft} \usepackage[fullvoc]{arabluatex} \SetArbEasy \PassOptionsToPackage{pdfa}{hyperref} \usepackage{hyperxmp} \usepackage{hyperref} \hypersetup{colorlinks, linkcolor=blue, pdfauthor={Robert Alessi}} \begin{document} \begin{filecontents*}{dajaja.tex} \begin{linenumbers*} \begin{arab} kAna \cap{'a}bU 'l-\cap{h}u_dayli 'ahd_A 'il_A \cap{m}uwaysiN dajAjaTaN. wa-kAnat dajAjatu-hu 'llatI 'ahdA-hA dUna mA kAna yuttaxa_du li-\cap{m}uwaysiN. wa-l_akinna-hu bi-karami-hi wa-bi-.husni _hu\-luqi-hi 'a.zhara 'l-ta`ajjuba min simani-hA wa-.tIbi la.hmi-hA. wa-kAna <\cap{'a}bU 'l-\cap{h}u_dayli> yu`rafu bi-'l-'imsAki 'l-^sadIdi. fa-qAla: \enquote{wa-kayfa ra'ayta yA \cap{'a}bA \cap{`i}mrAna tilka 'l-dajA\-jaTa?} qAla: \enquote{kAnat `ajabaN mina 'l-`ajabi!} fa-yaqUlu: \enquote{wa-tadrI mA jinsu-hA? wa-tadrI mA sinnu-hA? fa-'inna 'l-dajAjaTa 'inna-mA ta.tIbu bi-'l-jinsi wa-'l-sinni. wa-tadrI bi-'ayyi ^say'iN kunnA nusamminu-hA? wa-fI 'ayyi makAniN kunnA na`lifu-hA?} fa-lA yazAlu fI h_a_dA wa-'l-'A_haru ya.d.haku .da.hkaN na`rifu-hu na.hnu wa-lA ya`rifu-hu \cap{'a}bU 'l-\cap{h}u_dayli. \end{arab} \begin{arab} wa-kAna \cap{'a}bU 'l-\cap{h}u_dayli 'aslama 'l-nAsi .sadraN wa-'awsa`a-hum _huluqaN wa-'ashala-hum suhUlaTaN. fa-'in _dakarUA dajAjaTaN, qAla: \enquote{'ayna kAnat yA \cap{'a}bA \cap{`i}mrAna min tilka 'l-dajA\-jaTi?} fa-'in _dakarUA ba.t.taTaN 'aw `anAqaN 'aw jazUraN 'aw baqaraTaN, qAla: \enquote{fa-'ayna kAnat h_a_dihi 'l-jazUru fI 'l-juzuri min tilka 'l-dajAjaTi fI 'l-dajAji!} wa-'ini istasmana \cap{'a}bU 'l-\cap{h}u_dayli ^say'aN mina 'l-.tayri wa-'l-bahA'imi, qAla: \enquote{lA wa-'l-l_ahi wa-lA tilka 'l-dajAjaTu!} wa-'in _dakarUA `u_dUbaTa 'l-^sa.hmi, qAla: \enquote{`u_dUbaTu 'l-^sa.hmi fI 'l-baqari wa-'l-ba.t.ti wa-bu.tUni 'l-samaki wa-'l-dajAji, wa-lA siyyamA _d_alika 'l-jinsu mina 'l-dajAji.} wa-'in _dakarUA mIlAda ^say'iN 'aw qudUma 'insAniN, qAla: \enquote{kAna _d_alika ba`da 'an 'ahdaytu-hA la-ka bi-sanaTiN, wa-mA kAna bayna qudUmi fulAniN wa-bayna 'l-ba`_taTi bi-tilka 'l-dajAjaTi 'illA yawmuN.} wa-kAnat ma_ta\-laN fI kulli ^say'iN wa-tArI_haN fI kulli ^say'iN. \end{arab} \end{linenumbers*} \bigskip \begin{arab} \cap{al-jA.hi.zu}, \aemph{\cap{k}itAbu 'l-\cap{b}u_halA'i} \end{arab} \end{filecontents*} \title{\large\arb{dajAjaTu \cap{'a}bI 'l-\cap{h}u_dayli 'l-\cap{`a}llAfi}} \author{} \date{} \titlehead{\textbf{\textsf{arabluatex sample file}} --- \cczero\ This file is public domain.\\ \textsf{arabluatex} mode: \texttt{fullvoc} with \texttt{\textbackslash SetArbEasy}\\ Full vocalization, the \arb[trans]{sukUn} and the \arb[trans]{wa.slaT} are expressed, the \arb[trans]{ta^sdId} is generated, but the \enquote*{classic} \arb[trans]{maddaT} is discarded (see source code on p.~\pageref{source}).} \maketitle \vspace{-1in}