diff options
Diffstat (limited to 'macros/xetex/latex/quran/doc/quran-doc.tex')
-rw-r--r-- | macros/xetex/latex/quran/doc/quran-doc.tex | 645 |
1 files changed, 645 insertions, 0 deletions
diff --git a/macros/xetex/latex/quran/doc/quran-doc.tex b/macros/xetex/latex/quran/doc/quran-doc.tex new file mode 100644 index 0000000000..8c07561672 --- /dev/null +++ b/macros/xetex/latex/quran/doc/quran-doc.tex @@ -0,0 +1,645 @@ +\documentclass{ltxdoc} + +\usepackage{forloop} +\usepackage{pgf} +\usepackage{framed} +\usepackage{holtxdoc} +\usepackage{url} +\usepackage{addlines} +\usepackage{listings} +\usepackage{tikz} +\usetikzlibrary{calc} +\usepackage{fontspec} +\usepackage[trans={lt, de, en, fa}]{quran} +\newfontfamily\quran[Script=Arabic]{Scheherazade} +\hypersetup{% + plainpages=false,% + bookmarksnumbered,% + pdftitle={The quran Package},% + pdfkeywords={quran, surah, ayah, juz, hizb, ruku, manzil},% + pdfauthor={Seiied-Mohammad-Javad Razavian},% + baseurl={http://mirrors.ctan.org/macros/xetex/latex/quran/doc/quran-doc.pdf},% +} +% because of definition of \XeTeX and \XeLaTeX symbols in bidi, I should undef these macro that are also defined in holtxdoc package. +\makeatletter +\bidi@undef\XeTeX +\bidi@undef\XeLaTeX +\makeatother +\usepackage{bidi} +\makeatletter +\bidi@preto\qurantext{\quran} +\bidi@BeforeBeginEnvironment{declcs}{\vspace*{-4mm}} +%\bidi@AfterEndEnvironment{declcs}{\vspace{-2mm}} +\makeatother + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def\boxcs#1{\leftline{\fbox{\mcs{#1}}}} +\def\mcs#1{\lr{\texttt{\textbackslash{}#1}}} +\def\tt#1{\lr{\texttt{#1}}} +\lstdefinestyle{BashInputStyle}{ +% language=bash, + basicstyle=\footnotesize\sffamily, +% numbers=left, +% numberstyle=\tiny, +% numbersep=3pt, + frame=tb, + columns=fullflexible, + backgroundcolor=\color{gray!10}, +% linewidth=0.9\linewidth, +% xleftmargin=0.1\linewidth +} +\def\qp#1{ +\begin{minipage}{.6\textwidth} + #1 +\end{minipage} +} + +% Define box and box title style +\tikzstyle{mybox} = [draw=black, fill=gray!20, very thick, + rectangle, rounded corners, inner sep=10pt, inner ysep=20pt] +\tikzstyle{fancytitle} =[fill=gray, text=white] + +\def\mx#1#2{\mybox{#1}{#2}{.45\textwidth}} +\def\mxf#1#2{\mybox{#1}{#2}{\textwidth}} + +\def\mybox#1#2#3{ +\begin{tikzpicture} +\setRTL +\node [mybox] (box){% + \begin{minipage}[t]{#3} + #2 + \end{minipage} +}; +\node (hole) [anchor=north east, left=5pt ] at (box.north east) { \tikz\fill[very thick,white] (0,0) circle (12pt); }; +\node[ ] at (hole.center) {\includegraphics[width=.05\textwidth]{quran.png}}; +\node[fancytitle, anchor=west, right=7pt] at (box.north west) {\small \cs{#1}}; +\end{tikzpicture}% +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\title{\includegraphics[scale=.3]{quran.png}\\ +The \xpackage{quran} Package\footnote{To one having devoted his life to the Holy Quran}} +\author{Seiied Mohammad Javad Razavian\\\xemail{javadr@gmail.com}} + +\date{\qurandate\space\quranversion} + +\begin{document} +\maketitle + +%\begin{framed} +%This manual is incomplete and the package is under development. \par +%\centerline{\quranversion} +%\end{framed} + +\tableofcontents +%\newpage + +\section{Introduction} +This package is prepared for typesetting The Holy Quran%. +. It provides several macros for +typesetting the whole or any parts of The Holy Quran based on its popular division.\footnote{This work is inspired by \xpackage{lipsum} and +\xpackage{ptext} packages.} +%\footnote{ +By recent versions, the package can typeset some translations of The Holy Quran in +German, English, and Persian. It also can typeset quran's transliteration. +%}\addlines[1] + +\section{Loading Package} +You can load the package in the ordinary way +\cs{usepackage[option]\{quran\}}. +After loading the package, it writes some information about itself to the +terminal and to the log file, too. The information is something like: + +\begin{lstlisting}[style=BashInputStyle, escapechar={|}] +Package: quran |\qurandate| |\quranversion| An easy way to typeset the whole or any part of The Holy Quran +\end{lstlisting} + +\section{Typesetting The Holy Quran}\label{sec:qurantypesetting} +For typesetting any parts or whole of The Holy Quran there are several macros in the package. + +\subsection{Surah/Sovar} +\begin{declcs}{quransurah}\oarg{m} +\end{declcs} +This macro can typeset any Surah of Quran. As you know there are 114 Sovar, so \textit{m} could +be an integer between 1 to 114. The macro also could accept the transliteration of surah's name, +e.g. both of \cs{quransurah[1]} and \cs{quransurah[Al-Fatiha]} have the same effect. For using +surah's name instead of their order see table~\ref{tab1}. +\marginpar{\cs{quransurah[1]}}\marginpar{\cs{quransurah[Al-Fatiha]}} + \centerline{\hbox{\mx{quransurah[94]}{\quransurah[94]}\hfill + \mx{quransurah[At-Tin]}{\quransurah[At-Tin]}}} + +\begin{declcs}{quransurah}\oarg{m-n} +\end{declcs} +This acts like above but can typeset \textit{m}$^{th}$ Surah to \textit{n}$^{th}$ one. + +\begin{declcs}{quransurah}\oarg{m{-}{-}n} +\end{declcs} +In this case m and n are transliterations of surah's names, e.g. \cs{quransurah[An-Nasr--An-Nas]}. +\marginpar{\cs{quransurah[An-Nasr--An-Nas]}} + + \centerline{\hbox{\mx{quransurah[109-110]}{\quransurah[109-110]}\hfill + \mx{quransurah[Al-Masadd--Al-Ikhlas]}{\quransurah[Al-Masadd--Al-Ikhlas]}}} + +\newcounter{ct} +\def\mycell#1{ + \surahname[\value{#1}] + \addtocounter{#1}{38} +} +\begin{table}[tbhp] + \centering + \fontsize{8}{10}\selectfont + \begin{tabular}{|*{3}{c|l|}} + \hline + order & surahname & order & surahname & order & surahname \\ + \hline\hline% + \forloop{ct}{1}{\value{ct} < 38}{% + \thect & \mycell{ct} & \thect & \mycell{ct} & \thect & \mycell{ct} \\ + \addtocounter{ct}{-114} + }% + \thect & \mycell{ct} & \thect & \mycell{ct} & \thect & \mycell{ct}\\% + \hline + \end{tabular} + \protect\caption{Transliterations of Sovar's names.}\label{tab1} +\end{table} + + +\begin{declcs}{quransurah} +\end{declcs} +Using \cs{quransurah} without its optional argument typeset the default Surah--Al-Ikhlas. + +\centerline{\mx{quransurah}{\quransurah}} + +To change the default Surah use \cs{setsurahdefault\{m\}}, again m must be between 1 and 114. +As you've noticed the package's default is 112. +\marginpar{\cs{setsurahdefault}} + +After changing package's default surah to 107 by \cs{setsurahdefault\{107\}}, the output would be like below: + + \setsurahdefault{107} + \centerline{\mx{quransurah}{\quransurah}} + + + +\subsection{Ayah/Ayat} +\begin{declcs}{quranayah}\oarg{l}\oarg{n} +\end{declcs} +The above macro typeset the \textit{n}$^{th}$ Ayah of \textit{l}$^{th}$ Surah. + + \centerline{\hbox{\mx{quranayah[33][33]}{\quranayah[33][33]}\hfill + \mx{quranayah[Al-Ahzab][33]}{\quranayah[Al-Ahzab][33]}}} + +If you just typeset the first Ayah of any Surah, then the Basmalah will not be printed. +In this case if you need Basmalah, then you can use the \cs{basmalah} macro before. +\marginpar{\cs{basmalah}} + + \centerline{\hbox{\mx{quranayah[Ibrahim][1]}{\quranayah[Ibrahim][1]}\hfill + \mx{basmalah\textbackslash{}quranayah[14][1]}{\quran\basmalah\quranayah[14][1]}}} + +\begin{declcs}{quranayah}\oarg{l}\oarg{m-n} +\end{declcs} +This macro typeset the \textit{m}$^{th}$ to \textit{n}$^{th}$ Ayat of \textit{l}$^{th}$ Surah. + +\par +\addvspace{4.5ex plus 1ex}% +\vskip -\parskip +\noindent The \textit{l} argument could be an integer less than or equal to 114. It also could be +the transliteration of \textit{l}$^{th}$ Surah's name, see table~\ref{tab1}. +The number \textit{n} is diffirent by every Surah and it relies on the number of the Surah's verses. +The number \textit{m} should be between 1 and a number less than \textit{n}. + +In case of using transliteration of surah's name, both \cs{quransurah} and \cs{quranayah} are \emph{case-insensitive}, i.e. +for example there is no differences between Al-Fatiha, al-fatiha, al-Fatiha, + and any other possible combinations of lowercase and uppercase letters. + + \centerline{\hbox{\mx{quranayah[Ash-Shura][22-26]}{\quranayah[Ash-Shura][22-26]}\hfill + \mx{quranayah[42][22-26]}{\quranayah[42][22-26]}}} + +\subsection{Page/Pages} +\begin{declcs}{quranpage}\oarg{n} +\end{declcs} +Typeset the \textit{n}$^{th}$ page of Quran and the following macro typeset \textit{m}$^{th}$ to +\textit{n}$^{th}$ pages of the Holy Quran. + +\begin{declcs}{quranpage}\oarg{m-n} +\end{declcs} +The numbers should be between $1$ to $604$, based on Uthmani text. + + \centerline{\hboxR{\mx{quranpage*[249]}{\quranpage*[249]} + \hfill + \mx{quranpage*[250]}{\quranpage*[250]}}} + + * Starred version of macros will be explained in page~\pageref{starred}; concisely it means + typesetting that part of the Holy Quran in one paragraph. + + \centerline{\mxf{quranpage*[1-3]}{\quranpage*[1-3]}} + +\subsection{Juz/Ajza} +%\vspace{-6mm} +\begin{declcs}{quranjuz}\oarg{n} +\end{declcs} +Above macro typesets the \textit{n}$^{th}$ juz of Quran and the next macro typesets m$^{th}$ to n$^{th}$ juzzes of Quran. + +\begin{declcs}{quranjuz}\oarg{m-n} +\end{declcs} +%\vspace{-6mm} +The numbers should be between $1$ to $30$. + +\subsection{Hizb/Ahzab} +Each juz of Quran is devided into two ahzab (group), so there are 60 ahzab. +Following macros typeset hizb/ahzab of Quran. + +%\vspace{-6mm} +\begin{declcs}{quranhizb}\oarg{n} +\end{declcs} +%\vspace{-14mm} +\begin{declcs}{quranhizb}\oarg{m-n} +\end{declcs} + + +\subsection{Quarter/Quarters} +Eash hizb of Quran is devided into four quarters, making eight quarters per juz, called maqra. +There are 240 of these quarters (of hizb) in the Quran. These maqras are often used as sections for revision when memorizing the Quran.\footnote{\url{https://en.wikipedia.org/wiki/Juz'}} + +%\vspace{-6mm} +\begin{declcs}{quranquarter}\oarg{n} +\end{declcs} +%\vspace{-14mm} +\begin{declcs}{quranquarter}\oarg{m-n} +\end{declcs} + +Above macros typeset the \textit{n}$^{th}$ or m$^{th}$ to n$^{th}$ quarter(s) of Quran. + + \centerline{\mxf{quranquarter*[110]}{\quranquarter*[110]}} + +\subsection{Ruku/Rukus} +``The term ruk\= u --- roughly translated to ``passage", ``pericope" or ``stanza" --- is also used to denote a group of thematically related verses in the Qur'an. Longer suras (chapters) in the Qur'an are usually divided into several ruk\= us, so that the reciters could identify when to make ruk\= u in Salat without breaking an ongoing topic in the Quranic text."\footnote{\url{https://en.wikipedia.org/wiki/Ruku}} + +The following macros can typeset rukus of The Holy Quran in the way the previous macros did. + +\begin{declcs}{quranruku}\oarg{n} +\end{declcs} + + \centerline{\mxf{quranruku*[363]}{\quranruku*[363]}} + +\begin{declcs}{quranruku}\oarg{m-n} +\end{declcs} +The numbers should be between $1$ to $556$. + + \centerline{\mxf{quranruku*[58-59]}{\quranruku*[58-59]}} + + +\subsection{Manzil/Manazil} +``For the convenience of people who wish to read the Qur'an in a week the text may be divided into 7 portions, each portion is known as Manzil. + +The following division to 7 equal portions is by Hamza Al-Zayyat (d.156/772): +\begin{enumerate} + \item Al-Fatihah (chapter 1) through An-Nisa' (chapter 4) consisting of 4 surahs. + \item Al-Ma'ida (chapter 5) through At-Tawba (chapter 9) consisting of 5 surahs. + \item Yunus (chapter 10) through An-Nahl (chapter 16) consisting of 7 surahs. + \item Al Isra' (chapter 17) through Al-Furqan (chapter 25) consisting of 9 surahs. + \item Ash-Shuara' (chapter 26) through Ya-Seen (chapter 36) consisting of 11 surahs. + \item As-Saaffat (chapter 37) through Al-Hujarat (chapter 49) consisting of 13 surahs. + \item Qaf (chapter 50) through An-Nass (chapter 114) consisting of 65 surahs.''\footnote{\url{https://en.wikipedia.org/wiki/Manzil}} +\end{enumerate} + +Following macros typeset manzil/manazil of Quran. + +\begin{declcs}{quranmanzil}\oarg{n} +\end{declcs} +%\vspace{-12mm} +\begin{declcs}{quranmanzil}\oarg{m-n} +\end{declcs} + +\subsection{Text of Quran} +The next macro is the heart of all macros typesetting any range of Quran. As you know there +are $6236$ Ayat in Quran. This macro can typeset a specific Ayah or any range of Ayat. + +\begin{declcs}{qurantext}\oarg{n} +\end{declcs} +Typesets the \textit{n}$^{th}$ Ayah of Quran. + +\centerline{\mxf{qurantext[1023]}{\begingroup\qurantext[1023]\endgroup}} + +\begin{declcs}{qurantext}\oarg{m-n} +\end{declcs} +Typesets any range of Ayat from the \textit{m}$^{th}$ to \textit{n}$^{th}$ Ayah. + + \centerline{\mxf{qurantext*[4111-4117]}{\begingroup\qurantext*[4111-4117]\endgroup}} + +Using \cs{qurantext} without its optional argument uses [1-7] at its default argument--Al-Hamd. To +change the default text use \cs{setqurantextdefault\{m-n\}} +\marginpar{\cs{qurantext}} + + + \centerline{\mx{qurantext}{\qurantext}} + + \noindent Below, the default is changed to \cs{setqurantextdefault\{4128-4147\}}: + \marginpar{\cs{setqurantextdefault\{m-n\}}} + + \setqurantextdefault{4128-4147} + \centerline{\mxf{qurantext*}{\qurantext*}} + +\subsection{Whole of The Holy Quran} +The following macros can typeset whole of The Holy Quran: + +\begin{itemize} + \item \cs{quransurah[1-114]} + \item \cs{quranjuz[1-30]} + \item \cs{quranpage[1-604]} + \item \cs{qurantext[1-6236]} + \item \cs{quranhizb[1-60]} + \item \cs{quranquarter[1-240]} + \item \cs{quranruku[1-556]} + \item \cs{quranmanzil[1-7]} +\end{itemize} + +\section{Miscellaneous} + +\subsection{Name of Surah} +\begin{declcs}{surahname}\oarg{m} +\end{declcs} +This macro returns the transliteration of \textit{m}$^{th}$ Surah's name. + +\begin{declcs}{surahname*}\oarg{m} +\end{declcs} +This macro returns the arabic name of \textit{m}$^{th}$ Surah. + + \centerline{\hbox{\mx{surahname[19]}{\surahname[19]} + \hfill + \mx{surahname*[19]}{\quran\surahname*[19]}}} + +\subsection{Basmalah} +\begin{declcs}{basmalah} +\end{declcs} +It provides the basmalah in arabic text which every Surah is started by that. + + \centerline{\mx{basmalah}{\quran\basmalah}} + +\subsection{Index Converting} +\begin{declcs}{indexconvert}\marg{index}\marg{surah macro}\marg{ayah macro} +\end{declcs} +This command converts an index number between 1 to 6236 +to its exact surah's index and ayah's index. The index must be a number or +\TeX{} counter, the surah macro and ayah macro must be \TeX{} macro names. They +will be set to numbers representing the surah and ayah of the given index in whole of Quran. + +\section{Options to The Package} +All text generated by macros of this package will be separated by the macro \cs{par}. Sometimes, +a version of text without \cs{par} is desired. Therefore the package provides the option +\texttt{nopar}\marginpar{\texttt{nopar}} +that causes no macros of the package terminated by \cs{par}. +Another way for achieving this, is using the starred version of macros. All macros of the package +has a starred version that omit the \cs{par} macro in typesetting the text of Quran. + +\label{starred} +In some cases maybe user wants to typeset the Ayat without their following numbers visible in printed versions of The Holy Quran. The \texttt{nonumber}\marginpar{nonumber} +option tells the package that print no number after ayah. +But sometimes we want to typeset just some Ayat without theirs, so there is a \cs{ToggleAyahNumber} macro +that can cause numbers will be omitted. With \texttt{nonumber} option this macro acts vice versa, it mean it +causes that Ayat number will be printed. + + \centerline{\mxf{ToggleAyahNumber\textbackslash{}quransurah*[89]} + {\ToggleAyahNumber\quransurah*[89]}} + +By default, the package typesets the text of The Holy Quran in simple script, but if you prefer the Uthmani script you can use \texttt{uthmani} \marginpar{uthmani} +option. Compare the following texts to figure out the differences between ``default'' and ``uthmani'' script. + \centerline{\hbox{ + \mx{quransurah*[1] (default)}{\includegraphics{defaulttext.pdf}} + \hfill + \mx{quransurah*[1] (uthmani)}{\includegraphics{uthmanitext.pdf}} + }} + +By version 1.3, the package can typeset the transliteration of The Holy Quran. +This option will be useful for whom doesn't really know how to read the arabic text. By loading \texttt{translt} +option all macros that defined in section~\ref{sec:qurantypesetting} will have an ``\texttt{lt}" version. In other words, +this option will add the following macros: +\marginpar{translt} + +\begin{itemize} + + \item \cs{quransurahlt} + \item \cs{quranayahlt} + \item \cs{quranpagelt} + \item \cs{quranjuzlt} + \item \cs{quranhizblt} + \item \cs{quranquarterlt} + \item \cs{quranrukult} + \item \cs{quranmanzillt} + \item \cs{qurantextlt} +\end{itemize} + + \centerline{\mx{quransurahlt[108]}{\setLTR\quransurahlt[108]} + \hfill + \mx{quransurah[108]}{\quransurah[108]}} + + + +By version 1.4, the package can typeset some translations of The Holy Quran in German, English, and Persian. +\marginpar{transde}\marginpar{transen}\marginpar{transfa}% +These options added because of some requests from users who need the translation of The Holy Quran in their languages. +By loading \texttt{transde}, \texttt{transen}, and \texttt{transfa} the package can typeset the translation in + German, English, and Persian, respectively. + +By loading each of these options, all macros that defined in section~\ref{sec:qurantypesetting} will have +a ``\texttt{de}"/``\texttt{en}"/``\texttt{fa}" version. In other words, +these will add the following macros: + + +\begin{multicols}{3} +\texttt{transde} option: +\begin{itemize} + \item \cs{quransurahde} + \item \cs{quranayahde} + \item \cs{quranpagede} + \item \cs{quranjuzde} + \item \cs{quranhizbde} + \item \cs{quranquarterde} + \item \cs{quranrukude} + \item \cs{quranmanzilde} + \item \cs{qurantextde} +\end{itemize} + +\texttt{transen} option: +\begin{itemize} + \item \cs{quransurahen} + \item \cs{quranayahen} + \item \cs{quranpageen} + \item \cs{quranjuzen} + \item \cs{quranhizben} + \item \cs{quranquarteren} + \item \cs{quranrukuen} + \item \cs{quranmanzilen} + \item \cs{qurantexten} +\end{itemize} + +\texttt{transfa} option: +\begin{itemize} + \item \cs{quransurahfa} + \item \cs{quranayahfa} + \item \cs{quranpagefa} + \item \cs{quranjuzfa} + \item \cs{quranhizbfa} + \item \cs{quranquarterfa} + \item \cs{quranrukufa} + \item \cs{quranmanzilfa} + \item \cs{qurantextfa} +\end{itemize} +\end{multicols} + + All translations are from \url{tanzil.net}. For Germen, English, and Persian languages the ``Abu Rida Muhammad ibn Ahmad ibn Rassoul", ``Ahmed Ali", ``Mohammad Mahdi Fooladvand" is choosen respectively, by suggestion of the package's users. + + Another option is defined that simplifies the usage of mutiple translations simultaneously. The \texttt{trans} option can get + any permutation of ``\texttt{lt}", ``\texttt{de}", ``\texttt{en}", and ``\texttt{fa}". e.g. this document loaded the \texttt{quran} + package with ``\texttt{trans=\{lt, de, en, fa\}}" option. + \marginpar{trans} + + \centerline{\mx{quransurahfa[108]}{\quransurahfa[108]} + \hfill + \mx{quransurah[108]}{\quransurah[108]}} + \centerline{\mx{quransurahen[108]}{\setLTR\small\quransurahen[108]} + \hfill + \mx{quransurahde[108]}{\setLTR\small\quransurahde[108]}} + + +\section{Acknowledgment} +At first, I should appreciate Vafa Khaligi by preparing such adorable packages --\xpackage{bidi} and +\xpackage{xepersian} for typesetting right-to-left text. +Secondly, the costly website, \hbox{\url{http://tanzil.net/}}, for providing the text of The Holy Quran developed by Hamid Zarrabi-Zadeh. And finally, people in Parsi\LaTeX\footnote{\url{http://parsilatex.com/}} +group who tested and commented this work in advance. + +\section{Frequently Asked Questions} + \subsection{What is the best font for typesetting quran text?} + We strongly recommend you to use "Scheherazade"% + \footnote{\url{http://software.sil.org/scheherazade/}} + or "Amiri"% + \footnote{\url{http://www.amirifont.org/}} fonts. + + Scheherazade is released under the SIL Open Font License (OFL), version 1.1. Copyright (c) 2004-2015, + SIL International (http://scripts.sil.org/) with Reserved Font Names "Scheherazade" and "SIL". Therefore + you can freely download it. + All examples in this document use this font. + + Amiri is a classical Arabic typeface in Naskh style for typesetting books and other running text. + Amiri is a revival of the beautiful typeface pioneered in early 20$^{th}$ century by Bulaq Press in Cairo, + also known as Amiria Press, after which the font is named. + Amiri is a free, open source project that everyone is encouraged to use and modify. + + \subsection{How to use \xpackage{quran} package?} + As you've noticed, for typesetting quran text you need a package that can typeset text + in RTL mode in additon to using UTF8 fonts, because \xpackage{quran} draws its text from a + unicoded databases. The \xpackage{polyglossia}, + \xpackage{fontspec}, and \xpackage{bidi} will do that for you. + You can also use \xpackage{xepersian} that relies on \xpackage{fontspec}, too. + Another choices are \xpackage{arabxetex} and \xpackage{arabluatex} that the latter just + works with \LuaLaTeX{} while former + ways work with \XeLaTeX. The \xpackage{arabxetex} and \xpackage{arabluatex} use Amiri font by default. + The following demonstrates some examples for all four approaches: + +\begin{lstlisting}[style=BashInputStyle, title=``example: with polyglossia{,} +fontspec{,} and bidi"] +\documentclass{article} + +\usepackage{quran} + +%%% for typesetting arabic text +\usepackage{polyglossia} +\setotherlanguage{arabic} + +\usepackage{fontspec} +\setmainfont{Scheherazade} + +%%% for typesetting in Rigth-To-Left direction +\usepackage{bidi} + +\begin{document} + +\setRTL % tell bidi to typeset the text in Rigth-To-Left direction +\textarabic{\quransurah} + +\end{document} +\end{lstlisting} + + +\begin{lstlisting}[style=BashInputStyle, title=``example: with xepersian"] +\documentclass{article} + +\usepackage{quran} + +%%% for typesetting Persian/Arabic text in Rigth-To-Left direction +\usepackage{xepersian} +\settextfont{Scheherazade} + +\begin{document} + +\quransurah + +\end{document} +\end{lstlisting} + +\begin{lstlisting}[style=BashInputStyle, title=``example: with arabxetex"] +\documentclass{article} + +\usepackage{arabxetex} % for typesetting Arabic text in Rigth-To-Left direction +\usepackage{quran} + +\begin{document} + +\begin{arab}[utf] + \quransurah +\end{arab} + +\end{document} +\end{lstlisting} + +\begin{lstlisting}[style=BashInputStyle, title=``example: with arabluatex"] +\documentclass{article} + +\usepackage{arabluatex} % for typesetting Arabic text in Rigth-To-Left direction +\usepackage{quran} + +\begin{document} + +\begin{txarab} + \quransurah +\end{txarab} + +\end{document} +\end{lstlisting} + + \subsection{How to set quran default font?} + If you want to automatically change the font of quran text in your document, you + can put your willing font in precede of \cs{qurantext} like below: + + In case you are using \xpackage{xepersian}, put the following commands in the preamble: + +\begin{lstlisting}[style=BashInputStyle] +\defpersianfont\quran{Scheherazade} +\makeatletter +\bidi@preto\qurantext{\quran} +\makeatother +\end{lstlisting} + + In case you are using \xpackage{fontspec}, put the commands below in the preamble: +\begin{lstlisting}[style=BashInputStyle] +\usepackage{etoolbox} +\newfontfamily\quran{Scheherazade} +\preto\qurantext{\quran} +\end{lstlisting} + + By setting default font as above, if you want to use \cs{quratext}, you have to enclose it in curly braces. If you don't, + it will affect the font of the following texts. +\begin{lstlisting}[style=BashInputStyle] +{\qurantext[x-y]} +\end{lstlisting} + \subsection{How to typeset a portion of the Holy Quran in one paragraph + with no ayah number without affecting the behaviour of \xpackage{quran} package + in other cases?} + + Just put the code that was describled on page~\pageref{starred} in a group like: +\begin{lstlisting}[style=BashInputStyle] +{\ToggleAyahNumber\quransurah*} +\end{lstlisting} + +\end{document} |