arabluatex.dtx 211 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170
  1. % \iffalse meta-comment
  2. % ArabLuaTeX -- Processing ArabTeX notation under LuaLaTeX
  3. % Copyright (C) 2016--2019 Robert Alesssi
  4. %
  5. % Please send error reports and suggestions for improvements to Robert
  6. % Alessi <alessi@robertalessi.net>
  7. %
  8. % This program is free software: you can redistribute it and/or modify
  9. % it under the terms of the GNU General Public License as published by
  10. % the Free Software Foundation, either version 3 of the License, or
  11. % (at your option) any later version.
  12. %
  13. % This program is distributed in the hope that it will be useful, but
  14. % WITHOUT ANY WARRANTY; without even the implied warranty of
  15. % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  16. % General Public License for more details.
  17. %
  18. % You should have received a copy of the GNU General Public License
  19. % along with this program. If not, see
  20. % <http://www.gnu.org/licenses/>.
  21. % \fi
  22. %
  23. % \iffalse
  24. %<*driver>
  25. \ProvidesFile{arabluatex.dtx}
  26. %</driver>
  27. %<package>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
  28. %<package>\ProvidesPackage{arabluatex}
  29. %<*package>
  30. [2019/03/22 v1.16 An ArabTeX-like interface for LuaLaTeX]
  31. %</package>
  32. %
  33. %<*driver>
  34. \documentclass{ltxdoc}
  35. \usepackage{filecontents}
  36. \begin{filecontents}{\jobname.bib}
  37. % This file is part of the `arabluatex' package
  38. %
  39. % ArabLuaTeX -- Processing ArabTeX notation under LuaLaTeX
  40. % Copyright (C) 2016--2019 Robert Alessi
  41. %
  42. % Please send error reports and suggestions for improvements to Robert
  43. % 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. %
  50. % This program is distributed in the hope that it will be useful, but
  51. % WITHOUT ANY WARRANTY; without even the implied warranty of
  52. % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  53. % General Public License for more details.
  54. %
  55. % You should have received a copy of the GNU General Public License
  56. % along with this program. If not, see
  57. % <http://www.gnu.org/licenses/>.
  58. @software{pkg:arabtex,
  59. author = {Lagally, Klaus},
  60. maintainer = {Lagally, Klaus},
  61. title = {Arab\TeX},
  62. indextitle = {Arab\TeX},
  63. date = {2004-11-03},
  64. version = {4.00},
  65. url =
  66. {http://mirrors.ctan.org/language/arabic/arabtex/doc/html/arabtex.htm},
  67. subtitle = {Typesetting Arabic and Hebrew},
  68. titleaddon = {User Manual Version 4.00}
  69. }
  70. @software{pkg:amiri,
  71. author = {Hosny, Khaled},
  72. maintainer = {Hosny, Khaled},
  73. title = {Amiri},
  74. indextitle = {Amiri},
  75. date = {2017-12-13},
  76. url = {http://www.amirifont.org/}
  77. }
  78. @Book{Habash,
  79. author = {Habash, Nizar Y.},
  80. title = {Introduction to Arabic Natural Language Processing},
  81. year = 2010,
  82. series = {Synthesis Lectures on Human Language Technologies},
  83. number = 10,
  84. publisher = {Morgan \& Claypool Publishers},
  85. location = {Toronto}
  86. }
  87. @MVBook{Wright,
  88. author = {Wright, W. LL.D},
  89. title = {A Grammar of the Arabic Language},
  90. indextitle = {Grammar of the Arabic Language, A},
  91. year = 1896,
  92. editor = {Robertson Smith, W. and de Goeje, M. J.},
  93. editortype = {reviser},
  94. foreword = {Cachia, Pierre},
  95. edition = 3,
  96. volumes = 2,
  97. pagination = {none},
  98. publisher = {Librairie du Liban},
  99. location = {Beirut},
  100. annote = {New impression, 1996}
  101. }
  102. @Manual{din31635,
  103. label = {{DIN 31~635}},
  104. title = {Information and Documentation - Romanization of the
  105. Arabic Alphabet for Arabic, Ottoman-Turkish,
  106. Persian, Kurdish, Urdu and Pushto},
  107. date = {2011-07},
  108. url = {http://www.din.de}
  109. }
  110. @InProceedings{dmg,
  111. author = {Brockelmann, Carl and Fischer, August and Heffening,
  112. W. and Taeschner, Franz},
  113. shorttitle = {Die Transliteration der arabischen Schrift},
  114. title = {Die Transliteration der arabischen Schrift in ihrer
  115. Anwendung auf die Hauptliteratursprachen der
  116. islamischen Welt},
  117. indextitle = {Transliteration der arabischen Schrift, Die},
  118. year = 1935,
  119. booktitle = {Denkschrift dem 19. internationalen
  120. Orientalistenkongreß in Rom vorgelegt von der
  121. Transkriptionkommission der Deutschen
  122. Morgenländischen Gesellschaft},
  123. editor = {van Ronkel, Ph. S. and Spies, Otto},
  124. editortype = {collaborator},
  125. publisher = {Deutsche Morgenländische Gesellschaft, in Kommission
  126. bei F. A. Brockaus},
  127. url =
  128. {http://www.naher-osten.uni-muenchen.de/studium_lehre/werkzeugkasten/dmgtransliteration.pdf},
  129. location = {Leipzig}
  130. }
  131. @MVBook{Lane,
  132. author = {Lane, Edward William},
  133. title = {An Arabic-English lexicon},
  134. date = {1863/1893},
  135. indextitle = {Arabic-English Lexicon, An},
  136. volumes = 8,
  137. shorthand = {Lane, \emph{Lexicon}},
  138. pagination = {none},
  139. publisher = {Williams and Norgate},
  140. location = {London -- Edinburgh}
  141. }
  142. \end{filecontents}
  143. \usepackage[english]{babel}
  144. \usepackage{dox}
  145. \doxitem{Option}{option}{options}
  146. \usepackage{fontspec}
  147. \usepackage{realscripts}
  148. \usepackage{microtype}
  149. \defaultfontfeatures{RawFeature={+liga}}
  150. \setmainfont{Old Standard}[SmallCapsFont={Latin Modern Roman Caps},
  151. RawFeature={+mark;+ccmp;+ss05;+ss06}]
  152. \usepackage{newunicodechar}
  153. \newunicodechar{ǧ}{ǧ} % Old Standard does not include ǧ/Ǧ
  154. \newunicodechar{Ǧ}{Ǧ} %
  155. \usepackage{metalogox}
  156. \usepackage{arabluatex}[2019/03/22]
  157. \usepackage[nopar]{quran}
  158. \usepackage[noindex]{nameauth}
  159. \usepackage{varioref}
  160. \usepackage{hyperxmp}
  161. \PassOptionsToPackage{pdfa}{hyperref}
  162. \usepackage{hypdoc}
  163. \usepackage{uri}
  164. \usepackage{bookmark}
  165. \usepackage{authblk}
  166. \hypersetup{unicode=true, colorlinks, allcolors=blue,
  167. linktocpage=true, pdfauthor={Robert Alessi}, pdftitle={The
  168. arabluatex package}, pdfcontactemail={alessi@robertalessi.net},
  169. pdfcontacturl={http://www.robertalessi.net/arabluatex},
  170. pdfcopyright={Copyright (C) 2016--2019 Robert Alessi
  171. <alessi@robertalessi.net>. This document is licensed under the
  172. Creative Commons Attribution-ShareAlike 4.0 International
  173. License. To view a copy of this license, visit
  174. http://creativecommons.org/licenses/by-sa/4.0/ or send a letter to
  175. Creative Commons, PO Box 1866, Mountain View, CA 94042, USA.},
  176. pdflicenseurl={https://creativecommons.org/licenses/by-sa/4.0/legalcode},
  177. pdfmetalang={en-US}, pdftype={Text}, pdfkeywords={Arabic language,
  178. arabtex, luatex}}
  179. \usepackage[scale=1.5]{ccicons}
  180. \usepackage[lot]{multitoc}
  181. \usepackage{enumitem}
  182. \setlist{nosep}
  183. \setlist[itemize]{label=\textendash}
  184. \setlist[enumerate,1]{label=(\alph*)}
  185. \setlist[enumerate,2]{label=\roman*.}
  186. \newlist{enumabjad}{enumerate}{10}
  187. \setlist[enumabjad]{label={\abjad{\arabic*}}}
  188. \usepackage{multicol}
  189. \usepackage{cleveref}
  190. \crefname{footnote}{note}{notes}
  191. \usepackage{quoting}
  192. \quotingsetup{noorphans, rightmargin=0pt}
  193. \renewcommand*{\quotingfont}{\footnotesize}
  194. \usepackage[position=below]{caption}
  195. \usepackage{lineno}
  196. \usepackage{longtable}
  197. \usepackage{booktabs}
  198. \usepackage[defaultlines=3,all]{nowidow}
  199. \usepackage{needspace}
  200. \usepackage{relsize}
  201. \usepackage{tikz}
  202. \usepackage[breakable, skins, xparse, minted]{tcolorbox}
  203. \tcbset{colback=white, boxrule=.15mm, colframe=red!50!white, left=6mm,
  204. breakable}
  205. \DeclareTCBListing{arabluacode}{s O{}}{listing engine=minted, minted
  206. language=latex, minted options={linenos, fontsize=\relsize{-0.5}},
  207. IfBooleanTF={#1}{listing side text}{#2}}
  208. \DeclareTCBListing{arabluaverbatim}{}{listing engine=minted, minted
  209. language=latex, minted options={linenos, fontsize=\relsize{-0.5}},
  210. listing only}
  211. \DeclareTotalTCBox{\arabluaverb}{v}{verbatim}{#1}
  212. \DeclareTotalTCBox{\arabluabox}{m}{left=0mm, right=0mm, top=0mm,
  213. bottom=0mm}{#1}
  214. \newcommand{\package}[1]{\textsf{#1}\index{#1=#1 (package)}}
  215. \usepackage[contents]{colordoc}
  216. \usepackage{csquotes}
  217. \DeclareQuoteStyle{arabic}
  218. {\rmfamily\textquotedblright}{\rmfamily\textquotedblleft}
  219. {\rmfamily\textquoteright}{\rmfamily\textquoteleft}
  220. \usepackage[style=authoryear, indexing=cite]{biblatex}
  221. \DeclareIndexFieldFormat{indextitle}{\index{#1=\emph{#1}}}
  222. \addbibresource{arabluatex.bib}
  223. \usepackage{etoc}
  224. \etocsettocdepth{paragraph}
  225. \newcommand{\altableofcontents}{%
  226. \begingroup
  227. \etocsetstyle{section}{}{}
  228. {\etocsavedsectiontocline{%
  229. \numberline{\etocnumber}\etocname}{\etocpage}}{}
  230. \etocsetstyle{subsection}{}{}
  231. {\etocsavedsubsectiontocline{%
  232. \numberline{\etocnumber}\etocname}{\etocpage}}{}%
  233. \etocsetstyle{subsubsection}{}{}
  234. {\etocsavedsubsubsectiontocline{%
  235. \numberline{\etocnumber}\etocname}{\etocpage}}{}%
  236. \etocsetstyle{paragraph}{}{\leftskip2cm\rightskip 2.2em \parfillskip
  237. 0pt plus 1fil\relax \nobreak}
  238. {\noindent\etocname{} \etocpage{} }{\par}%
  239. \etocmulticolstyle[2]{\section*{Contents}}
  240. \pdfbookmark[1]{Contents}{toc}
  241. \tableofcontents
  242. \endgroup}
  243. \EnableCrossrefs
  244. \RecordChanges
  245. \CodelineIndex
  246. \begin{document}
  247. \DocInput{arabluatex.dtx}
  248. \printbibliography[heading=bibintoc]
  249. \phantomsection
  250. \addcontentsline{toc}{section}{Change History}
  251. \PrintChanges
  252. \phantomsection
  253. \addcontentsline{toc}{section}{Index}
  254. \PrintIndex
  255. \end{document}
  256. %</driver>
  257. % \fi
  258. %
  259. % \CheckSum{932}
  260. %
  261. % \CharacterTable
  262. % {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
  263. % Lower-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
  264. % Digits \0\1\2\3\4\5\6\7\8\9
  265. % Exclamation \! Double quote \" Hash (number) \#
  266. % Dollar \$ Percent \% Ampersand \&
  267. % Acute accent \' Left paren \( Right paren \)
  268. % Asterisk \* Plus \+ Comma \,
  269. % Minus \- Point \. Solidus \/
  270. % Colon \: Semicolon \; Less than \<
  271. % Equals \= Greater than \> Question mark \?
  272. % Commercial at \@ Left bracket \[ Backslash \\
  273. % Right bracket \] Circumflex \^ Underscore \_
  274. % Grave accent \` Left brace \{ Vertical bar \|
  275. % Right brace \} Tilde \~}
  276. %
  277. % \makeatletter
  278. % \let\org@changes@\changes@
  279. % \def\my@changes v#1.#2.#3\@nil{%
  280. % \org@changes@{v#1.\six@digits{#2}.#3=v#1.#2.#3}%
  281. % }%
  282. % \newcommand*{\six@digits}[1]{%
  283. % \ifnum#1<100000 0\fi
  284. % \ifnum#1<10000 0\fi
  285. % \ifnum#1<1000 0\fi
  286. % \ifnum#1<100 0\fi
  287. % \two@digits{#1}%
  288. % }%
  289. % \renewcommand*{\changes@}[1]{%
  290. % \my@changes#1.\@nil
  291. % }%
  292. % \makeatother
  293. %
  294. % \changes{v1.0}{2016/03/29}{Initial release}
  295. % \changes{v1.0.1}{2016/03/31}{Minor update of the documentation}
  296. %
  297. % \DoNotIndex{\newcommand,\newenvironment,\renewcommand}
  298. % \DoNotIndex{\~,\AtBeginDocument,\bgroup,\csname}
  299. % \DoNotIndex{\DeclareDocumentCommand,\def,\edef,\egroup}
  300. % \DoNotIndex{\else,\endcsname,\endinput,\expandafter,\fi}
  301. % \DoNotIndex{\ifdef,\ifdefined,\ifx,\MessageBreak,\NeedsTeXFormat}
  302. % \DoNotIndex{\NewDocumentCommand,\newif,\PackageError,\PackageWarning}
  303. % \DoNotIndex{\relax,\RenewDocumentCommand,\string,\verb,\let}
  304. % \DoNotIndex{\enskip}
  305. %
  306. % \providecommand*{\url}{\texttt}
  307. % \GetFileInfo{arabluatex.dtx}
  308. %
  309. % \newcommand*{\NEWfeature}[1]{%
  310. % \hskip 1sp \marginpar{\small\sffamily\raggedright
  311. % New feature\\#1}}
  312. %
  313. % \title{\tcbox[colframe=black, enhanced, tikznode, drop lifted
  314. % shadow, colback=white, boxrule=.25mm]%
  315. % {The \textsf{arabluatex} package\\
  316. % \fileversion\ -- \filedate}}
  317. %
  318. % \author{Robert Alessi \\
  319. % \href{mailto:alessi@robertalessi.net?Subject=arabluatex package}%
  320. % {\texttt{alessi@robertalessi.net}}}
  321. % \date{}
  322. %
  323. % \maketitle
  324. % \footnotesize
  325. % \altableofcontents
  326. % \listoftables
  327. % \normalsize
  328. %
  329. % \begin{abstract}
  330. % This package provides for {\LuaLaTeX} an Arab{\TeX}-like interface
  331. % to generate Arabic writing from an \textsc{ascii}
  332. % transliteration. It is particularly well-suited for complex
  333. % documents such as technical documents or critical editions where a
  334. % lot of left-to-right commands intertwine with Arabic
  335. % writing. \package{arabluatex} is able to process any Arab\TeX\
  336. % input notation. Its output can be set in the same modes of
  337. % vocalization as Arab\TeX, or in different roman
  338. % transliterations. It further allows many typographical
  339. % refinements. It will eventually interact with some other packages
  340. % yet to come to produce from \verb|.tex| source files, in addition
  341. % to printed books, \texttt{TEI xml} compliant critical editions
  342. % and/or lexicons that can be searched, analyzed and correlated in
  343. % various ways.
  344. % \end{abstract}
  345. %
  346. % \section*{License and disclamer}
  347. % \addcontentsline{toc}{section}{License and disclamer}
  348. % \subsection*{License applicable to the software}
  349. % \label{sec:license-software}
  350. %
  351. % \package{arabluatex} --- Processing Arab\TeX\ notation under Lua\LaTeX.\\
  352. % Copyright \textcopyright\ 2016--2019 Robert Alessi
  353. %
  354. % Please send error reports and suggestions for improvements to Robert
  355. % Alessi:
  356. % \begin{itemize}
  357. % \item email: \mailto[arabluatex package]{alessi@roberalessi.net}
  358. % \item website: \url{http://www.robertalessi.net/arabluatex}
  359. % \item development: \url{http://git.robertalessi.net/arabluatex}
  360. % \item comments, feature requests, bug reports:
  361. % \url{https://gitlab.com/ralessi/arabluatex/issues}
  362. % \end{itemize}
  363. %
  364. % \marginpar{\texttt{gpl3+}}
  365. % This program is free software: you can redistribute it and/or modify
  366. % it under the terms of the GNU General Public License as published by
  367. % the Free Software Foundation, either version 3 of the License, or
  368. % (at your option) any later version.
  369. %
  370. % This program is distributed in the hope that it will be useful, but
  371. % WITHOUT ANY WARRANTY; without even the implied warranty of
  372. % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  373. % General Public License for more details.
  374. %
  375. % You should have received a copy of the GNU General Public License
  376. % along with this program. If not, see
  377. % <http://www.gnu.org/licenses/>.
  378. %
  379. % This release of \package{arabluatex} consists of the following
  380. % source files:
  381. % \begin{itemize}
  382. % \item |arabluatex.ins|
  383. % \item |arabluatex.dtx|
  384. % \item |arabluatex.lua|
  385. % \item |arabluatex_voc.lua|
  386. % \item |arabluatex_fullvoc.lua|
  387. % \item |arabluatex_novoc.lua|
  388. % \item |arabluatex_trans.lua|
  389. % \item |arabluatex.el|
  390. % \end{itemize}
  391. %
  392. % \subsection*{License applicable to this document}
  393. % \label{sec:documentation-license}
  394. % Copyright \textcopyright\ 2016--2019 Robert Alessi
  395. %
  396. % \ccbysa\marginpar{\texttt{CC BY-SA 4.0}}
  397. % This document is licensed under the Creative Commons
  398. % Attribution-ShareAlike 4.0 International License. To view a copy of
  399. % this license, visit
  400. % \url{http://creativecommons.org/licenses/by-sa/4.0/} or send a
  401. % letter to Creative Commons, PO Box 1866, Mountain View, CA 94042,
  402. % USA.
  403. %
  404. % \section{Introduction}
  405. % In comparison to Prof. Lagally's outstanding Arab\TeX,\footnote{See
  406. % \url{http://ctan.org/pkg/arabtex}} Arab{\LuaTeX} is at present
  407. % nothing more than a modest piece of software. Hopefully---if I may
  408. % say so---it will eventually provide all of its valuable qualities to
  409. % the {\LuaLaTeX} users.
  410. %
  411. % \package{arabtex} dates back to 1992. As far as I know, it was then
  412. % the first and only way to typeset Arabic texts with \TeX\ and
  413. % \LaTeX. To achieve that, \package{arabtex} provided---and still
  414. % does---an Arabic font in \arb[trans]{\uc{nasxI}} style and a macro
  415. % package that defined its own input notation which was, as the author
  416. % stated, \enquote{both machine, and human, readable, and suited for
  417. % electronic transmission and e-mail
  418. % communication}.\footnote{\textcite[2]{pkg:arabtex}.} Even if the
  419. % same can be said about Unicode, Arab\TeX\ \textsc{ASCII} input
  420. % notation still surpasses Unicode input, in my opinion, when it comes
  421. % to typesetting complex documents, such as scientific documents or
  422. % critical editions where footnotes and other kind of annotations can
  423. % be particulary abundant. It must also be said that most text editors
  424. % have trouble in displaying Arabic script connected with preceding or
  425. % following \LaTeX\ commands: it often happens that commands seem
  426. % misplaced, not to mention punctuation marks, or opening or closing
  427. % braces, brackets or parentheses that are unexpectedly displayed in
  428. % the wrong direction. Of course, some text editors provide ways to
  429. % get around such difficulties by inserting invisible Unicode
  430. % characters, such as LEFT-TO-RIGHT or RIGHT-TO-LEFT MARKS
  431. % (\texttt{U+200E}, \texttt{U+200F}), RTL/LTR \enquote{embed}
  432. % characters (\texttt{U+202B}, \texttt{U+202A}) and RLO/LRO
  433. % \enquote{bidi-override} characters (\texttt{U+202E},
  434. % \texttt{U+202D}).\footnote{Gáspár Sinai's Yudit probably has the
  435. % best Unicode support. See \url{http://www.yudit.org}.} Nonetheless,
  436. % it remains that inserting all the time these invisible characters in
  437. % complex documents rapidly becomes confusing and cumbersome.
  438. %
  439. % The great advantage of Arab\TeX\ notation is that it is immune from
  440. % all these difficulties, let alone its being clear and
  441. % straightforward. One also must remember that computers are designed
  442. % to process code. Arab\TeX\ notation is a way of encoding Arabic
  443. % language, just as \TeX\ \enquote{mathematics mode} is a way of
  444. % processing code to display mathematics. As such, not only does it
  445. % allow greater control over typographical features, but it also can
  446. % be processed in several different ways: so without going into
  447. % details, depending on one's wishes, Arab\TeX\ input can be full
  448. % vocalized Arabic (\emph{scriptio plena}), vocalized Arabic or
  449. % non-vocalized Arabic (\emph{scriptio defectiva}); it further can be
  450. % transliterated into whichever romanization standard the user may
  451. % choose.
  452. %
  453. % \label{ref:tei-to-come}
  454. % But there may be more to be said on that point, as encoding Arabic
  455. % also naturally encourages the coder to vocalize the texts---without
  456. % compelling him to do so, of course. Accurate coding may even have
  457. % other virtuous effects. For instance, hyphens may be used for tying
  458. % particles or prefixes to words, or to mark inflectional endings, and
  459. % so forth. In other words, accurate coding produces accurate texts
  460. % that can stand to close grammatical scrutiny and to complex textual
  461. % searches as well.
  462. %
  463. % Having that in mind, I started \package{arabluatex}. With the help
  464. % of Lua, it will eventually interact with some other packages yet to
  465. % come to produce from \verb|.tex| source files, in addition to
  466. % printed books, \texttt{TEI xml} compliant critical editions and/or
  467. % lexicons that can be searched, analyzed and correlated in various
  468. % ways.
  469. %
  470. %\subsection{\package{arabluatex} is for {\LuaLaTeX}}
  471. % It goes without saying that \package{arabluatex} requires
  472. % {\LuaLaTeX}. \TeX\ and \LaTeX\ have \package{arabtex}, and
  473. % {\XeLaTeX} has \package{arabxetex}. Both of them are much more
  474. % advanced than \package{arabluatex}, as they can process a number of
  475. % different languages,\footnote{\label{fn:arabtex-languages}To date,
  476. % both packages support Arabic, Maghribi, Urdu, Pashto, Sindhi,
  477. % Kashmiri, Uighuric and Old Malay; in addition to these,
  478. % \package{arabtex} also has a Hebrew mode, including Judeo-Arabic and
  479. % Yiddish.} whereas \package{arabluatex} can process only Arabic for
  480. % the time being. More languages will be included in future releases
  481. % of \package{arabluatex}.
  482. %
  483. % In comparison to \package{arabxetex}, \package{arabluatex} works in
  484. % a very different way. The former relies on the
  485. % \href{http://scripts.sil.org/TECkitIntro}{\texttt{TECkit}} engine
  486. % which converts Arab\TeX\ input on the fly into Unicode Arabic
  487. % script, whereas the latter passes Arab\TeX\ input on to a set of Lua
  488. % functions. At first, \LaTeX\ commands are taken care of in different
  489. % ways: some, as \cs{emph}, \cs{textbf} and the like are expected to
  490. % have Arabic text as arguments, while others, as \cs{LR}, for
  491. % \enquote{left-to-right text}, are not. Then, once what is Arabic is
  492. % carefully separated form what is not, it is processed by other Lua
  493. % functions which rely on different sets of correpondence tables to do
  494. % the actual conversion in accordance with one's wishes. Finally, Lua
  495. % returns to \TeX\ the converted strings---which may in turn contain
  496. % some other Arab\TeX\ input yet to be processed---for further
  497. % processing.
  498. %
  499. % \section{The basics of \package{arabluatex}}
  500. % \subsection{Activating \package{arabluatex}}
  501. % \package{arabluatex} is loaded the usual way:\\
  502. % \arabluaverb{\usepackage{arabluatex}}\\
  503. % The only requirement of \package{arabluatex} is {\LuaLaTeX};
  504. % it will complain if the document is compiled with another
  505. % engine. That aside, \package{arabluatex} does not load packages such
  506. % as \package{polyglossia}. Although it can work with
  507. % \package{polyglossia}, it does not require it.
  508. %
  509. % \paragraph{Font setup}
  510. % Any Arabic font can be defined to be used with
  511. % \package{arabluatex}. For example, assuming that \package{fontspec}
  512. % is loaded, this line may be inserted in the preamble, just above the
  513. % line that loads \package{arabluatex}:
  514. % \arabluabox{\cs{newfontfamily}\cs{arabicfont}\marg{fontname}[Script=Arabic]}
  515. % \noindent where \meta{fontname} is the standard name of the Arabic
  516. % font to be used.
  517. %
  518. % By default, if no Arabic font is selected, \package{arabluatex} will
  519. % issue a warning message and attempt to load the Amiri
  520. % font\footnote{\textcite{pkg:amiri}.} like so:---\\
  521. % \arabluaverb{\newfontfamily\arabicfont{Amiri}[Script=Arabic]}
  522. % \begin{quoting}
  523. % \textsc{Rem.} By default Amiri places the \arb[trans]{kasraT} in
  524. % combination with the \arb[trans]{ta^sdId} below the consonant,
  525. % like so: \arb{BBi}\,. That is correct, as at least in the oldest
  526. % manuscripts {\renewfontfamily\arabicfont{Amiri}[Script=Arabic,
  527. % RawFeature={+ss05}]\arb{BBi}} may stand for \arb{BBa} as
  528. % well as \arb{BBi}\,. See \textcite[i. 14 C--D]{Wright}. The placement
  529. % of the \arb[trans]{kasraT} above the consonant may be obtained by
  530. % selecting the |ss05| feature of the Amiri font, like
  531. % so:---\footnote{See the documentation of \package{amiri},
  532. % \textcite[6]{pkg:amiri}.}\\
  533. % \arabluaverb{\newfontfamily\arabicfont{Amiri}[Script=Arabic,RawFeature={+ss05}]}
  534. %
  535. % Other Arabic fonts may behave differently.
  536. % \end{quoting}
  537. %
  538. % \subsection{Options}
  539. % \label{sec:options}
  540. % \package{arabluatex} may be loaded with five global options, the
  541. % first four of which are mutually exclusive and may be overriden at
  542. % any point of the document (see below \vref{sec:local-options}):
  543. %
  544. % \DescribeOption{voc}\hfill\arabluaverb{Default}\\ In this mode,
  545. % which is the one selected by default, every short vowel written
  546. % generates its corresponding diacritical mark: \arb[trans]{.dammaT}
  547. % (\arb{Bu}), \arb[trans]{fat.haT} (\arb{Ba}) and \arb[trans]{kasraT}
  548. % (\arb{Bi}). If a vowel is followed by |N|, viz. \meta{uN, aN, iN},
  549. % then the corresponding \arb[trans]{tanwIn} (\arb{BuN}, \arb{B|aN}\,,
  550. % \arb{TaN}, \arb{BaN_A} or \arb{BiN}) is generated. Finally, \meta{u,
  551. % a, i} at the commencement of a word indicate a \enquote{connective
  552. % \arb[trans]{'alif}\,} (\arb[trans]{'alifu 'l-wa.sli}), but |voc|
  553. % mode does not show the \arb[trans]{wa.slaT} above the
  554. % \arb[trans]{'alif}; instead, the accompanying vowel may be expressed
  555. % at the beginning of a sentence (\arb{u} \arb{a} \arb{i}).
  556. %
  557. % \DescribeOption{fullvoc}\\ \label{fullvoc-mode}In addition to what
  558. % the |voc| mode does, |fullvoc| expresses the \arb[trans]{sukUn} and
  559. % the \arb[trans]{wa.slaT}.
  560. %
  561. % \DescribeOption{novoc}\\ None of the diacritics is showed in |novoc|
  562. % mode, unless otherwise specified (see \enquote{quoting} technique
  563. % below \vref{sec:quoting}).
  564. %
  565. % \DescribeOption{trans} \\ \label{ref:describe-trans}This mode
  566. % transliterates the Arab\TeX\ input into one of the accepted
  567. % standards. At present, three standards are supported (see below
  568. % \vref{sec:transliteration} for more details):
  569. % \begin{description}
  570. % \item[dmg] \emph{Deutsche Morgenländische Gesellschaft}, which is
  571. % selected by default;
  572. % \item[loc] \emph{Library of Congress};
  573. % \item[arabica] \emph{Arabica}.
  574. % \end{description}
  575. % More standards will be included in future releases of
  576. % \package{arabluatex}.
  577. %
  578. % \label{ref:export-global-opt}
  579. % \DescribeOption{export} |export|$=$|true|\verb+|+|false|
  580. % \hfill\arabluaverb{Default: false}\\ \label{export-mode}
  581. % \NEWfeature{v.1.13} This option acts as a named argument and does
  582. % not need a value as it defaults to |true| if it is used. It enables
  583. % \package{arabluatex} to produce a duplicate of the original |.tex|
  584. % source file in which all \textsc{ascii} strings are replaced with
  585. % Unicode equivalents. See below \vref{sec:arabtex2utf} for more
  586. % information.
  587. %
  588. % \subsubsection{Classic contrasted with modern typesetting of Arabic}
  589. % \label{sec:classic-modern-typesetting}
  590. % \NEWfeature{v.1.2} By default, \package{arabluatex} typesets Arabic
  591. % in a classic, traditional style the most prominent features of which
  592. % are the following:
  593. % \begin{itemize}
  594. % \item \enquote*{Classic} \arb[trans]{maddaT}: when
  595. % \arb[trans]{'alif} and \arb[trans]{hamzaT} accompanied by a simple
  596. % vowel or \arb[trans]{tanwIn} is preceded by an \arb[trans]{'alif} of
  597. % prolongation (\arb[voc]{BA}), then a mere \arb[trans]{hamzaT} is
  598. % written on the line, and a \arb[trans]{maddaT} is placed over the
  599. % \arb[trans]{'alif}, like so:---
  600. % \begin{quote}
  601. % |samA'uN| \arb[voc]{samA'uN} \arb[trans]{samA'uN}, |jA'a|
  602. % \arb[voc]{jA'a} \arb[trans]{jA'a}, |yatasA'alUna|
  603. % \arb[voc]{yatasA'alUna} \arb[trans]{yatasA'alUna}\footnote{Note
  604. % that in old mss. such forms as \arb[voc]{samA"'a"'a},
  605. % \arb[voc]{jA"'a"'a} are also found; see \textcite[i. 24
  606. % D]{Wright}.} (see \vpageref{ref:madda} for further details).
  607. % \end{quote}
  608. % \item The euphonic \arb[trans]{ta^sdId} is generated (see
  609. % \vpageref{ref:euphonic-tashdid}).
  610. % \item In |fullvoc| mode, the \arb[trans]{sukUn} is expressed.
  611. % \item In such words as \arb{^say'aN}, \arb{.zim'aN} and the like,
  612. % the \arb[trans]{hamzaT} alone is not written over the letter
  613. % \arb[trans]{yA'} with no diacritical points below as in
  614. % \arb{^sayy"'aN}, \arb{.zimy"'aN}, but over a horizontal stroke
  615. % placed in the continuation of the preceding letter. %
  616. % \iffalse
  617. %<*example>
  618. % \fi
  619. \begin{arabluacode}[text only]
  620. Please note that only few Arabic fonts provide such contrivances. In
  621. case this feature is not supported by some Arabic font, it is
  622. advisable to use \cs{SetArbEasy}.
  623. \end{arabluacode}
  624. % \iffalse
  625. %</example>
  626. % \fi
  627. % \end{itemize}
  628. %
  629. % \DescribeMacro{\SetArbEasy} \NEWfeature{v1.4.4} Such refinements as
  630. % \enquote*{classic} \arb[trans]{maddaT} may be discarded by the
  631. % \cs{SetArbEasy} command, either globally in the preamble or locally
  632. % at any point of the document. The difference between \cs{SetArbEasy}
  633. % and its \enquote*{starred} version
  634. % \DescribeMacro{\SetArbEasy*}\cs{SetArbEasy*} is that the former
  635. % keeps the \arb[trans]{sukUn} that is generated by the |fullvoc|
  636. % mode, while the latter further takes it away. Default
  637. % \enquote*{classic} rules may be set back at any point of the
  638. % document with the \DescribeMacro{\SetArbDflt}\cs{SetArbDflt}
  639. % command. \NEWfeature{v1.6} \DescribeMacro{\SetArbDflt*}Assimilation
  640. % rules laid on \vref{ref:assimilation} may also be applied by the
  641. % \enquote*{starred} version of this command \cs{SetArbDflt*} either
  642. % in the preamble or at any point of the document.\footnote{For an
  643. % example, see \vref{sec:poetry-example}.} Examples follow:---
  644. % \begin{enumerate}
  645. % \item \cs{SetArbDflt}:
  646. % \begin{enumerate}
  647. % \item |voc| \arb[voc]{wa-mAta istisqA'aN qabla 'an yutimma
  648. % kitAba-hu fI nujUm-i 'l-samA'-i}
  649. % \item |fullvoc| \arb[fullvoc]{wa-mAta istisqA'aN qabla 'an yutimma
  650. % kitAba-hu fI nujUm-i 'l-samA'-i}
  651. % \item |trans| \arb[trans]{wa-mAta istisqA'aN qabla 'an yutimma
  652. % kitAba-hu fI nujUm-i 'l-samA'-i}
  653. % \end{enumerate}
  654. % \item \cs{SetArbDflt*}:
  655. % \begin{enumerate}\SetArbDflt*
  656. % \item |voc| \arb[voc]{wa-mAta istisqA'aN qabla 'an yutimma
  657. % kitAba-hu fI nujUm-i 'l-samA'-i}
  658. % \item |fullvoc| \arb[fullvoc]{wa-mAta istisqA'aN qabla 'an yutimma
  659. % kitAba-hu fI nujUm-i 'l-samA'-i}
  660. % \item |trans| \arb[trans]{wa-mAta istisqA'aN qabla 'an yutimma
  661. % kitAba-hu fI nujUm-i 'l-samA'-i}\SetArbDflt
  662. % \end{enumerate}
  663. % \item \cs{SetArbEasy}:
  664. % \begin{enumerate}\SetArbEasy
  665. % \item |voc| \arb[voc]{wa-mAta istisqA'aN qabla 'an yutimma
  666. % kitAba-hu fI nujUm-i 'l-samA'-i}
  667. % \item |fullvoc| \arb[fullvoc]{wa-mAta istisqA'aN qabla 'an yutimma
  668. % kitAba-hu fI nujUm-i 'l-samA'-i}
  669. % \item |trans| \arb[trans]{wa-mAta istisqA'aN qabla 'an yutimma
  670. % kitAba-hu fI nujUm-i 'l-samA'-i}\SetArbDflt
  671. % \end{enumerate}
  672. % \item \cs{SetArbEasy*}:
  673. % \begin{enumerate}\SetArbEasy*
  674. % \item |voc| \arb[voc]{wa-mAta istisqA'aN qabla 'an yutimma
  675. % kitAba-hu fI nujUm-i 'l-samA'-i}
  676. % \item |fullvoc| \arb[fullvoc]{wa-mAta istisqA'aN qabla 'an yutimma
  677. % kitAba-hu fI nujUm-i 'l-samA'-i}
  678. % \item |trans| \arb[trans]{wa-mAta istisqA'aN qabla 'an yutimma
  679. % kitAba-hu fI nujUm-i 'l-samA'-i}\SetArbDflt
  680. % \end{enumerate}
  681. % \end{enumerate}
  682. %
  683. % \iffalse
  684. %<*example>
  685. % \fi
  686. \begin{arabluacode}[text only]
  687. Please note that this document is typeset with \cs{SetArbDflt} throughout.
  688. \end{arabluacode}
  689. % \iffalse
  690. %</example>
  691. % \fi
  692. %
  693. %\subsection{Typing Arabic}
  694. % \DescribeMacro{\arb} Once \package{arabluatex} is loaded, a
  695. % \cs{arb}\marg{Arabic text} command is available for inserting Arabic
  696. % text in paragraphs, like so:---%
  697. % \iffalse
  698. %<*example>
  699. % \fi
  700. \begin{arabluacode}
  701. From \textcite[i. 1 A]{Wright}:--- Arabic, like Hebrew and
  702. Syriac, is written and read from right to left. The letters
  703. of the alphabet (\arb{.hurUf-u 'l-hijA'-i}, \arb{.hurUf-u
  704. 'l-tahajjI}, \arb{al-.hurUf-u 'l-hijA'iyyaT-u}, or
  705. \arb{.hurUf-u 'l-mu`jam-i}) are twenty-eight in number and
  706. are all consonants, though three of them are also used as
  707. vowels (see §~3).
  708. \end{arabluacode}
  709. % \iffalse
  710. %</example>
  711. % \fi
  712. %
  713. % \paragraph{Caveat}
  714. % For some reason, left-to-right paragraphs that start with Arabic
  715. % words lose their indentation. For the time being, this can be
  716. % circumvented by appending the \cs{indent} command at the
  717. % commencement of such paragraphs.
  718. %
  719. % \label{ref:ltr-lists}%
  720. % The same remark applies to left-to-right list environments: when
  721. % items start with Arabic words, the \cs{arb} command must be prefixed
  722. % with \cs{indent}. The following example comes from \textcite[i. 213
  723. % C]{Wright}:--- %
  724. % \iffalse
  725. %<*example>
  726. % \fi
  727. \begin{arabluacode}
  728. \begin{enumerate}[label=\Roman*., start=16]
  729. \item \indent\arb{fawA`ilu}*.
  730. \begin{enumerate}[label=\arabic*.]
  731. \item \indent\arb{fA`aluN}; as \arb{_hAtamuN} \emph{a
  732. signet-ring}, ...
  733. \end{enumerate}
  734. \end{enumerate}
  735. \end{arabluacode}
  736. % \iffalse
  737. %</example>
  738. % \fi
  739. %
  740. % \DescribeEnv{arab} Running paragraphs of Arabic text should rather
  741. % be placed inside an \emph{Arabic environment}
  742. %
  743. % \iffalse
  744. %<*example>
  745. % \fi
  746. \begin{arabluaverbatim}
  747. \begin{arab}
  748. [...]
  749. \end{arab}
  750. \end{arabluaverbatim}
  751. % \iffalse
  752. %</example>
  753. % \fi
  754. % like so:---\label{ref:juha-code}
  755. % \setquotestyle{arabic}
  756. % \iffalse
  757. %<*example>
  758. % \fi
  759. \begin{arabluacode}
  760. \begin{arab}
  761. 'at_A .sadIquN 'il_A ju.hA ya.tlubu min-hu .himAra-hu
  762. li-yarkaba-hu fI safraTiN qa.sIraTiN fa-qAla la-hu:
  763. \enquote{sawfa 'u`Idu-hu 'ilay-ka fI 'l-masA'-i
  764. wa-'adfa`u la-ka 'ujraTaN.} fa-qAla ju.hA:
  765. \enquote{'anA 'AsifuN jiddaN 'annI lA 'asta.tI`u 'an
  766. 'u.haqqiqa la-ka ra.gbata-ka fa-'l-.himAr-u laysa hunA
  767. 'l-yawm-a.} wa-qabla 'an yutimma ju.hA kalAma-hu bada'a
  768. 'l-.himAr-u yanhaqu fI 'i.s.tabli-hi. fa-qAla la-hu
  769. .sadIqu-hu: \enquote{'innI 'asma`u .himAra-ka yA ju.hA
  770. yanhaqu.} fa-qAla la-hu ju.hA: \enquote{.garIbuN
  771. 'amru-ka yA .sadIqI 'a-tu.saddiqu 'l-.himAr-a
  772. wa-tuka_d_diba-nI?}
  773. \end{arab}
  774. \end{arabluacode}
  775. % \iffalse
  776. %</example>
  777. % \fi
  778. % \setquotestyle{english}
  779. %
  780. % \subsubsection{Local options}
  781. % \label{sec:local-options}
  782. % As seen above in \vref{sec:options}, \package{arabluatex} may be
  783. % loaded with four mutually exclusive global options: |voc| (which is
  784. % the default option), |fullvoc|, |novoc| and |trans|. Whatever choice
  785. % has been made globally, it may be overriden at any point of the
  786. % document, as the \cs{arb} command may take any of the |voc|,
  787. % |fullvoc|, |novoc| or |trans| modes as optional argument, like
  788. % so:---
  789. % \begin{itemize}
  790. % \item \DescribeOption{voc} \cs{arb}|[voc]|\marg{Arabic text};
  791. % \item \DescribeOption{fullvoc} \cs{arb}|[fullvoc]|\marg{Arabic text};
  792. % \item \DescribeOption{novoc} \cs{arb}|[novoc]|\marg{Arabic text};
  793. % \item \DescribeOption{trans} \cs{arb}|[trans]|\marg{Arabic text}.
  794. % \end{itemize}
  795. %
  796. % The same optional arguments may be passed to the environment |arab|:
  797. % one may have \cs{begin}|{arab}|\oarg{mode}|...|\cs{end}|{arab}|,
  798. % where \meta{mode} may be any of |voc|, |fullvoc|, |novoc| or
  799. % |trans|.
  800. %
  801. %\section{Standard Arab\TeX\ input}
  802. %\subsection{Consonants}
  803. % \Cref{tab:arabtex-consonants} gives the Arab\TeX\ equivalents for
  804. % all of the Arabic consonants.
  805. %
  806. % \needspace{7\baselineskip}
  807. % \newcommand{\dmg}[1]{%
  808. % \SetTranslitConvention{dmg}%
  809. % \arb[trans]{#1}}
  810. % \newcommand{\loc}[1]{%
  811. % \SetTranslitConvention{loc}%
  812. % \arb[trans]{#1}\SetTranslitConvention{dmg}}
  813. % \newcommand{\brill}[1]{%
  814. % \SetTranslitConvention{arabica}%
  815. % \arb[trans]{#1}\SetTranslitConvention{dmg}}
  816. % \begin{longtable}{lllll}
  817. % \bottomrule
  818. % \caption*{\Cref*{tab:arabtex-consonants}: Standard Arab\TeX\
  819. % (consonants)}
  820. % \endfoot
  821. % \captionlistentry{Arab\TeX\ consonants}\\[-1em]
  822. % \toprule
  823. % Letter & \multicolumn{3}{l}{Transliteration\footnotemark}
  824. % & Arab\TeX\ notation \\
  825. % & \texttt{dmg} & \texttt{loc} & \texttt{arabica} & \\ \midrule
  826. % \endfirsthead
  827. % \toprule
  828. % Letter & \multicolumn{3}{l}{Transliteration}
  829. % & Arab\TeX\ notation \\
  830. % & \texttt{dmg} & \texttt{loc} & \texttt{arabica} & \\ \midrule
  831. % \endhead \footnotetext{See below \vref{sec:transliteration}.}
  832. % \label{tab:arabtex-consonants}
  833. % \arb[voc]{'i 'a 'u}\footnote{See below, \emph{Rem{.} a.} For
  834. % \arb[trans]{'alif} as a consonant, see \textcite[i. 16
  835. % D]{Wright}. The \arb[trans]{hamzaT} itself is encoded \texttt{<'>}
  836. % and may be followed by either \meta{u, a} or \meta{i}. See below
  837. % \vref{ref:hamza}.} & \dmg{'u 'a 'i} &
  838. % \loc{|'u, |'a, |'i} & \brill{|'u, |'a, |'i} & |'u| or |'a| or |'i| \\
  839. % \arb[novoc]{b} & \dmg{b} & \loc{b} & \brill{b} & |b| \\
  840. % \pagebreak[1]
  841. % \arb[novoc]{t} & \dmg{t} & \loc{t} & \brill{t} & |t| \\
  842. % \arb[novoc]{_t} & \dmg{_t} & \loc{_t} & \brill{_t} & |_t| \\
  843. % \arb[novoc]{j} & \dmg{j} & \loc{j} & \brill{j} & |^g| or |j| \\
  844. % \arb[novoc]{.h} & \dmg{.h} & \loc{.h} & \brill{.h} & |.h| \\
  845. % \arb[novoc]{x} & \dmg{x} & \loc{x} & \brill{x} & |_h| or |x|\\
  846. % \arb[novoc]{d} & \dmg{d} & \loc{d} & \brill{d} & |d| \\
  847. % \arb[novoc]{_d} & \dmg{_d} & \loc{_d} & \brill{_d} & |_d| \\
  848. % \arb[novoc]{r} & \dmg{r} & \loc{r} & \brill{r} & |r| \\
  849. % \arb[novoc]{z} & \dmg{z} & \loc{z} & \brill{z} & |z| \\
  850. % \arb[novoc]{s} & \dmg{s} & \loc{s} & \brill{s} & |s| \\
  851. % \arb[novoc]{^s} & \dmg{^s} & \loc{^s} & \brill{^s} & |^s| \\
  852. % \arb[novoc]{.s} & \dmg{.s} & \loc{.s} & \brill{.s} & |.s| \\
  853. % \arb[novoc]{.d} & \dmg{.d} & \loc{.d} & \brill{.d} & |.d| \\
  854. % \arb[novoc]{.t} & \dmg{.t} & \loc{.t} & \brill{.t} & |.t| \\
  855. % \arb[novoc]{.z} & \dmg{.z} & \loc{.z} & \brill{.z} & |.z| \\
  856. % \arb[novoc]{`} & \dmg{`} & \loc{`} & \brill{`} & |`| \\
  857. % \arb[novoc]{.g} & \dmg{.g} & \loc{.g} & \brill{.g} & |.g| \\
  858. % \arb[novoc]{f} & \dmg{f} & \loc{f} & \brill{f} & |f| \\
  859. % \arb[novoc]{q} & \dmg{q} & \loc{q} & \brill{q} & |q| \\
  860. % \arb[novoc]{k} & \dmg{k} & \loc{k} & \brill{k} & |k| \\
  861. % \arb[novoc]{l} & \dmg{l} & \loc{l} & \brill{l} & |l| \\
  862. % \arb[novoc]{m} & \dmg{m} & \loc{m} & \brill{m} & |m| \\
  863. % \arb[novoc]{n} & \dmg{n} & \loc{n} & \brill{n} & |n| \\
  864. % \arb[novoc]{h} & \dmg{h} & \loc{h} & \brill{h} & |h| \\
  865. % \arb[novoc]{w} & \dmg{w} & \loc{w} & \brill{w} & |w| \\
  866. % \arb[novoc]{y} & \dmg{y} & \loc{y} & \brill{y} & |y|\footnote{For
  867. % the letter \arb[novoc]{.y} with no diacritical points below, see
  868. % \emph{Rem{.} b.} below.} \\
  869. % \arb[novoc]{T} & \dmg{aT} & \loc{aT} & \brill{aT} & |T| \\
  870. % \end{longtable}
  871. % \begin{quoting}
  872. % \textsc{Rem.}~\emph{a.} Please note that in all cases of elision,
  873. % the \arb[trans]{'alifu 'l-wa.sli} is expressed only by the vowel
  874. % that accompanies the omitted \arb[trans]{hamzaT}: \meta{u, a, i}
  875. % as in |wa-inhazama| \arb[fullvoc]{wa-inhazama}
  876. % \arb[trans]{wa-inhazama}. For more details on the definite article
  877. % and the \arb[trans]{'alifu 'l-wa.sli} see
  878. % \vref{ref:definite-article}.
  879. %
  880. % That said, \arb{.A} as a consonant is actually the \emph{spiritus
  881. % lenis} of the Greeks and is distinguished by the
  882. % \arb[trans]{hamzaT} \arb[novoc]{(|"')} as it is shown in the above
  883. % table. However, the bare \arb[trans]{'alif} may also be encoded as
  884. % |.A| whether it be followed by a vowel or not, like so: |wa-.An|
  885. % \arb{wa-.An} \arb[trans]{wa-.An} (where the dot symbolizes the
  886. % absence of vowel), |wa-.Aan| \arb{wa-.Aan} \arb[trans]{wa-.Aan},
  887. % |wa-.Ain| \arb{wa-.Ain} \arb[trans]{wa-.Ain}.
  888. %
  889. % \textsc{Rem.}~\emph{b.} The letter \arb[novoc]{y} with two points
  890. % below, \arb{al-yA'u 'l-mu_tannATu min ta.hti-hA}, may also be
  891. % written without diacritical points as \arb[novoc]{Y}. When it is
  892. % used as a consonant, it is encoded |aY|, where |a| recalls the
  893. % \arb[trans]{fat.haT} placed above the preceding letter in
  894. % vocalized Arabic, like so: |qaY'uN| \arb{qaY'uN}
  895. % \arb[trans]{qaY'uN}, |^saY'uN| \arb{^saY'uN} \arb[trans]{^saY'uN},
  896. % |^saY'aN| \arb[trans]{^saY'aN} \arb{^saY'aN}.
  897. %
  898. % The same result may be achieved by encoding this letter as |.y|,
  899. % like so: |qa.y'uN| \arb{qa.y'uN} \arb[trans]{qa.y'uN}, |^sa.y'uN|
  900. % \arb{^sa.y'uN} \arb[trans]{^sa.y'uN}, |^sa.y'aN|
  901. % \arb[trans]{^sa.y'aN} \arb{^sa.y'aN}.
  902. % \end{quoting}
  903. %
  904. % \subsection{Additional characters}
  905. % \changes{v1.8.5}{2017/06/20}{Six additional Persian characters are
  906. % now available}
  907. % \NEWfeature{v1.8.5}\Cref{tab:arabtex-additional-characters} gives
  908. % the Arab\TeX\ equivalents for some additional Persian characters.
  909. %
  910. % \begin{longtable}{lllll}
  911. % \bottomrule
  912. % \caption*{\Cref*{tab:arabtex-additional-characters}: Standard
  913. % Arab\TeX\ (additional characters)}
  914. % \endfoot
  915. % \captionlistentry{Arab\TeX\ additional characters}\\[-1em]
  916. % \toprule
  917. % Letter & \multicolumn{3}{l}{Transliteration\footnotemark}
  918. % & Arab\TeX\ notation \\
  919. % & \texttt{dmg} & \texttt{loc} & \texttt{arabica}\footnotemark
  920. % & \\ \midrule
  921. % \endfirsthead
  922. % \toprule
  923. % Letter & \multicolumn{3}{l}{Transliteration}
  924. % & Arab\TeX\ notation \\
  925. % & \texttt{dmg} & \texttt{loc} & \texttt{arabica} & \\ \midrule
  926. % \endhead
  927. % \addtocounter{footnote}{-1}
  928. % \footnotetext{See below \vref{sec:transliteration}.}
  929. % \stepcounter{footnote}
  930. % \footnotetext{The characters that are listed in this table are not
  931. % included in this standard. However, as \texttt{arabica} is based on
  932. % \texttt{dmg}, the \texttt{dmg} equivalents have been used here.}
  933. % \label{tab:arabtex-additional-characters}
  934. % \hskip-1em\arb[novoc]{p} & \dmg{p} & \loc{p} & \brill{p} & \verb|p| \\
  935. % \arb[novoc]{^c} & \dmg{^c} & \loc{^c} & \brill{^c} & \verb|^c| \\
  936. % \arb[novoc]{^z} & \dmg{^z} & \loc{^z} & \brill{^z} & \verb|^z| \\
  937. % \arb[novoc]{v}\footnote{\label{fn:not-in-dmg}This character is not found in
  938. % \textcite[2]{dmg}. It is taken from the \textcite{din31635} standard.} &
  939. % \dmg{v} & \loc{v} & \brill{v} & \verb|v| \\
  940. % \arb[novoc]{g} & \dmg{g} & \loc{g} & \brill{g} & \verb|g| \\
  941. % \arb[novoc]{^n}\footnote{See \cref{fn:not-in-dmg}.} & \dmg{^n} &
  942. % \loc{^n} & \brill{^n} & \verb|^n| \\
  943. % \end{longtable}
  944. % \begin{quoting}
  945. % \textsc{Rem.} The alveolar consonants \arb[novoc]{^c} and
  946. % \arb[novoc]{^z} are processed as solar letters by
  947. % \package{arabluatex}.
  948. % \end{quoting}
  949. %
  950. % \subsection{Vowels}
  951. % \subsubsection{Long vowels}
  952. % \Cref{tab:arabtex-long-vowels} gives the Arab\TeX\ equivalents for
  953. % the Arabic long vowels.
  954. %
  955. % \needspace{8\baselineskip}
  956. % \begin{longtable}{lllll}
  957. % \bottomrule
  958. % \caption*{\Cref*{tab:arabtex-long-vowels}: Standard Arab\TeX\ (long
  959. % vowels)}
  960. % \endfoot
  961. % \captionlistentry{Arab\TeX\ long vowels}\\[-1em]
  962. % \toprule
  963. % Letter & \multicolumn{3}{l}{Transliteration\footnotemark}
  964. % & Arab\TeX\ notation \\
  965. % & \texttt{dmg} & \texttt{loc} & \texttt{arabica} & \\ \midrule
  966. % \endfirsthead
  967. % \toprule
  968. % Letter & \multicolumn{3}{l}{Transliteration}
  969. % & Arab\TeX\ notation \\
  970. % & \texttt{dmg} & \texttt{loc} & \texttt{arabica} & \\ \midrule
  971. % \endhead \footnotetext{See below \vref{sec:transliteration}.}
  972. % \label{tab:arabtex-long-vowels}
  973. % \arb[novoc]{A} & \dmg{A} & \loc{A} & \brill{A} & \verb|A| \\
  974. % \arb[novoc]{U} & \dmg{U} & \loc{U} & \brill{U} & \verb|U| \\
  975. % \arb[novoc]{I} & \dmg{I} & \loc{I} & \brill{I} &
  976. % \verb|I|\footnote{For the letter \arb[novoc]{I} with no diacritical
  977. % points, see \emph{Rem{.} c.} below.} \\
  978. % \arb[novoc]{_A}\footnote{$=$ \arb[trans]{al-'alif-u 'l-maq.sUraT-u}.}
  979. % & \dmg{_A} & \loc{_A} & \brill{_A} & \verb|_A| or \verb|Y| \\
  980. % \arb[novoc]{B_a} & \dmg{B_a} & \loc{B_a} & \brill{B_a} & \verb|_a| \\
  981. % \arb[novoc]{B_u} & \dmg{B_u} & \loc{B_u} & \brill{B_u} & \verb|_u| \\
  982. % \arb[novoc]{B_i} & \dmg{B_i} & \loc{B_i} & \brill{B_i} & \verb|_i| \\
  983. % \end{longtable}
  984. %
  985. % \begin{quoting}
  986. % \textsc{Rem.}~\emph{a.} The long vowels \arb[trans]{A, U, I},
  987. % otherwise called \arb[trans]{.hurUf-u 'l-madd-i}, \emph{the
  988. % letters of prolongation}, involve the placing of the short vowels
  989. % \arb[trans]{Ba, Bu, Bi} before the letters \arb[novoc]{A},
  990. % \arb[novoc]{U}, \arb[novoc]{I} respectively. \package{arabluatex}
  991. % does that automatically in case any from |voc|, |fullvoc| or
  992. % |trans| modes is selected e.g. \arb[voc]{qAla} \arb[trans]{qAla},
  993. % \arb[voc]{qIla} \arb[trans]{qIla}, \arb[voc]{yaqUlu}
  994. % \arb[trans]{yaqUlu}.
  995. %
  996. % \textsc{Rem.}~\emph{b.} Defective writings, such as
  997. % \arb[novoc]{B_a}, \arb[trans]{al-'alif-u 'l-ma.h_dUfaT-u}, or
  998. % defective writings of \arb[trans]{B_u} and \arb[trans]{B_i} are
  999. % encoded |_a| |_u| and |_i| respectively, e.g. |_d_alika|
  1000. % \arb[voc]{_d_alika}, |al-mal_a'ikaT-u| |'l-ra.hm_an-u|
  1001. % \arb[voc]{al-mal_a'ikaT-u 'l-ra.hm_an-u}, |.hu_dayfaT-u| |bn-u|
  1002. % |'l-yamAn_i| \arb[fullvoc]{.hu_dayfaT-u bn-u 'l-yamAn_i} for
  1003. % \arb[trans]{\uc{.hu_dayfaT-u} bn-u 'l-\uc{yamAn_i}}, etc.
  1004. %
  1005. % \textsc{Rem.}~\emph{c.} The letter \arb[novoc]{y} with two points
  1006. % below, \arb{al-yA'u 'l-mu_tannATu min ta.hti-hA}, may also be
  1007. % written without diacritical points as \arb[novoc]{Y}. When it is
  1008. % used as a long vowel, it is encoded |iY|, where |i| recalls the
  1009. % \arb[trans]{kasraT} placed below the preceding letter in vocalized
  1010. % Arabic, like so: |liY| \arb{liY} \arb[trans]{liY}, |yam^siY|
  1011. % \arb{yam^siY} \arb[trans]{yam^siY}.
  1012. % \end{quoting}
  1013. %
  1014. % \subsubsection{Short vowels}
  1015. % \Cref{tab:arabtex-short-vowels} gives the Arab\TeX\ equivalents for
  1016. % the Arabic short vowels.
  1017. %
  1018. % \begin{longtable}{lllll}
  1019. % \bottomrule
  1020. % \caption*{\Cref*{tab:arabtex-short-vowels}: Standard Arab\TeX\
  1021. % (short vowels)}
  1022. % \endfoot
  1023. % \captionlistentry{Arab\TeX\ short vowels}\\[-1em]
  1024. % \toprule
  1025. % Letter & \multicolumn{3}{l}{Transliteration\footnotemark}
  1026. % & Arab\TeX\ notation \\
  1027. % & \texttt{dmg} & \texttt{loc} & \texttt{arabica} & \\ \midrule
  1028. % \endfirsthead
  1029. % \toprule
  1030. % Letter & \multicolumn{3}{l}{Transliteration}
  1031. % & Arab\TeX\ notation \\
  1032. % & \texttt{dmg} & \texttt{loc} & \texttt{arabica} & \\ \midrule
  1033. % \endhead \footnotetext{See below \vref{sec:transliteration}.}
  1034. % \label{tab:arabtex-short-vowels}
  1035. % \arb[voc]{Ba} & \dmg{Ba} & \loc{Ba} & \brill{Ba} & \verb|a| \\
  1036. % \arb[voc]{Bu} & \dmg{Bu} & \loc{Bu} & \brill{Bu} & \verb|u| \\
  1037. % \arb[voc]{Bi} & \dmg{Bi} & \loc{Bi} & \brill{Bi} & \verb|i| \\
  1038. % \arb[voc]{BaN} & \dmg{BaN} & \loc{BaN} & \brill{BaN} & \verb|aN| \\
  1039. % \arb[voc]{BuN} & \dmg{BuN} & \loc{BuN} & \brill{BuN} & \verb|uN| \\
  1040. % \arb[voc]{BiN} & \dmg{BiN} & \loc{BiN} & \brill{BiN} & \verb|iN| \\
  1041. % \end{longtable}
  1042. %
  1043. % Whether Arabic texts be vocalized or not is essentially a matter of
  1044. % personal choice. So one may use |voc| mode and decide not to write
  1045. % vowels except at some particular places for disambiguation purposes,
  1046. % or use |novoc| mode, not write vowels---as |novoc| normally does not
  1047. % show them---except, again, where disambiguation is needed.\footnote{See
  1048. % below \vref{sec:quoting}.}
  1049. %
  1050. % \iffalse
  1051. %<*example>
  1052. % \fi
  1053. \begin{arabluacode}[text only]
  1054. However, it may be wise to always write the vowels, leaving to the
  1055. various modes provided by \package{arabluatex} to take care of
  1056. showing or not showing the vowels.
  1057. \end{arabluacode}
  1058. % \iffalse
  1059. %</example>
  1060. % \fi
  1061. %
  1062. % That said, there is no need to write the short vowels
  1063. % \arb[trans]{fat.haT}, \arb[trans]{.dammaT} or \arb[trans]{kasraT}
  1064. % except in the following cases:---
  1065. % \begin{itemize}
  1066. % \item at the commencement of a word, to indicate that a connective
  1067. % \arb[trans]{'alif} is needed, with the exception of the article (see
  1068. % below \vref{sec:quoting});
  1069. % \item when \package{arabluatex} needs to perform a contextual
  1070. % analysis to determine the carrier of the \arb[trans]{hamzaT};
  1071. % \item in the various transliteration modes, as vowels are always
  1072. % expressed in romanized Arabic.
  1073. % \end{itemize}
  1074. %
  1075. %\section{\package{arabluatex} in action}
  1076. %\subsection{The vowels and diphthongs}
  1077. % \paragraph{Short vowels} As said above, they are written \meta{a, u,
  1078. % i}:
  1079. % \begin{quote}
  1080. % |_halaqa| (or |xalaqa|) \arb[voc]{xalaqa} \arb[trans]{xalaqa},
  1081. % |^samsuN| \arb[voc]{^samsuN} \arb[trans]{^samsuN}, |karImuN|
  1082. % \arb[voc]{karImuN} \arb[trans]{\uc{karImuN}}.
  1083. %
  1084. % |bi-hi| \arb[voc]{bi-hi} \arb[trans]{bi-hi}, |'aqi.tuN|
  1085. % \arb[voc]{'aqi.tuN} \arb[trans]{'aqi.tuN}.
  1086. %
  1087. % |la-hu| \arb[voc]{la-hu} \arb[trans]{la-hu}, |.hujjaTuN|
  1088. % \arb[voc]{.hujjaTuN} \arb[trans]{.hujjaTuN}.
  1089. % \end{quote}
  1090. %
  1091. %\paragraph{Long vowels} They are written \meta{U, A, I}:
  1092. % \begin{quote}
  1093. % |qAla| \arb[voc]{qAla} \arb[trans]{qAla}, |bI`a| \arb[voc]{bI`a}
  1094. % \arb[trans]{bI`a}, |.tUruN| \arb[voc]{.tUruN} \arb[trans]{.tUruN},
  1095. % |.tInuN| \arb[voc]{.tInuN} \arb[trans]{.tInuN}, |murU'aTuN|
  1096. % \arb[voc]{murU'aTuN} \arb[trans]{murU'aTuN}.
  1097. % \end{quote}
  1098. %
  1099. % \paragraph{\texorpdfstring{\arb[trans]{'alif maq.sUraT}}{ʾalif
  1100. % maqṣūrah}} It is written \meta{\_A} or \meta{Y}:
  1101. % \begin{quote}
  1102. % |al-fat_A| \arb[voc]{al-fat_A} \arb[trans]{al-fat_A}, |al-maqh_A|
  1103. % \arb[voc]{al-maqh_A} \arb[trans]{al-maqh_A}, |'il_A|
  1104. % \arb[voc]{'il_A} \arb[trans]{'il_A}.
  1105. % \end{quote}
  1106. %
  1107. % \paragraph{\texorpdfstring{\arb[trans]{'alif} \emph{otiosum}}{ʾalif
  1108. % otiosum}} Said \arb[trans]{'alif-u 'l-wiqAyaT-i}, \enquote{the
  1109. % guarding \arb[trans]{'alif}}\,, after \arb[novoc]{U} at the end of a
  1110. % word, both when preceded by \arb[trans]{.dammaT} and by
  1111. % \arb[trans]{fat.haT} is written \meta{UA} or \meta{aW, aWA}:
  1112. % \begin{quote}
  1113. % |na.sarUA| \arb[voc]{na.sarUA} \arb[trans]{na.sarUA}, |katabUA|
  1114. % \arb[voc]{katabUA} \arb[trans]{katabUA}, |ya.gzUA|
  1115. % \arb[voc]{ya.gzUA} \arb[trans]{ya.gzUA}, |ramaW|
  1116. % \arb[fullvoc]{ramaW} \arb[trans]{ramaW}, |banaWA|
  1117. % \arb[fullvoc]{banaWA}, \arb[trans]{banaWA}.
  1118. % \end{quote}
  1119. %
  1120. % \paragraph{\texorpdfstring{\arb[trans]{'alif ma.h_dUfaT} and
  1121. % defective \arb[trans]{U, I}}{ʾalif maḥḏūfah and defective ū, ī}}
  1122. % They are written \meta{\_a, \_i \_u}:
  1123. % \begin{quote}
  1124. % |al-l_ah-u| \arb[voc]{al-l_ah-u} \arb[trans]{al-l_ah-u},
  1125. % |'il_ahuN| \arb[voc]{'il_ahuN} \arb[trans]{'il_ahuN}.
  1126. %
  1127. % |al-ra.hm_an-u| \arb[voc]{al-ra.hm_an-u}
  1128. % \arb[trans]{al-ra.hm_an-u}, |l_akin| \arb[voc]{l_akin}
  1129. % \arb[trans]{l_akin}, |h_ahunA| \arb[voc]{h_ahunA}
  1130. % \arb[trans]{h_ahunA}, |.hunayn-u| |bn-u| |'is.h_aq-a|
  1131. % \arb[voc]{.hunayn-u bn-u 'is.h_aq-a} \arb[trans]{\uc{.hunayn}-u
  1132. % bn-u \uc{'is.h_aq-a}}, |rabb_i| \arb[voc]{rabb_i}
  1133. % \arb[trans]{rabb_i}, |al-`A.s_i| \arb[voc]{al-`A.s_i}
  1134. % \arb[trans]{al-\uc{`A.s_i}}.
  1135. % \end{quote}
  1136. %
  1137. % \paragraph{\texorpdfstring{Silent
  1138. % \arb[novoc]{U}/\arb[novoc]{I}}{Silent ي/و}}
  1139. % Some words ending with \arb[voc]{BAT} are usually written
  1140. % \arb[voc]{BawT} or \arb[voc]{B_aUT} instead of \arb[voc]{BAT}: see
  1141. % \textcite[i. 12 A]{Wright}. \package{arabluatex} preserves that
  1142. % particular writing; the same applies to words ending in
  1143. % \arb[voc]{BayT} for \arb[voc]{BAT}\,. Long vowels \meta{U, I} shall
  1144. % receive no \arb[trans]{sukUn} after a \arb[trans]{'alif ma.h_dUfaT}
  1145. % and are discarded in |trans| mode:
  1146. % \begin{quote}
  1147. % |.hay_aUTuN| \arb[voc]{.hay_aUTuN} \arb[trans]{.hay_aUTuN},
  1148. % |.sal_aUTuN| \arb[voc]{.sal_aUTuN} \arb[trans]{.sal_aUTuN},
  1149. % |mi^sk_aUTuN| \arb[voc]{mi^sk_aUTuN} \arb[trans]{mi^s\-k_aUTuN},
  1150. % |tawr_aITuN| \arb[voc]{tawr_aITuN} \arb[trans]{tawr_aITuN}.
  1151. %
  1152. % And so also: |al-rib_aIT-u| \arb[voc]{al-rib_aIT-u}
  1153. % \arb[trans]{al-rib_aIT-u}.
  1154. % \end{quote}
  1155. %
  1156. % \paragraph{\texorpdfstring{\arb[trans]{\uc{`amruNU}}, and the silent
  1157. % \arb[novoc]{U}}{ʿAmrun, and the silent و}} To that name a silent
  1158. % \arb[novoc]{U} is added to distinguish it from
  1159. % \arb[trans]{\uc{`umar-u}}: see \textcite[i. 12 C]{Wright}. In no way
  1160. % this affects the sound of the \arb[trans]{tanwIn}, so it has to be
  1161. % discarded in |trans| mode:
  1162. % \begin{quote}
  1163. % |`amruNU| \arb[voc]{`amruNU} \arb[trans]{`amruNU}, |`amraNU|
  1164. % \arb[voc]{`amraNU} \arb[trans]{`amraNU}, |`amriNU|
  1165. % \arb[voc]{`amriNU} \arb[trans]{`amriNU}.
  1166. %
  1167. % When the \arb[trans]{tanwIn} falls away \parencite[i. 249
  1168. % B]{Wright}: |`amr-uU| |bn-u| |mu.hammadiN| \arb[fullvoc]{`amr-uU
  1169. % bnu mu.hammadiN} \arb[trans]{\uc{`amr-uU} bn-u
  1170. % \uc{mu.hammadiN}}, |mu.hammad-u| |bn-u| |`amr-iU| |bn-i|
  1171. % |_hAlidiN| \arb[fullvoc]{mu.hammad-u bn-u `amr-iU bn-i _hAlidiN}
  1172. % \arb[trans]{\uc{mu.hammad-u} bn-u \uc{`amr-iU} bn-i
  1173. % \uc{_hAlidiN}}.
  1174. %
  1175. % And so also: |al-rib_aUA| \arb[voc]{al-rib_aUA}
  1176. % \arb[trans]{al-rib_aUA}, |ribaNU| \arb[voc]{ribaNU}
  1177. % \arb[trans]{ribaNU}.
  1178. % \end{quote}
  1179. %
  1180. % \paragraph{\texorpdfstring{\arb[trans]{tanwIn}}{tanwīn}}
  1181. % The marks of doubled short vowels, \arb{BuN}, \arb{BaN}, \arb{BiN},
  1182. % are written \meta{uN, aN, iN} respectively. \package{arabluatex}
  1183. % deals with special cases, such as \arb{BaN} taking an \arb[novoc]{A}
  1184. % after all consonants except \arb[novoc]{T}, and \arb[trans]{tanwIn}
  1185. % preceding \arb[novoc]{Y} as in \arb[voc]{hudaN_A}, which is written
  1186. % \meta{aN\_A} or \meta{aNY}:
  1187. % \begin{quote}
  1188. % |mAluN| \arb[voc]{mAluN} \arb[trans]{mAluN}, |bAbaN|
  1189. % \arb[voc]{bAbaN} \arb[trans]{bAbaN}, |madInaTaN|
  1190. % \arb[voc]{madInaTaN} \arb[trans]{madInaTaN}, |bintiN|
  1191. % \arb[voc]{bintiN} \arb[trans]{bintiN} |maqhaN_A|
  1192. % \arb[voc]{maqhaN_A} \arb[trans]{maqhaN_A}, |fataNY|
  1193. % \arb[voc]{fataNY} \arb[trans]{fataNY}.
  1194. %
  1195. % \package{arabluatex} is aware of special orthographies: |^say'uN|
  1196. % \arb[voc]{^say'uN} \arb[trans]{^say'uN}, |^say'aN|
  1197. % \arb[voc]{^say'aN} \arb[trans]{^say'aN}, |^say'iN|
  1198. % \arb[voc]{^say'iN} \arb[trans]{^say'iN}.
  1199. % \end{quote}
  1200. %
  1201. % In some cases, it may be useful to mark the root form of defective
  1202. % words so as to produce a more accurate transliteration of ending
  1203. % \arb[trans]{tanwIn}. As seen above, \arb[trans]{tanwIn} preceding
  1204. % \arb[novoc]{_A} is written \meta{aN\_A} or \meta{aNY}. Such forms as
  1205. % \arb[voc]{qA.diNI} may likewise be written \meta{iNI}:---
  1206. % \begin{quote}
  1207. % |al-qA.dI| \arb[voc]{al-qA.dI} \arb[trans]{al-qA.dI}, |qA.diyaN|
  1208. % \arb[voc]{qA.diyaN} \arb[trans]{qA.diyaN}, |qA.diNI|
  1209. % \arb[voc]{qA.diNI} \arb[trans]{qA.diNI}.
  1210. % \end{quote}
  1211. %
  1212. % \subsection{Other orthographic signs}
  1213. % \paragraph{\texorpdfstring{\arb[trans]{tA' marbU.taT}}{tāʾ marbūṭah}}
  1214. % It is written \meta{T}:
  1215. % \begin{quote}
  1216. % |madInaTuN| \arb[voc]{madInaTuN} \arb[trans]{madInaTuN},
  1217. % |madInaTaN| \arb[voc]{madInaTaN} \arb[trans]{madInaTaN},
  1218. % |madInaTiN| \arb[voc]{madInaTiN} \arb[trans]{madInaTiN}.
  1219. % \end{quote}
  1220. %
  1221. % \paragraph{\texorpdfstring{\arb[trans]{hamzaT}}{hamzah}}
  1222. % \label{ref:hamza}It is written \meta{\texttt{'}}, its carrier being
  1223. % determined by contextual analysis. In case one wishes to bypass this
  1224. % mechanism, he can use the \enquote{quoting} feature that is
  1225. % described below in \vref{sec:quoting}.
  1226. % \begin{quote}
  1227. % \textbf{Initial \arb[trans]{hamzaT}}: |'asaduN| \arb[voc]{'asaduN}
  1228. % \arb[trans]{'asaduN}, |'u_htuN| \arb[voc]{'u_htuN}
  1229. % \arb[trans]{'u_htuN}, |'iqlIduN| \arb[voc]{'iqlIduN}
  1230. % \arb[trans]{'iqlIduN}, |'anna| \arb[voc]{'anna}
  1231. % \arb[trans]{'anna}, |'inna| \arb[voc]{'inna} \arb[trans]{'inna}.
  1232. %
  1233. % \label{ref:initial-hamza}
  1234. % \arb[trans]{hamzaT} followed by the long vowel \arb[novoc]{U} is
  1235. % encoded |'_U|: |'_Ul_A| \arb[voc]{'_Ul_A} \arb[trans]{'_Ul_A}, |'_UlU|
  1236. % \arb[voc]{'_UlU} \arb[trans]{'_UlU}, |'_UlA'ika|
  1237. % \arb[voc]{'_UlA'ika} \arb[trans]{'_UlA'ika}.
  1238. %
  1239. % \arb[trans]{hamzaT} followed by the long vowel \arb[novoc]{I} is
  1240. % encoded |'_I|: |'_ImAnuN| \arb[voc]{'_ImAnuN}
  1241. % \arb[trans]{'_ImA\-nuN}\footnote{For another way of encoding the
  1242. % initial \arb[trans]{hamzaT} followed by a long vowel, see the
  1243. % \arb[trans]{ta_hfIf-u 'l-hamzaT-i}\vpageref{ref:taxfif-hamzah}.}.
  1244. %
  1245. % \textbf{Middle \arb[trans]{hamzaT}}: |xA.ti'-Ina|
  1246. % \arb[voc]{xA.ti'-Ina} \arb[trans]{xA.ti'-Ina}, |ru'UsuN|
  1247. % \arb[voc]{ru'UsuN}, \arb[trans]{ru'UsuN}, |xa.tI'aTuN|
  1248. % \arb[voc]{xa.tI'aTuN} \arb[trans]{xa.tI'aTuN}, |su'ila|
  1249. % \arb[voc]{su'ila} \arb[trans]{su'ila}, |'as'ilaTuN|
  1250. % \arb[voc]{'as'i\-laTuN} \arb[trans]{'as'ilaTuN}, |mas'alaTuN|
  1251. % \arb[voc]{mas'alaTuN} \arb[trans]{mas'alaTuN}, |'as'alu|
  1252. % \arb[voc]{'as'alu} \arb[trans]{'as'alu}, |yatasA'alUna|
  1253. % \arb[voc]{yatasA'alUna}\linebreak \arb[trans]{yatasA'alUna},
  1254. % |murU'aTuN| \arb[voc]{murU'aTuN}, |taw'amuN|
  1255. % \arb[fullvoc]{taw'amuN} \arb[trans]{taw'amuN},
  1256. % \arb[trans]{murU'aTuN}, |ta'xIruN| \arb[fullvoc]{ta'xIruN}
  1257. % \arb[trans]{ta'xIruN}, |ta'ax|\allowbreak|xara|
  1258. % \arb[voc]{ta'axxara} \arb[trans]{ta'axxara}, |ji'tu-ka|
  1259. % \arb[voc]{ji'tu-ka} \arb[trans]{ji'tu-ka}, |qA'iluN|
  1260. % \arb[voc]{qA'iluN} \arb[trans]{qA'iluN}, |.hIna'i_diN|
  1261. % \arb[trans]{.hIna'i_diN} \arb[voc]{.hIna'i_diN}, |hay'aTuN|
  1262. % \arb[voc]{hay'aTuN} \arb[trans]{hay\-'aTuN}, |hay'AtuN|
  1263. % \arb[voc]{hay'AtuN} \arb[trans]{hay'AtuN}.
  1264. %
  1265. % From \textcite[i. 14 B]{Wright}:--- All consonants, whatsoever,
  1266. % not even \arb[trans]{'alif} \emph{hèmzatum} excepted, admit of
  1267. % being doubled and take \arb[trans]{ta^sdId}. Hence we speak and
  1268. % write |ra''AsuN| \arb[voc]{ra''AsuN} \arb[trans]{ra''AsuN},
  1269. % |sa''AluN| \arb[voc]{sa''AluN} \arb[trans]{sa''AluN}, |na''AjuN|
  1270. % \arb[voc]{na''AjuN} \arb[trans]{na''AjuN}.
  1271. %
  1272. % \textbf{Final \arb[trans]{hamzaT}}: |xa.ta'uN| \arb[voc]{xa.ta'uN}
  1273. % \arb[trans]{xa.ta'uN}, |xa.ta'aN| \arb[voc]{xa.ta'aN}
  1274. % \arb[trans]{xa.ta'aN}, |xa.ta'iN| \arb[voc]{xa.ta'iN}
  1275. % \arb[trans]{xa.ta'iN}, |'aqra'u| \arb[voc]{'aqra'u}
  1276. % \arb[trans]{'aqra'u}, |taqra'Ina| \arb[voc]{taqra'Ina}
  1277. % \arb[trans]{taqra'Ina}, |taqra'Una| \arb[voc]{taqra'Una}
  1278. % \arb[trans]{taqra'Una}, |yaqra'na| \arb[fullvoc]{yaqra'na}
  1279. % \arb[trans]{yaqra'na}, |yaxba'Ani| \arb[voc]{yaxba'Ani}
  1280. % \arb[trans]{yaxba'Ani}, |xaba'A| \arb[voc]{xaba'A}
  1281. % \arb[trans]{xaba'A}, |xubi'a| \arb[voc]{xubi'a}
  1282. % \arb[trans]{xubi'a}, |xubi'UA| \arb[voc]{xubi'UA}
  1283. % \arb[trans]{xubi'UA}, |jA'a| \arb[voc]{jA'a} \arb[trans]{jA'a},
  1284. % |ridA'uN| \arb[voc]{ridA'uN} \arb[trans]{ridA'uN}, |ridA'aN|
  1285. % \arb[voc]{ridA'aN} \arb[trans]{ridA'aN}, |jI'a| \arb[voc]{jI'a}
  1286. % \arb[trans]{jI'a}, |radI'iN| \arb[voc]{radI'iN}
  1287. % \arb[trans]{radI'iN}, |sU'uN| \arb[voc]{sU'uN} \arb[trans]{sU'uN},
  1288. % |.daw'uN| \arb[voc]{.daw'uN} \arb[trans]{.daw'uN}, |qay'iN|
  1289. % \arb[voc]{qay'iN} \arb[trans]{qay'iN}, |^sifA'I|
  1290. % \arb[voc]{^sifA'I} \arb[trans]{^sifA'I}, |man^sa'I|
  1291. % \arb[trans]{man^sa'I} \arb[voc]{man^sa'I}, |nisA'uN|
  1292. % \arb[voc]{nisA'uN} \arb[trans]{ni\-sA'uN}, |nisA'u-hu|
  1293. % \arb[voc]{nisA'u-hu} \arb[trans]{nisA'u-hu}, |nisA'i-hi|
  1294. % \arb[voc]{nisA'i-hi} \arb[trans]{nisA'i-hi}, |nisA'I|
  1295. % \arb[voc]{nisA'I} \arb[trans]{nisA'I}.
  1296. %
  1297. % |^say'uN| \arb[voc]{^say'uN} \arb[trans]{^say'uN}, |^say'aN|
  1298. % \arb[voc]{^say'aN} \arb[trans]{^say'aN}, |^say'iN|
  1299. % \arb[voc]{^say'iN} \arb[trans]{^say'iN}, |al-^say'-u|
  1300. % \arb[voc]{al-^say'-u} \arb[trans]{al-^say'-u}, |'a^syA'-u|
  1301. % \arb[voc]{'a^syA'-u} \arb[trans]{'a^syA'-u}, |'a^syA'-a|
  1302. % \arb[voc]{'a^syA'-a} \arb[trans]{'a^syA'-a}, |.zim'aN|
  1303. % \arb[voc]{.zim'aN} \arb[trans]{.zim'aN}, |radI'aN|
  1304. % \arb[voc]{radI'aN} \arb[trans]{radI'aN}.
  1305. %
  1306. % \label{ref:taxfif-hamzah}
  1307. % \textbf{\arb[trans]{ta_hfIf-u 'l-hamzaT-i}}: if the
  1308. % \arb[trans]{hamzaT} has \arb[trans]{jazmaT} and is preceded by
  1309. % \emph{\arb[trans]{'alif} hamzatum}, it must be changed into the
  1310. % letter of prolongation that is homogeneous with the preceding
  1311. % vowel; hence: |'a'mana| \arb[voc]{'a'mana} \arb[trans]{'a'mana},
  1312. % |'u'minu| \arb[voc]{'u'minu} \arb[trans]{'u'minu}, |'i'mAnuN|
  1313. % \arb[voc]{'i'mAnuN} \arb[trans]{'i'mAnuN}. For other possible ways
  1314. % of encoding such sequences, see \vpageref{ref:initial-hamza}
  1315. % (\arb[trans]{hamzaT} followed by \arb[novoc]{U} and \arb[novoc]{I})
  1316. % and the \arb[trans]{maddaT} \vpageref{ref:madda}.
  1317. %
  1318. % Imperatives of verbs that have the \arb[trans]{hamzaT} as the
  1319. % first radical are other cases of \arb[trans]{ta_hfIf-u
  1320. % 'l-hamzaT-i}: |i'sir| \arb[fullvoc]{i'sir} \arb[trans]{i'sir},
  1321. % |i'_dan| \arb[fullvoc]{i'_dan} \arb[trans]{i'_dan}, |u'mul|
  1322. % \arb[fullvoc]{u'mul} \arb[trans]{u'mul}. \package{arabluatex}
  1323. % also provides ways of encoding those words when the initial
  1324. % \arb[trans]{'alif} comes into \arb[trans]{wa.sl}, so as to make
  1325. % the \arb[trans]{'alif wa.sl} fall away when preceded by
  1326. % \arb[voc]{wa} or \arb[voc]{fa}: |wa-'sir| \arb[fullvoc]{wa-'sir}
  1327. % \arb[trans]{wa-'sir}, |fa-'_dan| \arb[fullvoc]{fa-'_dan}
  1328. % \arb[trans]{fa-'_dan}, |fa-'ti| \arb[fullvoc]{fa-'ti}
  1329. % \arb[trans]{fa-'ti}, |wa-'tamirUA| \arb[fullvoc]{wa-'tamirUA}
  1330. % \arb[trans]{wa-'tamirUA}; or be retained outside the imperative,
  1331. % as in |fa-i'tazarat| \arb[fullvoc]{fa-i'tazarat}
  1332. % \arb[trans]{fa-i'tazarat}, |ba`da| |i'tilAfiN| \arb[fullvoc]{ba`da
  1333. % i'tilAfiN} \arb[trans]{ba`da i'tilAfiN}.
  1334. %
  1335. % \textbf{The strange spelling of \arb[trans]{mi'aTuN}}: |mi'aTuN|
  1336. % \arb[voc]{mi'aTuN} \arb[trans]{mi'aTuN}, \linebreak |mi'atAni|
  1337. % \arb[voc]{mi'atAni} \arb[trans]{mi'atAni}, |mi'atayni|
  1338. % \arb[voc]{mi'atayni} \arb[trans]{mi'atayni}, |mi'Una|
  1339. % \arb[voc]{mi'Una} \arb[trans]{mi'Una}, |mi'AtuN|
  1340. % \arb[voc]{mi'AtuN} \arb[trans]{mi'AtuN}, |mi'aN_A|
  1341. % \arb[voc]{mi'aN_A} \arb[trans]{mi'aN_A}. Of course, the
  1342. % \enquote*{pipe} character can be used to prevent this rule from
  1343. % being applied (see \vref{sec:pipe}): \verb+mi'a|TuN+
  1344. % \arb[voc]{mi'a|TuN} \arb[trans]{mi'a|TuN}.
  1345. % \end{quote}
  1346. %
  1347. % \paragraph{\texorpdfstring{\arb[trans]{maddaT}}{maddah}}
  1348. % \label{ref:madda}At the beginning of a syllabe, \arb[trans]{'alif}
  1349. % with \arb[trans]{hamzaT} and \arb[trans]{fat.haT} (\arb[voc]{'a})
  1350. % followed by \arb[trans]{'alifu 'l-maddi} (\arb[trans]{'alif} of
  1351. % prolongation) or \arb[trans]{'alif} with \arb[trans]{hamzaT} and
  1352. % \arb[trans]{jazmaT} (\arb[voc]{a"'"}) are both represented in
  1353. % writing \arb[trans]{'alif} with \arb[trans]{maddaT}: \arb[voc]{A"'}
  1354. % \parencite[see][i. 25 A--B]{Wright}.
  1355. %
  1356. % \iffalse
  1357. %<*example>
  1358. % \fi
  1359. \begin{arabluacode}[text only]
  1360. Hence one should keep to this distinction and encode |'a'kulu|
  1361. \arb[voc]{'a'kulu} \arb[trans]{'a'kulu} and |'AkiluN|
  1362. \arb[voc]{'AkiluN} \arb[trans]{'AkiluN} respectively.
  1363. \end{arabluacode}
  1364. % \iffalse
  1365. %</example>
  1366. % \fi
  1367. %
  1368. % \package{arabluatex} otherwise determines \arb[trans]{al-'alif-u
  1369. % 'l-mamdUdaT-u} by context analysis.
  1370. %
  1371. % \begin{quote}
  1372. % |'is'AduN| \arb[voc]{'is'AduN} \arb[trans]{'is'AduN}, |'AkilUna|
  1373. % \arb[voc]{'AkilUna} \arb[trans]{'AkilUna}, |'a'mannA|
  1374. % \arb[voc]{'a'mannA} \arb[trans]{'a'mannA}, |al-qur'An-u|
  1375. % \arb[voc]{al-qur'An-u} \arb[trans]{al-qur'An-u}.
  1376. %
  1377. % |jA'a| \arb[voc]{jA'a} \arb[trans]{jA'a}, |yatasA'alUna|
  1378. % \arb[voc]{yatasA'alUna} \arb[trans]{yatasA'alUna}, |ridA'uN|
  1379. % \arb[voc]{ridA'uN} \arb[trans]{ridA'uN}, |xaba'A|
  1380. % \arb[voc]{xaba'A} \arb[trans]{xaba'A}, |yaxba'Ani|
  1381. % \arb[voc]{yaxba'Ani} \arb[trans]{yaxba'Ani}.
  1382. % \end{quote}
  1383. %
  1384. % \paragraph{\texorpdfstring{\arb[trans]{^saddaT}}{šaddah}}
  1385. % \arb[trans]{ta^sdId} is either \emph{necessary} or \emph{euphonic}.
  1386. %
  1387. % \subparagraph{The necessary \arb[trans]{ta^sdId}}
  1388. % \label{ref:necessary-tashdid}always follows a vowel, whether short
  1389. % or long \parencite[see][i. 15 A--B]{Wright}. It is encoded in
  1390. % writing the consonant that carries it twice:
  1391. % \begin{quote}
  1392. % |`allaqa| \arb[voc]{`allaqa} \arb[trans]{`allaqa}, |mAdduN|
  1393. % \arb[voc]{mAdduN} \arb[trans]{mAdduN}, |'ammara|
  1394. % \arb[voc]{'ammara} \arb[trans]{ammara}, |murruN| \arb[voc]{murruN}
  1395. % \arb[trans]{murruN}.
  1396. % \end{quote}
  1397. %
  1398. % \subparagraph{The euphonic \arb[trans]{ta^sdId}}
  1399. % \label{ref:euphonic-tashdid} always follows a vowelless consonant
  1400. % which is passed over in pronunciation and assimilated to a following
  1401. % consonant. It may be found \parencite[i. 15 B--16 C]{Wright}:---
  1402. % \begin{enumerate}
  1403. % \item With the \emph{solar} letters \arb[novoc]{t}, \arb[novoc]{_t},
  1404. % \arb[novoc]{d}, \arb[novoc]{_d}, \arb[novoc]{r}, \arb[novoc]{z},
  1405. % \arb[novoc]{s}, \arb[novoc]{^s}, \arb[novoc]{.s}, \arb[novoc]{.d},
  1406. % \arb[novoc]{.t}, \arb[novoc]{.z}, \arb[novoc]{l}, \arb[novoc]{n},
  1407. % after the article \arb[fullvoc]{al-}:---
  1408. % \iffalse
  1409. %<*example>
  1410. % \fi
  1411. \begin{arabluacode}[text only]
  1412. Unlike \package{arabtex} and \package{arabxetex},
  1413. \package{arabluatex} \emph{never requires the solar letter to be
  1414. written twice}, as it automatically generates the euphonic
  1415. \arb[trans]{ta^sdId} above the letter that carries it, whether the
  1416. article be written in the assimilated form or not, e.g. |al-^sams-u|
  1417. \arb[voc]{al-^sams-u} \arb[trans]{al-^sams-u}, or |a^s-^sams-u|
  1418. \arb[voc]{a^s-^sams-u} \arb[trans]{a^s-^sams-u}.
  1419. \end{arabluacode}
  1420. % \iffalse
  1421. %</example>
  1422. % \fi
  1423. % \begin{quote}
  1424. % |al-tamr-u| \arb[voc]{al-tamr-u} \arb[trans]{al-tamr-u},
  1425. % |al-ra.hm_an-u| \arb[voc]{al-ra.hm_an-u}
  1426. % \arb[trans]{al-ra.hm_an-u}, |al-.zulm-u| \arb[voc]{al-.zulm-u}
  1427. % \arb[trans]{al-.zulm-u}, |al-lu.gaT-u| \arb[voc]{al-lu.gaT-u}
  1428. % \arb[trans]{al-lu.gaT-u}.
  1429. % \end{quote}
  1430. % \item \label{ref:assimilation} With the letters \arb[novoc]{r},
  1431. % \arb[novoc]{l}, \arb[novoc]{m}, \arb[novoc]{w}, \arb[novoc]{y}
  1432. % after \arb[voc]{n} with \arb[trans]{jazmaT}, and also after the
  1433. % \arb[trans]{tanwIn}:---
  1434. % \begin{quote}\SetArbDflt*
  1435. % Note the absence of \arb[trans]{sukUn} above the passed over
  1436. % \arb[novoc]{n} in the following examples, each of which is
  1437. % accompanied by a consistent transliteration: |min rabbi-hi|
  1438. % \arb[fullvoc]{min rabbi-hi}, \arb[trans]{min rabbi-hi},
  1439. % |min| |layliN| \arb[fullvoc]{min layliN} \arb[trans]{min layliN},
  1440. % |'an| |yaqtula| \arb[fullvoc]{'an yaqtula} \arb[trans]{'an yaqtula}.
  1441. %
  1442. % With \arb[trans]{tanwIn}: |kitAbuN| |mubInuN| \arb[voc]{kitAbuN
  1443. % mubInuN} \arb[trans]{kitAbuN mubInuN}.\SetArbDflt
  1444. % \end{quote}
  1445. % \iffalse
  1446. %<*example>
  1447. % \fi
  1448. \begin{arabluacode}[text only]
  1449. \textsc{Rem.} This particular feature must be put into operation by
  1450. the \cs{SetArbDflt*} command explicitly. See above
  1451. \vref{sec:classic-modern-typesetting} for further details. Other
  1452. kinds of assimilations, including the various cases of
  1453. \arb[trans]{'id.gAm}, will be included in \package{arabluatex}
  1454. gradually.
  1455. \end{arabluacode}
  1456. % \iffalse
  1457. %</example>
  1458. % \fi
  1459. % \item With the letter \arb[voc]{t} after the dentals
  1460. % \arb[novoc]{_t}, \arb[novoc]{d}, \arb[novoc]{_d}, \arb[novoc]{.d},
  1461. % \arb[novoc]{.t}, \arb[novoc]{.z} in certain parts of the verb:
  1462. % this kind of assimilation, e.g. \arb[voc]{labi_tttu} for
  1463. % \arb[voc]{labi_ttu} \arb[trans]{labi_ttu}, will be discarded here,
  1464. % as it is largely condemned by the
  1465. % grammarians \parencite[see][i. 16 B--C]{Wright}.
  1466. % \end{enumerate}
  1467. %
  1468. % \paragraph{\texorpdfstring{The definite article and the
  1469. % \arb[trans]{'alif-u 'l-wa.sl-i}}{The definite article and the ʾalifu
  1470. % 'l-waṣli}}
  1471. % \label{ref:definite-article}
  1472. % At the beginning of a sentence, \arb[fullvoc]{"a} is never written,
  1473. % as \arb[fullvoc]{'l-.hamd-u li-ll_ah-i}; instead, to indicate that
  1474. % the \arb[trans]{'alif} is a connective \arb[trans]{'alif}
  1475. % (\arb[trans]{'alif-u 'l-wa.sl-i}), the \arb[trans]{hamzaT} is
  1476. % omitted and only its accompanying vowel is expressed:
  1477. % \begin{quote}
  1478. % |al-.hamd-u| |li-l-l_ah-i| \arb[fullvoc]{al-.hamd-u li-l-l_ah-i}
  1479. % \arb[trans]{al-.hamd-u li-l-l_ah-i}.
  1480. % \end{quote}
  1481. % As said above on \cpageref{fullvoc-mode}, |fullvoc| is the mode
  1482. % in which \package{arabluatex} expresses the \arb[trans]{sukUn} and
  1483. % the \arb[trans]{wa.slaT}. \package{arabluatex} will take care of
  1484. % doing that automatically provided that the vowel which is to be
  1485. % absorbed by the final vowel of the preceding word be properly
  1486. % encoded, like so:---
  1487. % \begin{enumerate}
  1488. % \item Definite article at the beginning of a sentence is encoded\\
  1489. % \arabluaverb{al-}, or \arabluaverb{a<solar letter>-}\\ if one
  1490. % wishes to mark the assimilation---which is in no way required, as
  1491. % \package{arabulatex} will detect all cases of assimilation.
  1492. % \item Definite article inside sentences is encoded\\ \arabluaverb{'l-}
  1493. % or \arabluaverb{'<solar letter>-}.
  1494. % \item In all remaining cases of elision, the \arb[trans]{'alifu
  1495. % 'l-wa.sli} is expressed by the vowel that accompanies the omitted
  1496. % \arb[trans]{hamzaT}: \meta{u, a, i}.
  1497. % \end{enumerate}
  1498. % \begin{quote}
  1499. % \textbf{Article}: |bAb-u| |'l-madrasaT-i| \arb[fullvoc]{bAb-u
  1500. % 'l-madrasaT-i} \arb[trans]{bAb-u 'l-madrasaT-i},
  1501. % |al-maqA|\allowbreak|laT-u| |'l-'_Ul_A| \arb[fullvoc]{al-maqAlaT-u
  1502. % 'l-'_Ul_A} \arb[trans]{al-maqAlaT-u 'l-'_Ul_A}, |al-lu.gaT-u|
  1503. % |'l-`ara|\allowbreak|biyyaT-u| \arb[fullvoc]{al-lu.gaT-u
  1504. % 'l-`arabiyyaT-u} \arb[trans]{al-lu.gaT-u 'l-`arabiyyaT-u}, |fI|
  1505. % |.sinA`aT-i| |'l-.tibb-i| \arb[fullvoc]{fI .sinA`aT-i 'l-.tibb-i}
  1506. % \arb[trans]{fI .sinA`aT-i 'l-.tibb-i}, |'il_A| |'l-intiqA.d-i|
  1507. % \arb[fullvoc]{'il_A 'l-intiqA.d-i} \arb[trans]{'il_A
  1508. % 'l-intiqA.d-i}, |fI| |'l-ibtidA'-i| \arb[fullvoc]{fI 'l-ibtidA'-i}
  1509. % \arb[trans]{fI 'l-ibtidA'-i}, |'abU| |'l-wazIr-i|
  1510. % \arb[fullvoc]{'abU 'l-wazIr-i} \arb[trans]{'abU 'l-wazIr-i},
  1511. % |fa-lammA| |ra'aW| |'l-najm-a| \arb[fullvoc]{fa-lammA ra'aW
  1512. % 'l-najm-a} \arb[trans]{fa-lammA ra'aW 'l-najm-a}.
  1513. %
  1514. % \textbf{Particles}:---
  1515. % \begin{enumerate}
  1516. % \item \arb[trans]{li-}: \arb[trans]{'alif-u 'l-wa.sl-i} is omitted
  1517. % in the article \arb[fullvoc]{al} when it is preceded by the
  1518. % preposition \arb[fullvoc]{li}: |li-l-rajul-i|
  1519. % \arb[fullvoc]{li-l-rajul-i}
  1520. % \arb[trans]{li-l-rajul-i}.\\
  1521. % If the first letter of the noun be \arb[novoc]{l}, then the
  1522. % \arb[novoc]{l} of the article also falls away, but
  1523. % \package{arabluatex} is aware of that: |li-l-laylaT-i|
  1524. % \arb[fullvoc]{li-l-laylaT-i} \arb[trans]{li-l-laylaT-i}.
  1525. % \item \arb[trans]{la-}: the same applies to the affirmative
  1526. % particle \arb[fullvoc]{la}: |la-l-.haqq-u|
  1527. % \arb[fullvoc]{la-l-.haqq-u} \arb[trans]{la-l-.haqq-u}.
  1528. % \item With the other particles, \arb[trans]{'alif-u 'l-wa.sl-i} is
  1529. % expressed: |fI| |'l-madIna|\allowbreak|T-i| \arb[fullvoc]{fI
  1530. % 'l-madInaT-i} \arb[trans]{fI 'l-madInaT-i}, |wa-'l-rajul-u|
  1531. % \arb[fullvoc]{wa-'l-rajul-u} \arb[trans]{wa-'l-rajul-u},
  1532. % |bi-'l-|\allowbreak|qalam-i| \arb[fullvoc]{bi-'l-qalam-i}
  1533. % \arb[trans]{bi-'l-qalam-i}, |bi-'l-ru`b-i|
  1534. % \arb[fullvoc]{bi-'l-ru`b-i} \arb[trans]{bi-'l-ru`b-i}.
  1535. % \end{enumerate}
  1536. %
  1537. % \textbf{Perfect active, imperative, nomen actionis}: |qAla|
  1538. % |isma`| \arb[fullvoc]{qAla isma`} \arb[trans]{qAla isma`}, |qAla|
  1539. % |uqtul| \arb[fullvoc]{qAla uqtul} \arb[trans]{qAla uqtul}, |huwa|
  1540. % |inhazama| \arb[fullvoc]{huwa inhazama} \arb[trans]{huwa
  1541. % inhazama}, |wa-ustu`mila| \arb[fullvoc]{wa-ustu`mila}
  1542. % \arb[trans]{wa-ustu`mila}, |qad-i| |in.sarafa| \arb[fullvoc]{qadi
  1543. % in.sarafa} \arb[trans]{qadi in.sarafa}, |al-iqtidAr-u|
  1544. % \arb[fullvoc]{al-iqtidAr-u} \arb[trans]{al-iqtidAr-u}, |'il_A|
  1545. % |'l-inti|\allowbreak|qA.d-i| \arb[fullvoc]{'il_A 'l-intiqA.d-i}
  1546. % \arb[trans]{'il_A 'l-intiqA.d-i}, |law| |istaqbala|
  1547. % \arb[fullvoc]{law istaqbala} \arb[trans]{law istaqbala}.
  1548. %
  1549. % \textbf{Other cases}: |'awi| |ismu-hu| \arb[fullvoc]{'awi ismu-hu}
  1550. % \arb[trans]{'awi ismu-hu}, |zayduN| |ibn-u| |`amriNU|
  1551. % \arb[fullvoc]{\uc{z}ayduN ibn-u \uc{`amriNU}}
  1552. % \arb[trans]{\uc{z}ayduN ibn-u
  1553. % \uc{`amriNU}},\footnote{\label{fn:zayd-is-son}%
  1554. % \enquote{\arb[trans]{\uc{z}ayd} is the son of
  1555. % \arb[trans]{\uc{`a}mr}}: the second noun is not in apposition to
  1556. % the first, but forms part of the predicate. Hence \arb[voc]{zayduN
  1557. % ibn-u `amriNU} and not \arb[voc]{zayd-u bn-u `amriNU},
  1558. % \enquote{Zayd, son of ʿAmr}.} |`umar-u| |ibn-u| |'l-_ha.t.tAb-i|
  1559. % \arb[fullvoc]{\uc{`umar}-u ibn-u \uc{'l-_ha.t.tAb-i}}
  1560. % \arb[trans]{\uc{`umar}-u ibn-u
  1561. % \uc{'l-_ha.t.tAb-i}},\footnote{\enquote{\arb[trans]{\uc{`umar}}
  1562. % is the son of \arb[trans]{\uc{al-_ha.t.tAb}}} (see
  1563. % \vref{fn:zayd-is-son}).} |imru'-u| |'l-qays-i|
  1564. % \arb[fullvoc]{imru'-u 'l-qays-i} \arb[trans]{\uc{i}mru'-u
  1565. % \uc{'l-qays-i}}, |la-aymun-u| |'l-l_ah-i|
  1566. % \arb[fullvoc]{la-aymun-u 'l-l_ah-i} \arb[trans]{la-aymun-u
  1567. % 'l-l_ah-i}.
  1568. % \end{quote}
  1569. %
  1570. % \subparagraph{\arb[trans]{'alif-u 'l-wa.sl-i} preceded by a long
  1571. % vowel} The long vowel preceding the connective \arb[trans]{'alif} is
  1572. % shortened in pronunciation \parencite[i. 21 B--D]{Wright}. This does
  1573. % not appear in the Arabic script, but \package{arabluatex} takes it
  1574. % into account in some transliteration standards:---
  1575. % \begin{quote}
  1576. % |fI| |'l-nAs-i| \arb[fullvoc]{fI 'l-nAs-i} \arb[trans]{fI
  1577. % 'l-nAs-i}, |'abU| |'l-wazIr-i| \arb[fullvoc]{'abU 'l-wazIr-i}
  1578. % \arb[trans]{'abU 'l-wazIr-i}, |fI| |'l-ibtidA'-i| \arb[fullvoc]{fI
  1579. % 'l-ibtidA'-i} \arb[trans]{fI 'l-ibtidA'-i}, |_dU 'l-i`lAl-i|
  1580. % \arb[fullvoc]{_dU 'l-i`lAl-i} \arb[trans]{_dU 'l-i`lAl-i},
  1581. % |maqh_A| |'l-'amIr-i| \arb[voc]{maqh_A 'l-'amIr-i}
  1582. % \arb[trans]{maqh_A 'l-'amIr-i}.
  1583. % \end{quote}
  1584. %
  1585. % \subparagraph{\arb[trans]{'alif-u 'l-wa.sl-i} preceded by a diphthong}
  1586. % \label{sec:diphthong-alif}
  1587. % The diphthong is resolved into two simple vowels \parencite[i. 21
  1588. % D--22 A]{Wright} viz. \emph{ay}~→ \emph{\u{a}\u{i}} and \emph{aw}~→
  1589. % \emph{\u{a}\u{u}}. \package{arabluatex} detects the cases in which
  1590. % this rule applies:---
  1591. % \begin{quote}
  1592. % |fI| |`aynay| |'l-malik-i| \arb[fullvoc]{fI `aynay 'l-malik-i}
  1593. % \arb[trans]{fI `aynay 'l-malik-i}, |ix^say|
  1594. % |'l-qaw|\allowbreak|m-a| \arb[fullvoc]{ix^say 'l-qawm-a}
  1595. % \arb[trans]{ix^say 'l-qawm-a}, |mu.s.tafaw| |'l-l_ah-i|
  1596. % \arb[fullvoc]{mu.s.tafaw 'l-l_ah-i} \arb[trans]{mu.s.ta\-faw
  1597. % 'l-l_ah-i}.
  1598. %
  1599. % |ramaW| |'l-.hijAraT-a| \arb[fullvoc]{ramaW 'l-.hijAraT-a}
  1600. % \arb[trans]{ramaW 'l-.hijAraT-a}, |fa-lammA| |ra'aW |\allowbreak{}
  1601. % |'l-najm-a| \arb[fullvoc]{fa-lammA ra'aW 'l-najm-a}
  1602. % \arb[trans]{fa-lammA ra'aW 'l-najm-a}.
  1603. % \end{quote}
  1604. %
  1605. % \subparagraph{\arb[trans]{'alif-u 'l-wa.sl-i} preceded by a consonant
  1606. % with \arb[trans]{sukUn}} The vowel which the consonant takes is
  1607. % either its original vowel, or that which belongs to the connective
  1608. % \arb[trans]{'alif} or the \arb[trans]{kasraT}; in most of the
  1609. % cases \parencite[i. 22 A--C]{Wright}, it is encoded explicitly, like
  1610. % so:---
  1611. % \begin{quote}
  1612. % |'antumu| |'l-kA_dib-Una| \arb[fullvoc]{'antumu 'l-kA_dib-Una}
  1613. % \arb[trans]{'antumu 'l-kA_dib-Una}, |ra'aytumu| |'l-rajul-a|
  1614. % \arb[fullvoc]{ra'aytumu 'l-rajul-a} \arb[trans]{ra'aytumu
  1615. % 'l-rajul-a}, |mani| |'l-ka_d_dAb-u| \arb[fullvoc]{mani
  1616. % 'l-ka_d_dAb-u} \arb[trans]{mani 'l-ka_d_dAb-u}, |qatalati|
  1617. % |'l-rUm-u| \arb[fullvoc]{qatalati 'l-rUm-u} \arb[trans]{qatalati
  1618. % \uc{'l-rUm-u}}.
  1619. % \end{quote}
  1620. % \label{ref:muhammaduni}
  1621. % However, the Arabic script does not show the \arb[trans]{kasraT} or
  1622. % the \arb[trans]{.dammaT} which may be taken by the nouns having
  1623. % \arb[trans]{tanwIn} although it is explicit in pronunciation and
  1624. % must appear in some transliteration standards. \package{arabluatex}
  1625. % takes care of that automatically:---
  1626. % \begin{quote}
  1627. % |mu.hammaduN| |'l-nabI| \arb[fullvoc]{mu.hammaduN 'l-nabI}
  1628. % \arb[trans]{\uc{m}u.hammaduN 'l-nabI}, |salAmuN| |ud_hulUA|
  1629. % \arb[fullvoc]{salAmuN ud_hulUA} \arb[trans]{salAmuN ud_hulUA},
  1630. % |qa.sIdata-hu| |fI| |qatl-i| |\uc{'a}bI|
  1631. % |\uc{m}|\allowbreak|uslimiN| |'llatI| |yaqUlu| |fI-hA|
  1632. % \arb[fullvoc]{qa.sIdata-hu fI qatl-i \uc{'a}bI \uc{m}uslimiN
  1633. % 'llatI yaqUlu fI-hA} \arb[trans]{qa.sIdata-hu fI qatl-i \uc{'a}bI
  1634. % \uc{m}uslimiN 'llatI yaqUlu fI-hA}.
  1635. % \end{quote}
  1636. %
  1637. % \subsection{Special orthographies}
  1638. % \paragraph{The name of God}
  1639. % The name of God, \arb[voc]{al-l_ahu}, is compounded of the article
  1640. % \arb[fullvoc]{al-}, and \arb[fullvoc]{'ilAh-u} (noted
  1641. % \arb[fullvoc]{'il_ah-u} with the defective \arb[trans]{'alif}) so
  1642. % that it becomes \arb[fullvoc]{al-'ilAh-u}; then the
  1643. % \arb[trans]{hamzaT} is suppressed, its vowel being transferred to
  1644. % the \arb[novoc]{l} before it, so that there remains
  1645. % \arb[voc]{alil_ah-u} \parencite[I refer to][I. 83
  1646. % col. 1]{Lane}. Finally, the first \arb[novoc]{l} is made quiescent
  1647. % and incorporated into the other, hence the \arb[trans]{ta^sdId}
  1648. % above it. As \package{arabluatex} never requires a solar letter to
  1649. % be written twice (see above, \vpageref{ref:euphonic-tashdid}), the
  1650. % name of God is therefore encoded |al-l_ah-u| or |'l-l_ah-u|:---
  1651. % \begin{quote}
  1652. % |al-l_ah-u| \arb[fullvoc]{al-l_ah-u} \arb[trans]{al-l_ah-u},
  1653. % \verb+yA|+\footnote{\label{fn:pipe-allah-01}Note the
  1654. % \enquote{pipe} character \enquote*{\textbar} here after |yA| and
  1655. % below after |fa| before footnote mark \ref{fn:pipe-allah-02}: it
  1656. % is needed by the |dmg| transliteration mode as in this mode any
  1657. % vowel at the commencement of a word preceded by a word that ends
  1658. % with a vowel, either short or long, is absorbed by this vowel
  1659. % viz. \arb[trans]{`al_A 'l-.tarIq-i}. See \vref{sec:pipe} on the
  1660. % \enquote{pipe} and \vref{sec:transliteration} on |dmg| mode.}
  1661. % |al-l_ah-u| \arb[fullvoc]{yA| al-l_ah-u} \arb[trans]{yA|
  1662. % al-l_ah-u}, \verb+'a-fa|+\footnote{\label{fn:pipe-allah-02}See
  1663. % \cref{fn:pipe-allah-01}.}|-al-|\allowbreak|l_ah-i|
  1664. % |la-ta.g`alanna| \arb[fullvoc]{'a-fa|-al-l_ah-i la-ta.g`alanna}
  1665. % \arb[trans]{'a-fa|-al-l_ah-i la-ta.g`alanna},
  1666. % |bi-'l-|\allowbreak|l_ah-i| \arb[fullvoc]{bi-'l-l_ah-i}
  1667. % \arb[trans]{bi-'l-l_ah-i}, |wa-'l-l_ah-i|
  1668. % \arb[fullvoc]{wa-'l-l_ah-i} \arb[trans]{wa-'l-l_ah-i}, |bi-sm-i|
  1669. % |'l-l_ah-i| \arb[fullvoc]{bi-sm-i 'l-l_ah-i} \arb[trans]{bi-sm-i
  1670. % 'l-l_ah-i}, |al-.hamd-u| |li-l-l_ah-i| \arb[fullvoc]{al-.hamd-u
  1671. % li-l-l_ah-i} \arb[trans]{al-.hamd-u li-l-l_ah-i}, |li-l-l_ah-i|
  1672. % |'l-qA'il-u| \arb[fullvoc]{li-l-l_ah-i 'l-qA'il-u}
  1673. % \arb[trans]{li-l-l_ah-i 'l-qA'il-u}.
  1674. % \end{quote}
  1675. %
  1676. % \paragraph{\texorpdfstring{The conjunctive \arb[voc]{alla_dI}}{The
  1677. % conjunctive اَلَّذِي}}
  1678. % Although it is compounded of the article \arb[fullvoc]{al}, the
  1679. % demonstrative letter \arb[novoc]{l} and the demonstrative pronoun
  1680. % \arb[voc]{_dA}, both masculine and feminine forms that are written
  1681. % defectively are encoded |alla_dI| and |allatI| respectively. Forms
  1682. % starting with the connective \arb[trans]{'alif} are encoded
  1683. % |'lla_dI| and |'llatI|:---
  1684. % \begin{quote}
  1685. % |'a_hAfu| |mina| |'l-malik-i| |'lla_dI| |ya.zlimu| |'l-nAs-a|
  1686. % \arb[fullvoc]{'a_hAfu mina 'l-malik-i 'lla_dI ya.zlimu 'l-nAs-a}
  1687. % \arb[trans]{'a_hAfu mina 'l-malik-i 'lla_dI ya.zlimu 'l-nAs-a},
  1688. % |`udtu| |'l-^say_h-a| |'lla_dI| |huwa| |marI.duN|
  1689. % \arb[fullvoc]{`udtu 'l-^say_h-a 'lla_dI huwa marI.duN}
  1690. % \arb[trans]{`udtu 'l-^say_h-a 'lla_dI huwa marI.duN}, |mA| |'anA|
  1691. % |bi-'lla_dI| |qA'iluN| |la-ka| |^say'aN| \arb[fullvoc]{mA 'anA
  1692. % bi-'lla_dI qA'iluN la-ka ^say'aN} \arb[trans]{mA 'anA bi-'lla_dI
  1693. % qA'iluN la-ka ^say'aN}.
  1694. %
  1695. % |'ari-nA| |'lla_dayni| |'a.dallA-nA| |mina| |'l-jinn-i|
  1696. % |wa-'l-'ins-i| \arb[fullvoc]{'ari-nA 'lla_dayni 'a.dallA-nA mina
  1697. % 'l-jinn-i wa-'l-'ins-i} \arb[trans]{'ari-nA 'lla_dayni 'a.dallA-nA
  1698. % mina 'l-jinn-i wa-'l-'ins-i}.
  1699. % \end{quote}
  1700. % The other forms are encoded regularly as |al-l| or |'l-l|:---
  1701. % \begin{quote}
  1702. % |fa-'innA| |na_dkuru| |'l-.sawt-ayni| |'l-la_dayni| |rawaynA-humA|
  1703. % |`an| |ja.h.zaT-a| \arb[fullvoc]{fa-'innA na_dkuru 'l-.sawt-ayni
  1704. % 'l-la_dayni rawaynA-humA `an \uc{ja.h.zaT-a}}
  1705. % \arb[trans]{fa-'innA na_dkuru 'l-.sawt-ayni 'l-la_dayni
  1706. % rawaynA-humA `an \uc{ja.h.zaT-a}}.
  1707. %
  1708. % And also: |al-la_dAni| \arb[fullvoc]{al-la_dAni}
  1709. % \arb[trans]{al-la_dAni}, |al-la_dayni| \arb[fullvoc]{al-la_dayni}
  1710. % \arb[trans]{al-la_dayni}, |al-latAni| \arb[fullvoc]{al-latAni}
  1711. % \arb[trans]{al-latAni}, |al-latayni| \arb[fullvoc]{al-latayni}
  1712. % \arb[trans]{al-latayni}, |al-lAtI| \arb[fullvoc]{al-lAtI}
  1713. % \arb[trans]{al-lAtI},
  1714. % \verb+al-lA'|Ati+\footnote{\label{fn:pipe-madda}Note here the
  1715. % \enquote{pipe} character \enquote*{\textbar}: as already stated
  1716. % \vpageref{ref:madda}, the sequence |'A| usually encodes
  1717. % \arb[trans]{'alif} with \arb[trans]{hamzaT} followed by
  1718. % \arb[trans]{'alif} of prolongation, which is represented in writing
  1719. % \arb[trans]{'alif} with \arb[trans]{maddaT}: \arb[voc]{A"'}. The
  1720. % \enquote{pipe} character prevents this rule from being
  1721. % applied. See \vref{sec:pipe}.} \arb[fullvoc]{al-lA'|Ati}
  1722. % \arb[trans]{al-lA'|Ati}, |al-lA'I| \arb[fullvoc]{al-lA'I}
  1723. % \arb[trans]{al-lA'I}, and so forth.
  1724. % \end{quote}
  1725. %
  1726. % \subsection{Quoting}
  1727. % \label{sec:quoting}
  1728. % It is here referred to \enquote{quoting} after the \package{arabtex}
  1729. % package.\footnote{See \textcite[22]{pkg:arabtex}} The
  1730. % \enquote{quoting} mechanism of \package{arabluatex} is designed to
  1731. % be very similar in effect to the one of \package{arabtex}.
  1732. %
  1733. % To start with an example, suppose one types the following in |novoc|
  1734. % mode: \arb[novoc]{`ullima `ilm-a 'l-hay'aT-i}; is it
  1735. % \arb[fullvoc]{`ullima}, \emph{he was taught the science of
  1736. % astronomy}, or \arb[fullvoc]{`allama}, \emph{he taught the science
  1737. % of astronomy}? In order to disambiguate this clause, it may be
  1738. % sensible to put a \arb[trans]{.dammaT} above the first \arb[voc]{`}:
  1739. % \arb[novoc]{`"ullima `ilm-a 'l-hay'aT-i}, which is achieved by
  1740. % \enquote{quoting} the vowel |u|, like so: |`"ullima|, or, with no
  1741. % other vowel than the required |u|: |`"ullm|.
  1742. %
  1743. % This is how the \enquote{quoting} mechanism works: metaphorically
  1744. % speaking, it acts as a \emph{toggle switch}. If something, in a
  1745. % given mode, is supposed to be visible, \enquote{quoting} hides it;
  1746. % conversely, if it is supposed not to, it makes it visible.
  1747. %
  1748. % As shown above, \enquote{quoting} means inserting one straight
  1749. % double quote (|"|) \emph{before} the letter that is to be acted
  1750. % upon. Its effects depend on the mode which is currently selected,
  1751. % either |novoc|, |voc| or |fullvoc|:---
  1752. %
  1753. % \paragraph{\texttt{novoc}} In this mode, \enquote{quoting}
  1754. % essentially means make visible something that ought not to be so.
  1755. % \begin{enumerate}
  1756. % \item Quoting a vowel, either short or long, makes the
  1757. % \arb[trans]{.dammaT}, \arb[trans]{fat.haT} or \arb[trans]{kasraT}
  1758. % appear above the appropriate consonant:---
  1759. % \begin{quote}
  1760. % |`"ullima| |`ilm-a| |'l-hay'aT-i| \arb[novoc]{`"ullima `ilm-a
  1761. % 'l-hay'aT-i} \arb[trans]{`"ullima `ilm-a 'l-hay'aT-i}, |ya.gz"UA|
  1762. % \arb[novoc]{ya.gz"UA} \arb[trans]{ya.gz"UA}.
  1763. % \end{quote}
  1764. % \item The same applies when \enquote{quoting} the
  1765. % \arb[trans]{tanwIn}:---
  1766. % \begin{quote}
  1767. % |wa-'innA| |sawfa| |tudriku-nA| |'l-manAyA| |muqadd"araT"aN|
  1768. % \arb[novoc]{wa-'innA sawfa tudriku-nA 'l-manAyA muqadd"araT"aN},
  1769. % \arb[trans]{wa-'innA sawfa tudriku-nA 'l-manAyA muqadd"araT"aN}.
  1770. % \end{quote}
  1771. % \item \label{ref:quoted-sukun-b}If no vowel follows the straight
  1772. % double quote, then a \arb[trans]{sukUn} is put above the preceding
  1773. % consonant:---
  1774. % \begin{quote}
  1775. % |qAla isma`"| \arb[novoc]{qAla isma`"} \arb[trans]{qAla isma`"},
  1776. % |jA'at"| |hinduN| \arb[voc]{jA'at" \uc{hinduN}}
  1777. % \arb[trans]{jA'at" \uc{hinduN}}, |^sabIhuN| |bi-man| |q"u.ti`at"|
  1778. % |qadamA-hu| \arb[novoc]{^sabIhuN bi-man q"u.ti`at" qadamA-hu}
  1779. % \arb[trans]{^sabIhuN bi-man q"u.ti`at" qadamA-hu}.
  1780. % \end{quote}
  1781. % \item At the commencement of a word, the straight double quote is
  1782. % interpreted as \arb[trans]{'alif-u 'l-wa.sl-i}:---
  1783. % \begin{quote}
  1784. % |wa-"ust"u`mila| \arb[novoc]{wa-"ust"u`mila}
  1785. % \arb[trans]{wa-"ust"u`mila}, |huwa| |"inhazama| \arb[novoc]{huwa
  1786. % "inhazama} \arb[trans]{huwa "inhazama}, |al-"intiqA.d-u|
  1787. % \arb[novoc]{al-"intiqA.d-u} \arb[trans]{al-"intiqA.d-u}.
  1788. % \end{quote}
  1789. % \end{enumerate}
  1790. %
  1791. % \paragraph{\texttt{voc}}
  1792. % In accordance with the general rule, in this mode, \enquote{quoting}
  1793. % makes the vowels and the \arb[trans]{tanwIn} disappear, should this
  1794. % feature be required for some reason:---
  1795. % \begin{enumerate}
  1796. % \item Short and long vowels:---
  1797. % \begin{quote}
  1798. % |q"Ala q"A'iluN| \arb[voc]{q"Ala q"A'iluN} \arb[trans]{q"Ala
  1799. % q"A'iluN}, |ibn-u 'abI 'u.saybi`aT-"a| \arb[voc]{ibn-u 'abI
  1800. % 'u.saybi`aT-"a} \arb[trans]{\uc{ibn-u} \uc{'abI}
  1801. % \uc{'u.saybi`aT-"a}}.
  1802. % \end{quote}
  1803. % \item \arb[trans]{tanwIn}:---
  1804. % \begin{quote}
  1805. % |madInaT"aN| \arb[voc]{madInaT"aN} \arb[trans]{madInaT"aN},
  1806. % |bAb"aN| \arb[voc]{bAb"aN} \arb[trans]{bAb"aN}, |hud"aN_A|
  1807. % \arb[voc]{hud"aN_A} \arb[trans]{hud"aN_A}, |^say'"iN|
  1808. % \arb[voc]{^say'"iN} \arb[trans]{^say'"iN}.
  1809. % \end{quote}
  1810. % \end{enumerate}
  1811. % One may more usefully \enquote{quote} the initial vowels to write
  1812. % the \arb[trans]{wa.slaT} above the \arb[trans]{'alif} or insert a
  1813. % straight double quote after a consonant not followed by a vowel to
  1814. % make the \arb[trans]{sukUn} appear:---
  1815. % \begin{enumerate}
  1816. % \item \arb[trans]{'alif-u 'l-wa.sl-i}:---
  1817. % \begin{quote}
  1818. % |fI "istiq.sA'-iN| \arb[voc]{fI "istiq.sA'-iN} \arb[trans]{fI
  1819. % "istiq.sA'-iN}, |wa-"istiq.sA'-uN| \arb[voc]{wa-"istiq.sA'-uN}
  1820. % \allowbreak\arb[trans]{wa-"istiq.sA'-uN}, |qAla| |"uhrub|
  1821. % |fa-lan| |tuqtala| \arb[voc]{qAla "uhrub fa-lan tuqtala}
  1822. % \arb[trans]{qAla "uhrub fa-lan tuqtala}.
  1823. % \end{quote}
  1824. % \item \arb[trans]{sukUn}:---
  1825. % \begin{quote}
  1826. % |qAla| |"uqtul"| |fa-lan| |tuqtala| \arb[voc]{qAla "uqtul"
  1827. % fa-lan tuqtala} \arb[trans]{qAla "uqtul" fa-lan tuqtala}, |mA|
  1828. % |jA'at"| |mini| |imra'aTiN| \arb[voc]{mA jA'at" mini imra'aTiN}
  1829. % \arb[trans]{mA jA'at" mini imra'aTiN}, |kam"| |qad"| |ma.dat"|
  1830. % |min"| |laylaTiN| \arb[voc]{kam" qad" ma.dat" min" laylaTiN}
  1831. % \arb[trans]{kam" qad" ma.dat" min"
  1832. % laylaTiN}.\label{ref:quoted-sukun-e}
  1833. % \end{quote}
  1834. % \end{enumerate}
  1835. %
  1836. % \paragraph{\texttt{fullvoc}}
  1837. % In this mode, \enquote{quoting} can be used to take away any short
  1838. % vowel (or \arb[trans]{tanwIn}, as seen above) or any
  1839. % \arb[trans]{sukUn}:---
  1840. % \begin{quote}\label{ref:qrannun-full}
  1841. % |al-jamr-u| |'l-.sayfiyy-u| |'lla_dI| |kAna|
  1842. % \verb+bi-q"rAn"|nUn-a+ \arb[fullvoc]{al-jamr-u 'l-.sayfiyy-u
  1843. % 'lla_dI kAna \uc{bi-q"rAn"|nUn-a}} \arb[trans]{al-jamr-u
  1844. % 'l-.sayfiyy-u 'lla_dI kAna \uc{bi-q"rAn"|nUn-a}}.
  1845. % \end{quote}
  1846. %
  1847. % \subsubsection{\texorpdfstring{Quoting the
  1848. % \arb[trans]{hamzaT}}{Quoting the hamzah}}
  1849. % \label{sec:quoting-hamza}
  1850. % As said above in \vref{ref:hamza}, the \arb[trans]{hamzaT} is always
  1851. % written \meta{\texttt{'}}, its carrier being determined by contextual
  1852. % analysis. \enquote{Quoting} that straight single quote character
  1853. % like so: \meta{\texttt{"'}} allows to determine the carrier of the
  1854. % \arb[trans]{hamzaT} freely, without any consideration for the
  1855. % context. \Cref{tab:quoted-hamza} gives the equivalents for all the
  1856. % possible carriers the \arb[trans]{hamzaT} may take.
  1857. %
  1858. % \begin{longtable}{lllll}
  1859. % \bottomrule
  1860. % \caption*{\Cref*{tab:quoted-hamza}: \enquote{Quoted}
  1861. % \arb[trans]{hamzaT}}
  1862. % \endfoot
  1863. % \captionlistentry{\enquote{Quoted} \arb[trans]{hamzaT}}\\[-1em]
  1864. % \toprule Letter & \multicolumn{3}{l}{Transliteration\footnotemark}
  1865. % & Arab\TeX\ notation \\
  1866. % & \texttt{dmg} & \texttt{loc} & \texttt{arabica} & \\ \midrule
  1867. % \endfirsthead
  1868. % \toprule Letter & \multicolumn{3}{l}{Transliteration}
  1869. % & Arab\TeX\ notation \\
  1870. % & \texttt{dmg} & \texttt{loc} & \texttt{arabica} & \\ \midrule
  1871. % \endhead
  1872. % \footnotetext{See below \vref{sec:transliteration}.}
  1873. % \label{tab:quoted-hamza}
  1874. % \arb[novoc]{|"'} & \dmg{|"'} & \loc{|"'} & \brill{|"'} & \verb+|"'+ \\
  1875. % \pagebreak[1]
  1876. % \arb[novoc]{A"'} & \dmg{A"'} & \loc{A"'} & \brill{A"'} & \verb|A"'| \\
  1877. % \arb[novoc]{a"'} & \dmg{a"'} & \loc{a"'} & \brill{a"'} & \verb|a"'| \\
  1878. % \arb[novoc]{u"'} & \dmg{u"'} & \loc{u"'} & \brill{u"'} & \verb|u"'| \\
  1879. % \arb[novoc]{w"'} & \dmg{w"'} & \loc{w"'} & \brill{w"'} & \verb|w"'| \\
  1880. % \arb[novoc]{i"'} & \dmg{i"'} & \loc{i"'} & \brill{i"'} & \verb|i"'| \\
  1881. % \arb[novoc]{y"'} & \dmg{y"'} & \loc{y"'} & \brill{y"'} & \verb|y"'| \\
  1882. % \end{longtable}
  1883. %
  1884. % As one can see from \vref{tab:quoted-hamza}, the carrier of the
  1885. % \arb[trans]{hamzaT} is inferred from the letter that precedes the
  1886. % straight double quote \meta{\texttt{"}}. Of course, any
  1887. % \enquote{quoted} \arb[trans]{hamzaT} may take a short vowel, which
  1888. % is to be written \emph{after} the Arab\TeX\ equivalent for the
  1889. % \arb[trans]{hamzaT} itself, namely \meta{\texttt{'}}. For example,
  1890. % \arb[voc]{w"'a} is encoded \meta{\texttt{w"'a}}, while
  1891. % \arb[voc]{w"'"} is encoded \meta{\texttt{w"'"}}. In the latter
  1892. % example, the second straight double quote encodes the
  1893. % \arb[trans]{sukUn} in |voc| mode in accordance with the rule laid
  1894. % above \vpagerefrange{ref:quoted-sukun-b}{ref:quoted-sukun-e}.
  1895. % \begin{quote}
  1896. % |'a`dA'ukum| \arb[fullvoc]{'a`dA'ukum} \arb[trans]{'a`dA'ukum},
  1897. % \verb+'a`dA|"'ukum+ \arb[fullvoc]{'a`daA"'|"'ukum}
  1898. % \arb[trans]{'a`dA|"'ukum}, |'a`dA'ikum| \arb[fullvoc]{'a`dA'ikum}
  1899. % \arb[trans]{'a`dA'ikum}, \verb+'a`dA|"'ikum+
  1900. % \arb[fullvoc]{'a`daA"'|"'ikum} \arb[trans]{'a`dA|"'ikum}.
  1901. % \end{quote}
  1902. %
  1903. % \subsection{The \enquote{pipe} character (\textbar)}
  1904. % \label{sec:pipe}
  1905. % In the terminology of Arab\TeX, the \enquote{pipe} character
  1906. % \enquote*{\textbar} is referred to as the \enquote{invisible
  1907. % consonant}. Hence, as already seen above in
  1908. % \vref{sec:quoting-hamza}, its usage to encode the
  1909. % \arb[trans]{hamzaT} alone, with no carrier: \verb+|"'+
  1910. % \arb[novoc]{|"'}.
  1911. %
  1912. % Aside from that usage, the \enquote{pipe} character is used to
  1913. % prevent almost any of the contextual analysis rules that are
  1914. % described above from being applied. Two examples have already been
  1915. % given to demonstrate how that particular mechanism works in
  1916. % \vref{fn:pipe-allah-01} and in \vref{fn:pipe-madda}. One more example
  1917. % follows:---
  1918. % \begin{quote}
  1919. % \verb+bi-qrAn|nUn-a+ \arb[voc]{\uc{bi-qrAn|nUn-a}}
  1920. % \arb[trans]{\uc{bi-qrAn|nUn-a}}, \enquote{in Crannon} (Thessaly,
  1921. % Greece).\footnote{See more context \vpageref{ref:qrannun-full}.}
  1922. % \end{quote}
  1923. % As one can see, the \enquote{pipe} character between the two
  1924. % \meta{n} prevents the necessary \arb[trans]{ta^sdId} rule
  1925. % (\cpageref{ref:necessary-tashdid}) from being applied.
  1926. %
  1927. % \subsection{Putting back on broken contextual analysis rules}
  1928. % \label{sec:arbnull}
  1929. % \NEWfeature{v1.7} In complex documents such as critical editions
  1930. % where footnotes and other kind of annotations can be particularly
  1931. % abundant, the contextual analysis rules that are described above may
  1932. % be broken by \LaTeX\ commands. To take an example, consider the
  1933. % following:---%
  1934. % \iffalse
  1935. %<*example>
  1936. % \fi
  1937. \begin{arabluacode}
  1938. This is wrong:
  1939. \begin{arab}[fullvoc]
  1940. fa-lammA ra'aW\LRfootnote{A footnote which interferes with the
  1941. contextual analysis.} 'l-na^gma...
  1942. \end{arab}
  1943. \end{arabluacode}
  1944. % \iffalse
  1945. %</example>
  1946. % \fi%
  1947. % According to the rule stated \vpageref{sec:diphthong-alif}, the
  1948. % diphthong in \arb[trans]{ra'aW} must be resolved into two simple
  1949. % vowels before the \arb[trans]{'alif-u 'l-wa.sl-i}, as
  1950. % \arb[fullvoc]{ra'aW 'l-na^gma}.
  1951. %
  1952. % \DescribeMacro{\arbnull} The \cs{arbnull} command is provided so as
  1953. % to put back on contextual analysis rules in such situations. It
  1954. % takes as argument the word that must be brought back for any given
  1955. % rule to be applied as it ought to. Depending on the contexts that
  1956. % have to be restored, \cs{arbnull} may be found just after or before
  1957. % Arabic words.%
  1958. % \iffalse
  1959. %<*example>
  1960. % \fi
  1961. \begin{arabluacode}[text only]
  1962. In any case, \emph{no space must be left} after or before the Arabic
  1963. word that \cs{arbnull} is applied to.
  1964. \end{arabluacode}
  1965. % \iffalse
  1966. %</example>
  1967. % \fi%
  1968. % The following shows how the Arabic should have been written in the
  1969. % preceding example and gives further illustrations of the same
  1970. % technique:---%
  1971. % \iffalse
  1972. %<*example>
  1973. % \fi
  1974. \begin{arabluacode}
  1975. \begin{arab}[fullvoc]
  1976. fa-lammA ra'aW\arbnull{'l-na^gma}\LRfootnote{A footnote which
  1977. interferes with the contextual analysis.} 'l-na^gma...
  1978. qAla\LRfootnote{A footnote which interferes with the contextual
  1979. analysis.} \arbnull{qAla}uhrub fa-lan tuqtala.
  1980. \uc{z}ayduN\arbnull{ibnu}\LRfootnote{A footnote which
  1981. interferes with the contextual analysis.}
  1982. \arbnull{zayduN}ibn-u \uc{`a}mriNU.\LRfootnote{See
  1983. \vref{fn:zayd-is-son}.}
  1984. \end{arab}
  1985. \begin{arab}[trans]
  1986. \uc{z}ayduN\arbnull{ibnu}\LRfootnote{A footnote which
  1987. interferes with the contextual analysis.}
  1988. \arbnull{zayduN}ibn-u \uc{`a}mriNU.\LRfootnote{See
  1989. \vref{fn:zayd-is-son}.}
  1990. \end{arab}
  1991. \end{arabluacode}
  1992. % \iffalse
  1993. %</example>
  1994. % \fi%
  1995. %
  1996. % \subsection{\texorpdfstring{Stretching characters: the
  1997. % \arb[trans]{ta.twIl}}{Stretching characters: the taṭwīl}}
  1998. % \label{sec:tatwil}
  1999. % A double hyphen \meta{-\,-} stretches the ligature in which one
  2000. % letter is bound to another. Although it is always better to rely on
  2001. % automatic stretching, this technique can be used to a modest extent,
  2002. % especially to increase legibility of letters and diacritics which
  2003. % stand one above the other:--
  2004. % \begin{quote}
  2005. % |.hunayn-u| |bn-u| |'is.h--_aq-a| \arb[voc]{.hunayn-u bn-u
  2006. % 'is.h--_aq-a} \arb[trans]{\uc{.hunayn-u} bn-u \uc{'is.h--_aq-a}}
  2007. % \end{quote}
  2008. %
  2009. % \subsection{Digits}
  2010. % \label{sec:digits}
  2011. % \subsubsection{Numerical figures}
  2012. % \label{sec:numerical-figures}
  2013. % The \emph{Indian numbers}, \arb[trans]{al-raqam-u 'l-hindiyy-u}, are
  2014. % ten in number, and they are compounded in exactly the same way as
  2015. % our numerals:---
  2016. % \begin{quote}
  2017. % |1874| \arb[voc]{1874}, |123-456,789| \arb[voc]{123-456,789}, |fI|
  2018. % |sanaT-i| |1024| \arb[voc]{fI sanaT-i 1024}
  2019. % \end{quote}
  2020. %
  2021. % \subsubsection{The \emph{abjad}}
  2022. % \label{sec:abjad}
  2023. % The numbers may also be expressed with letters from right to left
  2024. % arranged in accordance with the order of the Hebrew and Aramaic
  2025. % alphabets \parencite[see][i. 28 B--C]{Wright}. The
  2026. % \arb[trans]{'abjad} numbers are usually distinguished from the
  2027. % surrounding words by a stroke placed over them.
  2028. %
  2029. % \DescribeMacro{\abjad} \NEWfeature{v.1.1} \arb[trans]{'abjad}
  2030. % numbers are inserted with the \cs{abjad}\marg{number} command in any
  2031. % of the |voc|, |fullvoc| and |novoc| modes, where \meta{number} may
  2032. % be any number between 1 and 1999, like so:---
  2033. % \begin{quote}
  2034. % |\abjad{45}| |kitAbu-hu| |fI| |'l-`AdAt-i| \arb[voc]{\abjad{45}
  2035. % kitAbu-hu fI 'l-`AdAt-i} \arb[trans]{\abjad{45} kitAbu-hu fI
  2036. % 'l-`AdAt-i}.
  2037. % \end{quote}
  2038. % \begin{quoting}
  2039. % \textsc{Rem.}~\emph{a.} As can be seen in the above given example,
  2040. % \package{arabluatex} expresses the \arb[trans]{'abjad} numbers in
  2041. % Roman numerals if it finds the \cs{abjad} command in any of the
  2042. % transliteration modes.
  2043. %
  2044. % \textsc{Rem.}~\emph{b.} \cs{abjad} may also be found outside
  2045. % Arabic environments. In that case, \package{arabluatex} does not
  2046. % print the stroke as a distinctive mark over the number for it is
  2047. % not surrounded by other Arabic words. In case one nonetheless
  2048. % wishes to print the stroke, he can either use the \cs{aemph}
  2049. % command that is described below in \vref{sec:emphasis} or insert
  2050. % the \arb[trans]{'ab^gad} number in |\arb[novoc]{}|:---
  2051. % \begin{quote}
  2052. % |The| |\arb[trans]{'abjad}| |number| |for| |1874| |is|
  2053. % |\abjad{1874}| The \arb[trans]{'abjad} number for 1874 is
  2054. % \abjad{1874}.
  2055. %
  2056. % |The| |\arb[trans]{'abjad}| |number| |for| |1874| |is|
  2057. % |\aemph*{\abjad{1874}}| The \arb[trans]{'abjad} number for 1874
  2058. % is \aemph*{\abjad{1874}}.
  2059. %
  2060. % |The| |\arb[trans]{'abjad}| |number| |for| |1874| |is|
  2061. % |\arb[novoc]{\abjad{1874}}| The \arb[trans]{'abjad} number for
  2062. % 1874 is \arb[novoc]{\abjad{1874}}.
  2063. % \end{quote}
  2064. % \end{quoting}
  2065. %
  2066. % \NEWfeature{v1.12}\cs{abjad} may also be used to convert values of
  2067. % counters into \arb[trans]{'ab^gad} numbers, like so:--- %
  2068. % \changes{v1.12}{2018/06/24}{\cs{abjad} can now process \LaTeX\
  2069. % counters}%
  2070. % \iffalse
  2071. %<*example>
  2072. % \fi
  2073. \begin{arabluacode}
  2074. The \arb[trans]{'ab^gad} number for the current page (\thepage) is
  2075. \abjad{\thepage}.
  2076. \end{arabluacode}
  2077. % \iffalse
  2078. %</example>
  2079. % \fi%
  2080. %
  2081. % This technique can be used to produce abjad-numbered lists as will
  2082. % be demonstrated \vpageref{ref:abjad-list}.
  2083. %
  2084. % \subsection{Additional characters}
  2085. % \label{sec:additional-characters}
  2086. % In the manuscripts, the unpointed letters, \arb[trans]{al-.hurUfu
  2087. % 'l-muhmalaTu}, are sometimes further distinguished from the pointed
  2088. % by various contrivances, as explained in \textcite[i. 4
  2089. % B--C]{Wright}. One may find these letters written in a smaller size
  2090. % below the line, or with a dot or another mark below. As representing
  2091. % all the possible contrivances leads to much complexity and also
  2092. % needs to be agreed among scholars, new ways of encoding them will be
  2093. % proposed and gradually included as \package{arabluatex} will mature.
  2094. %
  2095. % For the time being, the following is included:---
  2096. % \begin{longtable}{lllll}
  2097. % \bottomrule
  2098. % \caption*{\Cref*{tab:additional-arabic-codings}: Additional Arabic
  2099. % codings}
  2100. % \endfoot
  2101. % \captionlistentry{Additional Arabic codings}\\[-1em]
  2102. % \toprule
  2103. % Letter & \multicolumn{3}{l}{Transliteration\footnotemark}
  2104. % & Arab\TeX\ notation \\
  2105. % & \texttt{dmg} & \texttt{loc} & \texttt{arabica} & \\ \midrule
  2106. % \endfirsthead
  2107. % \toprule
  2108. % Letter & \multicolumn{3}{l}{Transliteration}
  2109. % & Arab\TeX\ notation \\
  2110. % & \texttt{dmg} & \texttt{loc} & \texttt{arabica} \\ \midrule
  2111. % \endhead \footnotetext{See below \vref{sec:transliteration}.}
  2112. % \label{tab:additional-arabic-codings}
  2113. % \arb[novoc]{.b} & \dmg{.b} & \loc{.b} & \brill{.b} & |.b| \\
  2114. % \arb[novoc]{^d} & \dmg{^d} & \loc{^d} & \brill{^d} & |^d| \\
  2115. % \arb[novoc]{.f} & \dmg{.f} & \loc{.f} & \brill{.f} & |.f| \\
  2116. % \arb[novoc]{.q} & \dmg{.q} & \loc{.q} & \brill{.q} & |.q| \\
  2117. % \arb[novoc]{.k} & \dmg{.k} & \loc{.k} & \brill{.k} & |.k| \\
  2118. % \arb[novoc]{.n} & \dmg{.n} & \loc{.n} & \brill{.n} & |.n| \\
  2119. % \arb[novoc]{((} & \dmg{((} & \loc{((} & \brill{((} & |((| \\
  2120. % \pagebreak[1]
  2121. % \arb[novoc]{))} & \dmg{))} & \loc{))} & \brill{))} & |))| \\
  2122. % \end{longtable}
  2123. %
  2124. % \begin{quote}
  2125. % |'afAman.tUs| Gal.(M) |.fmn.n.ts| (sic) Gal.(E1),
  2126. % \arb[novoc]{'afAman.tUs} Gal.(M) \arb[novoc]{.fmn.n.ts} (sic)
  2127. % Gal.(E1), \arb[trans]{'afAman.tUs} Gal.(M) \arb[trans]{.fmn.n.ts}
  2128. % (sic) Gal.(E1).
  2129. % \end{quote}
  2130. %
  2131. % \subsection{Arabic emphasis}
  2132. % \label{sec:emphasis}
  2133. % As already seen in \vref{sec:abjad}, the \arb[trans]{'abjad} numbers
  2134. % are distinguished from the surrounding words by a stroke placed
  2135. % over them. This technique is used to distinguish further words that
  2136. % are proper names or book titles.
  2137. %
  2138. % \DescribeMacro{\aemph} One may use the \cs{aemph}\marg{Arabic
  2139. % text} command to use the same technique to emphasize words, like so:---
  2140. % \begin{quote}
  2141. % |\abjad{45}:| |kitAbu-hu| |\aemph{fI| |'l-`AdAt-i}|
  2142. % \arb[voc]{\abjad{45}: kitAbu-hu \aemph{fI 'l-`AdAt-i}}
  2143. % \arb[trans]{\abjad{45}: kitAbu-hu \aemph{fI 'l-\uc{`AdAt-i}}}.
  2144. % \end{quote}
  2145. %
  2146. % \begin{quoting}
  2147. % \textsc{Rem.}~\emph{a.} As the above example shows,
  2148. % \package{arabluatex} places the horizontal stroke \emph{under} the
  2149. % emphasized words in any of the transliteration modes.
  2150. %
  2151. % \textsc{Rem.}~\emph{b.} \NEWfeature{v1.9.2}\DescribeMacro{\aemph*}
  2152. % \cs{aemph*} is also provided should one wish to always have the
  2153. % horizontal stroke printed over the emphasized words, like so:
  2154. % |\abjad{45}:| |kitAbu-hu| |\aemph*{fI| |'l-`AdAt-i}|
  2155. % \arb[voc]{\abjad{45}: kitAbu-hu \aemph*{fI 'l-`AdAt-i}}
  2156. % \arb[trans]{\abjad{45}: kitAbu-hu \aemph*{fI 'l-\uc{`AdAt-i}}}.
  2157. % \end{quoting}
  2158. %
  2159. % \section{Arabic poetry}
  2160. % \label{sec:poetry}
  2161. % \NEWfeature{v1.6} \package{arabluatex} provides a special
  2162. % environment for typesetting Arabic poetry. Every line in this
  2163. % environment must end with |\\|.
  2164. %
  2165. % \DescribeEnv{arabverse} The |arabverse| environment may take up to
  2166. % six optional \enquote*{named arguments} each of which is set using
  2167. % the syntax \meta{key}$=$\meta{value}, like so:---%
  2168. % \iffalse
  2169. %<*example>
  2170. % \fi
  2171. \begin{arabluaverbatim}
  2172. \begin{arabverse}[key1=value1, key2=value2, ...]
  2173. <verses>
  2174. \end{arabverse}
  2175. \end{arabluaverbatim}
  2176. % \iffalse
  2177. %</example>
  2178. % \fi
  2179. %
  2180. % The description of the optional arguments follows:---
  2181. %
  2182. % \DescribeOption{mode} |mode|$=$\meta{mode}, either |voc|, |fullvoc|,
  2183. % |novoc| or |trans|. The default mode is the one that is set at load
  2184. % time as already seen \vref{sec:options}.
  2185. %
  2186. % \DescribeOption{width} |width|$=$\meta{length}
  2187. % \hfill\arabluaverb{Default: 0.3\linewidth}\\ The default width of
  2188. % each hemistich that the verse consists of. It may be expressed in
  2189. % any accepted unit of measurement, such as |4cm| or |2in|. However,
  2190. % one must keep in mind that the total length of the two hemistichs
  2191. % added to the one of the gutter that separates them must not exceed
  2192. % the length of the base line, unless one wishes to have the
  2193. % hemistichs distributed on subsequent lines.
  2194. %
  2195. % \DescribeOption{gutter} |gutter|$=$\meta{width}
  2196. % \hfill\arabluaverb{Default: 0.15 x (hemistich width)}\\ The gutter
  2197. % consists of the blank space that is between the two hemistichs. By
  2198. % default, it is commensurate with the width of the hemistich, but it
  2199. % may be expressed in any accepted unit of measurement as well.
  2200. %
  2201. % \DescribeOption{metre} |metre|$=$\meta{name}
  2202. % \hfill\arabluaverb{Default: none}\\ If the name of the metre is
  2203. % expressed, it is printed after the lines and set flush left in
  2204. % |voc|, |fullvoc| and |novoc| modes or flush right in |trans| mode.
  2205. %
  2206. % \DescribeOption{delim} |delim|$=$|true|\verb+|+|false|
  2207. % \hfill\arabluaverb{Default: false}\\ This named argument does not
  2208. % need a value as it defaults to |true| if it is used. If so, a
  2209. % delimiter is printed between each of the hemistichs. By default, it
  2210. % is set to the \enquote*{star} character \enquote*{*}. The
  2211. % \DescribeMacro{\SetHemistichDelim}\cs{SetHemistichDelim}\marg{delimiter}
  2212. % command may be used at any point of the document to change this
  2213. % default setting.
  2214. %
  2215. % \DescribeOption{utf} |utf|$=$|true|\verb+|+|false|
  2216. % \hfill\arabluaverb{Default: false}\\ As the preceding one, this
  2217. % named argument does not need a value as it defaults to |true| if it
  2218. % is used. If so, Unicode Arabic input is expected in the |arabverse|
  2219. % environment instead of \textsc{ascii} Arab\TeX\ or Buckwalter input
  2220. % schemes. See \vref{sec:unicode-input} for more details.
  2221. %
  2222. % \DescribeOption{color} |color|$=$\meta{color name}
  2223. % \hfill\arabluaverb{Default: not set}\\
  2224. % \NEWfeature{v1.13} The color in which lines of poetry are to be
  2225. % rendered.
  2226. %
  2227. % \label{ref:poetry-export}
  2228. % \DescribeOption{export} |export|$=$|true|\verb+|+|false|
  2229. % \hfill\arabluaverb{Default: false}\\
  2230. % \NEWfeature{v.1.13} This named argument does not need a value as it
  2231. % defaults to |true| if it is used. If |export| is set as a global
  2232. % option as well (see above \vpageref{export-mode}), all the lines
  2233. % will be converted to Unicode and exported to the external selected
  2234. % file. See below \vref{sec:arabtex2utf} for more details.
  2235. %
  2236. % \DescribeMacro{\bayt} Inside the |arabverse| environment, each line
  2237. % is typeset by the \cs{bayt} command which takes two mandatory
  2238. % arguments and may accept one optional
  2239. % argument.\footnote{\label{ref:bayt-star}A \enquote*{starred} version
  2240. % \cs{bayt*} is also defined. \package{arabluatex} uses it internally
  2241. % when \texttt{export} is set to \texttt{true} to instruct some Lua
  2242. % functions that lines of poetry have already been processed. That
  2243. % aside, \cs{bayt} and \cs{bayt*} do the same, and only \cs{bayt}
  2244. % should be used.} Additionally, every \cs{bayt} command \emph{must}
  2245. % be followed with |\\| like so:---%
  2246. % \iffalse
  2247. %<*example>
  2248. % \fi
  2249. \begin{arabluacode}[text only]
  2250. \cs{bayt}\marg{\arb[trans]{.sadr}}\oarg{\arb[trans]{tadwIr}}%
  2251. \marg{\arb[trans]{`ajuz}}|\\|
  2252. \end{arabluacode}
  2253. % \iffalse
  2254. %</example>
  2255. % \fi
  2256. %
  2257. % That two subsequent hemistichs should be connected with one another
  2258. % is technically named \arb[trans]{tadwIr}. Should that happen, either
  2259. % the \arb[trans]{.sadr} or the \arb[trans]{`ajuz} or both of them,
  2260. % may be connected to one another by letters that are naturally bound
  2261. % to the following or the preceding ones over the
  2262. % \arb[trans]{tadwIr}. The optional argument of the \cs{bayt} command
  2263. % is designed to deal with the various situations that may arise:---
  2264. % \begin{enumerate}
  2265. % \item If the two hemistichs be connected with one another by a
  2266. % prominent horizontal flexible stroke, the \arb[trans]{ta.twIl} should
  2267. % be used, like so: |[--]| (see \vref{sec:tatwil}). Of course, the
  2268. % ending word of the \arb[trans]{.sadr} and the word at the
  2269. % commencement of the \arb[trans]{`a^guz} must have the
  2270. % \arb[trans]{ta.twIl} too so that the proper shapes of the letters be
  2271. % selected. Consider for example the following:---
  2272. % \iffalse
  2273. %<*example>
  2274. % \fi
  2275. \begin{arabluacode}
  2276. \begin{arabverse}[mode=fullvoc, width=.3\linewidth]
  2277. \bayt{lA 'ar_A man `ahidtu fI-hA fa-'abkI 'l---}[--]{---yawma
  2278. dalhaN wa-mA yaruddu 'l-bukA'u}\\
  2279. \end{arabverse}
  2280. \end{arabluacode}
  2281. % \iffalse
  2282. %</example>
  2283. % \fi%
  2284. % As one can see, \emph{triple hyphens} have been used. In the
  2285. % \arb[trans]{.sadr}, the first hyphen triggers the rules that are
  2286. % related to the definite article and the \arb[trans]{'alif-u
  2287. % 'l-wa.sl-i},\footnote{See \vref{ref:definite-article}} while the
  2288. % following two select the figure of the letter \arb[trans]{lAm}
  2289. % connected with a following letter. In the \arb[trans]{`a^guz}, the
  2290. % last two hyphens select the letter \arb[trans]{yA'} connected with a
  2291. % preceding letter, while the first one is simply discarded in this
  2292. % mode, but still may appear as it should, if the |trans| mode be
  2293. % selected:---%
  2294. % \iffalse
  2295. %<*example>
  2296. % \fi
  2297. \begin{arabluacode}
  2298. \begin{arabverse}[mode=trans, width=.4\linewidth]
  2299. \bayt{lA 'ar_A man `ahidtu fI-hA fa-'abkI 'l---}[--]{---yawma
  2300. dalhaN wa-mA yaruddu 'l-bukA'u}\\
  2301. \end{arabverse}
  2302. \end{arabluacode}
  2303. % \iffalse
  2304. %</example>
  2305. % \fi%
  2306. % \item In some other cases, it may seem difficult, if not fairly
  2307. % impossible, to split a given word into two parts. This happens
  2308. % mostly because of the \arb[trans]{^saddaT}. Consider for example
  2309. % the following:---
  2310. % \iffalse
  2311. %<*example>
  2312. % \fi
  2313. \begin{arabluacode}
  2314. \begin{arabverse}[mode=fullvoc, width=.25\linewidth, gutter=1cm]
  2315. \bayt{.gayra 'annI qad 'asta`Inu `al_A 'l-ha--}[--mmi ]{'i_dA
  2316. _haffa bi-'l-_tawiyyi 'l-na^gA'u}\\
  2317. \bayt{bi-zaf--UfiN ka-'anna-hA hiq--laTuN}[ 'ummu ]{ri'AliN
  2318. dawwiyyaTuN saqfA'u}\\
  2319. \end{arabverse}
  2320. \end{arabluacode}
  2321. % \iffalse
  2322. %</example>
  2323. % \fi%
  2324. % In the first line, the word \arb{al-hammi} should be split into
  2325. % \arb{al-ham"-- --mi} as the first part of it belongs to the
  2326. % \arb[trans]{.sadr} and the second to the \arb[trans]{`a^guz}. One
  2327. % solution to avoid splitting this word in such a way is to write
  2328. % inside the \arb[trans]{tadwIr} the part of it that belongs to either
  2329. % hemistich, without omitting to add a space after it. In the second
  2330. % line, the word \arb{'ummu} should be split into \arb{'um"-- --mu},
  2331. % so that the only way to avoid splitting it into two parts is to
  2332. % write it all inside the \arb[trans]{tadwIr}. In that case, as the
  2333. % word is to be placed in the middle, it has been surrounded by
  2334. % spaces.
  2335. % \end{enumerate}
  2336. %
  2337. % \paragraph{Scaling and distortion of characters}
  2338. % The |arabverse| environment and the \cs{bayt} command are designed
  2339. % to typeset the verses in a two-column, fixed width layout. This may
  2340. % result in a somewhat distorted text. Should that happen, one may
  2341. % adapt the layout by modifying the values of the above described
  2342. % |width| and |gutter| named arguments until the visual aspect of the
  2343. % layout be satisfactory. It has to be noted that distortion and
  2344. % warping may be even more perceptible in Roman than in Arabic
  2345. % characters.
  2346. %
  2347. % \paragraph{Footnotes}
  2348. % Footnotes are not set by default inside the \cs{bayt} command, but
  2349. % there are two easy ways to have them printed.
  2350. %
  2351. % If they are little in number, each footnote may be split into pairs
  2352. % of \cs{footnote\allowbreak{}mark}|{}| (please mind the braces or
  2353. % \enquote{declare} |footnotemark| using \cs{MkArbBreak} to take it
  2354. % out of the Arabic environment\footnote{See
  2355. % \vref{sec:declare-new-commands}.}) in the argument of the \cs{bayt}
  2356. % command and \cs{footnotetext} outside the \cs{bayt} command.
  2357. %
  2358. % If the footnotes are abundant in number, it is advised to load the
  2359. % \package{footnotehyper} package which \package{arabluatex} will then
  2360. % use to typeset any kind of footnote that is called from the
  2361. % arguments of the \cs{bayt} command.\footnote{The \package{footnote}
  2362. % package can also be used for the same effect. However, it must be
  2363. % loaded \emph{after} \package{arabluatex}.}
  2364. %
  2365. % \paragraph{Line numbering}
  2366. % Inside the |arabverse| environment, the |linenumbers| environment of
  2367. % the \package{lineno} package can be used to have the lines of
  2368. % succeeding verses numbered. Please refer to the documentation of
  2369. % this package for more information or to the example below for a
  2370. % basic implementation of this technique.
  2371. %
  2372. % \subsection{Example}
  2373. % \label{sec:poetry-example}
  2374. % Here follow the first lines of \prname{imru'u 'l-qaysi}'s
  2375. % \arb[trans]{\uc{m}u`allaqaT}. In this example, \cs{SetArbDflt*} has
  2376. % been selected so as to mark the \arb[trans]{'id.gAm} that is fit to
  2377. % this declamatory poetry:---\footnote{Please note that for the time
  2378. % being only the assimilation rules that are laid on
  2379. % \vref{ref:assimilation} are applied. See
  2380. % \vref{sec:classic-modern-typesetting} for more information. None of
  2381. % the editions of the \arb[trans]{\uc{M}u`allaqAt} that I know of
  2382. % feature the \arb[trans]{'id.gAm} in the Arabic text, although it is
  2383. % often strongly marked in declamation.}%
  2384. % \iffalse
  2385. %<*example>
  2386. % \fi
  2387. \begin{arabluaverbatim}
  2388. \begin{arab}[fullvoc]
  2389. qAla imru'u 'l-\uc{q}aysi fI mu`allaqati-hi:
  2390. \end{arab}
  2391. \begin{arabverse}[mode=fullvoc, metre={(al-.darbu 'l-_tAnI mina
  2392. 'l-`arU.di 'l-'_Ul_A mina 'l-.tawIli)}]
  2393. \SetArbDflt*
  2394. \begin{linenumbers*}
  2395. \bayt{qifA nabki min _dikr_A .habIbiN wa-manzili}{bi-saq.ti
  2396. 'l-liw_A bayna \uc{'l-d}a_hUli fa-\uc{.h}awmali}\\
  2397. \bayt{fa-\uc{t}U.di.ha fa-'l-\uc{m}iqrATi lam ya`fu
  2398. rasmu-hA}{limA nasa^gat-hA min ^ganUbiN wa-^sam'ali}\\
  2399. \bayt{tar_A ba`ara 'l-'ar'Ami fI `ara.sAti-hA}{wa-qI`Ani-hA
  2400. ka-'anna-hu .habbu fulfuli}\\
  2401. \bayt{ka-'annI .gadATa 'l-bayni yawma ta.hammalUA}{lad_A
  2402. samurAti 'l-.hayyi nAqifu .han.zali}\\
  2403. \bayt{wuqUfaN bi-hA .sa.hbI `alayya ma.tiyya-hum}{yaqUlUna lA
  2404. tahlik 'asaN_A wa-ta^gammali}\\
  2405. \bayt{wa-'inna ^sifA'I `abraTuN muharAqaTuN}{fa-hal `inda rasmiN
  2406. dAsiriN min mu`awwali}\\
  2407. \end{linenumbers*}
  2408. \end{arabverse}
  2409. \end{arabluaverbatim}
  2410. % \iffalse
  2411. %</example>
  2412. % \fi%
  2413. % \begin{arab}[fullvoc]
  2414. % qAla imru'u 'l-\uc{q}aysi fI mu`allaqati-hi:
  2415. % \end{arab}
  2416. %
  2417. % \begin{arabverse}[mode=fullvoc, metre={(al-.darbu 'l-_tAnI mina
  2418. % 'l-`arU.di 'l-'_Ul_A mina 'l-.tawIli)}, width=.25\linewidth]
  2419. % \SetArbDflt*
  2420. % \begin{linenumbers*}
  2421. % \bayt{qifA nabki min _dikr_A .habIbiN wa-manzili}{bi-saq.ti
  2422. % 'l-liw_A bayna \uc{'l-d}a_hUli fa-\uc{.h}awmali}\\
  2423. % \bayt{fa-\uc{t}U.di.ha fa-'l-\uc{m}iqrATi lam ya`fu
  2424. % rasmu-hA}{limA nasa^gat-hA min ^ganUbiN wa-^sam'ali}\\
  2425. % \bayt{tar_A ba`ara 'l-'ar'Ami fI `ara.sAti-hA}{wa-qI`Ani-hA
  2426. % ka-'anna-hu .habbu fulfuli}\\
  2427. % \bayt{ka-'annI .gadATa 'l-bayni yawma ta.hammalUA}{lad_A
  2428. % samurAti
  2429. % 'l-.hayyi nAqifu .han.zali}\\
  2430. % \bayt{wuqUfaN bi-hA .sa.hbI `alayya ma.tiyya-hum}{yaqUlUna lA
  2431. % tahlik 'asaN_A wa-ta^gammali}\\
  2432. % \bayt{wa-'inna ^sifA'I `abraTuN muharAqaTuN}{fa-hal `inda rasmiN
  2433. % dAsiriN min mu`awwali}\\
  2434. % \end{linenumbers*}
  2435. % \end{arabverse}
  2436. %
  2437. % \medskip
  2438. %
  2439. % \begin{arab}[trans]
  2440. % qAla imru'u 'l-\uc{q}aysi fI mu`allaqati-hi:
  2441. % \end{arab}
  2442. %
  2443. % \begin{arabverse}[mode=trans, metre={(al-.darbu 'l-_tAnI mina
  2444. % 'l-`arU.di 'l-'_Ul_A mina 'l-.tawIli)}, width=.4\linewidth]
  2445. % \SetArbDflt*
  2446. % \begin{linenumbers*}
  2447. % \bayt{qifA nabki min _dikr_A .habIbiN wa-manzili}{bi-saq.ti
  2448. % 'l-liw_A bayna \uc{'l-d}a_hUli fa-\uc{.h}awmali}\\
  2449. % \bayt{fa-\uc{t}U.di.ha fa-'l-\uc{m}iqrATi lam ya`fu
  2450. % rasmu-hA}{limA nasa^gat-hA min ^ganUbiN wa-^sam'ali}\\
  2451. % \bayt{tar_A ba`ara 'l-'ar'Ami fI `ara.sAti-hA}{wa-qI`Ani-hA
  2452. % ka-'anna-hu .habbu fulfuli}\\
  2453. % \bayt{ka-'annI .gadATa 'l-bayni yawma ta.hammalUA}{lad_A
  2454. % samurAti
  2455. % 'l-.hayyi nAqifu .han.zali}\\
  2456. % \bayt{wuqUfaN bi-hA .sa.hbI `alayya ma.tiyya-hum}{yaqUlUna lA
  2457. % tahlik 'asaN_A wa-ta^gammali}\\
  2458. % \bayt{wa-'inna ^sifA'I `abraTuN muharAqaTuN}{fa-hal `inda rasmiN
  2459. % dAsiriN min mu`awwali}\\
  2460. % \end{linenumbers*}
  2461. % \end{arabverse}
  2462. %
  2463. % \section{Special applications}
  2464. % \label{sec:special-applications}
  2465. % \phantomsection
  2466. % \paragraph{Linguistics}
  2467. % The same horizontal stroke as the \arb[trans]{ta.twIl} (see
  2468. % \vref{sec:tatwil}) may be encoded \meta{B}; \meta{BB} will receive
  2469. % the \arb[trans]{ta^sdId}. This is useful to make linguistic
  2470. % annotations and comments on vowels:---
  2471. % \begin{quote}
  2472. % |Bu| |Ba| |Bi| |BuN| |BaN| |BiN| \arb[voc]{Bu Ba Bi BuN BaN BiN}
  2473. % \arb[trans]{Bu Ba Bi BuN BaN BiN}, |BBu| |BBa| |BBi| \arb[voc]{BBu
  2474. % BBa BBi} \arb[trans]{BBu BBa BBi}, |B--aN| \arb[voc]{B--aN}
  2475. % \arb[trans]{B--aN}, |B"| \arb[voc]{B"}\,.
  2476. % \end{quote}
  2477. %
  2478. % \paragraph{Brackets}
  2479. % \phantomsection
  2480. % \NEWfeature{v1.4.3} The various bracket symbols are useful in
  2481. % technical documents such as critical editions for indicating that
  2482. % some words or some letters must be added or
  2483. % removed. \package{arabluatex} will automatically fit those symbols
  2484. % to the direction of the text. For the time being, the following
  2485. % symbols are supported:
  2486. % \begin{itemize}
  2487. % \item parentheses: |()|
  2488. % \item square brackets: |[]|
  2489. % \item angle brackets: |<>|
  2490. % \item braces: |{}|
  2491. % \end{itemize}
  2492. %
  2493. % \DescribeMacro{\abraces} Parentheses, square and angle brackets may
  2494. % be input directly at the keyboard; however, words or letters that
  2495. % are to be read between braces must be passed as arguments to the
  2496. % \cs{abraces} command:---%
  2497. % \iffalse
  2498. %<*example>
  2499. % \fi
  2500. \begin{arabluacode}
  2501. \begin{arab}
  2502. \abraces{wa-qAla} 'inna 'abI kAna mina 'l-muqAtilaTi
  2503. wa-kAna--<--t> 'ummI min `u.zamA'i buyUti 'l-zamAzimaTi.
  2504. \end{arab}
  2505. \end{arabluacode}
  2506. % \iffalse
  2507. %</example>
  2508. % \fi
  2509. %
  2510. % \paragraph{Additional Arabic marks}
  2511. % \label{sec:arabic-marks}
  2512. % In addition to common letters, many symbols and ligatures are
  2513. % encoded in Arabic Unicode standard, such as honorifics consisting of
  2514. % complex ligatures, and annotation signs used in the
  2515. % \arb[trans]{\uc{qur'An}} or in classical poetry.
  2516. %
  2517. % \DescribeMacro{\arbmark}
  2518. % \NEWfeature{v1.11}\cs{arbmark}\oarg{rl\textbar{}lr}\marg{shorthand}
  2519. % can be used to insert such characters either in Unicode or in
  2520. % romanized Arabic environments. It takes as argument a shorthand
  2521. % defined beforehand in a default list which consists of the following
  2522. % at the time of writing:---\\
  2523. % \begin{longtable}{llp{.3\linewidth}p{.3\linewidth}}
  2524. % \bottomrule
  2525. % \caption*{\Cref*{tab:arabtex-additional-marks}: Additional Arabic
  2526. % marks}
  2527. % \endfoot
  2528. % \captionlistentry{Additional Arabic marks}\\[-1em]
  2529. % \toprule
  2530. % Codepoint & Shorthand & Glyph & Transliteration \\ \midrule
  2531. % \endfirsthead
  2532. % \toprule
  2533. % Codepoint & Shorthand & Glyph & Transliteration \\ \midrule
  2534. % \endhead\label{tab:arabtex-additional-marks}%
  2535. % |FDFD| & |bismillah| & \arb{\arbmark{bismillah}} &
  2536. % \arbmark{bismillah} \\
  2537. % |FDF5| & |salam| & \arb{\arbmark{salam}} & \arbmark{salam} \\
  2538. % |FDFA| & |slm| & \arb{\arbmark{slm}} & \arbmark{slm} \\
  2539. % |FDFB| & |jalla| & \arb{\arbmark{jalla}} & \arbmark{jalla} \\
  2540. % \end{longtable}
  2541. %
  2542. % \NEWfeature{v1.13}
  2543. % The mark to be inserted is determined by contextual analysis, or by
  2544. % an optional argument, either |rl| to have the Arabic glyph printed,
  2545. % or |lr| to print the tranliterated equivalent.
  2546. %
  2547. % \DescribeMacro{\newarbmark} \NEWfeature{v1.11} \cs{newarbmark} is
  2548. % also provided should one wish to define new marks in addition to the
  2549. % marks defined above. This command takes three arguments, like so:---
  2550. % \arabluabox{\cs{newarbmark}\marg{shorthand}\marg{RTL
  2551. % codepoint}\marg{LTR rendition}}
  2552. %
  2553. % As regards the right-to-left codepoint, it may be either typed in
  2554. % Unicode or selected as Unicode codepoint. To that end, the \LaTeX\
  2555. % command \arabluaverb{\symbol{"XYZT}} or its plain \TeX\ variant
  2556. % \arabluaverb{\char"XYZT\relax} may be used, where |XYZT| are
  2557. % uppercase hex digits (|0| to |9| or |A| to |F|).
  2558. %
  2559. % It is also possible to use the so-called `|^^^^| notation' like so:
  2560. % \arabluaverb{^^^^xyzt}, where |xyzt| are lowercase hex digits (|0|
  2561. % to |9| or |a| to |f|).
  2562. %
  2563. % As regards the third argument (left-to-right rendition), it may be
  2564. % either left empty or typed by means of
  2565. % \cs{arb}|[trans]|\marg{arabtex code} so as to have it printed in
  2566. % romanized Arabic.%
  2567. % \iffalse
  2568. %<*example>
  2569. % \fi
  2570. \begin{arabluacode}[text only]
  2571. It must be noted that \cs{newarbmark} expects Arab\TeX\ input scheme
  2572. inside \cs{arb}|[trans]{}| to the exclusion of \textsf{buckwalter}
  2573. input scheme.
  2574. \end{arabluacode}
  2575. % \iffalse
  2576. %</example>
  2577. % \fi%
  2578. %
  2579. % The example below provides an implementation of this technique. It
  2580. % may be observed that \cs{arbcolor} is used so as to have the marks
  2581. % printed in red:---%
  2582. % \iffalse
  2583. %<*example>
  2584. % \fi
  2585. \begin{arabluacode}
  2586. \SetArbDflt*
  2587. \newarbmark{sly}{\arbcolor[red]{^^^^06d6}}{}
  2588. \newarbmark{jim}{\arbcolor[red]{^^^^06da}}{}
  2589. \begin{arab}
  2590. sUraTu 'l-nisA'i, 19:
  2591. \end{arab}
  2592. \begin{center}
  2593. \begin{arab}
  2594. \arbmark{bismillah}
  2595. \end{arab}
  2596. \end{center}
  2597. \begin{arab}[fullvoc]
  2598. y_a'ayyuhA 'lla_dIna 'a'manUA lA ya.hillu la-kum 'an tari_tUA
  2599. 'l-nisA'a karhaN\arbmark{sly} wa-lA ta`.dulU-hunna li-ta_dhabUA
  2600. bi-ba`.di mA 'a'taytumU-hunna 'illA 'an ya'tIna bi-fA.hi^saTiN
  2601. mubayyinaTiN\arbmark{jim} wa-`A^sirU-hunna
  2602. bi-'l-ma`rUfi\arbmark{jim} fa-'in karihtumU-hunna fa-`as_A_a
  2603. 'an takrahUA ^say'aN wa-ya^g`ala 'l-l_ahu fI-hi _hayraN
  2604. ka_tIraN ((19))
  2605. \end{arab}
  2606. \end{arabluacode}
  2607. % \iffalse
  2608. %</example>
  2609. % \fi
  2610. %
  2611. % \subsection{\texorpdfstring{The \prname{qur'An}}{The Qurʾān}}
  2612. % \label{sec:the-quran}
  2613. % This sub-part is destined to become a part of its own, as fine
  2614. % typesetting of \prname{qur'An}ic text is planned in the versions of
  2615. % \package{arabluatex} to come in the medium-term. New functions and
  2616. % new Arabic modes will be available as \package{arabluatex} will
  2617. % mature.
  2618. %
  2619. % \DescribeMacro{\ayah}\NEWfeature{v1.15}For the time being,
  2620. % \cs{ayah}\marg{3-digit number} is provided so as to typeset the
  2621. % number of the \arb[trans]{'AyaT} that it is referred to inside the
  2622. % dedicated mark---Unicode |U+06DD|: \txarb{^^^^06dd}---in Arabic
  2623. % script or inside parentheses in romanized Arabic:---
  2624. % \begin{quote}
  2625. % |\ayah{123}| \arb{\ayah{123}} \arb[trans]{\ayah{123}}.
  2626. % \end{quote}
  2627. %
  2628. % An example follows:---
  2629. % \iffalse
  2630. %<*example>
  2631. % \fi
  2632. \begin{arabluacode}
  2633. \SetArbDflt*
  2634. \newarbmark{alifsp}{^^^^0627}{\arb[trans]{'alif} }
  2635. \newarbmark{lamsp}{^^^^0644^^^^0653}{\arb[trans]{lAm} }
  2636. \newarbmark{mim}{^^^^0645^^^^0653}{\arb[trans]{mIm}}
  2637. \begin{arab}[fullvoc]
  2638. min ((sUraTi \uc{'l-b}aqaraTi)):
  2639. \end{arab}
  2640. \begin{arab}[fullvoc]
  2641. \arbmark{alifsp}\arbmark{lamsp}\arbmark{mim}~\ayah{1}
  2642. _d_alika 'l-kit_abu lA rayba fI-hi hudaN_A
  2643. li-l-muttaqIna~\ayah{2} 'lla_dIna yu'minUna bi-'l-.gaybi
  2644. wa-yuqImUna 'l-.sal_aUTa wa-mimmA razaqn_a-hum
  2645. yunfiqUna~\ayah{3}
  2646. \end{arab}
  2647. \end{arabluacode}
  2648. \begin{arabluacode}[text only]
  2649. \SetArbDflt*
  2650. \begin{arab}[trans]
  2651. min ((sUraTi \uc{'l-b}aqaraTi)):
  2652. \end{arab}
  2653. \begin{arab}[trans]
  2654. \arbmark{alifsp}\arbmark{lamsp}\arbmark{mim}~\ayah{1}
  2655. _d_alika 'l-kit_abu lA rayba fI-hi hudaN_A
  2656. li-l-muttaqIna~\ayah{2} 'lla_dIna yu'minUna bi-'l-.gaybi
  2657. wa-yuqImUna 'l-.sal_aUTa wa-mimmA razaqn_a-hum
  2658. yunfiqUna~\ayah{3}
  2659. \end{arab}
  2660. \end{arabluacode}
  2661. % \iffalse
  2662. %</example>
  2663. % \fi
  2664. %
  2665. % \paragraph{Caveat}
  2666. % For some reason, most of the Arabic fonts do not show the number
  2667. % properly: some are only able to display at most two digits, while
  2668. % others display the digits outside the \enquote*{end of
  2669. % \arb[trans]{'AyaT}} sign, let alone those that print the digits
  2670. % stacked. To the knowledge of the writer, this should be reported to
  2671. % the developers of those fonts.
  2672. %
  2673. % \section{Color}
  2674. % \label{sec:color}
  2675. % \NEWfeature{v1.12}\package{arabluatex} is able to render in color
  2676. % either words, parts of words or diacritics. As the techniques
  2677. % implemented in this section may lead to some complexity, the reader
  2678. % should first become well acquainted with the following
  2679. % points:\footnote{Regarding the colors themselves and the way new
  2680. % colors can be defined in addition to those that are already
  2681. % available, please refer to the \package{xcolor} package.}---
  2682. % \begin{enumerate}
  2683. % \item The \enquote{pipe} character (\textbar, \vref{sec:pipe});
  2684. % \item \enquote*{Quoting} technique (\vref{sec:quoting}), and more
  2685. % specifically \enquote*{quoting the \arb[trans]{hamzaT}}
  2686. % (\vpageref{sec:quoting-hamza});
  2687. % \item Putting back on broken contextual analysis rules
  2688. % (\vref{sec:arbnull});
  2689. % \item Arabic marks (\vref{sec:arabic-marks}).
  2690. % \end{enumerate}
  2691. %
  2692. % \DescribeMacro{\arbcolor} \cs{arbcolor} takes the text to be colored
  2693. % into \meta{color} as an argument:---
  2694. % \arabluabox{\cs{arbcolor}\oarg{color}\marg{Arabic text}}
  2695. %
  2696. % \iffalse
  2697. %<*example>
  2698. % \fi
  2699. \begin{arabluacode}
  2700. \begin{arab}
  2701. \arbcolor[red]{al-bAbu 'l-_hAmisu} fI .tabaqAti 'l-'a.tibbA'i
  2702. 'lla_dIna kAnUA mun_du zamAni \uc{^gAlInUsa} wa-qarIbaN
  2703. min-hu. \arbcolor[red]{\uc{^gAlInUsu}}: wa-li-na.da` 'awwalaN
  2704. kalAmaN kulliyyaN fI 'a_hbAri \uc{^gAlInUsa} wa-mA kAna
  2705. `alay-hi...
  2706. \end{arab}
  2707. \begin{arab}[trans]
  2708. \arbcolor[red]{al-bAbu 'l-_hAmisu} fI .tabaqAti 'l-'a.tibbA'i
  2709. 'lla_dIna kAnUA mun_du zamAni \uc{^gAlInUsa} wa-qarIbaN
  2710. min-hu. \arbcolor[red]{\uc{^gAlInUsu}}: wa-li-na.da` 'awwalaN
  2711. kalAmaN kulliyyaN fI 'a_hbAri \uc{^gAlInUsa} wa-mA kAna
  2712. `alay-hi...
  2713. \end{arab}
  2714. \end{arabluacode}
  2715. % \iffalse
  2716. %</example>
  2717. % \fi
  2718. %
  2719. % As this example shows, \cs{arbcolor} has been used to render
  2720. % headings in red with the same encoding both in vocalized and in
  2721. % romanized Arabic. The same technique also applies to syllabes inside
  2722. % words. \package{arabluatex} takes care of selecting the appropriate
  2723. % shape of the letters while coloring them:---
  2724. % \begin{quote}\textbf{\enquote*{voc} mode}:\\
  2725. % |i^stara\arbcolor[brown]{y}tu-hu| |bi-_tama\arbcolor[red]{niN}|
  2726. % |'a`\arbcolor[blue]{^ga}ba-ka|
  2727. % \arb{i^stara\arbcolor[brown]{y}tu-hu bi-_tama\arbcolor[red]{niN}
  2728. % 'a`\arbcolor[blue]{^ga}ba-ka}
  2729. % \arb[trans]{i^stara\arbcolor[brown]{y}tu-hu
  2730. % bi-_tama\-\arbcolor[red]{niN} 'a`\arbcolor[blue]{^ga}ba-ka}.
  2731. % \end{quote}
  2732. % \begin{quote}\textbf{\enquote*{fullvoc} mode}:\\
  2733. % |i^stara\arbcolor[brown]{y}tu-hu| |bi-_tama\arbcolor[red]{niN}|
  2734. % |'a`\arbcolor[blue]{^ga}ba-ka|
  2735. % \arb[fullvoc]{i^stara\arbcolor[brown]{y}tu-hu
  2736. % bi-_tama\arbcolor[red]{niN} 'a`\arbcolor[blue]{^ga}ba-ka}
  2737. % \arb[trans]{i^stara\arbcolor[brown]{y}tu-hu
  2738. % bi-_tama\-\arbcolor[red]{niN} 'a`\arbcolor[blue]{^ga}ba-ka}.
  2739. % \end{quote}
  2740. %
  2741. % \subsection{Tricks of the trade}
  2742. % \label{sec:color-tricks}
  2743. % \paragraph{Diacritics}
  2744. % Depending on the mode selected, either |voc|, |novoc| or |fullvoc|,
  2745. % coloring the diacritics requires more attention for the insertion of
  2746. % \cs{arbcolor} may prevent contextual analysis from being applied.
  2747. %
  2748. % Furthermore, depending on the surrounding letters, the standard
  2749. % encoding of short vowels \meta{u, a, i} may result either in
  2750. % diacritics or in a connective \arb[trans]{'alif} with the
  2751. % \arb[trans]{wa.slaT} or its accompanying vowel. As for the
  2752. % \arb[trans]{sukUn}, it is generated by contextual analysis. Thus
  2753. % applying colors to bare diacritics requires them to have specific
  2754. % encodings.
  2755. %
  2756. % \Cref{tab:arbcolor-diacritics} gives the Arab\TeX\ equivalents for
  2757. % the diacritics to be printed inside or just after \cs{arbcolor}.
  2758. %
  2759. % \needspace{7\baselineskip}
  2760. % \begin{longtable}{lllll}
  2761. % \bottomrule
  2762. % \caption*{\Cref*{tab:arbcolor-diacritics}: Arab\TeX\ diacritics
  2763. % for \cs{arbcolor}}
  2764. % \endfoot
  2765. % \captionlistentry{Arab\TeX\ diacritics for \cs{arbcolor}}\\[-1em]
  2766. % \toprule
  2767. % Diacritic & \multicolumn{3}{l}{Transliteration\footnotemark}
  2768. % & Arab\TeX\ notation \\
  2769. % & \texttt{dmg} & \texttt{loc} & \texttt{arabica} & \\ \midrule
  2770. % \endfirsthead
  2771. % \toprule
  2772. % Diacritic & \multicolumn{3}{l}{Transliteration}
  2773. % & Arab\TeX\ notation \\
  2774. % & \texttt{dmg} & \texttt{loc} & \texttt{arabica} & \\ \midrule
  2775. % \endhead \footnotetext{See below \vref{sec:transliteration}.}
  2776. % \label{tab:arbcolor-diacritics}
  2777. % \arb{B.a} & \dmg{.a} & \loc{.a} & \brill{.a} & \verb|.a| \\
  2778. % \pagebreak[1]
  2779. % \arb{B.u} & \dmg{.u} & \loc{.u} & \brill{.u} & \verb|.u| \\
  2780. % \arb{B.i} & \dmg{.i} & \loc{.i} & \brill{.i} & \verb|.i| \\ \midrule
  2781. % \arb{Bo} & \dmg{o} & \loc{o} & \brill{o} & \verb|o| \\
  2782. % \end{longtable}
  2783. %
  2784. % The following examples show how the letters, or the diacritics above
  2785. % or under them or both the letters and the diacritics can be rendered
  2786. % in different colors:---
  2787. % \begin{quote}\textbf{\enquote*{voc} mode}:\\
  2788. % |i^staraytu-hu| |bi-_taman\arbcolor[red]{iN}|
  2789. % |'a`^g\arbcolor[red]|\allowbreak|{.a}ba-ka|
  2790. % \arb{i^staraytu-hu bi-_taman\arbcolor[red]{iN}
  2791. % 'a`^g\arbcolor[red]{.a}ba-ka}
  2792. % \arb[trans]{i^staraytu-hu bi-_taman\arbcolor[red]{iN}
  2793. % 'a`^g\arbcolor[red]{.a}ba-ka}.
  2794. %
  2795. % |i^staraytu-hu| |bi-_tama\arbcolor[red]{n}iN|
  2796. % |'a`\arbcolor[red]|\allowbreak|{^g}.aba-ka|
  2797. % \arb{i^staraytu-hu bi-_tama\arbcolor[red]{n}iN
  2798. % 'a`\arbcolor[red]{^g}.aba-ka}
  2799. % \arb[trans]{i^staraytu-hu bi-_tama\arbcolor[red]{n}iN
  2800. % 'a`\arbcolor[red]{^g}.aba-ka}.
  2801. %
  2802. % |i^staraytu-hu| |bi-_tama\arbcolor[red]{n}\arbcolor[blue]{iN}|
  2803. % \allowbreak
  2804. % |'a`\arbcolor[red]|\allowbreak|{^g}\arbcolor[blue]{.a}ba-ka|
  2805. % \arb{i^staraytu-hu bi-_tama\arbcolor[red]{n}\arbcolor[blue]{iN}
  2806. % 'a`\arbcolor[red]{^g}\arbcolor[blue]{.a}ba-ka} \linebreak
  2807. % \arb[trans]{i^staraytu-hu
  2808. % bi-_tama\arbcolor[red]{n}\arbcolor[blue]{iN}
  2809. % 'a`\arbcolor[red]{^g}\arbcolor[blue]{.a}ba-ka}.
  2810. % \end{quote}
  2811. %
  2812. % \begin{quote}\textbf{\enquote*{fullvoc} mode}:\\
  2813. % |i^staray"\arbcolor[red]{o}tu-hu| |bi-_taman"\arbcolor[red]{iN}|
  2814. % |'a`^g"\arbcolor[red]{.a}ba-ka|
  2815. % \arb[fullvoc]{i^staray"\arbcolor[red]{o}tu-hu
  2816. % bi-_taman"\arbcolor[red]{iN} 'a`^g"\arbcolor[red]{.a}ba-ka}
  2817. % \arb[trans]{i^staray"\arbcolor[red]{o}tu-hu
  2818. % bi-_taman"\arbcolor[red]{iN}
  2819. % \linebreak 'a`^g"\arbcolor[red]{.a}ba-ka}.
  2820. %
  2821. % |i^stara\arbcolor[red]{y"}otu-hu| |bi-_tama\arbcolor[red]{n"}iN|
  2822. % |'a`\arbcolor[red]|\allowbreak|{^g"}.aba-ka|
  2823. % \arb[fullvoc]{i^stara\arbcolor[red]{y"}otu-hu
  2824. % bi-_tama\arbcolor[red]{n"}iN 'a`\arbcolor[red]{^g"}.aba-ka}
  2825. % \arb[trans]{i^stara\arbcolor[red]{y"}otu-hu
  2826. % bi-_tama\arbcolor[red]{n"}iN 'a`\arbcolor[red]{^g"}.aba-ka}.
  2827. %
  2828. % |i^stara\arbcolor[red]{y"}\arbcolor[blue]{o}tu-hu|
  2829. % |bi-_tama\arb|\allowbreak|color[red]{n"}\arbcolor[blue]{iN}|
  2830. % |'a`\arbcolor[red]|\allowbreak|{^g"}\arb|\allowbreak%
  2831. % |color[blue]{.a}ba-ka|
  2832. % \arb[fullvoc]{i^stara\arbcolor[red]{y"}\arbcolor[blue]{o}tu-hu
  2833. % bi-_tama\arbcolor[red]{n"}\arbcolor[blue]{iN}
  2834. % 'a`\arbcolor[red]{^g"}\arbcolor[blue]{.a}ba-ka}
  2835. % \arb[trans]{i^stara\arbcolor[red]{y"}\arbcolor[blue]{o}tu-hu
  2836. % bi-_tama\arbcolor[red]{n"}\arbcolor[blue]{iN}
  2837. % 'a`\arbcolor[red]{^g"}\arbcolor[blue]{.a}ba-ka}.
  2838. % \end{quote}
  2839. %
  2840. % As can be seen, |fullvoc| required the letters |y|, |n| and |^g|
  2841. % before \cs{arbcolor} to be \enquote*{quoted}. Otherwise, unwanted
  2842. % \arb[trans]{sukUn}\txtrans{s} would have been generated because of
  2843. % the absence of a vowel after those consonants.
  2844. %
  2845. % \paragraph{\texorpdfstring{\arb[trans]{tanwIn}}{tanwīn}}
  2846. % \cs{arbnull} must be used with \arb[trans]{fat.haTAn} (\arb{BaN}) so
  2847. % as to put back on contextual analysis rules:---
  2848. % \begin{quote}
  2849. % |mu`allim\arbcolor[red]{\arbnull{m}aN}|
  2850. % \arb{mu`allim\arbcolor[red]{\arbnull{m}aN}}
  2851. % \arb[trans]{mu`allim\arbcolor[red]{\arbnull{m}aN}},\\
  2852. % |istisqA'\arbcolor[red]{\arbnull{A'}aN}|
  2853. % \arb{istisqA'\arbcolor[red]{\arbnull{A'}aN}}
  2854. % \arb[trans]{istisqA'\arbcolor[red]{\arbnull{A'}aN}},\\
  2855. % |^say'\arbcolor[red]{\arbnull{ay'}aN}|
  2856. % \arb{^say'\arbcolor[red]{\arbnull{ay'}aN}}
  2857. % \arb[trans]{^say'\arbcolor[red]{\arbnull{ay'}aN}},\\
  2858. % \verb+^gAmi`aT|\arbcolor[red]{\arbnull{T}aN}+
  2859. % \arb{^gAmi`aT|\arbcolor[red]{\arbnull{T}aN}}
  2860. % \arb[trans]{^gAmi`aT|\arbcolor[red]{\arbnull{T}aN}}.
  2861. % \end{quote}
  2862. % \begin{quoting}
  2863. % \textsc{Rem.} Note that in the last example
  2864. % (\arb[trans]{^gAmi`aT|\arbcolor[red]{\arbnull{T}aN}}), the
  2865. % \enquote*{pipe} character has been inserted before
  2866. % \cs{arbcolor}. Otherwise, the |dmg| mode of the transliteration
  2867. % rules would have interpreted the \arb[trans]{tA' marbU.taT} as
  2868. % \emph{final} (e.g. \txtrans{h} instead of the expected
  2869. % \txtrans{t}).\footnote{See also \vpageref{ref:ta-marbutah-pipe}
  2870. % \enquote{Discarding the \arb[trans]{'i`rAb}} for more
  2871. % information.}
  2872. % \end{quoting}
  2873. %
  2874. % The \arb[trans]{tanwIn} preceding a \arb[novoc]{_A} conveys even
  2875. % more intricate business to the rendering with the utmost accuracy in
  2876. % both romanized and non-romanized modes. First, a new Arabic mark
  2877. % needs to be defined. It should print \arb[novoc]{_A} in Arabic
  2878. % script and not a thing in transliteration. It is to be appended after
  2879. % \cs{arbcolor}, like so:---
  2880. % \iffalse
  2881. %<*example>
  2882. % \fi
  2883. \begin{arabluacode}
  2884. \newarbmark{Y}{^^^^0649}{}
  2885. \arb{hud\arbcolor[red]{aN\arbnull{_A}}\arbmark{Y}}
  2886. \arb[trans]{hud\arbcolor[red]{aN\arbnull{_A}}\arbmark{Y}}
  2887. \end{arabluacode}
  2888. % \iffalse
  2889. %</example>
  2890. % \fi%
  2891. %
  2892. % \paragraph{\texorpdfstring{\arb[trans]{wa.slaT} and
  2893. % \arb[trans]{maddaT}}{waṣlah and maddah}}
  2894. % Both can be generated with the help of \cs{arbnull}:---
  2895. % \begin{quote}
  2896. % |wa-\arbcolor[red]{\arbnull{wa}i}stisqA'uN|
  2897. % \arb[fullvoc]{wa-\arbcolor[red]{\arbnull{wa}i}stisqA'uN}
  2898. % \arb[trans]{wa-\arbcolor[red]{\arbnull{wa}i}stisqA'uN}\footnote{To
  2899. % the knowledge of the writer, the \arb[trans]{wa.slaT} alone is not
  2900. % part of the Arabic Unicode block.}.
  2901. %
  2902. % |fI| |"al".i-\arbcolor[red]{\arbnull{'l-}i}btidA'i|
  2903. % \arb[fullvoc]{fI "al".i-\arbcolor[red]{\arbnull{'l-}i}btidA'i}
  2904. % \linebreak
  2905. % \arb[trans]{fI "al".i-\arbcolor[red]{\arbnull{'l-}i}btidA'i}.
  2906. %
  2907. % |\arbcolor[red]{'a'\arbnull{k}}kulu|
  2908. % \arb{\arbcolor[red]{'a'\arbnull{k}}kulu}
  2909. % \arb[trans]{\arbcolor[red]{'a'\arbnull{k}}kulu},\\
  2910. % |\arbcolor[red]{'A\arbnull{k}}kiluN|
  2911. % \arb{\arbcolor[red]{'A\arbnull{k}}kiluN}
  2912. % \arb[trans]{\arbcolor[red]{'A\arbnull{k}}kiluN}.
  2913. % \end{quote}
  2914. %
  2915. % The Unicode codepoint of the \arb[trans]{maddaT} is 0653, while bare
  2916. % \arb[trans]{'alif} is 0627. So:--- %
  2917. % \iffalse
  2918. %<*example>
  2919. % \fi
  2920. \begin{arabluacode}
  2921. \newarbmark{alifmaddahred}{^^^^0627\arbcolor[red]{^^^^0653}}%
  2922. {\arb[trans]{\arbcolor[red]{'a'\arbnull{k}}}}
  2923. \arb{\arbmark{alifmaddahred}kulu}
  2924. \arb[trans]{\arbmark{alifmaddahred}kulu}.
  2925. \end{arabluacode}
  2926. % \iffalse
  2927. %</example>
  2928. % \fi%
  2929. %
  2930. % \begin{quoting}
  2931. % \textsc{Rem.} In the preceding example, any consonant could have
  2932. % been passed as argument to the \cs{arbnull} command.
  2933. % \end{quoting}
  2934. %
  2935. % \paragraph{\texorpdfstring{\arb[trans]{^sad\-daT}}{šaddah}}
  2936. % In the following example, it is assumed that the
  2937. % \arb[trans]{^saddaT} above the letter \arb[novoc]{l} in
  2938. % \arb[fullvoc]{al-mu`allimUna}, \arb[trans]{al-mu`allimUna}, is to be
  2939. % rendered in red. Thus the Arabic mark must generate the
  2940. % \arb[trans]{^saddaT} alone---of which the Unicode codepoint is
  2941. % 0651---in Arabic script and the letter \enquote*{l} in
  2942. % transliteration:--- %
  2943. %\iffalse
  2944. %<*example>
  2945. % \fi
  2946. \begin{arabluacode}
  2947. \newarbmark{lamshaddah}{^^^^0651}{l}
  2948. \arb[fullvoc]{al-mu`al"\arbcolor[red]{\arbmark{lamshaddah}}.imUna}
  2949. \arb[trans]{al-mu`al"\arbcolor[red]{\arbmark{lamshaddah}}.imUna}.
  2950. \end{arabluacode}
  2951. % \iffalse
  2952. %</example>
  2953. % \fi%
  2954. %
  2955. % \paragraph{\texorpdfstring{The definite article and the euphonic
  2956. % \arb[trans]{ta^sdId}}{The definite article and the euphonic tašdīd}}
  2957. % The intricate business of rendering in color the initial
  2958. % \arb[trans]{'alif al-wa.sl} of the definite article followed by a
  2959. % solar consonant must be unraveled.
  2960. %
  2961. % From the examples provided above, in |fI 'l-nAsi| \arb[fullvoc]{fI
  2962. % 'l-nAsi} \arb[trans]{fI 'l-nAsi}, the initial \arb[trans]{'alif-u
  2963. % 'l-wa.sl-i} can be rendered in red like so:
  2964. % |\arbcolor[red]{\arbnull{al-}a}|
  2965. % \arb[fullvoc]{\arbcolor[red]{\arbnull{al-}a}}. Then, the following
  2966. % two letters, namely |l-n|, must print the string \arb[trans]{lAm}
  2967. % $+$ \arb[trans]{nUn} $+$ \arb[trans]{^saddaT} in Arabic, and exactly
  2968. % \txtrans{n-n} in transliteration. Thus an Arabic mark is
  2969. % needed:--- %
  2970. % \iffalse
  2971. %<*example>
  2972. % \fi
  2973. \begin{arabluacode}
  2974. \newarbmark{lnn}{^^^^0644^^^^0646^^^^0651}{n-n}
  2975. \arb[fullvoc]{fI\arbnull{al-}
  2976. \arbcolor[red]{\arbnull{al-}a}\arbmark{lnn}Asi}
  2977. \arb[trans]{fI\arbnull{al-}
  2978. \arbcolor[red]{\arbnull{al-}a}\arbmark{lnn}Asi}.
  2979. \end{arabluacode}
  2980. % \iffalse
  2981. %</example>
  2982. % \fi%
  2983. %
  2984. % \paragraph{\texorpdfstring{\arb[trans]{hamzaT}}{hamzah}}
  2985. % The \enquote*{quoting} technique provides an easy way to determine
  2986. % the carrier of the \arb[trans]{hamzaT}, as shown in
  2987. % \vref{tab:quoted-hamza}---:
  2988. % \begin{quote}
  2989. % \verb+yatasA\arbnull{'a}\arbcolor[red]{|"'}.alUna+
  2990. % \arb{yatasA\arbnull{'a}\arbcolor[red]{|"'}.alUna}
  2991. % \arb[trans]{yatasA\arbnull{'a}\-\arbcolor[red]{|"'}.a\-lUna},
  2992. % \verb+^say\arbcolor[red]{|"'}\arbnull{'}aN+
  2993. % \arb{^say\arbcolor[red]{|"'}\arbnull{'}aN}
  2994. % \arb[trans]{^say\arbcolor[red]{|"'}\arbnull{'}aN},
  2995. % \verb+^say\ar+\allowbreak\verb+bcolor[red]{|"'}iN+
  2996. % \arb{^say\arbcolor[red]{|"'}iN}
  2997. % \arb[trans]{^say\arbcolor[red]{|"'}iN},
  2998. % |\arbcolor[red]{a"'}.as\arbcolor|\allowbreak|[red]{y"'}.ilaTuN|
  2999. % \arb{\arbcolor[red]{a"'}.as\arbcolor[red]{y"'}.ilaTuN}
  3000. % \arb[trans]{\arbcolor[red]{a"'}.as\arbcolor[red]{y"'}.ilaTuN}.
  3001. % \end{quote}
  3002. %
  3003. %
  3004. % \section{Transliteration}
  3005. % \label{sec:transliteration}
  3006. % It may be more appropriate to speak of \enquote{romanization} than
  3007. % \enquote{transliteration} of Arabic. As seen above in
  3008. % \cref{sec:options} \vpagerefrange{sec:options}{sec:local-options},
  3009. % the \enquote{transliteration mode} may be selected globally or locally.
  3010. %
  3011. % This mode transliterates the Arab\TeX\ input into one of the
  3012. % accepted standards. As said above \vpageref{ref:describe-trans},
  3013. % three standards are supported at present:
  3014. % \begin{description}
  3015. % \item[dmg] \emph{Deutsche Morgenländische Gesellschaft}, which was
  3016. % adopted by the International Convention of Orientalist Scholars in
  3017. % Rome in 1935.\footnote{See \textcite{dmg}.} |dmg| transliteration
  3018. % convention is selected by default;
  3019. % \item[loc] \emph{Library of Congress}: this standard is part of a
  3020. % large set of standards for romanization of non-roman scripts
  3021. % adopted by the American Library Association and the Library of
  3022. % Congress;\footnote{See
  3023. % \url{http://www.loc.gov/catdir/cpso/roman.html} for the
  3024. % \href{http://www.loc.gov/catdir/cpso/romanization/arabic.pdf}{source
  3025. % document concerning Arabic language}.}
  3026. % \item[arabica] \NEWfeature{v1.8}
  3027. % \changes{v1.8}{2017/03/30}{\texttt{arabica} transliteration
  3028. % standard is now supported} \emph{Journal of Arabic and Islamic
  3029. % Studies}/\emph{Revue d'études arabes et islamiques}: this standard
  3030. % is most widely used by scholars in the field of Arabic
  3031. % studies.\footnote{See
  3032. % \url{http://www.brill.nl/files/brill.nl/specific/authors_instructions/ARAB.pdf}.}
  3033. % \end{description}
  3034. % More standards will be included in future releases of
  3035. % \package{arabluatex}.
  3036. %
  3037. % \paragraph{Convention} \DescribeMacro{\SetTranslitConvention} The
  3038. % transliteration mode, which is set to |dmg| by default, may be
  3039. % changed at any point of the document by the
  3040. % \cs{SetTranslitConvention}\marg{mode} command , where \meta{mode}
  3041. % may be either |dmg|, |loc| or |arabica|. This command is also
  3042. % accepted in the preamble should one wish to set the transliteration
  3043. % mode globally, e.g.:---%
  3044. % \iffalse
  3045. %<*example>
  3046. % \fi
  3047. \begin{arabluaverbatim}
  3048. \usepackage{arabluatex}
  3049. \SetTranslitConvention{loc}
  3050. \end{arabluaverbatim}
  3051. % \iffalse
  3052. %</example>
  3053. % \fi
  3054. %
  3055. % \paragraph{Style} \DescribeMacro{\SetTranslitStyle} Any
  3056. % transliterated Arabic text is printed in italics by default. This
  3057. % also can be changed either globally in the preamble or locally at
  3058. % any point of the document by the \cs{SetTranslitStyle}\marg{style}
  3059. % command, where \meta{style} may be any font shape selection
  3060. % command, e.g. \cs{upshape}, \cs{itshape}, \cs{slshape}, and so forth.
  3061. %
  3062. % \paragraph{Font} \NEWfeature{v1.4} \DescribeMacro{\SetTranslitFont}
  3063. % \cs{SetTranslitFont}\marg{font selection command} allows any
  3064. % specific font to be selected for rendering transliterated text with
  3065. % the font-selecting commands of the \package{fontspec} or
  3066. % \package{luaotfload} package. Of course, this font must have been
  3067. % defined properly. To take one example, here is how the \emph{Gentium
  3068. % Plus} font can be used for rendering transliterated text:---
  3069. % \iffalse
  3070. %<*example>
  3071. % \fi
  3072. \begin{arabluaverbatim}
  3073. \newfontfamily\translitfont{Gentium Plus}[Ligatures=TeX]
  3074. \SetTranslitFont{\translitfont}
  3075. \end{arabluaverbatim}
  3076. % \iffalse
  3077. %</example>
  3078. % \fi
  3079. %
  3080. % \paragraph{Proper names} \DescribeMacro{\uc} Proper names or book
  3081. % titles that must have their first letters uppercased may be passed
  3082. % as arguments to the \cs{uc}\marg{word} command. \cs{uc} is a
  3083. % clever command, for it will give the definite article
  3084. % \arb[trans]{al-} in lower case in all positions. Moreover, if the
  3085. % inital letter, apart from the article, cannot be uppercased,
  3086. % viz. \arb[trans]{|"'} or \arb[trans]{`}, the letter next to it will be
  3087. % uppercased:---
  3088. % \begin{quote}
  3089. % |\uc{.hunayn-u}| |bn-u| |\uc{'is.h_aq-a}|
  3090. % \arb[voc]{\uc{.hunayn-u} bn-u \uc{'is.h_aq-a}}
  3091. % \arb[trans]{\uc{.hunayn-u} bn-u \uc{'is.h_aq-a}},
  3092. % |\uc{`u_tm_an-u}| \arb[voc]{\uc{`u_tm_an-u}}
  3093. % \arb[trans]{\uc{`u_tm_an-u}}, |.daraba| |\uc{zayd-u}| |bn-u|
  3094. % |\uc{_h_alidiN}| |\uc{sa`d-a}| |bn-a| |\uc{`awf-i}| |bn-i|
  3095. % |\uc{|\allowbreak|`abd-i}| |\uc{'l-l_ah-i}|
  3096. % \arb[fullvoc]{.daraba \uc{zayd-u} bn-u \uc{_h_alidiN}
  3097. % \uc{sa`d-a} bn-a \uc{`awf-i} bn-i \uc{`abd-i} \uc{'l-l_ah-i}}
  3098. % \arb[trans]{.daraba \uc{zayd-u} bn-u \uc{_h_alidiN} \uc{sa`d-a}
  3099. % bn-a \uc{`awf-i} bn-i \uc{`abd-i} \uc{'l-l_ah-i}}.
  3100. % \end{quote}
  3101. % However, \cs{uc} must be used cautiously in some very particular
  3102. % cases, for the closing brace of its argument may prevent a rule from
  3103. % being applied. To take an example, as seen above
  3104. % \vpageref{ref:muhammaduni}, the transliteration of
  3105. % \arb[fullvoc]{\uc{m}u.hammaduN 'l-nabI} must be
  3106. % \arb[trans]{\uc{m}u.hammaduN 'l-nabI}, as nouns having the
  3107. % \arb[trans]{tanwIn} take a \arb[trans]{kasraT} in pronunciation
  3108. % before \arb[trans]{'alifu 'l-wa.sli}. In that case, encoding
  3109. % \arb[fullvoc]{mu.hammaduN} like so: |\uc{mu.hammaduN}| is wrong,
  3110. % because the closing brace would prevent \package{arabluatex} from
  3111. % detecting the sequence \meta{-uN} immediately followed by
  3112. % \meta{'l-}. Fortunately, this can be circumvented in a
  3113. % straightforward way by inserting only part of the noun in the
  3114. % argument of \cs{uc} vz. up to the first letter that is to be
  3115. % uppercased, like so: |\uc{m}u.hammaduN|.
  3116. %
  3117. % \paragraph{Hyphenation}
  3118. % In case transliterated Arabic words break the \TeX\ hyphenation
  3119. % algorithm, one may use the |\-| command to insert discretionary
  3120. % hyphens. This command will be discarded in all of the Arabic modes
  3121. % of \package{arabluatex}, but will be processed by any of the
  3122. % transliteration modes:---
  3123. % \begin{quote}
  3124. % |\uc{'abU}| |\uc{bakriN}| |\uc{mu\-.ham\-madu}| |bnu|
  3125. % |\uc{za\-ka| |\-riy\-yA'a}| |\uc{'l-rAziyyu}| \arb{\uc{'abU}
  3126. % \uc{bakriN} \uc{mu\-.ham\-mad-u} bnu \uc{za\-ka\-riy\-yA'a}
  3127. % \uc{'l-rAziyyu}} \arb[trans]{\uc{'abU} \uc{bakriN}
  3128. % \uc{mu\-.ham\-mad-u} bn-u \uc{za\-ka\-riy\-yA'-a}
  3129. % \uc{'l-rAziyyu}}.
  3130. % \end{quote}
  3131. %
  3132. % \paragraph{\enquote*{Long} pro\-per names}
  3133. % \NEWfeature{v1.10} \cs{uc} is also able to process proper names
  3134. % consisting of several subsequent words:---
  3135. % \begin{quote}
  3136. % |\arb[trans]{\uc{'abU| |zaydiN| |.hunaynu| |bnu| |'is.h_aqa|
  3137. % |'l-`ibAdiyyu}}| \arb[trans]{\uc{'abU zaydiN .hunaynu bnu
  3138. % 'is.h_aqa 'l-`ibAdiyyu}}.
  3139. % \end{quote}
  3140. %
  3141. % \paragraph{Proper names outside Arabic environments}
  3142. % \changes{v1.10}{2018/01/03}{\cs{uc} supersedes \cs{cap}}
  3143. % \DescribeMacro{\prname}\NEWfeature{v1.10} Transliterated proper
  3144. % names inserted in paragraphs of English text should be printed in
  3145. % the same typeface as the surrounding text. \cs{prname}\marg{Arabic
  3146. % proper name} is provided to that effect:\footnote{Just as \cs{uc},
  3147. % \cs{prname} is also able to process proper names consisting of
  3148. % several subsequent words.}---
  3149. %\iffalse
  3150. %<*example>
  3151. % \fi
  3152. \begin{arabluacode}
  3153. From \textcite[i. 23 C]{Wright}:--- If the name following
  3154. \arb[fullvoc]{ibnuN} be that of the mother or the grandfather, the
  3155. \arb[fullvoc]{"a} is retained; as \arb[fullvoc]{`Is_A ibnu maryama},
  3156. \enquote{Jesus the son of Mary}; \arb[fullvoc]{`ammAru ibnu
  3157. man.sUriN}, \enquote{\prname{`ammAr} the (grand)son of
  3158. \prname{man.sUr}}.
  3159. \end{arabluacode}
  3160. % \iffalse
  3161. %</example>
  3162. % \fi
  3163. %
  3164. % The following example shows how \cs{prname} can be used in
  3165. % conjunction with the \package{nameauth} package to have Arabic
  3166. % proper names printed first in full then in partial
  3167. % forms:\footnote{See the documentation of \package{nameauth} for more
  3168. % details: \url{https://ctan.org/pkg/nameauth}}--- %
  3169. %\iffalse
  3170. %<*example>
  3171. % \fi
  3172. \begin{arabluacode}
  3173. \begin{nameauth}
  3174. \< Hunayn & \prname{'abU zayd} & \prname{.hunayn}, \prname{{i}bn
  3175. 'is.h_aq al-`ibAdiyy} & > %
  3176. \< Razi & \prname{'abU bakr mu.hammad ibn zakariyyA'} &
  3177. \prname{al-rAziyy} & > %
  3178. \end{nameauth}
  3179. On first occurrence, proper names are printed as \Hunayn, \Razi.
  3180. Then as \Hunayn, \Razi.
  3181. \end{arabluacode}
  3182. % \iffalse
  3183. %</example>
  3184. % \fi
  3185. %
  3186. % \begin{quoting}\label{ref:prname-star}
  3187. % \textsc{Rem.} \DescribeMacro{\prname*} \package{arabluatex} also
  3188. % provides \cs{prname*} which only renders in upright roman style
  3189. % already transliterated proper names without applying any further
  3190. % processing. It is mostly used internally and applied to proper
  3191. % names exported in Unicode to an external selected
  3192. % file.\footnote{See below \vref{sec:arabtex2utf} for more details.}
  3193. % \end{quoting}
  3194. %
  3195. % \subsection{Additional note on \texttt{dmg} convention}
  3196. % \label{sec:additional-note-dmg}
  3197. % \NEWfeature{v1.3} According to \textcite[6]{dmg}, Arabic
  3198. % \arb[trans]{'i`rAb} may be rendered into |dmg| in three different
  3199. % ways:
  3200. % \begin{enumerate}
  3201. % \item \label{ref:dmg-full-rend}In full:
  3202. % \NoArbUp\arb[trans]{\uc{`amruNU}}\ArbUpDflt\,;
  3203. % \item \label{ref:dmg-up-rend}As superscript text:
  3204. % \arb[trans]{\uc{`amruNU}}\,;
  3205. % \item \label{ref:irab-discarded}Discarded: \arb[trans]{\uc{`amr}}.
  3206. % \end{enumerate}
  3207. % \DescribeMacro{\arbup} By default, \package{arabluatex} applies rule
  3208. % \ref{ref:dmg-up-rend}. Once delimited by a set of Lua functions,
  3209. % \arb[trans]{'i`rAb} is passed as an argument on to a \cs{arbup}
  3210. % command which is set to \cs{textsuperscript}.
  3211. %
  3212. % \DescribeMacro{\NoArbUp} \DescribeMacro{\ArbUpDflt} \cs{NoArbUp} may
  3213. % be used either in the preamble or at any point of the document in
  3214. % case one wishes to apply rule \ref{ref:dmg-full-rend}. The default
  3215. % rule \ref{ref:dmg-up-rend} can be set back with \cs{ArbUpDflt} at
  3216. % any point of the document.
  3217. %
  3218. % \DescribeMacro{\SetArbUp} Finally, \cs{SetArbUp}\marg{formatting
  3219. % directives} can be used to customize the way \arb[trans]{'i`rAb} is
  3220. % displayed. To take one example, here is how Arabic
  3221. % \arb[trans]{'i`rAb} may be rendered as subscript text:---
  3222. % \iffalse
  3223. %<*example>
  3224. % \fi
  3225. \begin{arabluacode}
  3226. \SetArbUp{\textsubscript{#1}}
  3227. Arabic |dmg| transliteration for \arb{ra'aytu ^gAmi`aN
  3228. muhaddamaTaN mi'_danatu-hu}: \arb[trans]{ra'aytu
  3229. ^gAmi`aN muhaddamaTaN mi'_danatu-hu.}
  3230. \end{arabluacode}
  3231. % \iffalse
  3232. %</example>
  3233. % \fi
  3234. %
  3235. % As shown in the above example, |#1| is the token that is replaced
  3236. % with the actual \arb[trans]{tanwIn} in the formatting directives of
  3237. % the \cs{SetArbUp} command.
  3238. %
  3239. % \paragraph{\texorpdfstring{\arb[trans]{'i`rAb} boundaries}{ʾiʿrāb
  3240. % boundaries}}
  3241. % Every declinable noun (\arb[trans]{mu`rab}) may be declined either
  3242. % with or without \arb[trans]{tanwIn}, viz. \arb[trans]{mun.sarifuN}
  3243. % or \arb[trans]{.gayr-u mun.sarifiN}. The former is automatically
  3244. % parsed by \package{arabluatex}, whereas the latter has to be
  3245. % delimited with an hyphen, like so:---
  3246. % \begin{quote}
  3247. % \arb[trans]{\textbf{mun.sarif}}: |mu`allimuN|
  3248. % \arb[voc]{mu`allimuN} \arb[trans]{mu`allimuN}, |kA'inuN|
  3249. % \arb[voc]{kA'inuN} \arb[trans]{kA'inuN}, |kA'inAtuN|
  3250. % \arb[voc]{kA'inAtuN} \arb[trans]{kA'inAtuN}, |\uc{`amraNU}|
  3251. % \arb[voc]{\uc{`amraNU}} \arb[trans]{\uc{`amraNU}}, |fataN_A|
  3252. % \arb[voc]{fataN_A} \arb[trans]{fataN_A}, |qA.diNI| \arb{qA.diNI}
  3253. % \arb[trans]{qA.diNI}.
  3254. %
  3255. % \arb[trans]{\textbf{.gayr mun.sarif}}: |al-mu`allim-u|
  3256. % \arb[voc]{al-mu`allim-u} \arb[trans]{al-mu`allim-u}, |kitAb-Ani|
  3257. % \arb[voc]{kitAb-Ani} \arb[trans]{kitAb-Ani}, |ra^sa'-Ani|
  3258. % \arb[voc]{ra^sa'-Ani} \arb[trans]{ra^sa'-Ani}, |sAriq-Una|
  3259. % \arb[voc]{sAriq-Una} \arb[trans]{sAriq-Una}, |qA.d-Una|
  3260. % \arb[voc]{qA.d-Una} \arb[trans]{qA.d-Una}, |al-.zulm-Atu|
  3261. % \arb[voc]{al-.zulm-Atu} \arb[trans]{al-.zulm-Atu}.
  3262. % \end{quote}
  3263. %
  3264. % \begin{quoting}
  3265. % \textsc{Rem.}~\emph{a.} As the \arb[trans]{tanwIn} is passed over
  3266. % in pronunciation when it is followed by the letters
  3267. % \arb[novoc]{r}, \arb[novoc]{l}, \arb[novoc]{m}, \arb[novoc]{w},
  3268. % \arb[novoc]{y} (see \vref{ref:assimilation}), it may be desirable
  3269. % to further distinguish it by putting it above the line, but not to
  3270. % do the same for \arb[trans]{.gayr mun.sarif} terminations. This
  3271. % can be achieved by simply omitting the hyphen before any
  3272. % \arb[trans]{.gayr mun.sarif} termination:---\\
  3273. % |kAna| |.ganiyyaN| |l_akinna-hu| |labisa| |^gubbaTaN| |mumazzaqaN|
  3274. % |'aydu-hA| \arb[voc]{kAna .ganiyyaN l_akinna-hu labisa ^gubbaTaN
  3275. % mumazzaqaN 'aydu-hA} \arb[trans]{kAna .ganiyyaN l_akinna-hu labisa
  3276. % ^gubbaTaN mumazzaqaN 'aydu-hA}.
  3277. %
  3278. % \textsc{Rem.}~\emph{b.} Although the hyphen before the
  3279. % \arb[trans]{tanwIn} is optional as \package{arabluatex} always
  3280. % parses nouns with such termination, it may also be used to mark
  3281. % better the inflectional endings:---\\
  3282. % |mana`a| |'l-nAs-a| |kAffaT-aN| |min| |mu_hA.tabati-hi|
  3283. % |'a.had-uN| |bi-sayyidi-nA| \arb[voc]{mana`a 'l-nAs-a kAffaT-aN
  3284. % min mu_hA.tabati-hi 'a.had-uN bi-sayyidi-nA} \arb[trans]{mana`a
  3285. % 'l-nAs-a kAffaT-aN min mu_hA.tabati-hi 'a.had-uN bi-sayyidi-nA}.
  3286. % \end{quoting}
  3287. %
  3288. % \paragraph{\texorpdfstring{Discar\-ding the
  3289. % \arb[trans]{'i`rAb}}{Discarding the ʾiʿrāb}}
  3290. % \label{ref:ta-marbutah-pipe}
  3291. % As said above (\vref{ref:irab-discarded}), the \arb[trans]{'i`rAb}
  3292. % may be discarded in some cases, as in transliterated proper names or
  3293. % book titles. \package{arabluatex} is able to render words ending
  3294. % with \arb[trans]{tA' marbU.taT} in different ways, depending on
  3295. % their function:---
  3296. % \begin{enumerate}
  3297. % \item Nouns followed by an adjective in apposition: |madInaT|
  3298. % |kabIraT| \arb[trans]{madInaT kabIraT}, |al-madInaT| |al-kabIraT|
  3299. % \arb[trans]{al-madInaT al-kabIraT}.
  3300. % \item Nouns followed by another noun in the genitive (contruct
  3301. % state): |.hikmaT| |al-l_ah| \arb[trans]{.hikmaT| \uc{al-l_ah}},
  3302. % |fi.d.daT| |al-darAhim| \arb[trans]{fi.d.daT al-darAhim}.
  3303. % \end{enumerate}
  3304. % \begin{quoting}
  3305. % \textsc{Rem.} It may so happen, as in the absence of the article
  3306. % before the annexed word, that \package{arabluatex} be unable to
  3307. % determine which of the above two cases the word ending with
  3308. % \arb[trans]{tA' marbU.taT} falls into. The \enquote*{pipe}
  3309. % character (see \vref{sec:pipe}) may be appended to that word to
  3310. % indicate that what follows is in the construct state:
  3311. % |\uc{r}isAlaT| |fI| |tartIb| \verb+qirA'aT|+ |kutub|
  3312. % |\uc{^g}AlInUs| \arb[trans]{\uc{r}isAlaT fI tartIb qirA'aT|
  3313. % kutub \uc{^g}AlInUs}.
  3314. % \end{quoting}
  3315. %
  3316. %
  3317. % \paragraph{Uncertain short vowels}
  3318. % In some printed books, it may happen that more than one short vowel
  3319. % be placed on a consonant in cases where the vocalization is
  3320. % uncertain or ambiguous, like so: \arb[voc]{fa`uaila}. In
  3321. % transliteration, the uncertain vowels go between slashes and are
  3322. % separated by commas: |fa`uaila| \arb[voc]{fa`uaila}
  3323. % \arb[trans]{fa`uaila}.
  3324. %
  3325. % \subsection{Examples}
  3326. % \label{sec:examples-translit}
  3327. % Here follows in transliteration the story of
  3328. % \arb[trans]{\uc{ju.hA}} and his donkey (\arb[voc]{\uc{ju.hA
  3329. % wa-.himAru-hu}}). See the code \vpageref{ref:juha-code}:---
  3330. %
  3331. % \SetTranslitConvention{dmg}
  3332. % \begin{arab}[trans]
  3333. % \LR{\textbf{\emph{\enquote*{dmg}} standard:}} 'at_A .sadIquN 'il_A
  3334. % \uc{ju.hA} ya.tlubu min-hu .himAra-hu li-yarkaba-hu fI safraTiN
  3335. % qa.sIraTiN fa-qAla la-hu: \enquote{sawfa 'u`Idu-hu 'ilay-ka fI
  3336. % 'l-masA'-i wa-'adfa`u la-ka 'ujraTaN.} fa-qAla \uc{ju.hA}:
  3337. % \enquote{'anA 'AsifuN jiddaN 'annI lA 'asta.tI`u 'an 'u.haqqiqa
  3338. % la-ka ra.gbata-ka fa-'l-.himAr-u laysa hunA 'l-yawm-a.} wa-qabla
  3339. % 'an yutimma \uc{ju.hA} kalAma-hu bada'a 'l-.himAr-u yanhaqu fI
  3340. % 'i.s.tabli-hi. fa-qAla la-hu .sadIqu-hu: \enquote{'innI 'asma`u
  3341. % .himAra-ka yA \uc{ju.hA} yanhaqu.} fa-qAla la-hu \uc{ju.hA}:
  3342. % \enquote{.garIbuN 'amru-ka yA .sadIqI 'a-tu.saddiqu 'l-.himAr-a
  3343. % wa-tuka_d_diba-nI?}
  3344. % \end{arab}
  3345. %
  3346. % \SetTranslitConvention{loc}
  3347. % \begin{arab}[trans]
  3348. % \LR{\textbf{\emph{\enquote*{loc}} standard:}} 'at_A .sadIquN 'il_A
  3349. % \uc{ju.hA} ya.tlubu min-hu .himAra-hu li-yarkaba-hu fI safraTiN
  3350. % qa.sIraTiN fa-qAla la-hu: \enquote{sawfa 'u`Idu-hu 'ilay-ka fI
  3351. % 'l-masA'-i wa-'adfa`u la-ka 'ujraTaN.} fa-qAla \uc{ju.hA}:
  3352. % \enquote{'anA 'AsifuN jiddaN 'annI lA 'asta.tI`u 'an 'u.haqqiqa
  3353. % la-ka ra.gbata-ka fa-'l-.himAr-u laysa hunA 'l-yawm-a.} wa-qabla
  3354. % 'an yutimma \uc{ju.hA} kalAma-hu bada'a 'l-.himAr-u yanhaqu fI
  3355. % 'i.s.tabli-hi. fa-qAla la-hu .sadIqu-hu: \enquote{'innI 'asma`u
  3356. % .himAra-ka yA \uc{ju.hA} yanhaqu.} fa-qAla la-hu \uc{ju.hA}:
  3357. % \enquote{.garIbuN 'amru-ka yA .sadIqI 'a-tu.saddiqu 'l-.himAr-a
  3358. % wa-tuka_d_diba-nI?}
  3359. % \end{arab}
  3360. % \SetTranslitConvention{dmg}
  3361. %
  3362. % \SetTranslitConvention{arabica}
  3363. % \begin{arab}[trans]
  3364. % \LR{\textbf{\emph{\enquote*{arabica}} standard:}} 'at_A .sadIquN
  3365. % 'il_A \uc{ju.hA} ya.tlubu min-hu .himAra-hu li-yarkaba-hu fI
  3366. % safraTiN qa.sIraTiN fa-qAla la-hu: \enquote{sawfa 'u`Idu-hu
  3367. % 'ilay-ka fI 'l-masA'-i wa-'adfa`u la-ka 'ujraTaN.} fa-qAla
  3368. % \uc{ju.hA}: \enquote{'anA 'AsifuN jiddaN 'annI lA 'asta.tI`u 'an
  3369. % 'u.haqqiqa la-ka ra.gbata-ka fa-'l-.himAr-u laysa hunA 'l-yawm-a.}
  3370. % wa-qabla 'an yutimma \uc{ju.hA} kalAma-hu bada'a 'l-.himAr-u
  3371. % yanhaqu fI 'i.s.tabli-hi. fa-qAla la-hu .sadIqu-hu: \enquote{'innI
  3372. % 'asma`u .himAra-ka yA \uc{ju.hA} yanhaqu.} fa-qAla la-hu
  3373. % \uc{ju.hA}: \enquote{.garIbuN 'amru-ka yA .sadIqI 'a-tu.saddiqu
  3374. % 'l-.himAr-a wa-tuka_d_diba-nI?}
  3375. % \end{arab}
  3376. % \SetTranslitConvention{dmg}
  3377. %
  3378. % \section{Buckwalter input scheme}
  3379. % \label{sec:buckwalter-scheme}
  3380. % \NEWfeature{v1.4} Even though \package{arabluatex} is primarily
  3381. % designed to process the Arab\TeX\ notation, it can also process the
  3382. % Buckwalter input scheme to a large extent.\footnote{See
  3383. % \url{http://www.qamus.org/transliteration.htm}} The Buckwalter
  3384. % scheme is actually processed in two steps, as it is first converted
  3385. % into Arab\TeX. Then, once this is accomplished, the Arab\TeX\ scheme
  3386. % is processed through the above described functions. In this way, the
  3387. % Buckwalter input scheme can make the most of the
  3388. % \package{arabluatex} special features that are presented in
  3389. % \vref{sec:options}.
  3390. %
  3391. % \DescribeMacro{\SetInputScheme} The input scheme, which is set to
  3392. % |arabtex| by default, may be changed at any point of the document by
  3393. % the \cs{SetInputScheme}\marg{scheme} command, where \meta{scheme}
  3394. % may be either |arabtex| or |buckwalter|. This command is also
  3395. % accepted in the preamble should one wish to set the input scheme
  3396. % globally, like so:---
  3397. % \iffalse
  3398. %<*example>
  3399. % \fi
  3400. \begin{arabluaverbatim}
  3401. \usepackage{arabluatex}
  3402. \SetInputScheme{buckwalter}
  3403. \end{arabluaverbatim}
  3404. % \iffalse
  3405. %</example>
  3406. % \fi
  3407. %
  3408. % \paragraph{\enquote*{base}, \enquote*{\texttt{xml}} and
  3409. % \enquote*{safe} schemes}
  3410. % \package{arabluatex} can use any of the so-called Buckwalter
  3411. % \enquote*{base}, \enquote*{\texttt{xml}} or \enquote*{safe} schemes
  3412. % as they are described in \textcite[25--26]{Habash}.\footnote{I am
  3413. % grateful to Graeme Andrews who suggested that the \enquote*{safe}
  3414. % scheme be included in \package{arabluatex}.} However, the following
  3415. % limitation apply to the \enquote*{base} and \enquote*{\texttt{xml}}
  3416. % schemes: the braces |{| and |}|, which are used to encode
  3417. % \arb[novoc]{"a} and \arb[novoc]{y"'}, must be replaced with square
  3418. % brackets viz. |[| and |]| respectively.
  3419. %
  3420. % It is therefore recommended to use the Buckwalter \enquote*{safe}
  3421. % scheme.
  3422. %
  3423. % \Cref{tab:buckwalter-scheme} gives the Buckwalter equivalents that
  3424. % are currently used by \package{arabluatex}. The additional
  3425. % characters that are defined in \vref{tab:additional-arabic-codings}
  3426. % are also available.
  3427. %
  3428. % \begin{longtable}{llllll}
  3429. % \bottomrule
  3430. % \caption*{\Cref*{tab:buckwalter-scheme}: Buckwalter scheme}
  3431. % \endfoot
  3432. % \captionlistentry{Buckwalter scheme}\\[-1em]
  3433. % \toprule
  3434. % Letter & \multicolumn{3}{l}{Transliteration\footnotemark}
  3435. % & \multicolumn{2}{l}{Buckwalter notation} \\
  3436. % & \texttt{dmg} & \texttt{loc} & \texttt{arabica} & |base/xml| &
  3437. % |safe| \\ \midrule
  3438. % \endfirsthead
  3439. % \toprule
  3440. % Letter & \multicolumn{3}{l}{Transliteration}
  3441. % & \multicolumn{2}{l}{Buckwalter notation} \\
  3442. % & \texttt{dmg} & \texttt{loc} & \texttt{arabica} & |base/xml| &
  3443. % |safe| \\ \midrule
  3444. % \endhead \footnotetext{See \vref{sec:transliteration}.}
  3445. % \label{tab:buckwalter-scheme}
  3446. % \arb[novoc]{a} & \dmg{a} & \loc{a} & \brill{a} & |A| & |A| \\
  3447. % \arb[novoc]{b} & \dmg{b} & \loc{b} & \brill{b} & |b| & |b| \\
  3448. % \arb[novoc]{t} & \dmg{t} & \loc{t} & \brill{t} & |t| & |t| \\
  3449. % \arb[novoc]{_t} & \dmg{_t} & \loc{_t} & \brill{_t} & |v| & |v| \\
  3450. % \arb[novoc]{j} & \dmg{j} & \loc{j} & \brill{j} & |j| & |j| \\
  3451. % \arb[novoc]{.h} & \dmg{.h} & \loc{.h} & \brill{.h} & |H| & |H| \\
  3452. % \arb[novoc]{x} & \dmg{x} & \loc{x} & \brill{x} & |x| & |x| \\
  3453. % \arb[novoc]{d} & \dmg{d} & \loc{d} & \brill{d} & |d| & |d| \\
  3454. % \arb[novoc]{_d} & \dmg{_d} & \loc{_d} & \brill{_d} & |*| & |V| \\
  3455. % \arb[novoc]{r} & \dmg{r} & \loc{r} & \brill{r} & |r| & |r| \\
  3456. % \arb[novoc]{z} & \dmg{z} & \loc{z} & \brill{z} & |z| & |z| \\
  3457. % \arb[novoc]{s} & \dmg{s} & \loc{s} & \brill{s} & |s| & |s| \\
  3458. % \arb[novoc]{^s} & \dmg{^s} & \loc{^s} & \brill{^s} & |$| & |c| \\
  3459. % \arb[novoc]{.s} & \dmg{.s} & \loc{.s} & \brill{.s} & |S| & |S| \\
  3460. % \arb[novoc]{.d} & \dmg{.d} & \loc{.d} & \brill{.d} & |D| & |D| \\
  3461. % \arb[novoc]{.t} & \dmg{.t} & \loc{.t} & \brill{.t} & |T| & |T| \\
  3462. % \arb[novoc]{.z} & \dmg{.z} & \loc{.z} & \brill{.z} & |Z| & |Z| \\
  3463. % \arb[novoc]{`} & \dmg{`} & \loc{`} & \brill{`} & |E| & |E| \\
  3464. % \arb[novoc]{.g} & \dmg{.g} & \loc{.g} & \brill{.g} & |g| & |g| \\
  3465. % \arb[novoc]{f} & \dmg{f} & \loc{f} & \brill{f} & |f| & |f| \\
  3466. % \arb[novoc]{q} & \dmg{q} & \loc{q} & \brill{q} & |q| & |q| \\
  3467. % \arb[novoc]{k} & \dmg{k} & \loc{k} & \brill{k} & |k| & |k| \\
  3468. % \arb[novoc]{l} & \dmg{l} & \loc{l} & \brill{l} & |l| & |l| \\
  3469. % \arb[novoc]{m} & \dmg{m} & \loc{m} & \brill{m} & |m| & |m| \\
  3470. % \arb[novoc]{n} & \dmg{n} & \loc{n} & \brill{n} & |n| & |n| \\
  3471. % \arb[novoc]{h} & \dmg{h} & \loc{h} & \brill{h} & |h| & |h| \\
  3472. % \arb[novoc]{w} & \dmg{w} & \loc{w} & \brill{w} & |w| & |w| \\
  3473. % \arb[novoc]{y} & \dmg{y} & \loc{y} & \brill{y} & |y| & |y| \\
  3474. % \pagebreak
  3475. % \arb[novoc]{Y} & \dmg{Y} & \loc{Y} & \brill{Y} & |Y| & |Y| \\
  3476. % \arb[novoc]{T} & \dmg{aT} & \loc{aT} & \brill{aT} & |p| & |p| \\
  3477. % \midrule
  3478. % \arb[novoc]{|"'} & \dmg{|"'} & \loc{|"'} & \brill{|"'} & \verb|'| & |C| \\
  3479. % \arb[novoc]{A"'} & \dmg{A"'} & \loc{A"'} & \brill{A"'} & \verb+|+ & |M| \\
  3480. % \arb[novoc]{a"'} & \dmg{a"'} & \loc{a"'} & \brill{a"'} & \verb|>| & |O| \\
  3481. % \arb[novoc]{w"'} & \dmg{w"'} & \loc{w"'} & \brill{w"'} & \verb|&| & |W| \\
  3482. % \arb[novoc]{i"'} & \dmg{i"'} & \loc{i"'} & \brill{i"'} & \verb|<| & |I| \\
  3483. % \arb[novoc]{y"'} & \dmg{y"'} & \loc{y"'} & \brill{y"'} & \verb|]| & |Q| \\
  3484. % \midrule
  3485. % \arb[novoc]{BB} & --- & --- & --- & \verb|~| & |~| \\
  3486. % \arb[novoc]{"a} & ' & ' & --- & |[| & |L| \\
  3487. % \midrule
  3488. % \arb[voc]{Ba} & \dmg{Ba} & \loc{Ba} & \brill{Ba} & \verb|a| & |a| \\
  3489. % \arb[voc]{Bu} & \dmg{Bu} & \loc{Bu} & \brill{Bu} & \verb|u| & |u| \\
  3490. % \arb[voc]{Bi} & \dmg{Bi} & \loc{Bi} & \brill{Bi} & \verb|i| & |i| \\
  3491. % \arb[voc]{BaN} & \dmg{BaN} & \loc{BaN} & \brill{BaN} & \verb|F| & |F| \\
  3492. % \arb[voc]{BuN} & \dmg{BuN} & \loc{BuN} & \brill{BuN} & \verb|N| & |N| \\
  3493. % \arb[voc]{BiN} & \dmg{BiN} & \loc{BiN} & \brill{BiN} & \verb|K| & |K| \\
  3494. % \arb[voc]{B"} & --- & --- & --- & \verb|o| & |o| \\
  3495. % \midrule
  3496. % \arb[novoc]{B_a} & \dmg{B_a} & \loc{B_a} & \brill{B_a} & |`| & |e| \\
  3497. % \midrule
  3498. % \arb[novoc]{--} (\arb[trans]{ta.twIl}) & --- & --- & --- & |_| & |_| \\
  3499. % \end{longtable}
  3500. %
  3501. % \paragraph{Transliteration}
  3502. % The Buckwalter notation can also be transliterated into any accepted
  3503. % romanization standard of Arabic. See above
  3504. % \vref{sec:transliteration} for more information. However, it should
  3505. % be pointed out again that only accurate coding produces accurate
  3506. % transliteration. It is therefore at the very least highly advisable
  3507. % to use the hyphen for tying the definite article and the inseparable
  3508. % particles (viz. prepositions, adverbs and conjunctions) to words,
  3509. % like so:--- \SetInputScheme{buckwalter}
  3510. % \begin{quote}
  3511. % |Al-EaAlamu| \arb{Al-EaAlam-u} \arb[trans]{Al-EaAlam-u},
  3512. % |Al-camsu| \arb{Al-cams-u} \arb[trans]{Al-cams-u},
  3513. % |bi-SinaAEapi| |Al-T~ib~i|, \arb{bi-SinaAEap-i Al-T~ib~-i}
  3514. % \arb[trans]{bi-SinaAEap-i Al-T~ib~-i}.
  3515. %
  3516. % |wa-Al-l~ehi| \arb{wa-Al-l~eh-i} \arb[trans]{wa-Al-l~eh-i},
  3517. % |Al-Hamdu| |li-l~ehi| \arb{Al-Hamd-u li-l~eh-i}
  3518. % \arb[trans]{Al-Hamd-u li-l~eh-i}.
  3519. % \end{quote}
  3520. % \SetInputScheme{arabtex}
  3521. %
  3522. % Similary, it is not advisable to use \verb+|+ and |[|
  3523. % (\enquote*{base} and \enquote*{\texttt{xml}} schemes) or |M| and |L|
  3524. % (\enquote*{safe} scheme) to encode the \arb[trans]{'alif-u
  3525. % 'l-mamdUdaT-i} and the \arb[trans]{'alif-u 'l-wa.sl-i} for such
  3526. % signs are supposed to be generated by \package{arabluatex} internal
  3527. % functions. Besides, as they do not \emph{per se} convey any
  3528. % morphological information on what they are derived from, they cannot
  3529. % be transliterated accurately. To take one example, %
  3530. % \SetInputScheme{buckwalter}%
  3531. % |<ilY Al-LntiqaADi| gives \arb{>ilY Al-LntiqaADi} as expected, but
  3532. % only |<ilY Al-intiqADi| can be transliterated as \arb[trans]{<ilY
  3533. % Al-intiqaADi} with the correct vowel \meta{i} in place of the %
  3534. % \SetInputScheme{arabtex}%
  3535. % \arb[trans]{'alif-u 'l-wa.sl-i}.
  3536. %
  3537. % \section{Unicode Arabic input}
  3538. % \label{sec:unicode-input}
  3539. % \NEWfeature{v1.5} As said above in \vref{sec:buckwalter-scheme}
  3540. % about the Buckwalter input scheme, even though \package{arabluatex}
  3541. % is primarily designed to process the Arab\TeX\ notation, it also
  3542. % accepts Unicode Arabic input. It should be noted that
  3543. % \package{arabluatex} does in no way interfere with Unicode Arabic
  3544. % input: none of the |voc|, |fullvoc|, |novoc| or |trans| options will
  3545. % have any effect on plain Unicode Arabic for the time being.
  3546. %
  3547. % That said, there are two ways of inserting Unicode
  3548. % Arabic:
  3549. % \begin{enumerate}
  3550. % \item \DescribeMacro{\txarb} The \cs{txarb}\marg{Unicode Arabic}
  3551. % command for inserting Unicode Arabic text in paragraphs;
  3552. % \item The \DescribeEnv{txarab} |txarab| environment for inserting
  3553. % running paragraphs of Arabic text, like so:---\\%
  3554. % \iffalse
  3555. %<*example>
  3556. % \fi
  3557. \begin{arabluaverbatim}
  3558. \begin{txarab}
  3559. <Unicode Arabic text>
  3560. \end{txarab}
  3561. \end{arabluaverbatim}
  3562. % \iffalse
  3563. %</example>
  3564. % \fi
  3565. % \end{enumerate}
  3566. %
  3567. % \needspace{4\baselineskip}
  3568. % \section{\LaTeX\ Commands in Arabic environments}
  3569. % \label{sec:commands-in-arb}
  3570. % \paragraph{General principle} \label{ref:cmd-inside-arabic}\LaTeX\
  3571. % commands are accepted in Arabic environments. The general principle
  3572. % which applies is that any single-argument command with up to
  3573. % \emph{two optional arguments}---that is:
  3574. % \cs{command}\oarg{opt1}\oarg{opt2}\marg{arg}---such as
  3575. % \cs{emph}\marg{text}, \cs{textbf}\marg{text} and the like, is
  3576. % assumed to have Arabic text in its mandatory argument:---
  3577. % \begin{quote}
  3578. % |\abjad{45}| |kitAbu-hu| |\emph{fI| |'l-\uc{`AdAt-i}}|
  3579. % \arb[voc]{\abjad{45} kitAbu-hu \emph{fI 'l-\uc{`AdAt-i}}}
  3580. % \arb[trans]{\abjad{45} kitAbu-hu \emph{fI
  3581. % 'l-\uc{`AdAt-i}}}.\footnote{This is odd in Arabic script, but
  3582. % using such features as \cs{emph} or \cs{textbf} is a matter of
  3583. % personal taste.}
  3584. % \NewDocumentCommand{\rlframebox}{o o m}{
  3585. % \IfNoValueTF{#2}{\IfNoValueTF{#1}{
  3586. % \framebox{\setRL#3}}{\framebox[#1]{\setRL#3}}
  3587. % }{\framebox[#1][#2]{\setRL#3}}}
  3588. %
  3589. % |\arb{\abjad{45} \rlframebox[1in][s]{kitAbu-hu fI 'l-`AdAti}}|\\
  3590. % \arb{\abjad{45} \rlframebox[1in][s]{kitAbu-hu fI
  3591. % 'l-`AdAti}}\,\footnote{\cs{rlframefox} has been adapted from
  3592. % \cs{framebox} for insertions of right-to-left text.}
  3593. % \end{quote}
  3594. %
  3595. % The same applies to footnotes:---
  3596. % \iffalse
  3597. %<*example>
  3598. % \fi
  3599. \begin{arabluacode}
  3600. \renewcommand{\footnoterule}%
  3601. {\hfill\noindent\rule[1mm]{.4\textwidth}{.15mm}}
  3602. \begin{arab}
  3603. 'inna 'abI kAna mina 'l-muqAtilaT-i\footnote{al-muqAtilaT-i:
  3604. al-muqAtil-Ina.}, wa-kAnat 'ummI min `u.zamA'-i buyUt-i
  3605. 'l-zamAzimaT-i\footnote{al-zamAzimaT-u: .tA'ifaT-u mina
  3606. 'l-furs-i.}.
  3607. \end{arab}
  3608. \end{arabluacode}
  3609. % \iffalse
  3610. %</example>
  3611. % \fi
  3612. %
  3613. % Some commands, however, do not expect running text in their
  3614. % arguments, or one may wish to insert English text e.g. in footnotes
  3615. % or in marginal notes. \package{arabluatex} provides a set of
  3616. % commands to handle such cases.
  3617. %
  3618. % \DescribeMacro{\LR} \cs{LR}\marg{arg} is designed to typeset its
  3619. % argument from left to right. It may be used in an Arabic
  3620. % environment, either \cs{arb}\marg{Arabic text} or \cs{begin}|{arab}|
  3621. % \meta{Arabic text} \cs{end}|{arab}|, for short insertions of
  3622. % left-to-right text, or to insert any \LaTeX\ command that would
  3623. % otherwise be rejected by \package{arabluatex}, such as commands the
  3624. % argument of which is expected to be a dimension or a unit of
  3625. % measurement.
  3626. %
  3627. % \DescribeMacro{\RL} \cs{RL}\marg{arg} does the same as
  3628. % \cs{LR}\marg{arg}, but typesets its argument from right to left. Even
  3629. % in an Arabic environment, this command may be useful.
  3630. %
  3631. % \DescribeMacro{\LRfootnote} \DescribeMacro{\RLfootnote}
  3632. % \cs{LRfootnote}\marg{text} and \cs{RLfootnote}\marg{text} typeset
  3633. % left-to-right and right-to-left footnotes respectively in Arabic
  3634. % environments. Unlike \cs{footnote}\marg{text}, the arguments of both
  3635. % \cs{LRfootnote} and \cs{RLfootnote} are not expected to be Arabic
  3636. % text. For example, \cs{LRfootnote} can be used to insert English
  3637. % footnotes in running Arabic text:---
  3638. % \iffalse
  3639. %<*example>
  3640. % \fi
  3641. \begin{arabluacode}
  3642. \begin{arab}[fullvoc]
  3643. \uc{z}ayd-uN\arbnull{ibnu}\LRfootnote{%
  3644. \enquote{\arb[trans]{\uc{z}ayd} is the son of
  3645. \arb[trans]{\uc{`a}mr}}: the second noun is not in
  3646. apposition to the first, but forms part of the
  3647. predicate\ldots} \arbnull{zayduN}ibn-u \uc{`a}mr-iNU
  3648. \end{arab}
  3649. \end{arabluacode}
  3650. % \iffalse
  3651. %</example>
  3652. % \fi
  3653. %
  3654. % When footnotes are typeset from right to left, it may happen that
  3655. % the numbers of the footnotes that are at the bottom of the page be
  3656. % typeset in the wrong direction. For example, instead of an expected
  3657. % number 18, one may get 81. \package{arabluatex} is not responsible
  3658. % for that, but should it happen, it may be necessary to redefine in
  3659. % the preamble the \LaTeX\ macro \cs{thefootnote} like so:---\\
  3660. % \arabluaverb{\renewcommand*{\thefootnote}{\textsuperscript{\LR{\arabic{footnote}}}}}
  3661. % \DescribeMacro{\FixArbFtnmk} Another solution is to put in the
  3662. % preamble, below the line that loads \package{arabluatex}, the
  3663. % \cs{FixArbFtnmk} command. However, for more control over the layout
  3664. % of footnotes marks, it is advisable to use the \package{scrextend}
  3665. % package.\footnote{See \url{http://ctan.org/pkg/koma-script}; read
  3666. % the documentation of \package{KOMA-script} for details about the
  3667. % \cs{deffootnotemark} and \cs{deffootnote} commands.}
  3668. %
  3669. % \DescribeMacro{\LRmarginpar} The
  3670. % \cs{LRmarginpar}\oarg{left}\marg{right} command does for marginal
  3671. % notes the same as \cs{LRfootnote} does for footnotes. Of course, it
  3672. % is supposed to be used in Arabic environments. Note that
  3673. % \cs{marginpar} also works in Arabic environments, but it acts as any
  3674. % other single-argument command inserted in Arabic environments. The
  3675. % general principle laid \vpageref{ref:cmd-inside-arabic} applies.
  3676. %
  3677. % \label{ref:setrl-setlr}
  3678. % \DescribeMacro{\setRL} \DescribeMacro{\setLR} \cs{setRL} and
  3679. % \cs{setLR} can be used to change the direction of paragraphs, either
  3680. % form left to right or from right to left. As an example, an
  3681. % easy way to typeset a right-to-left sectional title follows:---
  3682. % \iffalse
  3683. %<*example>
  3684. % \fi
  3685. \begin{arabluacode}
  3686. \setRL
  3687. \section*{\arb{barzawayhi li-buzurjumihra bn-i 'l-buxtikAni}}
  3688. \setLR
  3689. \begin{arab}
  3690. qAla barzawayhi bn-u 'azhar-a, ra's-u 'a.tibbA'-i fAris-a...
  3691. \end{arab}
  3692. \end{arabluacode}
  3693. % \iffalse
  3694. %</example>
  3695. % \fi
  3696. %
  3697. % \subsection{New commands}
  3698. % \label{sec:declare-new-commands}
  3699. % \NEWfeature{v1.9}%
  3700. % In some particular cases, it may be useful to define new commands to
  3701. % be inserted in Arabic environments. From the general principle laid
  3702. % \vpageref{ref:cmd-inside-arabic}, it follows that any command that
  3703. % is found inside an Arabic environment is assumed to have Arabic text
  3704. % in its argument which \package{arabluatex} will process as such
  3705. % before passing it on to the command itself for any further
  3706. % processing. As a result of this feature, such a command as:\\
  3707. % \arabluaverb{\newcommand{\fvarabic}[1]{\arb[fullvoc]{#1}}}\\
  3708. % will work as expected, but will always output non-vocalized Arabic
  3709. % if it is inserted in a |novoc| Arabic environment because its
  3710. % argument will have been processed by the |novoc| rules before the
  3711. % command |\fvarabic| itself can see it.
  3712. %
  3713. % \DescribeMacro{\MkArbBreak} The \cs{MkArbBreak}\marg{csv list of
  3714. % commands} command can be used in the preamble to give any
  3715. % command---either new or already existing---the precedence over
  3716. % \package{arabluatex} inside Arabic environments. It takes as
  3717. % argument a comma-separated list of commands each of which must be
  3718. % stripped of its leading character
  3719. % |\|, like so:---\\
  3720. % \arabluaverb{\MkArbBreak{onecmd, anothercmd, yetanothercmd, ...}}
  3721. %
  3722. % For example, here follows a way to define a new command |\fvred| to
  3723. % distinguish words with a different color and always print them in
  3724. % fully vocalized Arabic:--- %
  3725. % \iffalse
  3726. %<*example>
  3727. % \fi
  3728. \begin{arabluacode}
  3729. \MkArbBreak{fvred}
  3730. \newcommand{\fvred}[1]{\arbcolor[red]{\arb[fullvoc]{#1}}}
  3731. \begin{arab}[voc]
  3732. _tumma "intalaqa _dU 'l-qarn-ayni 'il_A 'ummaT-iN 'u_hr_A fI
  3733. \fvred{((ma.tli`-i 'l-^sams-i))} wa-lA binA'-a la-hum
  3734. yu'amminu-hum mina 'l-^sams-i.
  3735. \end{arab}
  3736. \end{arabluacode}
  3737. % \iffalse
  3738. %</example>
  3739. % \fi
  3740. %
  3741. % It must be noted that the arguments, either optional or mandatory,
  3742. % of commands declared with \cs{MkArbBreak} are not to be processed by
  3743. % \package{arabluatex}. Therefore, as in the previous example, any of
  3744. % their argument to be rendered in Arabic must be inserted again in
  3745. % \cs{arb}. \NEWfeature{v1.12}These commands themselves may have up to
  3746. % two optional and/or mandatory arguments followed by one optional
  3747. % argument, like so:---
  3748. % \begin{enumerate}
  3749. % \item \cs{command} (no argument, lowermost combination)
  3750. % \item \cs{command}\oarg{opt1} (one optional argument)
  3751. % \item \cs{command}\marg{arg1} (one mandatory argument)
  3752. % \item \cs{command}\oarg{opt1}\marg{arg1} (one optional and one
  3753. % mandatory argument)
  3754. % \item{} [\ldots]
  3755. % \item \cs{command}\oarg{opt1}\oarg{opt2}\marg{arg1}\marg{arg2}
  3756. % \item
  3757. % \cs{command}\oarg{opt1}\oarg{opt2}\marg{arg1}\marg{arg2}\oarg{opt3}
  3758. % (uppermost combination)
  3759. % \end{enumerate}
  3760. %
  3761. % \DescribeMacro{\MkArbBreak*}\NEWfeature{v1.12} As said above,
  3762. % \cs{MkArbBreak} prevents \package{arabluatex} from processing the
  3763. % arguments of \enquote*{declared} commands as Arabic text. This
  3764. % technique proves sufficient in most cases. However, a
  3765. % \enquote*{starred} version of this
  3766. % command---\cs{MkArbBreak*}\marg{csv list of commands}---is also
  3767. % provided. It goes a step further, as it directs \package{arabluatex}
  3768. % to \emph{close} the current Arabic environment before any of the
  3769. % \enquote*{declared} commands, then \emph{resume} it just after.
  3770. %
  3771. % \iffalse
  3772. %<*example>
  3773. % \fi
  3774. \begin{arabluacode}[text only]
  3775. It must be noted that \cs{MkArbBreak*} must be used with the utmost
  3776. care and \emph{should never be used} if \cs{MkArbBreak} gives
  3777. satisfaction. At any rate, the latter must always be tested before
  3778. the former.
  3779. \end{arabluacode}
  3780. % \iffalse
  3781. %</example>
  3782. % \fi%
  3783. %
  3784. %
  3785. % \subsection{Environments}
  3786. % \label{sec:environments}
  3787. % \changes{v1.5}{2016/11/14}{Environments may be nested inside the
  3788. % \texttt{arab} environment}
  3789. % \NEWfeature{v1.5} Environments such as
  3790. % \arabluaverb{\begin{quote}... \end{quote}} may be nested inside the
  3791. % |arab| environment. Up to one optional argument may be passed to
  3792. % each nested environment, like so:---
  3793. % \iffalse
  3794. %<*example>
  3795. % \fi
  3796. \begin{arabluaverbatim}
  3797. \begin{arab}
  3798. \begin{<environment>}[<options>]
  3799. <Arabic text>
  3800. \end{<environment>}
  3801. \end{arab}
  3802. \end{arabluaverbatim}
  3803. % \iffalse
  3804. %</example>
  3805. % \fi
  3806. %
  3807. % In the following example, the \package{quoting} package is used:---
  3808. % \iffalse
  3809. %<*example>
  3810. % \fi
  3811. \begin{arabluacode}
  3812. \setquotestyle{arabic}
  3813. \begin{arab}[fullvoc]
  3814. kAna \uc{'abU} \uc{'l-hu_dayli} 'ahd_A 'il_A \uc{muwaysiN}
  3815. dajAjaTaN. wa-kAnat dajAjatu-hu 'llatI 'ahdA-hA dUna mA kAna
  3816. yuttaxa_du li-\uc{muwaysiN}. wa-l_akinna-hu bi-karami-hi
  3817. wa-bi-.husni xuluqi-hi 'a.zhara 'l-ta`ajjuba min simani-hA
  3818. wa-.tIbi la.hmi-hA. wa-kAna <\uc{'abU} \uc{'l-hu_dayli}>
  3819. yu`rafu bi-'l-'imsAki 'l-^sadIdi. fa-qAla: \enquote{wa-kayfa
  3820. ra'ayta yA \uc{'abA} \uc{`imrAna} tilka 'l-dajAjaTa?} qAla:
  3821. \enquote{kAnat `ajabaN mina 'l-`ajabi!} fa-yaqUlu:
  3822. \begin{quoting}[begintext=\textquotedblright,
  3823. endtext=\textquotedblleft]
  3824. wa-tadrI mA jinsu-hA? wa-tadrI mA sinnu-hA? fa-'inna
  3825. 'l-dajAjaTa 'inna-mA ta.tIbu bi-'l-jinsi wa-'l-sinni.
  3826. wa-tadrI bi-'ayyi ^say'iN kunnA nusamminu-hA? wa-fI 'ayyi
  3827. makAniN kunnA na`lifu-hA?
  3828. \end{quoting}
  3829. fa-lA yazAlu fI h_a_dA wa-'l-'A_haru ya.d.haku .da.hkaN
  3830. na`rifu-hu na.hnu wa-lA ya`rifu-hu \uc{'abU} \uc{'l-hu_dayli}.
  3831. \end{arab}
  3832. \end{arabluacode}
  3833. % \iffalse
  3834. %</example>
  3835. % \fi
  3836. %
  3837. % \subsubsection{Lists}
  3838. % \label{sec:lists}
  3839. % Lists environments are also accepted inside the |arab|
  3840. % environment. One may either use any of the three standard list
  3841. % environments, viz. |itemize|, |enumerate| and |description| or use
  3842. % packages that provide additional refinements such as
  3843. % \package{paralist} or \package{enumitem}.
  3844. %
  3845. % To take a first example, should one wish to typeset a list of
  3846. % manuscripts, the |description| environment can be used like so:---
  3847. % \iffalse
  3848. %<*example>
  3849. % \fi
  3850. \begin{arabluacode}
  3851. \setRL\paragraph{\arb[novoc]{rumUzi 'l-kitAbi}}\setLR
  3852. \begin{arab}[novoc]
  3853. \begin{description}
  3854. \item[b] max.tU.tu 'l-maktabaTi 'l-'ahliyyaTi bi-\uc{bArIs} 2860
  3855. `arabiyyuN.
  3856. \item[s] max.tU.tu 'l-maktabaTi 'l-'ahliyyaTi bi-\uc{bArIs} 2859
  3857. `arabiyyuN.
  3858. \item[m] max.tU.tu majlisi \arb[novoc]{^sUrAY malY} .tahrAna 521.
  3859. \end{description}
  3860. \end{arab}
  3861. \end{arabluacode}
  3862. % \iffalse
  3863. %</example>
  3864. % \fi
  3865. %
  3866. % As a second example, the contents of a treatise may be typeset with
  3867. % the standard list environments, like so:---
  3868. % \iffalse
  3869. %<*example>
  3870. % \fi
  3871. \begin{arabluacode}
  3872. \setRL\centerline{\arb{\textbf{al-qAnUnu fI 'l-.tibbi}}}\setLR
  3873. \begin{arab}
  3874. \begin{itemize}
  3875. \item \textbf{al-fannu 'l-'awwalu} fI .haddi 'l-.tibbi
  3876. wa-maw.dU`Ati-hi mina 'l-'umUri 'l-.tabI`iyyaTi wa-ya^stamilu
  3877. `al_A sittaTi ta`AlImiN
  3878. \begin{itemize}
  3879. \item \textbf{al-ta`lImu 'l-'awwalu} [wa-huwa fa.slAni]
  3880. \begin{itemize}
  3881. \item \textbf{al-fa.slu 'l-'awwalu}
  3882. \end{itemize}
  3883. \end{itemize}
  3884. \end{itemize}
  3885. \end{arab}
  3886. \end{arabluacode}
  3887. % \iffalse
  3888. %</example>
  3889. % \fi
  3890. %
  3891. % \label{ref:abjad-list}
  3892. % As a third example, abjad-numbered lists can be typeset in
  3893. % conjunction with the \package{enumitem} package,\footnote{See the
  3894. % documentation of \package{enumitem} for more details:
  3895. % \url{https://ctan.org/pkg/enumitem}} like so:---
  3896. % \iffalse
  3897. %<*example>
  3898. % \fi
  3899. \begin{arabluaverbatim}
  3900. % preamble:---
  3901. \usepackage{enumitem}
  3902. \newlist{enumabjad}{enumerate}{10}
  3903. \setlist[enumabjad]{nosep, label={\abjad{\arabic*}}}
  3904. \usepackage{multicol}
  3905. \end{arabluaverbatim}
  3906. \begin{arabluacode}
  3907. From \textcite[i. 29 B--C]{Wright}:--- The derived forms of the
  3908. triliteral verb are usually reckoned fifteen in number, but the
  3909. learner may pass over the last four, because (with the exception
  3910. of the twelfth) they are of very rare occurrence.
  3911. \RLmulticolcolumns
  3912. \begin{multicols}{3}
  3913. \begin{arab}[fullvoc]
  3914. \begin{enumabjad}
  3915. \item fa`ala
  3916. \item fa``ala
  3917. \item fA`ala
  3918. \item 'af`ala
  3919. \item tafa``ala
  3920. \item tafA`ala
  3921. \item infa`ala
  3922. \item ifta`ala
  3923. \item if`alla
  3924. \item istaf`ala
  3925. \item if`Alla
  3926. \item if`aw`ala
  3927. \item if`awwala
  3928. \item if`anlala
  3929. \item if`anl_A
  3930. \end{enumabjad}
  3931. \end{arab}
  3932. \end{multicols}
  3933. \end{arabluacode}
  3934. % \iffalse
  3935. %</example>
  3936. % \fi
  3937. %
  3938. % \paragraph{Caveat}
  3939. % The various French definition files of the \package{babel} package
  3940. % viz. |acadian|, |canadien|, |francais|, |frenchb| or |french| all
  3941. % redefine the list environments, which breaks the standard definition
  3942. % file that is used by \package{arabluatex}. Therefore,
  3943. % \package{babel-french} must be loaded with the |StandardLists=true|
  3944. % option, like so:---%
  3945. % \iffalse
  3946. %<*example>
  3947. % \fi
  3948. \begin{arabluaverbatim}
  3949. \usepackage[french]{babel}
  3950. \frenchsetup{StandardLists=true}
  3951. \end{arabluaverbatim}
  3952. % \iffalse
  3953. %</example>
  3954. % \fi%
  3955. % This option will prevent \package{babel-french} from interfering
  3956. % with the layout of the document. Then the \package{paralist} or
  3957. % \package{enumitem} packages can be used to make the lists
  3958. % \enquote*{compact} as \package{babel-french} do.
  3959. %
  3960. % \subsection{\package{csquotes}}
  3961. % \label{sec:csquotes}
  3962. % The recommended way of inserting quotation marks in running Arabic
  3963. % text is to use \package{csquotes}. With the help of the
  3964. % \cs{DeclareQuoteStyle} command, one can define an Arabic style, like
  3965. % so:---
  3966. % \iffalse
  3967. %<*example>
  3968. % \fi
  3969. \begin{arabluaverbatim}
  3970. \usepackage{csquotes}
  3971. \DeclareQuoteStyle{arabic}
  3972. {\textquotedblright}{\textquotedblleft}
  3973. {\textquoteright}{\textquoteleft}
  3974. \end{arabluaverbatim}
  3975. % \iffalse
  3976. %</example>
  3977. % \fi
  3978. % Then, use this newly defined style with \cs{setquotestyle}, like so:---
  3979. % \iffalse
  3980. %<*example>
  3981. % \fi
  3982. \begin{arabluacode}
  3983. \setquotestyle{arabic}
  3984. \begin{arab}
  3985. fa-qAla la-hu ju.hA: \enquote{.garIb-uN 'amru-ka yA .sadIqI
  3986. 'a-tu.saddiqu 'l-.himAr-a wa-tuka_d_diba-nI?}
  3987. \end{arab}
  3988. \setquotestyle{english}
  3989. \end{arabluacode}
  3990. % \iffalse
  3991. %</example>
  3992. % \fi
  3993. % \begin{quoting}
  3994. % \textsc{Rem.} Do not forget to set back the quoting style to its
  3995. % initial state once the Arabic environment is closed. See the last
  3996. % line in the code above.
  3997. % \end{quoting}
  3998. %
  3999. % \subsection{Two-argument special commands}
  4000. % \label{sec:two-arg-cmds}
  4001. %
  4002. % \paragraph{textcolor}
  4003. % \label{sec:textcolor}
  4004. % The two-argument command \cs{textcolor}\marg{color}\marg{Ara\-bic
  4005. % text} is supported inside \cs{begin}|{arab}| \ldots\
  4006. % \cs{end}|{arab}|. One simple example
  4007. % follows:\footnote{\package{arabluatex} provides its own
  4008. % \cs{arbcolor} command which is able to render syllabes or diacritics
  4009. % in colors. See \vref{sec:color}.}--- %
  4010. % \iffalse
  4011. %<*example>
  4012. % \fi
  4013. \begin{arabluacode}
  4014. \begin{arab}
  4015. \textcolor{red}{\uc{m}uha_d_dabu \uc{'l-d}Ini \uc{`a}bdu
  4016. \uc{'l-r}a.hImi bnu \uc{`a}liyyiN} huwa ^say_hu-nA 'l-'imAmu
  4017. 'l-.sadru 'l-kabIru 'l-`Alimu 'l-fA.dilu \uc{m}uha_d_dabu
  4018. \uc{'l-d}Ini \uc{'a}bU \uc{m}u.hammadiN \uc{`a}bdu
  4019. \uc{'l-r}a.hImi bnu \uc{`a}liyyi bni \uc{.h}AmidiN wa-yu`rafu
  4020. bi-\uc{'l-d}a_hwari.
  4021. \end{arab}
  4022. \begin{arab}[trans]
  4023. \textcolor{red}{\uc{m}uha_d_dabu \uc{'l-d}Ini \uc{`a}bdu
  4024. \uc{'l-r}a.hImi bnu \uc{`a}liyyiN} huwa ^say_hu-nA 'l-'imAmu
  4025. 'l-.sadru 'l-kabIru 'l-`Alimu 'l-fA.dilu \uc{m}uha_d_dabu
  4026. \uc{'l-d}Ini \uc{'a}bU \uc{m}u.hammadiN \uc{`a}bdu
  4027. \uc{'l-r}a.hImi bnu \uc{`a}liyyi bni \uc{.h}AmidiN wa-yu`rafu
  4028. bi-\uc{'l-d}a_hwari.
  4029. \end{arab}
  4030. \end{arabluacode}
  4031. % \iffalse
  4032. %</example>
  4033. % \fi
  4034. %
  4035. % \paragraph{\package{reledmac}}
  4036. % \label{sec:reledmac}
  4037. % The two-argument command \cs{edtext}\marg{lemma}\marg{commands} is
  4038. % supported inside \cs{begin}|{arab}| \ldots\
  4039. % \cs{end}|{arab}|.\footnote{\cs{pstart} and \cs{pend} are also
  4040. % supported inside the |arab| environment.} As an example, one may get
  4041. % \package{arabluatex} and \package{reledmac} to work together like
  4042. % so:--- %
  4043. % \iffalse
  4044. %<*example>
  4045. % \fi
  4046. \begin{arabluaverbatim}
  4047. \beginnumbering
  4048. \pstart
  4049. \begin{arab}
  4050. wa-ya.sIru ta.hta 'l-jild-i
  4051. \edtext{\arb{.sadId-uN}}{\Afootnote{M: \arb{.sadId-aN} E1}}
  4052. \end{arab}
  4053. \pend
  4054. \endnumbering
  4055. \end{arabluaverbatim}
  4056. % \iffalse
  4057. %</example>
  4058. % \fi
  4059. %
  4060. % \subsection{\package{quran}}
  4061. % \label{sec:pkg-quran}
  4062. % \changes{v1.5}{2016/11/14}{Compatibility with the \textsf{quran}
  4063. % package} \package{arabluatex} is compatible with the \package{quran}
  4064. % package so that both can be used in conjunction with one another for
  4065. % typesetting the \arb[trans]{\uc{qur'An}}. As \package{quran} draws
  4066. % the text of the \arb[trans]{\uc{qur'An}} from a Unicode encoded
  4067. % database, its commands have to be passed as arguments to the
  4068. % \cs{txarb} command for short insertions in left-to-right paragraphs,
  4069. % or inserted inside the \index{txarab=txarab (environment)}|txarab|
  4070. % environment for typesetting running paragraphs of
  4071. % \arb[trans]{\uc{qur'An}}\emph{ic} text (see above
  4072. % \vref{sec:unicode-input} for more details). Please note that
  4073. % \package{arabluatex} takes care of formatting the Arabic: therefore,
  4074. % it is recommended to load the \package{quran} package with the
  4075. % |nopar| option, after \package{arabluatex} itself has been loaded,
  4076. % like so:--- %
  4077. % \iffalse
  4078. %<*example>
  4079. % \fi
  4080. \begin{arabluaverbatim}
  4081. \usepackage{arabluatex}
  4082. \usepackage[nopar]{quran}
  4083. \end{arabluaverbatim}
  4084. % \iffalse
  4085. %</example>
  4086. % \fi
  4087. %
  4088. % As an example, the following code will typeset the \arb[trans]{sUraT
  4089. % al-\uc{fAti.haT}}:---
  4090. % \iffalse
  4091. %<*example>
  4092. % \fi
  4093. \begin{arabluacode}
  4094. \begin{txarab}
  4095. \quransurah[1]
  4096. \end{txarab}
  4097. \end{arabluacode}
  4098. % \iffalse
  4099. %</example>
  4100. % \fi
  4101. %
  4102. % \section{Exporting Unicode Arabic to an external file}
  4103. % \label{sec:arabtex2utf}
  4104. % \NEWfeature{v.1.13}\package{arabluatex} is able to produce a
  4105. % duplicate of the original |.tex| source file in which all |arabtex|
  4106. % or |buckwalter| strings will have been replaced with Unicode
  4107. % equivalents, either in Arabic script or in any accepted standard of
  4108. % transliteration. Exporting \textsc{ascii} strings to Unicode while
  4109. % preserving the exact selected global or local options is a fairly
  4110. % complex operation which may require {\LuaLaTeX} to be run several
  4111. % times as will be explained below.
  4112. %
  4113. % \subsection{Commands and environments}
  4114. % \paragraph{\texttt{export} global option}
  4115. % \DescribeOption{export} First, \package{arabluatex} must be loaded
  4116. % with the |export| global option enabled,\footnote{See above
  4117. % \vpageref{ref:export-global-opt} for more information.} like
  4118. % so:--- %
  4119. % \iffalse
  4120. %<*example>
  4121. % \fi
  4122. \begin{arabluaverbatim}
  4123. % preamble
  4124. \usepackage[export]{arabluatex}
  4125. % or:
  4126. \usepackage[export=true]{arabluatex}
  4127. \end{arabluaverbatim}
  4128. % \iffalse
  4129. %</example>
  4130. % \fi
  4131. %
  4132. % Once that is done, compiling the current file will produce a new
  4133. % empty external |.tex| file with the same preamble as the original
  4134. % file.
  4135. %
  4136. % \DescribeMacro{\SetArbOutSuffix} By default, |_out| is appended as a
  4137. % suffix to the external file name. Any other suffix may be set with
  4138. % the command \cs{SetArbOutSuffix}\marg{suffix}.
  4139. %
  4140. % \paragraph{Exporting running paragraphs}
  4141. % \DescribeEnv{arabexport} Then, the |arabexport| environment is
  4142. % provided to actually exporting running paragraphs with or without
  4143. % Arabic environments to the external selected file, like so:--- %
  4144. % \iffalse
  4145. %<*example>
  4146. % \fi
  4147. \begin{arabluaverbatim}
  4148. \begin{arabexport}
  4149. <Running paragraphs of either Arabic or non-Arabic text>
  4150. \end{arabexport}
  4151. \end{arabluaverbatim}
  4152. % \iffalse
  4153. %</example>
  4154. % \fi
  4155. %
  4156. % \package{arabluatex} converts to Unicode and writes to the external
  4157. % file what is found inside Arabic environments. As to non-Arabic
  4158. % text, it is appended untouched to this file, which is formatted as
  4159. % follows:---
  4160. % \begin{enumerate}
  4161. % \item Unicode Arabic text, either in Arabic script or in
  4162. % transliteration, is inserted as argument of
  4163. % \cs{txarb}\footnote{See above \vref{sec:unicode-input}.} or
  4164. % \cs{txtrans}\footnote{\cs{txtrans} is used internally by several
  4165. % Lua functions to format transliterated Arabic. Therefore, it is
  4166. % not documented.} accordingly.
  4167. % \item \DescribeMacro{\arbpardir}Additionally, Arabic paragraphs may
  4168. % receive \cs{arbpardir}, which \package{arabluatex} uses to
  4169. % determine the direction of Arabic paragraphs to be set by default,
  4170. % or either \cs{setRL} or \cs{setLR} depending on what may have been
  4171. % set locally.\footnote{See above \vpageref{ref:setrl-setlr}.}
  4172. % \item \DescribeMacro{\prname*}Proper names are inserted as arguments
  4173. % of \cs{prname*}.\footnote{See above \vpageref{ref:prname-star}.}
  4174. % \end{enumerate}
  4175. %
  4176. % \paragraph{Appending words or commands to the external file only}
  4177. % \DescribeMacro{\ArbOutFile}\DescribeMacro{\ArbOutFile*}
  4178. % \cs{ArbOutFile}\oarg{newline}\allowbreak\marg{argument} silently
  4179. % exports its argument to the external file. It may take the string
  4180. % |newline| as an optional argument, in which case a carriage return
  4181. % is appended to the contents of the
  4182. % argument. \cs{ArbOutFile*}\oarg{newline}\marg{argument} does the
  4183. % same as \cs{ArbOutFile}, but also inserts its argument into the
  4184. % current |.tex| source file.
  4185. %
  4186. % \paragraph{Exporting Arabic poetry}
  4187. % Lines of Arabic poetry are exported as described above
  4188. % \vpageref{ref:poetry-export} when the |export| option that is
  4189. % specific to the |arabverse| environment is set to |true|. As a
  4190. % result of this particular feature, |arabverse| environments must be
  4191. % left outside |\begin{arabexport}| \ldots\ |\end{arabexport}|.
  4192. %
  4193. % Please note that inside |arabverse| environments \cs{bayt} is
  4194. % replaced with \cs{bayt*}.\footnote{See above \vref{ref:bayt-star} for
  4195. % more information.}
  4196. %
  4197. % \subsection{Nested Arabic environments}
  4198. % The exporting mechanism described above converts only the outermost
  4199. % level of nested Arabic environments. This may be sufficient in some
  4200. % cases, but if nested Arabic environments be found in the original
  4201. % |.tex| source file, then the Unicode converted file must be opened
  4202. % and compiled in turn, and so on until the innermost Arabic
  4203. % environment be converted and exported. In such cases,
  4204. % \package{arabluatex} issues a warning, so that authors do not have
  4205. % to check the entire file that just has been exported:--- %
  4206. % \iffalse
  4207. %<*example>
  4208. % \fi
  4209. \begin{arabluaverbatim}
  4210. Package arabluatex Warning: There are still 'arabtex' strings
  4211. to be converted. Please open <jobname><suffix>.tex and compile
  4212. it one more time.
  4213. \end{arabluaverbatim}
  4214. % \iffalse
  4215. %</example>
  4216. % \fi
  4217. % Where \meta{jobname} is the name of the original |.tex| source file,
  4218. % and \meta{suffix} the suffix appended to the file that is to be
  4219. % opened and compiled again.
  4220. %
  4221. % \subsection{Further processing of Unicode converted files}
  4222. % \label{sec:further-processing-utf-files}
  4223. % Unicode files can be further processed by document converters such
  4224. % as John McFarlane's |pandoc|\footnote{See
  4225. % \url{http://pandoc.org/}}. To take here one simple example, here is
  4226. % how |file_out.tex| can be converted from {\LuaLaTeX} into Open
  4227. % Document format (|.odt|):---%
  4228. % \iffalse
  4229. %<*example>
  4230. % \fi
  4231. \begin{arabluaverbatim}
  4232. pandoc file_out.tex -s -o file_out.odt
  4233. \end{arabluaverbatim}
  4234. % \iffalse
  4235. %</example>
  4236. % \fi
  4237. %
  4238. % However, specific commands such as \cs{txarb}, \cs{txtrans} or
  4239. % \cs{prname*}, which are not known to |pandoc|, must be redefined
  4240. % explicitly in the preamble to prevent the converter from gobbling
  4241. % their arguments, like so:---%
  4242. % \iffalse
  4243. %<*example>
  4244. % \fi
  4245. \begin{arabluaverbatim}
  4246. % preamble:
  4247. \usepackage{arabluatex} % note that 'export' has been removed
  4248. \renewcommand{\txarb}[1]{#1}
  4249. \renewcommand{\txtrans}[1]{\emph{#1}}
  4250. \renewcommand{\arbup}[1]{\textsuperscript{#1}}
  4251. % now that \prname{} has been replaced with \prname*{} it should
  4252. % be safe to say:
  4253. \renewcommand{\prname}[2]{#2}
  4254. % &c
  4255. \end{arabluaverbatim}
  4256. % \iffalse
  4257. %</example>
  4258. % \fi
  4259. %
  4260. % \section{Future work}
  4261. % \label{sec:future-work}
  4262. % A short, uncommented, list of what is planned in the versions of
  4263. % \package{arabluatex} to come follows:
  4264. % \begin{enumerate}
  4265. % \item Short-term:
  4266. % \begin{enumerate}
  4267. % \item \texttt{TEI xml} support: \package{arabluatex} will
  4268. % interoperate with \texttt{TEI xml} through new global and local
  4269. % options that will output Arabic in a \texttt{TEI xml} compliant
  4270. % file in addition to the usual PDF output: see
  4271. % \vpageref{ref:tei-to-come}.
  4272. % \end{enumerate}
  4273. % \item Medium-term:
  4274. % \begin{enumerate}
  4275. % \item More languages: the list of supported languages will
  4276. % eventually be the same as \package{arabtex}: see
  4277. % \vref{fn:arabtex-languages}.
  4278. % \item Formulate propositions for extending the Arab\TeX\ notation
  4279. % and the transliteration tables. Include them in
  4280. % \package{arabluatex}. See \vref{sec:additional-characters}.
  4281. % \end{enumerate}
  4282. % \end{enumerate}
  4283. %
  4284. % \StopEventually{}
  4285. %
  4286. % \section{Implementation}
  4287. %
  4288. % \iffalse
  4289. %<*package>
  4290. % \fi
  4291. %
  4292. % The most important part of \package{arabluatex} relies on Lua
  4293. % functions and tables. Read the |.lua| files that accompany
  4294. % \package{arabluatex} for more information.
  4295. % \begin{macrocode}
  4296. \RequirePackage{ifluatex}
  4297. % \end{macrocode}
  4298. % \package{arabluatex} requires {\LuaLaTeX} of course. Issue a warning
  4299. % if the document is processed with another engine.
  4300. % \begin{macrocode}
  4301. \ifluatex\else
  4302. \PackageError{arabluatex}{lualatex needed}{%
  4303. Package `arabluatex' needs LuaTeX.\MessageBreak
  4304. So you should use `lualatex' to process your document.\MessageBreak
  4305. See documentation of `arabluatex' for further information.}%
  4306. \expandafter\expandafter\expandafter\csname endinput\endcsname
  4307. \fi
  4308. % \end{macrocode}
  4309. % Declare the global options, and define them:
  4310. % \begin{macrocode}
  4311. \RequirePackage{xkeyval}
  4312. \DeclareOptionX{voc}{\def\al@mode{voc}}
  4313. \DeclareOptionX{fullvoc}{\def\al@mode{fullvoc}}
  4314. \DeclareOptionX{novoc}{\def\al@mode{novoc}}
  4315. \DeclareOptionX{trans}{\def\al@mode{trans}}
  4316. \define@boolkey{arabluatex.sty}[@pkg@]{export}[true]{%
  4317. \if@pkg@export%
  4318. \AtBeginDocument{\luadirect{al_openstream()}%
  4319. \MkArbBreak{@al@ob,@al@cb,@al@cb@sp}}
  4320. \AtEndDocument{\luadirect{al_closestream()}}
  4321. \else\fi}
  4322. \ExecuteOptionsX{voc}
  4323. \ProcessOptionsX\relax
  4324. \def\al@mode@voc{voc}
  4325. \def\al@mode@fullvoc{fullvoc}
  4326. \def\al@mode@novoc{novoc}
  4327. \def\al@mode@trans{trans}
  4328. % \end{macrocode}
  4329. % Packages that are required by \package{arabluatex}:
  4330. % \begin{macrocode}
  4331. \RequirePackage{xcolor}
  4332. \RequirePackage{luacolor}
  4333. \RequirePackage{etoolbox}
  4334. \RequirePackage{arabluatex-patch}
  4335. \RequirePackage{fontspec}
  4336. \RequirePackage{luacode}
  4337. \RequirePackage{xparse}
  4338. \RequirePackage{environ}
  4339. \RequirePackage{adjustbox}
  4340. \RequirePackage{xstring}
  4341. \PassOptionsToPackage{normalem}{ulem}
  4342. \RequirePackage{ulem}
  4343. % \end{macrocode}
  4344. % The following boolean will be set to |true| in |RL| mode:
  4345. % \begin{macrocode}
  4346. \providebool{al@rlmode}
  4347. % \end{macrocode}
  4348. % Here begins the real work: load |arabluatex.lua|:
  4349. % \begin{macrocode}
  4350. \luadirect{dofile(kpse.find_file("arabluatex.lua"))}
  4351. % \end{macrocode}
  4352. % Font setup. If no Arabic font is selected, issue a warning message
  4353. % and attempt to load the Amiri font which is included in \TeX{}live:
  4354. % \begin{macrocode}
  4355. \AtBeginDocument{\ifdefined\arabicfont\relax\else
  4356. \PackageWarning{arabluatex}{\string\arabicfont\ is not defined.^^J
  4357. I will try to load Amiri}%
  4358. \newfontfamily\arabicfont[Script=Arabic]{Amiri}\fi}%
  4359. % \end{macrocode}
  4360. % \begin{macro}{\setRL}
  4361. % This neutralizes what may be defined by other packages:
  4362. % \begin{macrocode}
  4363. \AtBeginDocument{\def\setRL{\booltrue{al@rlmode}\pardir TRT\textdir TRT}}
  4364. % \end{macrocode}
  4365. % \end{macro}
  4366. % \begin{macro}{\setLR}
  4367. % The same applies to \cs{setLR}:
  4368. % \begin{macrocode}
  4369. \AtBeginDocument{\def\setLR{\boolfalse{al@rlmode}\pardir TLT\textdir TLT}}
  4370. % \end{macrocode}
  4371. % \end{macro}
  4372. % \begin{macro}{\LR} This command typesets its argument from left to
  4373. % right. As \cs{LR} may be already defined, we need to redefine for
  4374. % it to suit our purpose:
  4375. % \begin{macrocode}
  4376. \AtBeginDocument{\ifdef{\LR}%
  4377. {\RenewDocumentCommand{\LR}{m}{\bgroup\textdir TLT\rmfamily#1\egroup}}
  4378. {\NewDocumentCommand{\LR}{m}{\bgroup\textdir TLT\rmfamily#1\egroup}}}
  4379. % \end{macrocode}
  4380. % \end{macro}
  4381. % \begin{macro}{\RL} This one typesets its argument from right to
  4382. % left. Same remark as above regarding the need of redefinition.
  4383. % \begin{macrocode}
  4384. \AtBeginDocument{\ifdef{\RL}%
  4385. {\RenewDocumentCommand{\RL}{m}{\bgroup\textdir TRT\rmfamily#1\egroup}}
  4386. {\NewDocumentCommand{\RL}{m}{\bgroup\textdir TRT#1\rmfamily\egroup}}}
  4387. % \end{macrocode}
  4388. % \end{macro}
  4389. % \begin{macro}{\MkArbBreak}
  4390. % \changes{v1.9}{2017/07/05}{New \cs{MkArbBreak} command for
  4391. % inserting user-defined macros in Arabic environments} The
  4392. % \cs{MkArbBreak}\marg{csv list of commands} command can be used to
  4393. % give any command---either new or already existing---the precedence
  4394. % over \package{arabluatex} inside Arabic environments. It is
  4395. % actually coded in Lua.
  4396. % \begin{macro}{\MkArbBreak*}
  4397. % \changes{v1.12}{2018/06/24}{\enquote*{starred} version which
  4398. % closes Arabic environments before processing declared commands.}
  4399. % \cs{MkArbBreak*} goes a step further as it directs
  4400. % \package{arabluatex} to close the current Arabic environment before
  4401. % processing any \enquote*{declared} command then resume it just
  4402. % after.
  4403. % \begin{macrocode}
  4404. \NewDocumentCommand{\MkArbBreak}{s m}{%
  4405. \IfBooleanTF{#1}
  4406. {\luadirect{mkarbbreak(\luastringN{#2}, "out")}}
  4407. {\luadirect{mkarbbreak(\luastringN{#2}, "dflt")}}
  4408. }
  4409. % \end{macrocode}
  4410. % \end{macro}
  4411. % \end{macro}
  4412. % \begin{macro}{\aemph} Arabic emphasis. Needs to be redefined as
  4413. % well. The function is actually coded in Lua.
  4414. % \changes{v1.16}{2018/11/06}{Now uses \textsf{ulem}}
  4415. % \begin{macro}{\aemph*} The \enquote*{starred} version of this
  4416. % command alway puts the stroke over its argument.
  4417. % \changes{v1.9.2}{2017/10/24}{Starred version which always puts the
  4418. % stroke over its argument}As of v1.16 \package{arabluatex} uses
  4419. % \package{ulem} to render the strokes, thus allowing line breaks
  4420. % and manual hyphenation for transliterated Arabic.
  4421. % \begin{macrocode}
  4422. \def\oline{\@ifstar\@oline\@@oline}
  4423. \def\@oline#1{\ensuremath{\overline{\mbox{#1}}}}
  4424. \def\@@oline{\bgroup \ULdepth=-3ex \ULset}
  4425. \AtBeginDocument{\ifdef{\aemph}%
  4426. {\RenewDocumentCommand{\aemph}{s m}{%
  4427. \IfBooleanTF{#1}{%
  4428. \luadirect{tex.sprint(aemph(\luastringN{#2}, "over"))}}
  4429. {\luadirect{tex.sprint(aemph(\luastringN{#2}, "dflt"))}}}}
  4430. {\NewDocumentCommand{\aemph}{s m}{%
  4431. \IfBooleanTF{#1}{%
  4432. \luadirect{tex.sprint(aemph(\luastringN{#2}, "over"))}}
  4433. {\luadirect{tex.sprint(aemph(\luastringN{#2}, "dflt"))}}}}}
  4434. % \end{macrocode}
  4435. % \end{macro}
  4436. % \end{macro}
  4437. % \begin{macro}{\arbcolor}\changes{v1.12}{2018/06/24}{Standard color
  4438. % command for Arabic environments}
  4439. % \cs{arbcolor}\oarg{color}\marg{Arabic text} takes the Arabic text to
  4440. % be colored as argument.
  4441. % \begin{macrocode}
  4442. \NewDocumentCommand{\arbcolor}{o m}{%
  4443. \IfNoValueTF{#1}{#2}{\textcolor{#1}{#2}}}
  4444. % \end{macrocode}
  4445. %
  4446. % \end{macro}
  4447. % \begin{macro}{\SetInputScheme}
  4448. % \changes{v1.4}{2016/07/05}{\cs{SetInputScheme} can be used to
  4449. % process other input schemes such as \enquote*{Buckwalter}}
  4450. % \package{arabluatex} is designed for processing Arab\TeX\ input
  4451. % notation. \cs{SetInputScheme} may be used in the preamble or at
  4452. % any point of the document should the user wish to use a different
  4453. % notation such as the \enquote*{Buckwalter scheme}.
  4454. % \begin{macrocode}
  4455. \def\al@input@scheme{arabtex}
  4456. \NewDocumentCommand{\SetInputScheme}{m}{\def\al@input@scheme{#1}}
  4457. % \end{macrocode}
  4458. % \end{macro}
  4459. % \begin{macro}{\SetArbEasy}
  4460. % \changes{v1.2}{2016/05/09}{New \cs{SetArbEasy}/\cs{SetArbDflt} for
  4461. % \enquote*{modern} or \enquote*{classic} Arabic styles.}
  4462. % \begin{macro}{\SetArbEasy*}
  4463. % \changes{v1.4.4}{2016/09/28}{this starred version discards the
  4464. % \arb[trans]{sukUn} in addition to what is already discarded by
  4465. % \cs{SetArbEasy}.}
  4466. % \begin{macro}{\SetArbDflt}
  4467. % By default, \package{arabluatex} applies complex rules to generate
  4468. % euphonic \arb[trans]{ta^sdId}, \arb[trans]{'alif mamdUdaT} and
  4469. % \arb[trans]{sukUn} depending on the modes which are selected,
  4470. % either |voc|, |fullvoc| or |trans|. Such refinements can be
  4471. % discarded with \cs{SetArbEasy}, either globally in the preamble or
  4472. % at any point of the document. Note that \cs{SetArbEasy} keeps the
  4473. % \arb[trans]{sukUn} that is generated, while the starred version
  4474. % \cs{SetArbEasy*} takes it away. Default complex rules can be set
  4475. % back at any point of the document with \cs{SetArbDflt}.
  4476. % \begin{macro}{\SetArbDflt*}
  4477. % \changes{v1.6}{2016/12/17}{This starred version applies the
  4478. % assimilation rules in addition to what \cs{SetArbDflt} already
  4479. % does.} As of v1.6, \package{arabluatex} does not applies any more
  4480. % the assimilation rules that are laid on \vref{ref:assimilation}; a
  4481. % new starred version \cs{SetArbDflt*} is now available to the user
  4482. % should he wish to apply them.
  4483. % \begin{macrocode}
  4484. \def\al@arb@rules{dflt}
  4485. \NewDocumentCommand{\SetArbEasy}{s}{%
  4486. \IfBooleanTF{#1}
  4487. {\def\al@arb@rules{easynosukun}}
  4488. {\def\al@arb@rules{easy}}}
  4489. \NewDocumentCommand{\SetArbDflt}{s}{%
  4490. \IfBooleanTF{#1}
  4491. {\def\al@arb@rules{idgham}}
  4492. {\def\al@arb@rules{dflt}}}
  4493. % \end{macrocode}
  4494. % \end{macro}
  4495. % \end{macro}
  4496. % \end{macro}
  4497. % \end{macro}
  4498. % \begin{macro}{\SetTranslitFont}
  4499. % \changes{v1.4}{2016/07/05}{For selecting a specific font for
  4500. % transliterated texts} By default, the font that is used for
  4501. % transliterated text is the main font of the document. Any other
  4502. % font may also be selected with the font-selecting commands of the
  4503. % \package{fontspec} package.
  4504. % \begin{macrocode}
  4505. \def\al@trans@font{\rmfamily}%
  4506. \NewDocumentCommand{\SetTranslitFont}{m}{\def\al@trans@font{#1}}
  4507. % \end{macrocode}
  4508. % \end{macro}
  4509. % \begin{macro}{\SetTranslitStyle} By default any transliterated
  4510. % Arabic text is printed in italics. This can be changed either
  4511. % globally in the preamble or at any point of the document:
  4512. % \begin{macrocode}
  4513. \def\al@trans@style{\itshape}%
  4514. \NewDocumentCommand{\SetTranslitStyle}{m}{\def\al@trans@style{#1}}
  4515. % \end{macrocode}
  4516. % \end{macro}
  4517. % \begin{macro}{\SetTranslitConvention}
  4518. % \cs{SetTranslitConvention}\marg{convention} can be used to change
  4519. % the transliteration convention, which is |dmg| by default:
  4520. % \begin{macrocode}
  4521. \def\al@trans@convention{dmg}
  4522. \NewDocumentCommand{\SetTranslitConvention}{m}{\def\al@trans@convention{#1}}
  4523. % \end{macrocode}
  4524. % \end{macro}
  4525. % \begin{macro}{\arbup}
  4526. % \changes{v1.3}{2016/05/28}{\arb[trans]{'i`rAb} is now written as
  4527. % superscript text in \texttt{dmg} mode by default.}
  4528. % \begin{macro}{\NoArbUp}
  4529. % \begin{macro}{\ArbUpDflt}
  4530. % \begin{macro}{\SetArbUp}
  4531. % By default, \cs{arbup} is set to \cs{textsuperscript}. This is how
  4532. % the \arb[trans]{tanwIn} that takes place at the end of a word
  4533. % should be displayed in |dmg| mode. \cs{NoArbUp} may be used
  4534. % either in the preamble or at any point of the document in case one
  4535. % wishes to have the \arb[trans]{tanwIn} on the line. The default
  4536. % rule can be set back with \cs{ArbUpDflt} at any point of the
  4537. % document. Finally \cs{SetArbUp} can be used to customize the way
  4538. % \arb[trans]{tanwIn} is displayed: this command takes the
  4539. % formatting directives as argument, like so:
  4540. % \cs{SetArbUp}\marg{code}.
  4541. % \begin{macrocode}
  4542. \NewDocumentCommand{\al@arbup@dflt}{m}{\textsuperscript{\thinspace#1}}%
  4543. \NewDocumentCommand{\al@arbup}{m}{\al@arbup@dflt{#1}}
  4544. \NewDocumentCommand{\arbup}{m}{\al@arbup{#1}}
  4545. \NewDocumentCommand{\ArbUpDflt}{}{\let\al@arbup=\al@arbup@dflt}
  4546. \NewDocumentCommand{\NoArbUp}{}{\RenewDocumentCommand{\al@arbup}{m}{##1}}
  4547. \NewDocumentCommand{\SetArbUp}{m}{\RenewDocumentCommand{\al@arbup}{m}{#1}}
  4548. % \end{macrocode}
  4549. % \end{macro}
  4550. % \end{macro}
  4551. % \end{macro}
  4552. % \end{macro}
  4553. % \begin{macro}{\uc} Proper Arabic names or book titles should be
  4554. % passed to the \cs{uc} command so that they have their first letters
  4555. % uppercased. \cs{uc} is actually coded in Lua.
  4556. % \begin{macrocode}
  4557. \NewDocumentCommand{\uc}{m}%
  4558. {\luadirect{tex.sprint(uc(\luastringN{#1}))}}
  4559. % \end{macrocode}
  4560. % \end{macro}
  4561. % \begin{macro}{\Uc} \cs{uc} can be used safely in all of the modes
  4562. % that are provided by \package{arabluatex} as any of the |voc|,
  4563. % |fullvoc| and |novoc| modes discard it on top of any other
  4564. % functions to be run. \cs{Uc} does the same as \cs{uc} except
  4565. % that \emph{it is never discarded}. For that reason, \cs{Uc}
  4566. % \emph{should never be used outside the} |trans|
  4567. % \emph{mode}. \package{arabluatex} uses \cs{Uc} internally so as
  4568. % to prevent \cs{uc} from being discarded in case words that are to
  4569. % be transliterated are inserted into Arabic commands or
  4570. % environments where transliteration is not required. Therefore, it
  4571. % is not documented.
  4572. % \begin{macrocode}
  4573. \let\Uc\uc
  4574. % \end{macrocode}
  4575. % \end{macro}
  4576. % \begin{macro}{\prname}\changes{v1.10}{2018/01/03}{New command for
  4577. % typesetting Arabic proper names in transliteration} \cs{prname} is
  4578. % to be used outside Arabic environments for proper names. It takes as
  4579. % argument one or more Arabic words, each of which will be rendered in
  4580. % upright roman style with its first letter uppercased.
  4581. % \begin{macro}{\prname*}\changes{v1.13}{2018/08/27}{Renders proper
  4582. % names already converted to Unicode in upright roman style}
  4583. % Unlike \cs{prname}, \cs{prname*} does not take |arabtex| or
  4584. % |buckwalter| input as argument, but already Unicode converted
  4585. % names and renders them in upright roman style.
  4586. % \begin{macrocode}
  4587. \NewDocumentCommand{\prname}{s m}{%
  4588. \bgroup\SetTranslitStyle{\relax}%
  4589. \IfBooleanTF{#1}{\txtrans{#2}}{\arb[trans]{\uc{#2}}}\egroup}
  4590. % \end{macrocode}
  4591. % \end{macro}
  4592. % \end{macro}
  4593. % \begin{macro}{\txarb} \cs{txarb} sets the direction to right-to-left
  4594. % and selects the Arabic font. It is used internally by several Lua
  4595. % functions, but available to the user should he wish to insert
  4596. % |utf8| Arabic text in his document.
  4597. % \begin{macro}{\txtrans} \cs{txtrans} is used internally by several
  4598. % Lua functions to insert transliterated Arabic text. Therefore, it is
  4599. % not documented.
  4600. % \begin{macrocode}
  4601. \NewDocumentCommand{\txarb}{+m}{%
  4602. \bgroup\textdir TRT\arabicfont#1\egroup}
  4603. \NewDocumentCommand{\txtrans}{+m}{%
  4604. \bgroup\textdir TLT\al@trans@font\al@trans@style#1\egroup}
  4605. % \end{macrocode}
  4606. % \end{macro}
  4607. % \end{macro}
  4608. % \begin{environment}{txarab}
  4609. % \changes{v1.5}{2016/11/14}{New \texttt{txarab} environment for
  4610. % typesetting running paragraphs in Unicode Arabic} The |txarab|
  4611. % environment does for paragraphs the same as \cs{txarb} does for
  4612. % short insertions of |utf8| Arabic text.
  4613. % \begin{macrocode}
  4614. \NewDocumentEnvironment{txarab}{}{%
  4615. \par%
  4616. \booltrue{al@rlmode}%
  4617. \pardir TRT\textdir TRT\arabicfont}{\par}
  4618. % \end{macrocode}
  4619. % \end{environment}
  4620. % \begin{macro}{\arb}
  4621. % The \cs{arb} command detects which Arabic mode is to be used,
  4622. % either globally if no option is set, or locally, then passes its
  4623. % argument to the appropriate Lua function.
  4624. % \begin{macrocode}
  4625. \NewDocumentCommand{\arb}{O{\al@mode} +m}%
  4626. {\edef\@tempa{#1}%
  4627. \ifx\@tempa\al@mode@voc%
  4628. \bgroup\booltrue{al@rlmode}\textdir TRT\arabicfont%
  4629. \luadirect{tex.sprint(processvoc(\luastringN{#2},
  4630. \luastringO{\al@arb@rules}, \luastringO{\al@input@scheme}))}\egroup%
  4631. \else%
  4632. \ifx\@tempa\al@mode@fullvoc%
  4633. \bgroup\booltrue{al@rlmode}\textdir TRT\arabicfont%
  4634. \luadirect{tex.sprint(processfullvoc(\luastringN{#2},
  4635. \luastringO{\al@arb@rules}, \luastringO{\al@input@scheme}))}\egroup%
  4636. \else%
  4637. \ifx\@tempa\al@mode@novoc%
  4638. \bgroup\booltrue{al@rlmode}\textdir TRT\arabicfont%
  4639. \luadirect{tex.sprint(processnovoc(\luastringN{#2},
  4640. \luastringO{\al@arb@rules}, \luastringO{\al@input@scheme}))}\egroup%
  4641. \else%
  4642. \ifx\@tempa\al@mode@trans%
  4643. \bgroup\textdir TLT\al@trans@font\al@trans@style%
  4644. \luadirect{tex.sprint(processtrans(\luastringN{#2},
  4645. \luastringO{\al@trans@convention},
  4646. \luastringO{\al@arb@rules},
  4647. \luastringO{\al@input@scheme}))}\egroup%
  4648. \else%
  4649. \fi\fi\fi\fi}
  4650. % \end{macrocode}
  4651. % \end{macro}
  4652. % \begin{macro}{\arbmark}
  4653. % \changes{v1.11}{2018/03/31}{New command for inserting additional
  4654. % marks in Arabic environments}
  4655. % \cs{arbmark}\oarg{rl\textbar{}lr}\marg{shorthand} takes one
  4656. % argument from a list of defined elements.
  4657. % \changes{v1.13}{2018/08/27}{New optional argument: either
  4658. % \texttt{rl} or \texttt{lr}} The mark to be inserted is determined
  4659. % by contextual analysis or by an optional argument, either |rl| or
  4660. % |lr|. This command is coded in Lua.
  4661. % \begin{macrocode}
  4662. \NewDocumentCommand{\arbmark}{O{} m}{%
  4663. \bgroup%
  4664. \SetInputScheme{arabtex}%
  4665. \luadirect{tex.sprint(processarbmarks(\luastringN{#2},
  4666. \luastringN{#1}))}%
  4667. \egroup}
  4668. % \end{macrocode}
  4669. % \end{macro}
  4670. % \begin{macro}{\newarbmark}
  4671. % \changes{v1.11}{2018/03/31}{Allows defining additional sets of Arabic
  4672. % marks} \cs{newarbmark} lets the user define additional Arabic
  4673. % marks. As \cs{arbmark}, this command is coded in Lua. It takes
  4674. % three arguments: the abbreviated form to be used as argument of
  4675. % \cs{arbmark}, the rendition in Arabic script and the rendition in
  4676. % romanized Arabic.
  4677. % \begin{macrocode}
  4678. \NewDocumentCommand{\newarbmark}{m m m}{%
  4679. \luadirect{newarbmark(\luastringN{#1}, \luastringN{#2}, \luastringN{#3})}}
  4680. % \end{macrocode}
  4681. % \end{macro}
  4682. % \begin{environment}{arab}
  4683. % The |arab| environment does for paragraphs the same as \cs{arb} does
  4684. % for short insertions of Arabic text.
  4685. % \begin{macrocode}
  4686. \NewEnviron{arab}[1][\al@mode]%
  4687. {\par\edef\@tempa{#1}%
  4688. \ifx\@tempa\al@mode@voc%
  4689. \booltrue{al@rlmode}%
  4690. \bgroup\pardir TRT\textdir TRT\arabicfont%
  4691. \luadirect{tex.sprint(processvoc(\luastringO{\BODY},
  4692. \luastringO{\al@arb@rules}, \luastringO{\al@input@scheme}))}\egroup%
  4693. \else%
  4694. \ifx\@tempa\al@mode@fullvoc%
  4695. \booltrue{al@rlmode}%
  4696. \bgroup\pardir TRT\textdir TRT\arabicfont%
  4697. \luadirect{tex.sprint(processfullvoc(\luastringO{\BODY},
  4698. \luastringO{\al@arb@rules}, \luastringO{\al@input@scheme}))}\egroup%
  4699. \else%
  4700. \ifx\@tempa\al@mode@novoc%
  4701. \booltrue{al@rlmode}%
  4702. \bgroup\pardir TRT\textdir TRT\arabicfont%
  4703. \luadirect{tex.sprint(processnovoc(\luastringO{\BODY},
  4704. \luastringO{\al@arb@rules}, \luastringO{\al@input@scheme}))}\egroup%
  4705. \else%
  4706. \ifx\@tempa\al@mode@trans%
  4707. \bgroup\pardir TLT\textdir TLT\al@trans@font\al@trans@style%
  4708. \luadirect{tex.sprint(processtrans(\luastringO{\BODY},
  4709. \luastringO{\al@trans@convention},
  4710. \luastringO{\al@arb@rules},
  4711. \luastringO{\al@input@scheme}))}\egroup%
  4712. \else \fi\fi\fi\fi}[\par]
  4713. % \end{macrocode}
  4714. % \end{environment}
  4715. % \begin{environment}{arabverse}
  4716. % \changes{v1.6}{2016/12/17}{New environment \texttt{arabverse} for
  4717. % typesetting Arabic poetry} The |arabverse| environment may receive
  4718. % different options: |mode|, |width|, |gutter|, |metre|, |color|,
  4719. % |utf|, |delim| and |export|; all of them are defined here just
  4720. % before the |arabverse|
  4721. % environment. \changes{v1.13}{2018/08/27}{New options
  4722. % \texttt{color} and \texttt{export} to \texttt{arabverse}
  4723. % environment.}
  4724. % \begin{macrocode}
  4725. \newlength{\al@bayt@width}
  4726. \newlength{\al@gutter@width}
  4727. \setlength{\al@bayt@width}{.3\textwidth}
  4728. \setlength{\al@gutter@width}{.15\al@bayt@width}
  4729. \define@key[al]{verse}{width}{\setlength{\al@bayt@width}{#1}}
  4730. \define@key[al]{verse}{gutter}{\setlength{\al@gutter@width}{#1}}
  4731. \define@key[al]{verse}{metre}{\arb{#1}}
  4732. \define@key[al]{verse}{color}[]{\color{#1}}
  4733. \define@boolkey[al]{verse}{utf}[true]{}
  4734. \define@boolkey[al]{verse}{delim}[true]{}
  4735. \define@boolkey[al]{verse}{export}[true]{}
  4736. \define@choicekey[al]{verse}{mode}{fullvoc, voc, novoc,
  4737. trans}{\def\al@mode{#1}}
  4738. \presetkeys[al]{verse}{metre={}, utf=false,
  4739. delim=false}{}
  4740. % \end{macrocode}
  4741. % Then follows the environment itself:
  4742. % \begin{macrocode}
  4743. \NewDocumentEnvironment{arabverse}{O{}}%
  4744. {\bgroup\setkeys[al]{verse}[width, gutter, color, utf, delim,
  4745. metre]{#1}%
  4746. \if@pkg@export\ifal@verse@export%
  4747. \ArbOutFile{\begin{arabverse}}%
  4748. % \ifx\al@mode\al@mode@trans%
  4749. % \luadirect{tooutfile(\luastringN{[#1]})}%
  4750. % \else%
  4751. \IfSubStr[1]{#1}{utf}%
  4752. {\luadirect{tooutfile(\luastringN{[#1]})}}%
  4753. {\luadirect{tooutfile(\luastringN{[#1, utf]})}}%
  4754. % \fi
  4755. \else\fi\else\fi\egroup%
  4756. \par\centering\noindent\bgroup\setkeys[al]{verse}[metre]{#1}%
  4757. % \ifx\al@mode\al@mode@trans%
  4758. % \ifal@verse@utf\setRL\else\setLR\fi%
  4759. % \else\setRL\fi%
  4760. \ifal@verse@utf%
  4761. \ifx\al@mode\al@mode@trans\setLR\else\setRL\fi%
  4762. \else%
  4763. \ifx\al@mode\al@mode@trans\setLR\else\setRL\fi%
  4764. \fi%
  4765. \arab@v@export{#1}
  4766. }%
  4767. {\endarab@v@export
  4768. \hfill\setkeys[al]{verse}[width, gutter, color, utf, delim, mode,
  4769. export]{#1}%
  4770. \egroup\par%
  4771. \bgroup\setkeys[al]{verse}[width, gutter, color, utf, delim, mode,
  4772. metre]{#1}%
  4773. \if@pkg@export\ifal@verse@export%
  4774. \ArbOutFile{\end{arabverse}}
  4775. \else\fi\else\fi\egroup}
  4776. % \end{macrocode}
  4777. % \begin{macro}{\bayt}
  4778. % \changes{v1.6}{2016/12/17}{New macro \cs{bayt} for typesetting
  4779. % each verse inside the \texttt{arabverse} environment} Each verse
  4780. % consists of two hemistichs; therefore the \cs{bayt} command takes
  4781. % two arguments, the first receives the \arb[trans]{.sadr} and the
  4782. % second the \arb[trans]{`ajuz}. That two subsequent hemistichs
  4783. % should be connected with one another is technically named
  4784. % \arb[trans]{tadwIr}. In some of these cases, the hemistichs may be
  4785. % connected by a prominent horizontal flexible stroke which is drawn
  4786. % by the \cs{al@verse@stroke} command.
  4787. % \begin{macro}{\SetHemistichDelim}
  4788. % \changes{v1.6}{2016/12/17}{New \cs{SetHemistichDelim} command for
  4789. % changing the default delimiter between hemistichs} A hemistich
  4790. % delimiter also may be defined. By default, it is set to the
  4791. % \enquote*{star} character: |*|. The
  4792. % \cs{SetHemistichDelim}\marg{delimiter} command can be used at any
  4793. % point of the document to change this default setting.
  4794. % \end{macro}
  4795. % \begin{macrocode}
  4796. \NewDocumentCommand{\arb@utf}{m}{%
  4797. \ifal@verse@utf\txarb{#1}\else\arb{#1}\fi}
  4798. \def\al@hemistich@delim{*}
  4799. \NewDocumentCommand{\SetHemistichDelim}{m}{\def\al@hemistich@delim{#1}}
  4800. \def\al@verse@stroke{\leavevmode\xleaders\hbox{\arb{--}}\hfill\kern0pt}
  4801. \NewDocumentCommand{\bayt}{s m o m}{%
  4802. \IfBooleanTF{#1}{\relax}{\relax}%
  4803. \ifdefined\savenotes\savenotes\else\fi%
  4804. \edef\al@tatweel{--}%
  4805. \adjustbox{width=\al@bayt@width, height=\Height}{\arb@utf{#2}}%
  4806. \IfNoValueTF{#3}{%
  4807. \ifal@verse@delim\makebox[\al@gutter@width][c]{\al@hemistich@delim}%
  4808. \else%
  4809. \hspace{\al@gutter@width}%
  4810. \fi
  4811. }{%
  4812. \edef\@tempa{#3}%
  4813. \ifx\@tempa\al@tatweel%
  4814. \ifx\al@mode\al@mode@trans%
  4815. \hspace{\al@gutter@width}%
  4816. \else%
  4817. \makebox[\al@gutter@width][s]{\al@verse@stroke}%
  4818. \fi%
  4819. \else%
  4820. \ifx\al@mode\al@mode@trans%
  4821. \adjustbox{width=\al@gutter@width, height=\Height}{\arb@utf{#3}}%
  4822. \else%
  4823. \makebox[\al@gutter@width][s]{\arb@utf{#3}}%
  4824. \fi\fi}%
  4825. \adjustbox{width=\al@bayt@width, height=\Height}{\arb@utf{#4}}%
  4826. \ifdefined\spewnotes\spewnotes\else\fi%
  4827. }
  4828. % \end{macrocode}
  4829. % \end{macro}
  4830. % \end{environment}
  4831. % \begin{macro}{\abjad} \cs{abjad}\marg{number} expresses its argument
  4832. % in Arabic letters in accordance with the \arb[trans]{'abjad}
  4833. % arrangement of the alphabet. \meta{number} must be between 1 and
  4834. % 1999. It is now coded in Lua so that \package{polyglossia} is no
  4835. % longer needed. See |arabluatex.lua| for more information.
  4836. % \changes{v1.1}{2016/04/26}{New and more flexible \protect\cs{abjad}
  4837. % command.}
  4838. % \begin{macrocode}
  4839. \AtBeginDocument{%
  4840. \ifdefined\abjad%
  4841. \RenewDocumentCommand{\abjad}{m}%
  4842. {\ifbool{al@rlmode}%
  4843. {\oline*{\luadirect{tex.sprint(abjadify(\luastring{#1}))}}}
  4844. {\luadirect{tex.sprint(abjadify(\luastring{#1}))}}}
  4845. \else%
  4846. \NewDocumentCommand{\abjad}{m}%
  4847. {\ifbool{al@rlmode}%
  4848. {\oline*{\luadirect{tex.sprint(abjadify(\luastring{#1}))}}}
  4849. {\luadirect{tex.sprint(abjadify(\luastring{#1}))}}}
  4850. \fi}
  4851. % \end{macrocode}
  4852. % \end{macro}
  4853. % \begin{macro}{\ayah}\changes{v1.15}{2018/10/09}{Prints End of Ayah
  4854. % sign}\cs{ayah}\marg{number} prints up to 3-digit numbers inside
  4855. % \enquote*{end of Ayah} sign (|U+06DD|) or inside parentheses
  4856. % depending on the mode which is selected.
  4857. % \begin{macrocode}
  4858. \NewDocumentCommand{\ayah}{m}{%
  4859. \luadirect{tex.sprint(ayah(\luastringN{#1}))}}
  4860. % \end{macrocode}
  4861. % \end{macro}
  4862. %
  4863. % \begin{macro}{\arbnull}
  4864. % \changes{v1.7}{2016/12/24}{New \cs{arbnull} command for putting
  4865. % back on any contextual analysis rule broken by other commands.}
  4866. % The \cs{arbnull} command does nothing by itself. It is processed
  4867. % only if it is found in Arabic context so as to put back on
  4868. % contextual analysis in case it has been broken by other commands.
  4869. % \begin{macrocode}
  4870. \NewDocumentCommand{\arbnull}{m}{\relax}
  4871. % \end{macrocode}
  4872. % \end{macro}
  4873. % \begin{macro}{\abraces}
  4874. % \cs{abraces}\marg{Arabic text} puts its argument between
  4875. % braces. This macro is written in Lua and is dependent on the
  4876. % current value of |tex.textdir|.
  4877. % \changes{v1.4.3}{2016/09/14}{New \cs{abraces} command which
  4878. % expresses its argument between braces.}
  4879. % \begin{macrocode}
  4880. \NewDocumentCommand{\abraces}{+m}{%
  4881. \luadirect{tex.sprint(abraces(\luastringN{#1}))}}
  4882. % \end{macrocode}
  4883. % \end{macro}
  4884. % \begin{macro}{\LRmarginpar} \cs{LRmarginpar} is supposed to be
  4885. % inserted in an Arabic environment. It typsets his argument in a
  4886. % marginal note from left to right.
  4887. % \begin{macrocode}
  4888. \DeclareDocumentCommand{\LRmarginpar}{o m}{%
  4889. \IfNoValueTF{#1}
  4890. {\marginpar{\textdir TLT #2}}
  4891. {\marginpar[\textdir TLT #1]{\textdir TLT #2}}}
  4892. % \end{macrocode}
  4893. % \end{macro}
  4894. % \begin{macro}{\LRfootnote} \cs{LRfootnote} and \cs{RLfootnote} are
  4895. % supposed to be used in Arabic environments for insertions of non
  4896. % Arabic text. \cs{LRfootnote} typesets its argument left-to-right\ldots
  4897. % \begin{macro}{\RLfootnote} while \cs{RLfootnote} typesets its
  4898. % argument left-to-right.
  4899. % \begin{macrocode}
  4900. \DeclareDocumentCommand{\LRfootnote}{m}{\bgroup\pardir
  4901. TLT\textdir TLT\footnote{#1}\egroup}
  4902. \DeclareDocumentCommand{\RLfootnote}{m}{\bgroup\pardir
  4903. TRT\textdir TRT\footnote{#1}\egroup}
  4904. % \end{macrocode}
  4905. % \end{macro}
  4906. % \end{macro}
  4907. % \begin{macro}{\FixArbFtnmk} In the preamble, just below
  4908. % \cs{usepackage}|{arabluatex}|, \cs{FixArbFtnmk} may be of some
  4909. % help in case the footnote numbers at the bottom of the page are
  4910. % printed in the wrong direction. This quick fix uses and loads
  4911. % \package{scrextend} if it is not already loaded.
  4912. % \begin{macrocode}
  4913. \NewDocumentCommand{\FixArbFtnmk}{}{%
  4914. \@ifpackageloaded{scrextend}%
  4915. {\AtBeginDocument{\deffootnote{2em}{1.6em}{\LR{\thefootnotemark}.\enskip}}}%
  4916. {\RequirePackage{scrextend}
  4917. \AtBeginDocument{\deffootnote{2em}{1.6em}{\LR{\thefootnotemark}.\enskip}}}}
  4918. % \end{macrocode}
  4919. % \end{macro}
  4920. %
  4921. % \paragraph*{Exporting Unicode Arabic to external file}
  4922. % \begin{macro}{\SetArbOutSuffix}
  4923. % \changes{v1.13}{2018/08/27}{Sets a suffix to be appended to the
  4924. % filename of the external Unicode file.}By default, |_out| is the
  4925. % suffix to be appended to the external file in which
  4926. % \package{arabluatex} exports Unicode in place of
  4927. % |arabtex| or |buckwalter| strings. Any other suffix may be
  4928. % set with \cs{SetArbOutSuffix}\marg{suffix}.
  4929. % \begin{macrocode}
  4930. \NewDocumentCommand{\SetArbOutSuffix}{m}{
  4931. \luadirect{al_utffilesuffix(\luastringN{#1})}}
  4932. % \end{macrocode}
  4933. % \end{macro}
  4934. % \begin{macro}{\ArbOutFile}
  4935. % \changes{v1.13}{2018/08/27}{Silently exports its argument in the
  4936. % selected external file.}
  4937. % \cs{ArbOutFile}\oarg{newline}\marg{string} silently exports
  4938. % \meta{string} to the external selected file. It may take |newline|
  4939. % as an optional argument in which case a carriage return is
  4940. % appended to |string|.
  4941. % \begin{macro}{\ArbOutFile*}
  4942. % \cs{ArbOutFile*}\oarg{newline}\marg{string} does the same as
  4943. % \cs{ArbOutFile} but also inserts \meta{string} in the current
  4944. % |.tex| source file.
  4945. % \begin{macrocode}
  4946. \NewDocumentCommand{\ArbOutFile}{s O{no} +m}{%
  4947. \if@pkg@export%
  4948. \IfBooleanTF{#1}{%
  4949. #3\luadirect{tooutfile(\luastringN{#3}, "#2")}}{%
  4950. \luadirect{tooutfile(\luastringN{#3}, "#2")}}%
  4951. \else\IfBooleanTF{#1}{#3}{}\fi}
  4952. % \end{macrocode}
  4953. % \end{macro}
  4954. % \end{macro}
  4955. % \begin{environment}{arabexport}
  4956. % \changes{v1.13}{2018/08/27}{Processes and print its argument in
  4957. % the current file and exports it in full Unicode in the external
  4958. % selected \texttt{.tex} file.} The |arabexport| environment
  4959. % processes and prints its argument unchanged to the current |.pdf|
  4960. % file. Additionally, if \package{arabluatex} is loaded with the
  4961. % |export| option, this argument is exported to the external
  4962. % selected |.tex| file with Unicode in place of the original
  4963. % |arabtex| or |buckwalter| strings.
  4964. % \begin{macrocode}
  4965. \NewEnviron{arabexport}{%
  4966. \if@pkg@export%
  4967. \par
  4968. \BODY
  4969. \luadirect{al_doexport("yes")}
  4970. \luadirect{tex.sprint(arbtoutf(\luastringO{\BODY}))}
  4971. \luadirect{al_doexport("no")}
  4972. \else\par\BODY\fi
  4973. }[\par]
  4974. % \end{macrocode}
  4975. % \end{environment}
  4976. % \begin{environment}{arab@v@export} The |arab@v@export| environment
  4977. % does for |arabverse| the same as |arabexport|. It is used
  4978. % internally by |arabverse|.
  4979. % \begin{macrocode}
  4980. \NewEnviron{arab@v@export}[1]{%
  4981. \setkeys[al]{verse}[width, gutter, color, utf, delim, mode,
  4982. metre]{#1}
  4983. \if@pkg@export\ifal@verse@export%
  4984. \par
  4985. \BODY
  4986. \luadirect{al_doexport("arabverse")}
  4987. \luadirect{tex.sprint(arbtoutf(\luastringO{\BODY}))}
  4988. \luadirect{al_doexport("no")}
  4989. \else\par\BODY\fi\else\par\BODY\fi
  4990. }[\par]
  4991. % \end{macrocode}
  4992. % \end{environment}
  4993. % \begin{macro}{\arbpardir}
  4994. % \changes{v1.13}{2018/08/27}{Sets the direction of Arabic paragraphs
  4995. % once they are converted to Unicode.} \cs{arbpardir} is automatically
  4996. % inserted by \package{arabluatex} at the beginning of Arabic
  4997. % paragraphs converted to Unicode so that they are printed in the
  4998. % right direction.
  4999. % \begin{macrocode}
  5000. \NewDocumentCommand{\arbpardir}{}{%
  5001. \ifx\al@mode\al@mode@trans\setLR\else\setRL\fi}
  5002. % \end{macrocode}
  5003. % \end{macro}
  5004. %
  5005. % \subsection*{Errors and Warnings}
  5006. % \begin{macrocode}
  5007. \newcommand{\al@warning}[1]{\PackageWarning{arabluatex}{#1}}
  5008. \newcommand{\al@error}[2]{\PackageError{arabluatex}{#1}{#2}}
  5009. \newcommand{\al@wrong@nesting}{\al@error{%
  5010. (RL/LR)\string\footnote\space is not allowed\MessageBreak inside
  5011. \string\RL{} and \string\RL{} commands}{%
  5012. Get rid of the surrounding \string\RL{} or \string\LR{} command.}}
  5013. \newcommand{\al@wrong@mark}{\al@warning{%
  5014. Unknown Arabic mark in \string\arbmark{}. Replaced
  5015. with\MessageBreak <??>. Please check your code}}
  5016. % \end{macrocode}
  5017. %
  5018. % That is it. Say goodbye before leaving.
  5019. %
  5020. % \iffalse
  5021. %</package>
  5022. % \fi
  5023. %
  5024. % \subsection*{Patches}
  5025. % \label{sec:patches}
  5026. %
  5027. % \iffalse
  5028. %<*patch>
  5029. % \fi
  5030. % \begin{macrocode}
  5031. \NeedsTeXFormat{LaTeX2e}
  5032. \ProvidesPackage{arabluatex-patch}%
  5033. [2016/11/14 v1.0 patches for arabluatex]
  5034. % \end{macrocode}
  5035. % I have put in a separate |.sty| file external lines of code that
  5036. % I had to patch for a good reason. I hate doing this, and hopefully,
  5037. % most of these lines will disappear as soon as they are not required
  5038. % anymore.
  5039. %
  5040. % The following is taken from |latex.ltx|. I had to make this patch
  5041. % for I could not find a way to process the list environments in
  5042. % right-to-left mode. The {\LuaTeX} primitives \cs{bodydir} and
  5043. % \cs{pagedir} will eventually allow us to get rid of this:
  5044. % \begin{macrocode}
  5045. \def\list#1#2{%
  5046. \ifnum \@listdepth >5\relax
  5047. \@toodeep
  5048. \else
  5049. \global\advance\@listdepth\@ne
  5050. \fi
  5051. \rightmargin\z@
  5052. \listparindent\z@
  5053. \itemindent\z@
  5054. \csname @list\romannumeral\the\@listdepth\endcsname
  5055. \def\@itemlabel{#1}%
  5056. \let\makelabel\@mklab
  5057. \@nmbrlistfalse
  5058. #2\relax
  5059. \@trivlist
  5060. \parskip\parsep
  5061. \parindent\listparindent
  5062. \advance\linewidth -\rightmargin
  5063. \advance\linewidth -\leftmargin
  5064. % \end{macrocode}
  5065. % patch begins:
  5066. % \begin{macrocode}
  5067. \ifbool{al@rlmode}{\advance\@totalleftmargin \rightmargin}%
  5068. {\advance\@totalleftmargin \leftmargin}
  5069. % \end{macrocode}
  5070. % patch ends.
  5071. % \begin{macrocode}
  5072. \parshape \@ne \@totalleftmargin \linewidth
  5073. \ignorespaces}
  5074. \def\@item[#1]{%
  5075. \if@noparitem
  5076. \@donoparitem
  5077. \else
  5078. \if@inlabel
  5079. \indent \par
  5080. \fi
  5081. \ifhmode
  5082. \unskip\unskip \par
  5083. \fi
  5084. \if@newlist
  5085. \if@nobreak
  5086. \@nbitem
  5087. \else
  5088. \addpenalty\@beginparpenalty
  5089. \addvspace\@topsep
  5090. \addvspace{-\parskip}%
  5091. \fi
  5092. \else
  5093. \addpenalty\@itempenalty
  5094. \addvspace\itemsep
  5095. \fi
  5096. \global\@inlabeltrue
  5097. \fi
  5098. \everypar{%
  5099. \@minipagefalse
  5100. \global\@newlistfalse
  5101. \if@inlabel
  5102. \global\@inlabelfalse
  5103. {\setbox\z@\lastbox
  5104. \ifvoid\z@
  5105. \kern-\itemindent
  5106. \fi}%
  5107. \box\@labels
  5108. \penalty\z@
  5109. \fi
  5110. \if@nobreak
  5111. \@nobreakfalse
  5112. \clubpenalty \@M
  5113. \else
  5114. \clubpenalty \@clubpenalty
  5115. \everypar{}%
  5116. \fi}%
  5117. \if@noitemarg
  5118. \@noitemargfalse
  5119. \if@nmbrlist
  5120. \refstepcounter\@listctr
  5121. \fi
  5122. \fi
  5123. % \end{macrocode}
  5124. % patch begins:
  5125. % \begin{macrocode}
  5126. \ifbool{al@rlmode}{\sRLbox\@tempboxa{\makelabel{#1}}}{%
  5127. \sbox\@tempboxa{\makelabel{#1}}}%
  5128. \ifbool{al@rlmode}{\global\setbox\@labels\hbox dir TRT}%
  5129. {\global\setbox\@labels\hbox}{%
  5130. % \end{macrocode}
  5131. % patch ends.
  5132. % \begin{macrocode}
  5133. \unhbox\@labels
  5134. \hskip \itemindent
  5135. \hskip -\labelwidth
  5136. \hskip -\labelsep
  5137. \ifdim \wd\@tempboxa >\labelwidth
  5138. \box\@tempboxa
  5139. \else
  5140. \hbox to\labelwidth {\unhbox\@tempboxa}%
  5141. \fi
  5142. \hskip \labelsep}%
  5143. \ignorespaces}
  5144. % \end{macrocode}
  5145. % This is adapted from Vafa Khalighi's \package{bidi} package. Thanks
  5146. % to him.
  5147. % \begin{macrocode}
  5148. \long\def\sRLbox#1#2{\setbox#1\hbox dir TRT{%
  5149. \color@setgroup#2\color@endgroup}}
  5150. % \end{macrocode}
  5151. %
  5152. % \iffalse
  5153. %</patch>
  5154. % \fi
  5155. %
  5156. % \Finale
  5157. \endinput