% \iffalse meta-comment
%
% धारिका: linguistix-marathi.dtx
%
% ----------------------------------------------------------
% लाटेक् आज्ञासंच LinguisTiX v1.0
% प्रतिमुद्राधिकार © २०२५, २०२६ निरंजन
%
% ही आज्ञावली मुक्त आहे: तुम्ही तिचे पुनर्वितरण करू शकता आणि/अथवा
% तिच्यात फ्री सॉफ्टवेअर फाऊन्डेशनने प्रकाशित केलेल्या ग्नू जनरल पब्लिक
% परवाना आवृत्ती ३ अथवा (तुमच्या पसंतीनुसार) त्यापुढील कोणतीही
% आवृत्तीतील अटींचे पालन करत फेरबदलदेखील करू शकता.
%
% ही आज्ञावली उपयुक्त ठरेल अशा आशेने वितरित केली जात आहे, परंतु
% कोणत्याही प्राश्वासनाशिवाय, अगदी आज्ञावलीच्या सुव्यवस्थिततेबाबतचे
% प्राश्वासनदेखील नाही. अधिक माहितीकरिता ग्नू जनरल पब्लिक
% परवान्याचा मसुदा पाहा.
%
% तुम्हाला ह्या आज्ञावलीसोबत ग्नू जनरल पब्लिक परवान्याची एक प्रत
% मिळाली असेल. जर तसे नसेल, तर पुढील दुव्यास भेट द्या:
% <https://www.gnu.org/licenses/>.
% ----------------------------------------------------------
%
% \fi
% \iffalse
%<*driver>
\documentclass{l3doc}
\usepackage{linguistix}
\usepackage{xcolor}
\usepackage{fontawesome5}
\usepackage[verbose=silent]{microtype}
\usepackage{cleveref}
\usepackage{hyperxmp}

\setquotestyle{british}

\linguistix{old style one}
\loadlanguages{marathi,british}

\colorlet{lngxredcolor}{red!50!black}
\colorlet{lngxgreencolor}{green!50!black}
\colorlet{lngxbluecolor}{blue!50!black}

\urlstyle{tt}

\hypersetup{%
  unicode,%
  colorlinks,%
  linkcolor              = {lngxredcolor},
  citecolor              = {lngxgreencolor},
  urlcolor               = {lngxbluecolor},
  pdftitle               = {linguistix-marathi},%
  pdfauthor              = {निरंजन},%
  pdfsubject             = {मराठी (Marathi)},%
  pdfcreator             = {निरंजन},%
  pdfkeywords            = {Linguistics, LaTeX},%
  pdfcopyright           = {%
    लाटेक् आज्ञासंच LinguisTiX\textLF
    प्रतिमुद्राधिकार © २०२५, २०२६ निरंजन\textLF
    ही आज्ञावली मुक्त आहे: तुम्ही तिचे पुनर्वितरण करू शकता आणि/अथवा
    तिच्यात फ्री सॉफ्टवेअर फाऊन्डेशनने प्रकाशित केलेल्या ग्नू जनरल पब्लिक
    परवाना आवृत्ती ३ अथवा (तुमच्या पसंतीनुसार) त्यापुढील कोणतीही
    आवृत्तीतील अटींचे पालन करत फेरबदलदेखील करू शकता.%
  },%
  pdflicenseurl          = {gnu.org/licenses/gpl-3.0.html}%
}%

\ExplSyntaxOn
\msg_redirect_name:nnn { l3doc }
                       { foreign-internal }
                       { none }
\ExplSyntaxOff

\makeatletter
\NewDocumentCommand \supportfootnote { +m } {%
  \begingroup
  \def\thefootnote{}%
  \let\@makefntext\relax
  \def\Hy@Warning##1{}%
  \footnotetext{%
    \hspace*{-\parindent}%
    #1%
  }%
  \endgroup
}
\makeatother
\ओळींतीलअंतर{1.3}

