<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">%% This is file `quran-bn.sty', and it's completely relies on the quran package.
%%
%% Copyright Â© 2021-2023 by Seiied-Mohammad-Javad Razavian
%% &lt;javadr@gmail.com&gt;
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3c
%% of this license or (at your option) any later version.
%% The latest version of this license is in
%%   http://www.latex-project.org/lppl.txt
%% and version 1.3c or later is part of all distributions of LaTeX
%% version 2005/12/01 or later.
%%
%% This work has the LPPL maintenance status `maintained'.
%%
%% This work is â€œauthor-maintainedâ€ (as per LPPL maintenance status)
%% by Seiied-Mohammad-Javad Razavian..
%% The Current Maintainer of this work is Seiied-Mohammad-Javad Razavian.
%%
%% This work consists of the files quran-bn.sty,
%% qurantext-bni.translation.def, qurantext-bnii.translation.def,
%% quran-bn-doc.tex, quran-bn-doc.pdf, and quran.png.
%%
%% To one having devoted his life to the Holy Quran
%%
\NeedsTeXFormat{LaTeX2e}
\def\quranbndate{2023/09/22}
\def\quranbnversion{0.2}
\ProvidesPackage{quran-bn}[%
\quranbndate\space v\quranbnversion\space^^J
Bengali translations extension to the quran package.%
]
\RequirePackage{xstring}
\RequirePackage{biditools}
\RequirePackage{xkeyval}
\define@boolkeys{quran-bn.sty}[bn@]{hoque,khan,all}[true]
\DeclareOptionX*{\PassOptionsToPackage{\CurrentOption}{quran}}
\DeclareOption*{\PackageWarning{quran-bn}{Unknown option â€˜\CurrentOptionâ€™}}
\ProcessOptionsX\relax
\ifbn@all
    \ExecuteOptionsX{hoque,khan}
\else
    \ExecuteOptionsX{khan}
\fi
\RequirePackage{quran}
\ifqt@wordwise%
    \let\qt@newcmd\newcommand
\else%
    \let\qt@newcmd\bidi@newrobustcmd
\fi%
\input{qurantext-bnii.translation.def}%Muhiuddin Khan
%
\ifbn@hoque%
    \PackageInfo{quran-bn}{Zohurul Hoque's translation is chosen.}%
\fi%
\ifbn@khan%
    \PackageInfo{quran-bn}{Muhiuddin Khan's translation is chosen.}%
\fi%
\newcount\trans@bn
\trans@bn=\@ne
\define@choicekey*+{quran-bn}{trans}[\val\nr]{hoque,khan}{%
    \ifcase\nr\relax
        \global\trans@bn=\z@\relax
    \or
        \global\trans@bn=\@ne\relax
 \fi}{%
    \PackageWarning{quran-bn}{\string \bnSetTrans' paramenter should be one of  `hoque', or `khan'. The package sets to `khan' by default.}{}%
    \global\trans@bn=\@ne\relax
}%
\newcommand*{\bnGetTrans}{%
    \ifcase\trans@bn
        hoque%
    \or
        khan%
    \fi%
}
\newcommand{\bnSetTrans}[1]{%
\IfInteger{#1}%
{%Yes
\count255=#1%
\advance\count255 by -1\relax%
\trans@bn=\count255}%
{%NO
\setkeys{quran-bn}{trans=#1}}%
%
%\makeatother
%\let\bidi@newrobustcmd\bidi@renewrobustcmd
%\makeatletter
\ifqt@wordwise%
    \makeatother\let\qt@newcmd\renewcommand\makeatletter%
\else%
    \makeatother\let\qt@newcmd\bidi@renewrobustcmd\makeatletter%
\fi%
\ifcase\trans@bn%0
    \ifbn@hoque%
        \ifx\basmalahbn\relax\else%
            \def\basmalahbn{à¦†à¦²à§à¦²à¦¾à¦¹à¦° à¦¨à¦¾à¦® à¦¨à¦¿à§Ÿà§‡ (à¦†à¦°à¦®à§à¦­ à¦•à¦°à¦›à¦¿), (à¦¯à¦¿à¦¨à¦¿) à¦°à¦¹à¦®à¦¾à¦¨ (--à¦ªà¦°à¦® à¦•à¦°à§à¦£à¦¾à¦®à§Ÿ, à¦¯à¦¿à¦¨à¦¿ à¦…à¦¸à§€à¦® à¦•à¦°à§à¦£à¦¾ à¦“ à¦¦à§Ÿà¦¾ à¦¬à¦¶à¦¤à¦ƒ à¦¬à¦¿à¦¶à§à¦¬à¦œà¦—à¦¤à§‡à¦° à¦¸à¦®à¦¸à§à¦¤ à¦¸à§ƒà¦·à§à¦Ÿà¦¿à¦° à¦¸à¦¹à¦¾à¦¬à¦¸à§à¦¥à¦¾à¦¨à§‡à¦° à¦ªà§à¦°à§Ÿà§‹à¦œà¦¨à§€à§Ÿ à¦¸à¦¬ à¦¬à§à¦¯à¦¬à¦¸à§à¦¥à¦¾ à¦…à¦—à§à¦°à¦¿à¦® à¦•à¦°à§‡ à¦°à§‡à¦–à§‡à¦›à§‡à¦¨), (à¦¯à¦¿à¦¨à¦¿) à¦°à¦¹à§€à¦® (--à¦…à¦«à§à¦°à¦¨à§à¦¤ à¦«à¦²à¦¦à¦¾à¦¤à¦¾, à¦¯à¦¾à¦à¦° à¦…à¦ªà¦¾à¦° à¦•à¦°à§à¦£à¦¾ à¦“ à¦¦à§Ÿà¦¾à¦° à¦«à¦²à§‡ à¦ªà§à¦°à¦¤à§à¦¯à§‡à¦•à§‡à¦° à¦•à§à¦·à§à¦¦à§à¦°à¦¤à¦® à¦¶à§à¦­-à¦ªà§à¦°à¦šà§‡à¦·à§à¦Ÿà¦¾à¦“ à¦¬à¦¿à¦ªà§à¦²à¦­à¦¾à¦¬à§‡ à¦¸à¦¾à¦«à¦²à§à¦¯à¦®à¦£à§à¦¡à¦¿à¦¤ à¦“ à¦ªà§à¦°à¦¸à§à¦•à§ƒà¦¤ à¦¹à§Ÿà§‡ à¦¥à¦¾à¦•à§‡)à¥¤ \qt@par}%
        \fi%
        \bidi@renewrobustcmd\ToggleBasmalahbn{%
            \ifx\basmalahbn\relax%
                \def\basmalahbn{à¦†à¦²à§à¦²à¦¾à¦¹à¦° à¦¨à¦¾à¦® à¦¨à¦¿à§Ÿà§‡ (à¦†à¦°à¦®à§à¦­ à¦•à¦°à¦›à¦¿), (à¦¯à¦¿à¦¨à¦¿) à¦°à¦¹à¦®à¦¾à¦¨ (--à¦ªà¦°à¦® à¦•à¦°à§à¦£à¦¾à¦®à§Ÿ, à¦¯à¦¿à¦¨à¦¿ à¦…à¦¸à§€à¦® à¦•à¦°à§à¦£à¦¾ à¦“ à¦¦à§Ÿà¦¾ à¦¬à¦¶à¦¤à¦ƒ à¦¬à¦¿à¦¶à§à¦¬à¦œà¦—à¦¤à§‡à¦° à¦¸à¦®à¦¸à§à¦¤ à¦¸à§ƒà¦·à§à¦Ÿà¦¿à¦° à¦¸à¦¹à¦¾à¦¬à¦¸à§à¦¥à¦¾à¦¨à§‡à¦° à¦ªà§à¦°à§Ÿà§‹à¦œà¦¨à§€à§Ÿ à¦¸à¦¬ à¦¬à§à¦¯à¦¬à¦¸à§à¦¥à¦¾ à¦…à¦—à§à¦°à¦¿à¦® à¦•à¦°à§‡ à¦°à§‡à¦–à§‡à¦›à§‡à¦¨), (à¦¯à¦¿à¦¨à¦¿) à¦°à¦¹à§€à¦® (--à¦…à¦«à§à¦°à¦¨à§à¦¤ à¦«à¦²à¦¦à¦¾à¦¤à¦¾, à¦¯à¦¾à¦à¦° à¦…à¦ªà¦¾à¦° à¦•à¦°à§à¦£à¦¾ à¦“ à¦¦à§Ÿà¦¾à¦° à¦«à¦²à§‡ à¦ªà§à¦°à¦¤à§à¦¯à§‡à¦•à§‡à¦° à¦•à§à¦·à§à¦¦à§à¦°à¦¤à¦® à¦¶à§à¦­-à¦ªà§à¦°à¦šà§‡à¦·à§à¦Ÿà¦¾à¦“ à¦¬à¦¿à¦ªà§à¦²à¦­à¦¾à¦¬à§‡ à¦¸à¦¾à¦«à¦²à§à¦¯à¦®à¦£à§à¦¡à¦¿à¦¤ à¦“ à¦ªà§à¦°à¦¸à§à¦•à§ƒà¦¤ à¦¹à§Ÿà§‡ à¦¥à¦¾à¦•à§‡)à¥¤ \qt@par}%
            \else%
                \let\basmalahbn\relax%
            \fi%
        }%
        \input{qurantext-bni.translation.def}%
    \else%
        \PackageError{quran-bn}{Zohurul Hoque's translation has not been loaded}{}%
    \fi%
\or%1
    \ifbn@khan
        \ifx\basmalahbn\relax\else%
            \def\basmalahbn{à¦¶à§à¦°à§ à¦•à¦°à¦›à¦¿ à¦†à¦²à§à¦²à¦¾à¦¹à¦° à¦¨à¦¾à¦®à§‡ à¦¯à¦¿à¦¨à¦¿ à¦ªà¦°à¦® à¦•à¦°à§à¦£à¦¾à¦®à§Ÿ, à¦…à¦¤à¦¿ à¦¦à§Ÿà¦¾à¦²à§à¥¤ \qt@par}%
        \fi
        \bidi@renewrobustcmd\ToggleBasmalahbn{%
            \ifx\basmalahbn\relax%
                \def\basmalahbn{à¦¶à§à¦°à§ à¦•à¦°à¦›à¦¿ à¦†à¦²à§à¦²à¦¾à¦¹à¦° à¦¨à¦¾à¦®à§‡ à¦¯à¦¿à¦¨à¦¿ à¦ªà¦°à¦® à¦•à¦°à§à¦£à¦¾à¦®à§Ÿ, à¦…à¦¤à¦¿ à¦¦à§Ÿà¦¾à¦²à§à¥¤ \qt@par}%
            \else%
                \let\basmalahbn\relax%
            \fi%
        }%
        \input{qurantext-bnii.translation.def}%
    \else%
        \PackageError{quran-bn}{Muhiuddin Khan's translation has not been loaded}{}%
    \fi
\else%
    \PackageError{quran-bn}{\string \bnSetTrans{} paramenter should be between 1 to 2}{}%
\fi
}%
\bidi@newrobustcmd\ToggleBasmalahbn{%
    \ifx\basmalahbn\relax%
        \ifcase\trans@bn% hoque
            \def\basmalahbn{à¦†à¦²à§à¦²à¦¾à¦¹à¦° à¦¨à¦¾à¦® à¦¨à¦¿à§Ÿà§‡ (à¦†à¦°à¦®à§à¦­ à¦•à¦°à¦›à¦¿), (à¦¯à¦¿à¦¨à¦¿) à¦°à¦¹à¦®à¦¾à¦¨ (--à¦ªà¦°à¦® à¦•à¦°à§à¦£à¦¾à¦®à§Ÿ, à¦¯à¦¿à¦¨à¦¿ à¦…à¦¸à§€à¦® à¦•à¦°à§à¦£à¦¾ à¦“ à¦¦à§Ÿà¦¾ à¦¬à¦¶à¦¤à¦ƒ à¦¬à¦¿à¦¶à§à¦¬à¦œà¦—à¦¤à§‡à¦° à¦¸à¦®à¦¸à§à¦¤ à¦¸à§ƒà¦·à§à¦Ÿà¦¿à¦° à¦¸à¦¹à¦¾à¦¬à¦¸à§à¦¥à¦¾à¦¨à§‡à¦° à¦ªà§à¦°à§Ÿà§‹à¦œà¦¨à§€à§Ÿ à¦¸à¦¬ à¦¬à§à¦¯à¦¬à¦¸à§à¦¥à¦¾ à¦…à¦—à§à¦°à¦¿à¦® à¦•à¦°à§‡ à¦°à§‡à¦–à§‡à¦›à§‡à¦¨), (à¦¯à¦¿à¦¨à¦¿) à¦°à¦¹à§€à¦® (--à¦…à¦«à§à¦°à¦¨à§à¦¤ à¦«à¦²à¦¦à¦¾à¦¤à¦¾, à¦¯à¦¾à¦à¦° à¦…à¦ªà¦¾à¦° à¦•à¦°à§à¦£à¦¾ à¦“ à¦¦à§Ÿà¦¾à¦° à¦«à¦²à§‡ à¦ªà§à¦°à¦¤à§à¦¯à§‡à¦•à§‡à¦° à¦•à§à¦·à§à¦¦à§à¦°à¦¤à¦® à¦¶à§à¦­-à¦ªà§à¦°à¦šà§‡à¦·à§à¦Ÿà¦¾à¦“ à¦¬à¦¿à¦ªà§à¦²à¦­à¦¾à¦¬à§‡ à¦¸à¦¾à¦«à¦²à§à¦¯à¦®à¦£à§à¦¡à¦¿à¦¤ à¦“ à¦ªà§à¦°à¦¸à§à¦•à§ƒà¦¤ à¦¹à§Ÿà§‡ à¦¥à¦¾à¦•à§‡)à¥¤ \qt@par}%
        \or% khan
            \def\basmalahbn{à¦¶à§à¦°à§ à¦•à¦°à¦›à¦¿ à¦†à¦²à§à¦²à¦¾à¦¹à¦° à¦¨à¦¾à¦®à§‡ à¦¯à¦¿à¦¨à¦¿ à¦ªà¦°à¦® à¦•à¦°à§à¦£à¦¾à¦®à§Ÿ, à¦…à¦¤à¦¿ à¦¦à§Ÿà¦¾à¦²à§à¥¤ \qt@par}%
        \fi%
    \else%
        \let\basmalahbn\relax%
    \fi%
}%
\let\qt@doqt@orig\qt@doqt
%%%%%%%%%%%%%%%%%%%%%%%%%%
\bidi@apptocmd{\ToggleBasmalah}{\ToggleBasmalahbn}{}{}
\let\ToggleBasmalah@orig\ToggleBasmalah
\def\basmalahbn{à¦¶à§à¦°à§ à¦•à¦°à¦›à¦¿ à¦†à¦²à§à¦²à¦¾à¦¹à¦° à¦¨à¦¾à¦®à§‡ à¦¯à¦¿à¦¨à¦¿ à¦ªà¦°à¦® à¦•à¦°à§à¦£à¦¾à¦®à§Ÿ, à¦…à¦¤à¦¿ à¦¦à§Ÿà¦¾à¦²à§à¥¤ \qt@par}%
\def\Basmalahbn{%
        \begingroup%
        \let\par\relax%
        \def\qt@no##1{\relax}%
        \quranayahbn[1][1][1]%
        \endgroup%
}%
%%%%%%%%%%%%%%%%%%%%%%%%%%
\DeclareDocumentCommand\qt@dobn{ o o }{%
    \addtocounter{qt@count}{1}%
    \def\@qtexp{}%
    \loop%
        \global\xdef\@qtexp{\@qtexp\csname qurantrans@bn@\roman{qt@count}\endcsname\ifnum\value{qt@count}=\qt@max\else\space\fi
        \ifnum\value{qt@count}&lt;\qt@max\relax\qt@par\fi}%
        \ifnum\value{qt@count}&lt;\qt@max\relax%
        \addtocounter{qt@count}{1}%
    \repeat%
    \IfNoValueTF{#1}%
    {\@qtexp\qt@par}%true
    {\qt@WordCount=0\relax\c@qt@start=\numexpr#1-1\relax%
    \readlist*\qt@words{\@qtexp}%
        \IfNoValueTF{#2}%
        {\c@qt@end=\numexpr\qt@wordslen+1\relax}{\c@qt@end=\numexpr#2+1\relax}%
        \foreachitem\qt@word\in\qt@words{%
            \ifnum\qt@wordcnt&gt;\c@qt@start\ifnum\qt@wordcnt&lt;\c@qt@end\qt@word\ifnum\qt@wordcnt=\numexpr\c@qt@end-1\relax\else\xspace\fi\fi\fi%
        }%
        \global\edef\qt@currentfont{\the\font}%
        \qt@showitems{\qt@currentfont\showitems\qt@words}%
    \qt@par}%false
}%
%%%%%%%%%%%%%%%%%%%%%%%%%%
\DeclareDocumentCommand{\qurantextbn}{ s O{\qt@default} o t{+} }{%
    \IfBooleanTF{#4}{\def\qt@showitems##1{\footnote{##1}}}{\def\qt@showitems##1{\relax}}%
    \let\qt@doqt\qt@dobn%
    \IfBooleanTF{#1}%
    {\IfBooleanTF{#4}{\qurantext*[#2][#3]+}{\qurantext*[#2][#3]}}%
    {\IfBooleanTF{#4}{\qurantext[#2][#3]+}{\qurantext[#2][#3]}}%
    \let\qt@doqt\qt@doqt@orig%
    \def\qt@showitems##1{\relax}%
}%
%%%%%%%%%%%%%%%%%%%%%%%%%%
\DeclareDocumentCommand\quransurahbn{ s O{\qt@surah@default} }{%
    \let\qt@doqt\qt@dobn%
    \IfBooleanTF{#1}%
    {\quransurah*[#2]}%
    {\quransurah[#2]}%
    \let\qt@doqt\qt@doqt@orig%
}%
%%%%%%%%%%%%%%%%%%%%%%%%%%
\DeclareDocumentCommand{\quranayahbn}{ s o o o t{+} }{%
    \let\qt@doqt\qt@dobn%
    \let\ToggleBasmalah\ToggleBasmalahbn%
    \IfBooleanTF{#1}%
    {\IfBooleanTF{#5}{\quranayah*[#2][#3][#4]+}{\quranayah*[#2][#3][#4]}}%
    {\IfBooleanTF{#5}{\quranayah[#2][#3][#4]+}{\quranayah[#2][#3][#4]}}%
    \let\qt@doqt\qt@doqt@orig%
    \let\ToggleBasmalah\ToggleBasmalah@orig%
}%
%%%%%%%%%%%%%%%%%%%%%%%%%%
\DeclareDocumentCommand{\quranjuzbn}{ s o }{%
    \let\qt@doqt\qt@dobn%
    \IfBooleanTF{#1}%
    {\quranjuz*[#2]}%
    {\quranjuz[#2]}%
    \let\qt@doqt\qt@doqt@orig%
}%
%%%%%%%%%%%%%%%%%%%%%%%%%%
\DeclareDocumentCommand{\quranpagebn}{ s o }{%
    \let\qt@doqt\qt@dobn%
    \IfBooleanTF{#1}%
    {\quranpage*[#2]}%
    {\quranpage[#2]}%
    \let\qt@doqt\qt@doqt@orig%
}%
%%%%%%%%%%%%%%%%%%%%%%%%%%
\DeclareDocumentCommand{\quranquarterbn}{ s o }{%
    \let\qt@doqt\qt@dobn%
    \IfBooleanTF{#1}%
    {\quranquarter*[#2]}%
    {\quranquarter[#2]}%
    \let\qt@doqt\qt@doqt@orig%
}%
%%%%%%%%%%%%%%%%%%%%%%%%%%
\DeclareDocumentCommand{\quranrukubn}{ s o }{%
    \let\qt@doqt\qt@dobn%
    \IfBooleanTF{#1}%
    {\quranruku*[#2]}%
    {\quranruku[#2]}%
    \let\qt@doqt\qt@doqt@orig%
}%
%%%%%%%%%%%%%%%%%%%%%%%%%%
\DeclareDocumentCommand{\quranhizbbn}{ s o }{%
    \let\qt@doqt\qt@dobn%
    \IfBooleanTF{#1}%
    {\quranhizb*[#2]}%
    {\quranhizb[#2]}%
    \let\qt@doqt\qt@doqt@orig%
}%
%%%%%%%%%%%%%%%%%%%%%%%%%%
\DeclareDocumentCommand{\quranmanzilbn}{ s o }{%
    \let\qt@doqt\qt@dobn%
    \IfBooleanTF{#1}%
    {\quranmanzil*[#2]}%
    {\quranmanzil[#2]}%
    \let\qt@doqt\qt@doqt@orig%
}%
%%%%%%%%%%%%%%%%%%%%%%%%%%
%% End of file `quran-bn.sty'.
</pre></body></html>