%% %% This is file `arabluatex.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% arabluatex.dtx (with options: `package') %% %% This is a generated file. %% %% This file is part of the `arabluatex' package %% %% ArabLuaTeX -- Processing ArabTeX notation under LuaLaTeX %% Copyright (C) 2016--2017 Robert Alessi %% %% Please send error reports and suggestions for improvements to Robert %% Alessi %% %% This program is free software: you can redistribute it and/or modify %% it under the terms of the GNU General Public License as published by %% the Free Software Foundation, either version 3 of the License, or %% (at your option) any later version. %% %% This program is distributed in the hope that it will be useful, but %% WITHOUT ANY WARRANTY; without even the implied warranty of %% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %% General Public License for more details. %% %% You should have received a copy of the GNU General Public License %% along with this program. If not, see %% . %% %% This release of 'arabluatex' consists of the following source files: %% - arabluatex.ins %% - arabluatex.dtx %% - arabluatex.lua %% - arabluatex_voc.lua %% - arabluatex_fullvoc.lua %% - arabluatex_novoc.lua %% - arabluatex_trans.lua %% \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{arabluatex}% [2017/01/08 v1.7.1 An ArabTeX-like interface for LuaLaTeX] \RequirePackage{ifluatex} \ifluatex\else \PackageError{arabluatex}{lualatex needed}{% Package `arabluatex' needs LuaTeX.\MessageBreak So you should use `lualatex' to process your document.\MessageBreak See documentation of `arabluatex' for further information.}% \expandafter\expandafter\expandafter\csname endinput\endcsname \fi \DeclareOption{voc}{\def\al@mode{voc}} \DeclareOption{fullvoc}{\def\al@mode{fullvoc}} \DeclareOption{novoc}{\def\al@mode{novoc}} \DeclareOption{trans}{\def\al@mode{trans}} \ExecuteOptions{voc} \ProcessOptions\relax \def\al@mode@voc{voc} \def\al@mode@fullvoc{fullvoc} \def\al@mode@novoc{novoc} \def\al@mode@trans{trans} \RequirePackage{etoolbox} \RequirePackage{arabluatex-patch} \RequirePackage{fontspec} \RequirePackage{amsmath} \RequirePackage{luacode} \RequirePackage{xparse} \RequirePackage{environ} \RequirePackage{adjustbox} \RequirePackage{xkeyval} \newbool{al@rlmode} \luadirect{dofile(kpse.find_file("arabluatex.lua"))} \luadirect{tex.enableprimitives("luatex",tex.extraprimitives("omega"))} \AtBeginDocument{\ifdefined\arabicfont\relax\else \PackageWarning{arabluatex}{\string\arabicfont\ is not defined.^^JI will try to load Amiri}% \newfontfamily\arabicfont[Script=Arabic]{Amiri}\fi}% \AtBeginDocument{\def\setRL{\booltrue{al@rlmode}\pardir TRT\textdir TRT}} \AtBeginDocument{\def\setLR{\boolfalse{al@rlmode}\pardir TLT\textdir TLT}} \AtBeginDocument{\ifdef{\LR}% {\RenewDocumentCommand{\LR}{m}{\bgroup\textdir TLT\rmfamily#1\egroup}} {\NewDocumentCommand{\LR}{m}{\bgroup\textdir TLT\rmfamily#1\egroup}}} \AtBeginDocument{\ifdef{\RL}% {\RenewDocumentCommand{\RL}{m}{\bgroup\textdir TRT\rmfamily#1\egroup}} {\NewDocumentCommand{\RL}{m}{\bgroup\textdir TRT#1\rmfamily\egroup}}} \AtBeginDocument{\ifdef{\aemph}% {\RenewDocumentCommand{\aemph}{m}{$\overline{\text{#1}}$}} {\NewDocumentCommand{\aemph}{m}{$\overline{\text{#1}}$}}} \def\al@input@scheme{arabtex} \NewDocumentCommand{\SetInputScheme}{m}{\def\al@input@scheme{#1}} \def\al@arb@rules{dflt} \NewDocumentCommand{\SetArbEasy}{s}{% \IfBooleanTF{#1} {\def\al@arb@rules{easynosukun}} {\def\al@arb@rules{easy}}} \NewDocumentCommand{\SetArbDflt}{s}{% \IfBooleanTF{#1} {\def\al@arb@rules{idgham}} {\def\al@arb@rules{dflt}}} \def\al@trans@font{\rmfamily}% \NewDocumentCommand{\SetTranslitFont}{m}{\def\al@trans@font{#1}} \def\al@trans@style{\itshape}% \NewDocumentCommand{\SetTranslitStyle}{m}{\def\al@trans@style{#1}} \def\al@trans@convention{dmg} \NewDocumentCommand{\SetTranslitConvention}{m}{\def\al@trans@convention{#1}} \NewDocumentCommand{\al@arbup@dflt}{m}{\textsuperscript{\thinspace#1}}% \NewDocumentCommand{\al@arbup}{m}{\al@arbup@dflt{#1}} \NewDocumentCommand{\arbup}{m}{\al@arbup{#1}} \NewDocumentCommand{\ArbUpDflt}{}{\let\al@arbup=\al@arbup@dflt} \NewDocumentCommand{\NoArbUp}{}{\RenewDocumentCommand{\al@arbup}{m}{##1}} \NewDocumentCommand{\SetArbUp}{m}{\RenewDocumentCommand{\al@arbup}{m}{#1}} \DeclareDocumentCommand{\cap}{m}% {\luadirect{tex.sprint(cap(\luastringN{#1}))}} \DeclareDocumentCommand{\txarb}{+m}{\bgroup\textdir TRT\arabicfont#1\egroup} \DeclareDocumentCommand{\txtrans}{+m}{\bgroup\textdir TLT\al@trans@font#1\egroup} \NewDocumentEnvironment{txarab}{}{% \par% \booltrue{al@rlmode}% \pardir TRT\textdir TRT\arabicfont}{\par} \DeclareDocumentCommand{\arb}{O{\al@mode} +m}% {\edef\@tempa{#1}% \ifx\@tempa\al@mode@voc% \bgroup\textdir TRT\arabicfont% \luadirect{tex.sprint(processvoc(\luastringN{#2}, \luastringO{\al@arb@rules}, \luastringO{\al@input@scheme}))}\egroup% \else% \ifx\@tempa\al@mode@fullvoc% \bgroup\textdir TRT\arabicfont% \luadirect{tex.sprint(processfullvoc(\luastringN{#2}, \luastringO{\al@arb@rules}, \luastringO{\al@input@scheme}))}\egroup% \else% \ifx\@tempa\al@mode@novoc% \bgroup\textdir TRT\arabicfont% \luadirect{tex.sprint(processnovoc(\luastringN{#2}, \luastringO{\al@arb@rules}, \luastringO{\al@input@scheme}))}\egroup% \else% \ifx\@tempa\al@mode@trans% \bgroup\textdir TLT\al@trans@style% \luadirect{tex.sprint(processtrans(\luastringN{#2}, \luastringO{\al@trans@convention}, \luastringO{\al@arb@rules}, \luastringO{\al@input@scheme}))}\egroup% \else% \fi\fi\fi\fi} \NewEnviron{arab}[1][\al@mode]% {\par\edef\@tempa{#1}% \ifx\@tempa\al@mode@voc% \booltrue{al@rlmode}% \bgroup\pardir TRT\textdir TRT\arabicfont% \luadirect{tex.sprint(processvoc(\luastringO{\BODY}, \luastringO{\al@arb@rules}, \luastringO{\al@input@scheme}))}\egroup% \else% \ifx\@tempa\al@mode@fullvoc% \booltrue{al@rlmode}% \bgroup\pardir TRT\textdir TRT\arabicfont% \luadirect{tex.sprint(processfullvoc(\luastringO{\BODY}, \luastringO{\al@arb@rules}, \luastringO{\al@input@scheme}))}\egroup% \else% \ifx\@tempa\al@mode@novoc% \booltrue{al@rlmode}% \bgroup\pardir TRT\textdir TRT\arabicfont% \luadirect{tex.sprint(processnovoc(\luastringO{\BODY}, \luastringO{\al@arb@rules}, \luastringO{\al@input@scheme}))}\egroup% \else% \ifx\@tempa\al@mode@trans% \bgroup\pardir TLT\textdir TLT\al@trans@style% \luadirect{tex.sprint(processtrans(\luastringO{\BODY}, \luastringO{\al@trans@convention}, \luastringO{\al@arb@rules}, \luastringO{\al@input@scheme}))}\egroup% \else \fi\fi\fi\fi}[\par] \newlength{\al@bayt@width} \newlength{\al@gutter@width} \setlength{\al@bayt@width}{.3\textwidth} \setlength{\al@gutter@width}{.15\al@bayt@width} \define@key[al]{verse}{width}{\setlength{\al@bayt@width}{#1}} \define@key[al]{verse}{gutter}{\setlength{\al@gutter@width}{#1}} \define@key[al]{verse}{metre}{\arb{#1}} \define@boolkey[al]{verse}{utf}[true]{} \define@boolkey[al]{verse}{delim}[true]{} \define@choicekey[al]{verse}{mode}{fullvoc, voc, novoc, trans}{\def\al@mode{#1}} \presetkeys[al]{verse}{metre=\LR{\vskip -\baselineskip}, utf=false, delim=false}{} \NewDocumentEnvironment{arabverse}{O{}}% {\par\centering\noindent\bgroup\setkeys[al]{verse}[metre]{#1}% \ifx\al@mode\al@mode@trans% \ifal@verse@utf\setRL\else\setLR\fi% \else\setRL\fi}% {\hfill\setkeys[al]{verse}[width,gutter,utf,mode]{#1}\egroup} \NewDocumentCommand{\arb@utf}{m}{% \ifal@verse@utf\txarb{#1}\else\arb{#1}\fi} \def\al@hemistich@delim{*} \NewDocumentCommand{\SetHemistichDelim}{m}{\def\al@hemistich@delim{#1}} \def\al@verse@stroke{\leavevmode\xleaders\hbox{\arb{--}}\hfill\kern0pt} \NewDocumentCommand{\bayt}{m o m}{% \ifdefined\savenotes\savenotes\else\fi% \edef\al@tatweel{--}% \adjustbox{width=\al@bayt@width, height=\Height}{\arb@utf{#1}}% \IfNoValueTF{#2}{% \ifal@verse@delim\makebox[\al@gutter@width][c]{\al@hemistich@delim}% \else% \hspace{\al@gutter@width}% \fi }{% \edef\@tempa{#2}% \ifx\@tempa\al@tatweel% \ifx\al@mode\al@mode@trans% \hspace{\al@gutter@width}% \else% \makebox[\al@gutter@width][s]{\al@verse@stroke}% \fi% \else% \ifx\al@mode\al@mode@trans% \adjustbox{width=\al@gutter@width, height=\Height}{\arb@utf{#2}}% \else% \makebox[\al@gutter@width][s]{\arb@utf{#2}}% \fi\fi}% \adjustbox{width=\al@bayt@width, height=\Height}{\arb@utf{#3}}% \ifdefined\spewnotes\spewnotes\else\fi% } \AtBeginDocument{% \ifdefined\abjad% \RenewDocumentCommand{\abjad}{m}% {\luadirect{tex.sprint(abjadify(#1))}}% \else% \NewDocumentCommand{\abjad}{m}% {\luadirect{tex.sprint(abjadify(#1))}} \fi} \NewDocumentCommand{\arbnull}{m}{\relax} \NewDocumentCommand{\abraces}{+m}{% \luadirect{tex.sprint(abraces(\luastringN{#1}))}} \DeclareDocumentCommand{\LRmarginpar}{m}{\marginpar{\textdir TLT #1}} \DeclareDocumentCommand{\LRfootnote}{m}{\bgroup\pardir TLT\LR{\footnote{#1}}\egroup} \DeclareDocumentCommand{\RLfootnote}{m}{\bgroup\pardir TRT\LR{\footnote{#1}}\egroup} \NewDocumentCommand{\FixArbFtnmk}{}{% \@ifpackageloaded{scrextend}% {\AtBeginDocument{\deffootnote{2em}{1.6em}{\LR{\thefootnotemark}.\enskip}}}% {\RequirePackage{scrextend} \AtBeginDocument{\deffootnote{2em}{1.6em}{\LR{\thefootnotemark}.\enskip}}}} \endinput %% %% End of file `arabluatex.sty'.