\begin{document}
\DocInput{\jobname.dtx}
\end{document}
%</driver>
% \fi
% \title{मराठी\,--\,\lngxmarathilogo}
% \author{निरंजन}
% \date{^^A
%   \today\
%   (आवृत्ती \foreignlanguage{british}{v1.0})\\[1ex]^^A
%   {^^A
%     \small\faIcon{home}\quad
%     \foreignlanguage{british}{^^A
%       \url{^^A
%         https://ctan.org/pkg/linguistix^^A
%       }\\[0.5ex]^^A
%       \small\faIcon{git-alt}\quad
%       \url{^^A
%         https://puszcza.gnu.org.ua/projects/linguistix^^A
%       }\\[0.5ex]^^A
%       \small\faIcon[regular]{comments}\quad
%       \url{^^A
%         https://matrix.to/\#/\#linguistix:matrix.org^^A
%       }^^A
%     }^^A
%   }^^A
% }
% 
% \maketitle
%
% \supportfootnote{^^A
%   लाटेक् आज्ञासंच \lngxpkg
%
%   \noindent
%   प्रतिमुद्राधिकार © २०२५, २०२६ निरंजन
%
%   ही आज्ञावली मुक्त आहे: तुम्ही तिचे पुनर्वितरण करू शकता आणि/अथवा
%   तिच्यात फ्री सॉफ्टवेअर फाऊन्डेशनने प्रकाशित केलेल्या ग्नू जनरल पब्लिक
%   परवाना आवृत्ती ३ अथवा (तुमच्या पसंतीनुसार) त्यापुढील कोणतीही
%   आवृत्तीतील अटींचे पालन करत फेरबदलदेखील करू शकता.
%   
%   ही आज्ञावली उपयुक्त ठरेल अशा आशेने वितरित केली जात आहे, परंतु
%   \textbf{कोणत्याही प्राश्वासनाशिवाय}, अगदी \textbf{आज्ञावलीच्या
%   सुव्यवस्थिततेबाबतचे प्राश्वासनदेखील नाही}. अधिक माहितीकरिता ग्नू
%   जनरल पब्लिक परवान्याचा मसुदा पाहा.
%   
%   तुम्हाला ह्या आज्ञावलीसोबत ग्नू जनरल पब्लिक परवान्याची एक प्रत
%   मिळाली असेल. जर तसे नसेल, तर पुढील दुव्यास भेट द्या:
%   \url{https://www.gnu.org/licenses/}.^^A
% }
%
% ह्या आज्ञासंचात फार तुरळक आज्ञांचा समावेश आहे. त्यांविषयीचे स्पष्टीकरण
% आपण त्यांची घडण जिथे आहे तिथेच पाहू.
%
%   \begin{implementation}
% \selectlanguage{british}
%    \begin{macrocode}
%<*marathi>
\ProvidesExplPackage{linguistix-marathi}
                    {2026-05-15}
                    {v1.0}
                    {मराठी (Marathi)}
%    \end{macrocode}
% \selectlanguage{marathi}
% अक्षरांच्या ओळींमधील अंतर कायम पूर्णांकात सांगता येईल असे नाही,
% त्यामुळे मी इथे तरंगत्या दशांशचिन्हाचा अंक साठवू शकणारे चल घोषित
% करतो. लाटेक्-३ ह्या आज्ञावलिलेखनाच्या चौकटीत चलपदांच्या लेखनाकरिता
% पुढील मुख्य नियमांचा समावेश होतो.
%
% \begin{itemize}
% \item चलपदाची सुरुवात
%   \foreignlanguage{british}{|g|}
%   (\foreignlanguage{british}{‘global’} , सार्वत्रिक),
%   \foreignlanguage{british}{|l|}
%   (\foreignlanguage{british}{‘local’}, मर्यादित), व
%   \foreignlanguage{british}{|c|}
%   (\foreignlanguage{british}{‘constant’}, अचल) ह्या
%   व्याप्तिदर्शकांनी करावी.
% \item व्याप्तिदर्शकानंतर आज्ञावलीच्या खंडाचे नाव लिहावे, उदा.,
%   ‘मराठी’. हे यादृच्छिक असू शकते, परंतु ह्याचा वापर सर्व चलपदांसाठी
%   नियमितपणे केला गेला पाहिजे.
% \item शेवट चलपदाच्या वर्गनामाने करावा, उदा.,
%   \foreignlanguage{british}{|tl|},
%   \foreignlanguage{british}{|fp|},
%   \foreignlanguage{british}{|clist|} (चलपदांच्या
%   वर्गनामांविषयी अधिक जाणून घेण्याकरिता
%   \foreignlanguage{british}{|source3.pdf|}
%   ही पुस्तिका पाहा).
% \end{itemize}
%
% आता आपण ह्या नियमांचा वापर करत, काही चलपदे घोषित करूया.
% 
% \selectlanguage{british}
%    \begin{macrocode}

\fp_gzero_new:N \g_मराठी_शब्दांतील_अंतर_fp
\fp_gzero_new:N \g_मराठी_ओळींतील_अंतर_fp
%    \end{macrocode}
% \selectlanguage{marathi}
% पुढील आज्ञा एक कार्यघटक घेते व तो ‘|शब्दांतील अंतर|’ ह्या प्राचलास
% पुरवते. हे प्राचल दोन शब्दांमधील अंतर निश्चित करते. ह्या हस्तपुस्तिकेत
% मुक्त ह्या टंकातील क्रियापूर्व अंतर बदलून ते किंचित वाढवण्यात आले आहे.
% \selectlanguage{british}
%    \begin{macrocode}

\cs_new_protected:Npn \मराठी_शब्दांतील_अंतर:n #1 {
  \lngx_set_keys:n { शब्दांतील~ अंतर = { #1 } }
}

\cs_gset_eq:NN \शब्दांतीलअंतर \मराठी_शब्दांतील_अंतर:n
%    \end{macrocode}
% \selectlanguage{marathi}
% पुढील आज्ञा \cs{g_मराठी_ओळींतील_अंतर_fp} ह्या सार्वत्रिक चलपदाची
% किंमत निश्चित करते आणि ती किंमत वापरून ओळींमधील अंतर बदलते.
% ओळींमधील अंतर बदलण्यासाठी
% \foreignlanguage{british}{\cs{setstretch}}
% ही आज्ञा आपण वापरू. जर
% \foreignlanguage{british}{\cls{memoir}}
% हा आज्ञावर्ग वापरला गेला असेल, तर त्याअंतर्गत ओळींतील अंतर
% बदलण्याच्या काही पद्धती उपलब्ध आहेत. आपण त्यांचा वापर करू.
% \selectlanguage{british}
%    \begin{macrocode}

\cs_new_protected:Npn \मराठी_ओळींतील_अंतर:n #1 {
  \fp_gset:Nn \g_मराठी_ओळींतील_अंतर_fp { #1 }
  \IfClassLoadedTF { memoir } {
    \setSingleSpace {
      \fp_use:N \g_मराठी_ओळींतील_अंतर_fp
    }
    \SingleSpacing
  } {
    \setstretch {
      \fp_use:N \g_मराठी_ओळींतील_अंतर_fp
    }
  }
}

\cs_gset_eq:NN \ओळींतीलअंतर \मराठी_ओळींतील_अंतर:n
%    \end{macrocode}
% \selectlanguage{marathi}
% आज्ञांहून जास्त प्रचलित असलेल्या व पुष्कळ सुलभ अशा प्राचल-किमतीच्या
% पद्धतीची घडण पुढीलप्रमाणे करण्यात आली आहे. मुक्त टंकाच्या क्रियापूर्व
% शब्दांमधील अंतराच्या सव्वा पट अंतर इथे वापरले जात आहे.
% \selectlanguage{british}
%    \begin{macrocode}

\keys_define:nn { lngx_keys } {
  शब्दांतील~ अंतर
  .fp_gset:N             = \g_मराठी_शब्दांतील_अंतर_fp,
  शब्दांतील~ अंतर
  .initial:n             = { 1 },
  ओळींतील~ अंतर
  .fp_gset:N             = \g_मराठी_ओळींतील_अंतर_fp,
  ओळींतील~ अंतर
  .initial:n             = { 1.1 }
}
%    \end{macrocode}
% \selectlanguage{marathi}
% \foreignlanguage{british}{\pkg{babel}}
% ह्या आज्ञासंचातर्फे \foreignlanguage{british}{\cs{extrasxxxx}}
% ही आज्ञा पुरवली जाते व त्यासह विशिष्ट भाषेचा वापर जेव्हा केला जातो
% तेव्हा तिच्यासह कोणत्या आज्ञा पुरवल्या जाव्यात हे निश्चित केले जाते.
% \foreignlanguage{british}{|xxxx|}ऐवजी त्या भाषेचे नाव लिहून,
% ह्या आज्ञेच्या कार्यघटकात आपण उर्वरित आज्ञा लिहू.
% \selectlanguage{british}
%    \begin{macrocode}

\addto { \extrasmarathi } {
%    \end{macrocode}
% \selectlanguage{marathi}
% लाटेक्-च्या नवीन आवृत्त्यांमध्ये खोबण
% \foreignlanguage{british}{(socket)} व बूच
% \foreignlanguage{british}{(plug)}
% ही जोडी प्रकाशित झाली आहे. लाटेक्-च्या संदर्भात खोबण ही एक अशी
% जागा आहे जिच्यात निरनिराळी बुचे वापरता येऊ शकतात, परंतु एका वेळी,
% एका खोबणीत एकच बूच वापरले जाऊ शकते. वेगवेगळी बुचे वेगवेगळी
% आज्ञावली साठवू शकतात आणि त्यांच्यातल्या एकाची निवड केली जाऊन
% खोबण भरली जाऊ शकते. जर बूच बदलले, तर खोबणीतून आधीच्या
% बुचाची संपूर्ण आज्ञावली हटवली जाते. इथे हे नोंदवले जाणे आवश्यक आहे
% की एका आज्ञावलीने दुसऱ्या आज्ञावलीतल्या गोष्टी बदलणे व एक आज्ञावली
% संपूर्णतः बाद होऊन तिच्या जागी दुसरी येणे ह्या दोन वेगळ्या गोष्टी आहेत
% व त्यांचे तांत्रिक परिणाम वेगळे आहेत. विविध भाषांच्या संख्यालेखनाच्या
% पद्धतींचा वापर लाटेक्-मध्ये करता यावा ह्यासाठी
% \lngxlanguageslogo\ आज्ञासंचाद्वारे
% \foreignlanguage{british}{|native-numbering|}
% ही खोबण पुरवण्यात आली आहे. तिचा वापर मी इथे करतो.
% \selectlanguage{british}
%    \begin{macrocode}
  \socket_use:n { lngx / native-numbering }
%    \end{macrocode}
% \selectlanguage{marathi}
% लाटेक् खंडांच्या आकड्यांसाठी रोमी पद्धतीतील आकडे वापरते, उदा.,
% \foreignlanguage{british}{XII}. ह्या आकड्यांचा वापर मराठी
% लेखनात होत नाही. त्यामुळे मी
% \foreignlanguage{british}{\cs{lngx_counter:n}} ह्या आज्ञेचा
% वापर करून, तिथे देवनागरी आकडे वापरतो.
% \selectlanguage{british}
%    \begin{macrocode}
  \cs_set:Npn \thepart { \lngx_counter:n { part } }
%    \end{macrocode}
% \selectlanguage{marathi}
% लाटेक् अनुक्रमित पोटयाद्यांमध्ये इंग्रजी आकडे, रोमी आकडे व लॅटिन
% लिपीतील अक्षरे ह्यांचा वापर करते. अनुक्रमाच्या ह्या पद्धती मराठीत
% प्रचलित नाहीत. त्यामुळे मी ह्या सर्व पद्धतींऐवजी मराठीत अधिक रूढ
% असलेली अंक लिहिण्याची पद्धत वापरतो. उदा., १, १.१, १.१.१ इ.
% \selectlanguage{british}
%    \begin{macrocode}
  \cs_set:Npn \theenumi {
    \exp_not:N \lngx_counter:n { enumi }
  }
  \cs_set:Npn \theenumii {
    \exp_not:n {
      \lngx_counter:n { enumi } .
      \lngx_counter:n { enumii }
    }
  }
%    \end{macrocode}
% \selectlanguage{marathi}
% अनुक्रमित यादीच्या प्रत्येक आकड्यानंतर लाटेक् बिंदू वापरते. पोटयादीत
% अक्षराभोवती कंस वापरते. हा भेद मराठीत आवश्यक नाही. त्यामुळे सगळीकडे
% आकडे व आकड्यांनंतर बिंदू ही एकच शैली मी इथे निवडतो. पहिल्या
% स्तरावरील यादीत हा बिंदू आपसूक येतो, त्यामुळे मी त्याला धक्का लावलेला
% नाही.
% \selectlanguage{british}
%    \begin{macrocode}
  \cs_set:Npn \labelenumii { \theenumii . }
  \cs_set:Npn \theenumiii {
    \exp_not:n {
      \lngx_counter:n { enumi } .
      \lngx_counter:n { enumii } .
      \lngx_counter:n { enumiii }
    }
  }
  \cs_set:Npn \labelenumiii { \theenumiii . }
  \cs_set:Npn \theenumiv {
    \exp_not:n {
      \lngx_counter:n { enumi } .
      \lngx_counter:n { enumii } .
      \lngx_counter:n { enumiii } .
      \lngx_counter:n { enumiv }
    }
  }
  \cs_set:Npn \labelenumiv { \theenumiv . }
%    \end{macrocode}
% \selectlanguage{marathi}
% भाषावैज्ञानिक उदाहरणे लिहिण्यासाठी वापरल्या जाणाऱ्या
% \foreignlanguage{british}{\pkg{expex}} ह्या आज्ञासंचाची आकडे
% छापण्याची एक विशिष्ट पद्धत आहे. ती लाटेक्-च्या आकडेवारीच्या
% आज्ञावलीचा वापर करत नाही, त्यामुळे त्या यादीसाठी काही आकडे
% वेगळ्यानेच तयार करावे लागतात. ती यादी मी इथे देतो. तिला मी
% देवनागरी असे नाव देतो. ह्या सर्वच आज्ञा \cs{lngx_misc_reset:}
% आज्ञेच्या प्रयोगानंतर अक्षम होतात. ह्याबाबत अधिक माहिती हवी
% असल्यास |linguistix.pdf| पाहा.
% \selectlanguage{british}
%    \begin{macrocode}
  \IfPackageLoadedT { expex } {
    \definelabeltype { देवनागरी } {
      labelgen                 = { list },
      labellist                = {
        अ, आ, इ, ई,
        उ, ऊ, ए, ऐ,
        ओ, औ, अं, अः,
        ॲ, ऋ, ॠ, ऌ, ॡ, ऑ
      },
      labelformat              = {A.},
      fullrefformat            = {XA},
      labelalign               = {left},
      labelwidth               = {1.5em}
    }
    \lingset {
      labeltype                = { देवनागरी }
    }
  }
%    \end{macrocode}
% \selectlanguage{marathi}
% मराठीत
% \foreignlanguage{british}{Italic}
% वि.\
% \foreignlanguage{british}{Upright}
% हा दृश्यभेद नाही. हा लॅटिनविशिष्ट भेद आहे, परंतु एखाद गोष्ट ठळकपणे
% सांगण्यासाठी लाटेक्-मध्ये
% \foreignlanguage{british}{\cs{emph}} ही आज्ञा पुरवली आहे.
% इंग्रजी लेखनपरंपरेनुसार अशा वेळी Italic वळणाचा वापर होतो. हे
% मराठीसाठी सयुक्तिक नसल्यामुळे, मी
% \foreignlanguage{british}{Italic}ऐवजी ठळक ठशाचा वापर इथे
% करतो.
% \selectlanguage{british}
%    \begin{macrocode}
  \cs_set_eq:NN \emph \textbf
}
%    \end{macrocode}
% \selectlanguage{marathi}
% आता मी
% \foreignlanguage{british}{|native numbering|}
% ह्या खोबणीकरिता
% \foreignlanguage{british}{|strict|}
% हे बूच वापरतो. जेव्हा मराठी ही मुख्य भाषा असते, तेव्हाच हा बदल केला
% जातो. एरवी त्याची तितकी निकड नाही.
% \selectlanguage{british}
%    \begin{macrocode}

\tl_if_eq:NnTF \g_lngx_main_language_tl { marathi } {
  \lngx_set_keys:n { native~ numbering = { strict } }
  \babelprovide [
    onchar               = { ids~ fonts },
    date.gregorian /
    date.long            = {
      [d|digits]~ [MMMM],~ [y|digits]
    },
%    \end{macrocode}
% \selectlanguage{marathi}
% प्रस्तावनेच्या पृष्ठांवर अक्षरी अंक लिहिण्याची पद्धत आहे. ह्यासाठी मी ते
% आकडे इथे पुरवतो व काही आज्ञांना ते पुरवतो.
% \selectlanguage{british}
%    \begin{macrocode}
    counters / आकडे =
    एक~ दोन~ तीन~ चार~ पाच~
    सहा~ सात~ आठ~ नऊ~ दहा~
    अकरा~ बारा~ तेरा~ चौदा~ पंधरा~
    सोळा~ सतरा~ अठरा~ एकोणीस~ वीस~
    एकवीस~ बावीस~ तेवीस~ चोवीस~ पंचवीस~
    सव्वीस~ सत्तावीस~ अठ्ठावीस~ एकोणतीस~ तीस~
    एकतीस~ बत्तीस~ तेहतीस~ चौतीस~ पस्तीस~
    छत्तीस~ सदतीस~ अडतीस~ एकोणचाळीस~ चाळीस~
    एकेचाळीस~ बेचाळीस~ त्रेचाळीस~ चव्वेचाळीस~ पंचेचाळीस~
    शेहेचाळीस~ सत्तेचाळीस~ अठ्ठेचाळीस~ एकोणपन्नास~ पन्नास~
    एकावन्न~ बावन्न~ त्रेपन्न~ चौपन्न~ पंचावन्न~
    छप्पन्न~ सत्तावन्न~ अठ्ठावन्न~ एकोणसाठ~ साठ~
    एकसष्ट~ बासष्ट~ त्रेसष्ट~ चौसष्ट~ पासष्ट~
    सहासष्ट~ सदुष्ट~ अडुसष्ट~ एकोणसत्तर~ सत्तर~
    एकाहत्तर~ बाहत्तर~ त्र्याहत्तर~ चौऱ्याहत्तर~ पंचाहत्तर~
    शाहत्तर~ सत्त्याहत्तर~ अठ्ठ्याहत्तर~ एकोणऐंशी~ ऐंशी~
    एक्याऐंशी~ ब्याऐंशी~ त्र्याऐंशी~ चौऱ्याऐंशी~ पंच्याऐंशी~
    श्याऐंशी~ सत्त्याऐंशी~ अठ्ठ्याऐंशी~ एकोणनव्वद~ नव्वद~
    एक्याण्णव~ ब्याण्णव~ त्र्याण्णव~ चौऱ्याण्णव~ पंचाण्णव~
    शहाण्णव~ सत्त्याण्णव~ अठ्याण्णव~ नव्याण्णव~ शंभर
  ] { marathi }
  \hook_gput_code:nnn { cmd / frontmatter / after } { . } {
    \cs_set:Npn \thepage {
      \localecounter { आकडे } { page }
    }
  }
  \hook_gput_code:nnn { cmd / mainmatter / after } { . } {
    \cs_set:Npn \thepage {
      \marathicounter { page }
    }
  }
%    \end{macrocode}
% \selectlanguage{marathi}
% मुक्त टंकात
% \foreignlanguage{british}{Light} व
% \foreignlanguage{british}{Bold} अशी दोन वजने आढळतात. ती
% माझ्या निरीक्षणानुसार लॅटिन टंकांसोबत सर्वात जास्त सुसंगत वाटतात.
% त्यामुळे मी त्यांचा वापर केला आहे. समरेषा टंकांमध्ये मात्र जाडी किंचित
% बदलते, तिथे मी \foreignlanguage{british}{Light}ऐवजी
% \foreignlanguage{british}{Regular} ह्या वजनाचा वापर केला आहे.
% \selectlanguage{british}
%    \begin{macrocode}
  \lngx_set_keys:n {
    text~ main~ font         = { Mukta - Light . ttf },
    text~ sans~ font         = { Mukta - Regular . ttf },
    text~ mono~ font         = { Mukta - Regular . ttf },
    text~ bold               = { Mukta - Bold . ttf },
    text~ sans~ bold         = { Mukta - Bold . ttf },
    text~ mono~ bold         = { Mukta - Bold . ttf },
    text~ small~ caps        = { Mukta - Bold . ttf },
    text~ sans~ small~ caps  = { Mukta - Bold . ttf },
    text~ mono~ small~ caps  = { Mukta - Bold . ttf }
  }
  \clist_map_inline:nn {
    italic,
    slanted,
    swash
  } {
    \lngx_set_keys:n {
      text~ #1               = { Mukta - Light . ttf },
      text~ bold~ #1         = { Mukta - Bold . ttf },
      text~ sans~ #1         = { Mukta - Regular . ttf },
      text~ sans~ bold~ #1   = { Mukta - Bold . ttf },
      text~ mono~ #1         = { Mukta - Regular . ttf },
      text~ mono~ bold~ #1   = { Mukta - Bold . ttf }
    }
  }
%    \end{macrocode}
% \selectlanguage{marathi}
% \foreignlanguage{british}{|text extra features|} ह्या
% गटातील प्राचलांचा वापर करून, मी लाटेक्-च्या
% \foreignlanguage{british}{\textsc{nfss}} नावांची निर्मिती
% करतो.
% \selectlanguage{british}
%    \begin{macrocode}
  \lngx_set_keys:n {
    text~ main~ extra~
    features                 = {
      NFSSFamily               = { देवनागरी_main },
    },
    text~ sans~ extra~
    features                 = {
      NFSSFamily               = { देवनागरी_sans },
    },
    text~ mono~ extra~
    features                 = {
      NFSSFamily               = { देवनागरी_mono },
    }
  }
} {
%    \end{macrocode}
% \selectlanguage{marathi}
% जेव्हा मराठी मुख्य भाषा नसते, तेव्हा टंकांची निवड जरी तीच असली, तरी
% ते साध्य करण्याची पद्धत बदलते.
% \selectlanguage{british}
%    \begin{macrocode}
  \babelprovide [ onchar     = { ids~ fonts } ] { marathi }
  \lngx_other_main_font:nee { marathi } {
    NFSSFamily               = { देवनागरी_main },
    UprightFont              = { Mukta - Light . ttf   },
    ItalicFont               = { Mukta - Light . ttf   },
    BoldFont                 = { Mukta - Bold . ttf    },
    BoldItalicFont           = { Mukta - Bold . ttf    },
    SlantedFont              = { Mukta - Light . ttf   },
    BoldSlantedFont          = { Mukta - Bold . ttf    },
    SwashFont                = { Mukta - Light . ttf   },
    BoldSwashFont            = { Mukta - Bold . ttf    },
    SmallCapsFont            = { Mukta - Light . ttf   }
  } { Mukta - Light . ttf }
  \lngx_other_sans_font:nee { marathi } {
    NFSSFamily               = { देवनागरी_sans },
    UprightFont              = { Mukta - Regular . ttf },
    ItalicFont               = { Mukta - Regular . ttf },
    BoldFont                 = { Mukta - Bold . ttf    },
    BoldItalicFont           = { Mukta - Bold . ttf    },
    SlantedFont              = { Mukta - Regular . ttf },
    BoldSlantedFont          = { Mukta - Bold . ttf    },
    SwashFont                = { Mukta - Regular . ttf },
    BoldSwashFont            = { Mukta - Bold . ttf    },
    SmallCapsFont            = { Mukta - Regular . ttf }
  } { Mukta - Regular . ttf }
  \lngx_other_mono_font:nee { marathi } {
    NFSSFamily               = { देवनागरी_mono },
    UprightFont              = { Mukta - Regular . ttf },
    ItalicFont               = { Mukta - Regular . ttf },
    BoldFont                 = { Mukta - Bold . ttf    },
    BoldItalicFont           = { Mukta - Bold . ttf    },
    SlantedFont              = { Mukta - Regular . ttf },
    BoldSlantedFont          = { Mukta - Bold . ttf    },
    SwashFont                = { Mukta - Regular . ttf },
    BoldSwashFont            = { Mukta - Bold . ttf    },
    SmallCapsFont            = { Mukta - Regular . ttf }
  } { Mukta - Regular . ttf }
}
%    \end{macrocode}
% \selectlanguage{marathi}
% हे टंक बदलण्याकरिता सोपी सोय हवी म्हणून मी टंकबदलाकरिता तीन
% प्राचले इथे घडवतो. ह्या आज्ञासंचातर्फे मी पुढील प्राचले पुरवली आहेत.
%
% \begin{enumerate}
% \item सरळ टंक
%   \begin{enumerate}
%   \item सरळ समरेखा टंक
%   \item सरळ एकांतर टंक
%   \end{enumerate}
% \end{enumerate}
%
% \selectlanguage{british}
%    \begin{macrocode}

\keys_define:nn { lngx_keys } {
  सरळ~ टंक
  .code:n                  = {
    \lngx_set_keys:n {
      text~ main~ font       = { Mukta - Light . ttf },
      text~ italic           = { Mukta - Light . ttf },
      text~ swash            = { Mukta - Light . ttf },
      text~ small~ caps      = { Mukta - Light . ttf }
    }
  },
  सरळ~ समरेखा~ टंक
  .code:n                  = {
    \lngx_set_keys:n {
      text~ sans~ font         = { Mukta - Light . ttf },
      text~ sans~ italic       = { Mukta - Light . ttf },
      text~ sans~ swash        = { Mukta - Light . ttf },
      text~ sans~ small~ caps  = { Mukta - Light . ttf }
    }
  },
  सरळ~ एकांतर~ टंक
  .code:n                  = {
    \lngx_set_keys:n {
      text~ mono~ font         = { Mukta - Light . ttf },
      text~ mono~ italic       = { Mukta - Light . ttf },
      text~ mono~ swash        = { Mukta - Light . ttf },
      text~ mono~ small~ caps  = { Mukta - Light . ttf }
    }
  },
%    \end{macrocode}
% \selectlanguage{marathi}
%
% ठळक टंकांकरिता पुढील प्राचले घडवली आहेत.
%
% \begin{enumerate}
% \item ठळक टंक
%   \begin{enumerate}
%   \item ठळक समरेखा टंक
%   \item ठळक एकांतर टंक
%   \end{enumerate}
% \end{enumerate}
%
% \selectlanguage{british}
%    \begin{macrocode}
  ठळक~ टंक
  .code:n                  = {
    \lngx_set_keys:n {
      text~ bold               = { Mukta - Bold . ttf },
      text~ bold~ italic       = { Mukta - Bold . ttf },
      text~ bold~ swash        = { Mukta - Bold . ttf }
    }
  },
  ठळक~ समरेखा~ टंक
  .code:n                  = {
    \lngx_set_keys:n {
      text~ sans~ bold         = { Mukta - Bold . ttf },
      text~ sans~ bold~ italic = { Mukta - Bold . ttf },
      text~ sans~ bold~ swash  = { Mukta - Bold . ttf }
    }
  },
  ठळक~ एकांतर~ टंक
  .code:n                  = {
    \lngx_set_keys:n {
      text~ mono~ bold         = { Mukta - Bold . ttf },
      text~ mono~ bold~ italic = { Mukta - Bold . ttf },
      text~ mono~ bold~ swash  = { Mukta - Bold . ttf }
    }
  },
%    \end{macrocode}
% \selectlanguage{marathi}
% तिरक्या टंकांकरिता पुढील प्राचले घडवली आहेत.
%
% \begin{enumerate}
% \item तिरका टंक
%   \begin{enumerate}
%   \item तिरका समरेखा टंक
%   \item तिरका एकांतर टंक
%   \end{enumerate}
% \end{enumerate}
%
% \selectlanguage{british}
%    \begin{macrocode}
  तिरका~ टंक
  .code:n                  = {
    \lngx_set_keys:n {
      text~ slanted          = { Mukta - Bold . ttf }
    }
  },
  तिरका~ समरेखा~ टंक
  .code:n                  = {
    \lngx_set_keys:n {
      text~ sans~ slanted    = { Mukta - Bold . ttf }
    }
  },
  तिरका~ एकांतर~ टंक
  .code:n                  = {
    \lngx_set_keys:n {
      text~ mono~ slanted    = { Mukta - Bold . ttf }
    }
  },
%    \end{macrocode}
% \selectlanguage{marathi}
%
%   \begin{enumerate}
% \item ठळक तिरका टंक
%   \begin{enumerate}
%   \item ठळक तिरका समरेखा टंक
%   \item ठळक तिरका एकांतर टंक
%   \end{enumerate}
% \end{enumerate}
%
% \selectlanguage{british}
%    \begin{macrocode}
  ठळक~ तिरका~ टंक
  .code:n                  = {
    \lngx_set_keys:n {
      text~
      bold~ slanted         = { Mukta - Bold . ttf }
    }
  },
  ठळक~ तिरका~ समरेखा~ टंक
  .code:n                  = {
    \lngx_set_keys:n {
      text~
      sans~ bold~ slanted   = { Mukta - Bold . ttf }
    }
  },
  ठळक~ तिरका~ एकांतर~ टंक
  .code:n                  = {
    \lngx_set_keys:n {
      text~
      mono~ bold~ slanted   = { Mukta - Bold . ttf }
    }
  }
}
%    \end{macrocode}
% \selectlanguage{marathi}
% लाटेक्-च्या गणितक्षेत्रामध्ये देवनागरी उमटावे ह्याकरिता मी पुढील
% आज्ञावली वापरतो.
% \selectlanguage{british}
%    \begin{macrocode}

\IfPackageLoadedT { lua-unicode-math } {
  \DeclareSymbolFont { देवनागरी }
                     { TU }
                     { देवनागरी_main }
                     { m }
                     { n }
}

\hook_gput_code:nnn { begindocument / end } { . } {
  \IfPackageLoadedF { lua-unicode-math } {
    \DeclareSymbolFont { देवनागरी }
                       { TU }
                       { देवनागरी_main }
                       { m }
                       { n }
  }
  \int_step_inline:nnn { "0900 } { "097F } {
    \Umathcode #1 = "0 ~ \use:c { symदेवनागरी } ~ #1
  }
}
%</marathi>
%    \end{macrocode}
% \end{implementation}
% \Finale
