arabluatex.dtx 226 KB

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