summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/xelatex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2009-07-17 00:56:22 +0000
committerKarl Berry <karl@freefriends.org>2009-07-17 00:56:22 +0000
commit6daa627c7cb7dfd9e78504d4641c87a0d4248724 (patch)
tree1faf58108bb4e75b78b027c2fa0421e1e464b20f /Master/texmf-dist/source/xelatex
parent5371eca0a5672238a07a473483cdd4a7eeb4a31f (diff)
xepersian 1.0.1 (14jul09)
git-svn-id: svn://tug.org/texlive/trunk@14287 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/xelatex')
-rw-r--r--Master/texmf-dist/source/xelatex/xepersian/xepersian.dtx9100
1 files changed, 9100 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/xelatex/xepersian/xepersian.dtx b/Master/texmf-dist/source/xelatex/xepersian/xepersian.dtx
new file mode 100644
index 00000000000..d25a0a64170
--- /dev/null
+++ b/Master/texmf-dist/source/xelatex/xepersian/xepersian.dtx
@@ -0,0 +1,9100 @@
+% \iffalse
+%<*internal>
+\iffalse
+%</internal>
+%<*readme>
+_________________
+The XePersian package
+v1.0.1
+
+XePersian is a package written for XeLaTeX that allows users to typeset
+Persian easily. The current version is 1.0.1 and it will be developed to
+ meet the needs of Persian typesetting properly.
+
+The XePersian package is independent of any operating system, meaning it
+will work on all operating systems.
+
+There are some excellent fonts made by IRMUG (Iranian Mac User Group) which you can download
+from http://wiki.irmug.org/index.php/X_Series_2#Download_fonts and
+http://wiki.irmug.org/index.php/XWZar
+
+
+This version fixes all known bugs and adds heaps of new things.
+
+______________
+Vafa Khalighi
+vafa@users.berlios.de
+
+Copyright 2008-2009
+Distributed under the LaTeX Project Public License
+%</readme>
+%<*internal>
+\fi
+%
+%</internal>
+%
+%<*internal>
+\begingroup
+%</internal>
+%<*batchfile>
+\input docstrip.tex
+\keepsilent
+\preamble
+
+ __________________________________
+ Copyright © 2008-2009 Vafa Khalighi
+
+ License information appended.
+
+
+\endpreamble
+\postamble
+
+Copyright © 2008-2009 by Vafa Khalighi <vafa@users.berlios.de>
+
+Distributable under the LaTeX Project Public License,
+version 1.3c or higher (your choice). The latest version of
+this license is at: http://www.latex-project.org/lppl.txt
+
+This work is "maintained" (as per LPPL maintenance status)
+by Vafa Khalighi.
+
+
+
+
+\endpostamble
+\askforoverwritefalse
+\generate{\file{xepersian.sty}{\from{xepersian.dtx}{xepersian.sty}}}
+\generate{\file{algorithmic-xepersian.def}{\from{xepersian.dtx}{algorithmic-xepersian.def}}}
+\generate{\file{algorithm-xepersian.def}{\from{xepersian.dtx}{algorithm-xepersian.def}}}
+\generate{\file{amsart-xepersian.def}{\from{xepersian.dtx}{amsart-xepersian.def}}}
+\generate{\file{amsbook-xepersian.def}{\from{xepersian.dtx}{amsbook-xepersian.def}}}
+\generate{\file{article-xepersian.def}{\from{xepersian.dtx}{article-xepersian.def}}}
+\generate{\file{backref-xepersian.def}{\from{xepersian.dtx}{backref-xepersian.def}}}
+\generate{\file{bidibeamer-xepersian.def}{\from{xepersian.dtx}{bidibeamer-xepersian.def}}}
+\generate{\file{bidimoderncv-xepersian.def}{\from{xepersian.dtx}{bidimoderncv-xepersian.def}}}
+\generate{\file{bookest-xepersian.def}{\from{xepersian.dtx}{bookest-xepersian.def}}}
+\generate{\file{book-xepersian.def}{\from{xepersian.dtx}{book-xepersian.def}}}
+\generate{\file{footnote-bidi-xepersian.def}{\from{xepersian.dtx}{footnote-bidi-xepersian.def}}}
+\generate{\file{localise-xepersian.def}{\from{xepersian.dtx}{localise-xepersian.def}}}
+\generate{\file{commands-ltx.def}{\from{xepersian.dtx}{commands-ltx.def}}}
+\generate{\file{commands-xepersian.def}{\from{xepersian.dtx}{commands-xepersian.def}}}
+\generate{\file{enumerate-xepersian.def}{\from{xepersian.dtx}{enumerate-xepersian.def}}}
+\generate{\file{environments-ltx.def}{\from{xepersian.dtx}{environments-ltx.def}}}
+\generate{\file{environments-xepersian.def}{\from{xepersian.dtx}{environments-xepersian.def}}}
+\generate{\file{extbook-xepersian.def}{\from{xepersian.dtx}{extbook-xepersian.def}}}
+\generate{\file{kashida-xepersian.def}{\from{xepersian.dtx}{kashida-xepersian.def}}}
+\generate{\file{listings-xepersian.def}{\from{xepersian.dtx}{listings-xepersian.def}}}
+\generate{\file{bidimemoir-xepersian.def}{\from{xepersian.dtx}{bidimemoir-xepersian.def}}}
+\generate{\file{minitoc-xepersian.def}{\from{xepersian.dtx}{minitoc-xepersian.def}}}
+\generate{\file{misccommandsenvironments-ltx.def}{\from{xepersian.dtx}{misccommandsenvironments-ltx.def}}}
+\generate{\file{refrep-xepersian.def}{\from{xepersian.dtx}{refrep-xepersian.def}}}
+\generate{\file{report-xepersian.def}{\from{xepersian.dtx}{report-xepersian.def}}}
+\generate{\file{rapport3-xepersian.def}{\from{xepersian.dtx}{rapport3-xepersian.def}}}
+\generate{\file{scrartcl-xepersian.def}{\from{xepersian.dtx}{scrartcl-xepersian.def}}}
+\generate{\file{scrbook-xepersian.def}{\from{xepersian.dtx}{scrbook-xepersian.def}}}
+\generate{\file{scrreprt-xepersian.def}{\from{xepersian.dtx}{scrreprt-xepersian.def}}}
+\generate{\file{tocloft-xepersian.def}{\from{xepersian.dtx}{tocloft-xepersian.def}}}
+\generate{\file{xepersian-magazine.cls}{\from{xepersian.dtx}{xepersian-magazine.cls}}}
+\generate{\file{xepersian-mathsdigitspec.sty}{\from{xepersian.dtx}{xepersian-mathsdigitspec.sty}}}
+\generate{\file{xepersian-multiplechoice.sty}{\from{xepersian.dtx}{xepersian-multiplechoice.sty}}}
+\generate{\file{xepersian-persiancal.sty}{\from{xepersian.dtx}{xepersian-persiancal.sty}}}
+\generate{\file{xepersian-thesis.cls}{\from{xepersian.dtx}{xepersian-thesis.cls}}}
+\generate{\file{xepersian-thesis-xepersian.def}{\from{xepersian.dtx}{xepersian-thesis-xepersian.def}}}
+\generate{\file{acm-fa.bst}{\from{xepersian.dtx}{acm-fa.bst}}}
+\generate{\file{ieeetr-fa.bst}{\from{xepersian.dtx}{ieeetr-fa.bst}}}
+\generate{\file{plain-fa.bst}{\from{xepersian.dtx}{plain-fa.bst}}}
+\generate{\file{unsrt-fa.bst}{\from{xepersian.dtx}{unsrt-fa.bst}}}
+%</batchfile>
+%<batchfile>\endbatchfile
+%<*internal>
+\generate{\file{xepersian.ins}{\from{xepersian.dtx}{batchfile}}}
+\nopreamble\nopostamble
+\generate{\file{README.txt}{\from{xepersian.dtx}{readme}}}
+\generate{\file{parsidigits.map}{\from{xepersian.dtx}{parsidigits.map}}}
+\generate{\file{txt2maths.map}{\from{xepersian.dtx}{txt2maths.map}}}
+\generate{\file{thesis-sample.tex}{\from{xepersian.dtx}{thesis-sample.tex}}}
+\generate{\file{magazine-sample.tex}{\from{xepersian.dtx}{magazine-sample.tex}}}
+\generate{\file{test-correction.tex}{\from{xepersian.dtx}{test-correction.tex}}}
+\generate{\file{test-empty-form.tex}{\from{xepersian.dtx}{test-empty-form.tex}}}
+\generate{\file{test-question-only.tex}{\from{xepersian.dtx}{test-question-only.tex}}}
+\generate{\file{test-solution-form.tex}{\from{xepersian.dtx}{test-solution-form.tex}}}
+\generate{\file{acm-fa-output.tex}{\from{xepersian.dtx}{acm-fa-output.tex}}}
+\generate{\file{bibtex-example.tex}{\from{xepersian.dtx}{bibtex-example.tex}}}
+\generate{\file{ieeetr-fa-output.tex}{\from{xepersian.dtx}{ieeetr-fa-output.tex}}}
+\generate{\file{MyReferences.bib}{\from{xepersian.dtx}{MyReferences.bib}}}
+\generate{\file{plain-fa-output.tex}{\from{xepersian.dtx}{plain-fa-output.tex}}}
+\endgroup
+%</internal>
+%
+%<*driver>
+\documentclass{ltxdoc}
+\usepackage[sc,osf]{mathpazo}
+\usepackage{fvrb-ex}
+\EnableCrossrefs
+\CodelineIndex
+\RecordChanges
+\OnlyDescription
+
+\begin{document}
+ \DocInput{xepersian.dtx}
+\end{document}
+%</driver>
+%
+%
+% \fi
+%
+% \GetFileInfo{bidi.sty}
+% \makeatletter
+%
+%\title{The \textsf{XePersian} Package}
+%\author{Vafa Khalighi\\
+%\footnotesize\texttt{<vafa@users.berlios.de>}}
+%
+% \StopEventually{}
+% \section{Implementation}
+% \part{xepersian.sty}
+%\iffalse
+%<*xepersian.sty>
+% \fi
+%
+%
+% \begin{macrocode}
+\NeedsTeXFormat{LaTeX2e}
+\def\xepersianversion{v1.0.1}
+\def\xepersianrevision{revision 88}
+\def\xepersiandate{2009/07/15}
+\ProvidesPackage{xepersian}[\xepersiandate\space \xepersianversion\space <\xepersianrevision>
+ Persian typesetting in XeLaTeX]
+\DeclareOption{Kashida}{\input{kashida-xepersian.def}}
+\DeclareOption{localise}{\input{localise-xepersian.def}}
+\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{bidi}}
+\ProcessOptions\relax
+\newcommand\xepersian@isloaded[2][]{
+ \expandafter\ifx\csname if@xepersian@#2loaded@\endcsname\relax
+ \expandafter\newif\csname if@xepersian@#2loaded@\endcsname
+ \fi
+ \@ifpackageloaded{#2}
+ {\csname @xepersian@#2loaded@true\endcsname #1}
+ {\csname @xepersian@#2loaded@false\endcsname}}
+\xepersian@isloaded{xunicode}
+\AtBeginDocument{
+ \if@xepersian@xunicodeloaded@
+ \xepersian@isloaded[\PackageError{xepersian}{Oops! you have loaded package xunicode before xepersian package. Please load package xunicode after xepersian package, and then try to run xelatex on your document again}{}]{xunicode}
+ \fi%
+}
+\AtBeginDocument{\ifdefined\persianfont\relax\else%
+\PackageError{xepersian}{Oops! you have not specified any font for the main text of the document. Please specify a font for the main text of the document by using \settextfont\space CS, and then try to run xelatex on your document again}%
+\fi}
+\AtBeginDocument{\ifdefined\latinfont\relax\else%
+\PackageError{xepersian}{Oops! you have not specified any font for the Latin texts of the document. Please specify a font for the Latin texts of the document by using \setlatintextfont\space CS, and then try to run xelatex on your document again}%
+\fi}
+\AtBeginDocument{\ifdefined\decimalseparator\relax\else%
+\PackageWarning{xepersian}{“You have not specified any font for the digits in maths mode and so the digits in maths mode will appear Latin. If you would like to have Persian digits in maths mode, then please specify a font for the digits in maths mode by using \setdigitfont\space CS, and then try to run xelatex on your document again”}%
+\fi}
+\RequirePackage[RTLdocument]{bidi}
+\RequirePackage{fontspec}
+\RequirePackage{xepersian-persiancal}
+\RequirePackage{xepersian-mathsdigitspec}
+\RequirePackage{etoolbox}
+\AtBeginDocument{\special{pdf: docinfo <<
+ /Creator (X∃Persian \xepersianversion\space <\xepersianrevision> Copyright © 2008-2009 Vafa Khalighi)
+ >>}}
+\gdef\@latex@error#1#2{%
+ \GenericError{%
+ \space\space\space\@spaces\@spaces\@spaces
+ }{%
+ XePersian Error: #1%
+ }{%
+ Oops! either you have done something wrong or it is a xepersian bug. Please first produce a similar file without using XePersian package and then compile it with xelatex, if you got the same error, then please study the Persian translation of “The not so Short Introduction to LaTeX” by MEHDI OMIDALI, otherwise please report the error with a minimal tex file which shows the error to the Author of XePersian.%
+ }{#2}%
+}
+\gdef\@latexbug{%
+ \@latex@error{This may be a XePersian bug}{Please inform the Author of XePersian}}
+\def\prq{«}
+\def\plq{»}
+\newfontscript{Persian}{arab}
+\newfontlanguage{Persian}{ARA}
+\newcommand*\settextfont[2][]{%
+\newfontfamily\persianfont[Script=Persian,Mapping=parsidigits,#1]{#2}
+\let\rmdefault\zf@family
+ \normalfont
+}
+\newcommand*\settxtmathfont[2][]{%
+\newfontfamily\TXTmath[Mapping=txt2maths,#1]{#2}
+}
+\newcommand*\setlatintextfont[2][]{%
+\newfontfamily\latinfont[Mapping=tex-text,#1]{#2}
+}
+\newcommand*\defpersianfont[1]{%
+ \@ifnextchar[{\defpersianfont@i#1}{\defpersianfont@i#1[]}}
+\def\defpersianfont@i#1[#2]#3{%
+ \zf@fontspec{Script=Persian,Mapping=parsidigits,#2}{#3}%
+ \edef\@tempa{%
+ \noexpand\DeclareRobustCommand\noexpand#1
+ {\noexpand\fontfamily{\zf@family}\noexpand\selectfont}}%
+ \@tempa}
+\newcommand*\deflatinfont[1]{%
+ \@ifnextchar[{\deflatinfont@i#1}{\deflatinfont@i#1[]}}
+\def\deflatinfont@i#1[#2]#3{%
+ \zf@fontspec{Mapping=tex-text,#2}{#3}%
+ \edef\@tempa{%
+ \noexpand\DeclareRobustCommand\noexpand#1
+ {\noexpand\fontfamily{\zf@family}\noexpand\selectfont}}%
+ \@tempa}
+\newcommand\persiansfdefault{}
+\newcommand\persianttdefault{}
+\newcommand\navardefault{}
+\newcommand\pookdefault{}
+\newcommand\sayehdefault{}
+\DeclareRobustCommand\persiansffamily
+ {\not@math@alphabet\persiansffamily\mathpersiansf
+ \fontfamily\persiansfdefault\selectfont}
+\DeclareRobustCommand\persianttfamily
+ {\not@math@alphabet\persianttfamily\mathpersiantt
+ \fontfamily\persianttdefault\selectfont}
+\DeclareRobustCommand\navarfamily
+ {\not@math@alphabet\navarfamily\mathnavar
+ \fontfamily\navardefault\selectfont}
+\DeclareRobustCommand\pookfamily
+ {\not@math@alphabet\pookfamily\mathpook
+ \fontfamily\pookdefault\selectfont}
+\DeclareRobustCommand\sayehfamily
+ {\not@math@alphabet\sayehfamily\mathsayeh
+ \fontfamily\sayehdefault\selectfont}
+\DeclareTextFontCommand{\textpersiansf}{\persiansffamily}
+\DeclareTextFontCommand{\textpersiantt}{\persianttfamily}
+\DeclareTextFontCommand{\textnavar}{\navarfamily}
+\DeclareTextFontCommand{\textpook}{\pookfamily}
+\DeclareTextFontCommand{\textsayeh}{\sayehfamily}
+\newcommand*\setpersiansansfont[2][]{%
+ \zf@fontspec{Script=Persian,Mapping=parsidigits,#1}{#2}%
+ \let\persiansfdefault\zf@family
+ \normalfont}
+\newcommand*\setpersianmonofont[2][]{%
+ \zf@fontspec{Script=Persian,Mapping=parsidigits,#1}{#2}%
+ \let\persianttdefault\zf@family
+ \normalfont}
+\newcommand*\setnavarfont[2][]{%
+ \zf@fontspec{Script=Persian,Mapping=parsidigits,#1}{#2}%
+ \let\navardefault\zf@family
+ \normalfont}
+\newcommand*\setpookfont[2][]{%
+ \zf@fontspec{Script=Persian,Mapping=parsidigits,#1}{#2}%
+ \let\pookdefault\zf@family
+ \normalfont}
+\newcommand*\setsayehfont[2][]{%
+ \zf@fontspec{Script=Persian,Mapping=parsidigits,#1}{#2}%
+ \let\sayehdefault\zf@family
+ \normalfont}
+\def\lr#1{\begingroup\beginL\latinfont#1\endL\endgroup}
+\def\rl#1{\begingroup\beginR\persianfont#1\endR\endgroup}
+\def\latin{\bgroup\LatinAlphs\par\@RTLfalse\@RTL@footnotefalse\latinfont}
+\def\endlatin{\par\egroup}
+\def\persian{\bgroup\PersianAlphs\par\@RTLtrue\@RTL@footnotetrue\persianfont}
+\def\endpersian{\par\egroup}
+\def\Latin{\if@RTL\par\LatinAlphs\@RTLfalse\@RTL@footnotefalse\latinfont\fi}
+\def\Persian{\if@RTL\relax\else\par\PersianAlphs\@RTLtrue\@RTL@footnotetrue\persianfont\fi}
+\let\originaltoday=\today
+\def\today{\lr{\originaltoday}}
+\let\latintoday\today
+\def\today{\rl{\persiantoday}}
+\newcommand\twocolumnstableofcontents{%
+ \begin{multicols}{2}[\section*{\contentsname}]%
+ \small
+ \@starttoc{toc}%
+ \end{multicols}}
+\def\XePersian{\lr{\leavevmode$\smash{\hbox{X\lower.5ex
+ \hbox{\kern-.125em\reflect{E}}Persian}}$}}
+\def\TeX{\lr{\@@TeX}}
+\def\LaTeX{\lr{\@@LaTeX}}
+\def\LaTeXe{\lr{\@@LaTeXe}}
+\let\origin@XeTeX\XeTeX
+\def\XeTeX{\lr{\origin@XeTeX}}
+\let\origin@XeLaTeX\XeLaTeX
+\def\XeLaTeX{\lr{\origin@XeLaTeX}}
+\def\figurename{\if@RTL شکل\else Figure\fi}
+\def\tablename{\if@RTL جدول\else Table\fi}
+\def\contentsname{\if@RTL فهرست مطالب\else Contents\fi}
+\def\listfigurename{\if@RTL لیست تصاویر\else List of Figures\fi}
+\def\listtablename{\if@RTL لیست جداول\else List of Tables\fi}
+\def\appendixname{\if@RTL پیوست\else Appendix\fi}
+\def\indexname{\if@RTL نمایه\else Index\fi}
+\def\refname{\if@RTL مراجع\else References\fi}
+\def\abstractname{\if@RTL چکیده\else Abstract\fi}
+\def\partname{\if@RTL بخش\else Part\fi}
+\def\datename{\if@RTL تاریخ:\else Date:\fi}
+\def\@@and{\if@RTL و\else and\fi}
+\def\bibname{\if@RTL کتاب‌نامه\else Bibliography\fi}
+\def\chaptername{\if@RTL فصل\else Chapter\fi}
+\def\ccname{\if@RTL رونوشت\else cc\fi}
+\def\enclname{\if@RTL پیوست\else encl\fi}
+\def\pagename{\if@RTL صفحه\else Page\fi}
+\def\headtoname{\if@RTL به\else To\fi}
+\def\proofname{\if@RTL اثبات\else Proof\fi}
+\def\@harfi#1{\ifcase#1\or الف\char"200D\or ب\or پ\or ت\or ث\or
+ج\or چ\or ح\or خ\or د\or ذ\or ر\or ز\or س\or ش\or ص\or ض\or ع\or غ\or
+ف\or ق\or ک\or گ\or ل\or م\or ن\or ه\or و\or ی\else\@ctrerr\fi}
+\def\harfi#1{\expandafter\@harfi\csname c@#1\endcsname}
+\def\@adadi#1{\ifcase#1 \or یک\or دو\or سه\or چهار\or پنج\or شش\or هفت\or هشت\or نه\or ده\or یازده\or دوازده\or سیزده\or چهارده\or پانزده\or شانزده\or هفده\or هجده\or نوزده\or بیست\else\@ctrerr\fi}
+\def\adadi#1{\expandafter\@adadi\csname c@#1\endcsname}
+\def\@tartibi#1{\ifcase#1 \or اول \or دوم \or سوم \or چهارم \or پنجم \or ششم \or هفتم \or هشتم \or نهم \or دهم \or یازدهم \or دوازدهم \or سیزدهم \or چهاردهم \or پانزدهم \or شانزدهم \or هفدهم \or هجدهم \or نوزدهم \or بیستم\else\@ctrerr\fi}
+\def\tartibi#1{\expandafter\@tartibi\csname c@#1\endcsname}
+\providecommand*{\xpg@warning}[1]{%
+ \PackageWarning{XePersian}%
+ {#1}}
+\ifcsdef{abjad}{}{%
+\def\abjad#1{%
+\ifnum#1>1999 \xpg@warning{Illegal value (#1) for abjad numeral} {#1}
+\else
+ \ifnum#1<\z@\space\xpg@warning{Illegal value (#1) for abjad numeral}%
+ \else
+ \ifnum#1<10\expandafter\abj@num@i\number#1%
+ \else
+ \ifnum#1<100\expandafter\abj@num@ii\number#1%
+ \else
+ \ifnum#1<\@m\expandafter\abj@num@iii\number#1%
+ \else
+ \ifnum#1<\@M\expandafter\abj@num@iv\number#1%since #1<2000, we must have 1000
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+\fi
+}
+\def\abjad@zero{}
+\def\abj@num@i#1{%
+ \ifcase#1\or الف\or ب\or ج\or د%
+ \or ه\char"200D\or و\or ز\or ح\or ط\fi
+ \ifnum#1=\z@\abjad@zero\fi}
+\def\abj@num@ii#1{%
+ \ifcase#1\or ی\or ک\or ل\or م\or ن%
+ \or س\or ع\or ف\or ص\fi
+ \ifnum#1=\z@\fi\abj@num@i}
+\def\abj@num@iii#1{%
+ \ifcase#1\or ق\or ر\or ش\or ت\or ث%
+ \or خ\or ذ\or ض\or ظ\fi
+ \ifnum#1=\z@\fi\abj@num@ii}
+\def\abj@num@iv#1{%
+ \ifcase#1\or غ\fi
+ \ifnum#1=\z@\fi\abj@num@iii}
+}
+ \let\@latinalph\@alph%
+ \let\@latinAlph\@Alph%
+\def\PersianAlphs{%
+ \let\@alph\abjad%
+ \let\@Alph\abjad%
+}
+\def\LatinAlphs{%
+ \let\@alph\@latinalph%
+ \let\@Alph\@latinAlph%
+}
+\PersianAlphs
+\@ifpackageloaded{listings}{\input{listings-xepersian.def}}{}
+\@ifpackageloaded{algorithmic}{\input{algorithmic-xepersian.def}}{}
+\@ifpackageloaded{algorithm}{\input{algorithm-xepersian.def}}{}
+\@ifpackageloaded{backref}{\input{backref-xepersian.def}}{}
+\@ifpackageloaded{bidi}{\input{footnote-bidi-xepersian.def}}{}
+\@ifpackageloaded{enumerate}{\input{enumerate-xepersian.def}}{}
+\@ifpackageloaded{minitoc}{\input{minitoc-xepersian.def}}{}
+\@ifpackageloaded{tocloft}{\input{tocloft-xepersian.def}}{}
+\@ifclassloaded{article}{\input{article-xepersian.def}}{}
+\@ifclassloaded{amsart}{\input{amsart-xepersian.def}}{}
+\@ifclassloaded{bidimoderncv}{\input{bidimoderncv-xepersian.def}}{}
+\@ifclassloaded{report}{\input{report-xepersian.def}}{}
+\@ifclassloaded{rapport3}{\input{rapport3-xepersian.def}}{}
+\@ifclassloaded{scrartcl}{\input{scrartcl-xepersian.def}}{}
+\@ifclassloaded{scrbook}{\input{scrbook-xepersian.def}}{}
+\@ifclassloaded{scrreprt}{\input{scrreprt-xepersian.def}}{}
+\@ifclassloaded{xepersian-thesis}{\input{xepersian-thesis-xepersian.def}}{}
+\@ifclassloaded{amsbook}{\input{amsbook-xepersian.def}}{}
+\@ifclassloaded{bookest}{\input{bookest-xepersian.def}}{}
+\@ifclassloaded{extbook}{\input{extbook-xepersian.def}}{}
+\@ifclassloaded{book}{\input{book-xepersian.def}}{}
+\@ifclassloaded{refrep}{\input{refrep-xepersian.def}}{}
+\@ifclassloaded{bidibeamer}{\input{bidibeamer-xepersian.def}}{}
+\@ifclassloaded{bidimemoir}{\input{bidimemoir-xepersian.def}}{}
+% \end{macrocode}
+% \iffalse
+%</xepersian.sty>
+%<*algorithmic-xepersian.def>
+% \fi
+% \part{algorithmic-xepersian.def}
+% \begin{macrocode}
+\def\algorithmicrequire{\if@RTL\textbf{ورودی:}\else\textbf{Require:}\fi}
+\def\algorithmicensure{\if@RTL\textbf{خروجی:}\else\textbf{Ensure:}\fi}
+% \end{macrocode}
+% \iffalse
+%</algorithmic-xepersian.def>
+%<*algorithm-xepersian.def>
+% \fi
+% \part{algorithm-xepersian.def}
+% \begin{macrocode}
+\def\ALG@name{\if@RTL الگوریتم\else Algorithm\fi}
+\def\ALGS@name{الگوریتم‌ها}
+\def\listalgorithmname{\if@RTL لیست \ALGS@name\else List of \ALG@name s\fi}
+% \end{macrocode}
+% \iffalse
+%</algorithm-xepersian.def>
+%<*amsart-xepersian.def>
+% \fi
+% \part{amsart-xepersian.def}
+% \begin{macrocode}
+\renewcommand \thepart {\@tartibi\c@part}
+\renewcommand\appendix{\par
+ \setcounter{section}{0}%
+ \setcounter{subsection}{0}%
+ \gdef\thesection{\@harfi\c@section}}
+% \end{macrocode}
+% \iffalse
+%</amsart-xepersian.def>
+%<*amsbook-xepersian.def>
+% \fi
+% \part{amsbook-xepersian.def}
+% \begin{macrocode}
+\def\frontmatter{\cleardoublepage\pagenumbering{harfi}}
+\renewcommand \thepart {\@tartibi\c@part}
+%to make appendix numbering persian
+\renewcommand\appendix{\par
+ \setcounter{chapter}{0}%
+ \setcounter{section}{0}%
+ \gdef\@chapapp{\appendixname}%
+ \gdef\thechapter{\@harfi\c@chapter}
+}%end appendix
+% \end{macrocode}
+% \iffalse
+%</amsbook-xepersian.def>
+%<*article-xepersian.def>
+% \fi
+% \part{article-xepersian-def}
+% \begin{macrocode}
+\renewcommand \thepart {\@tartibi\c@part}
+\renewcommand\appendix{\par
+ \setcounter{section}{0}%
+ \setcounter{subsection}{0}%
+ \gdef\thesection{\@harfi\c@section}}
+% \end{macrocode}
+% \iffalse
+%</article-xepersian.def>
+%<*backref-xepersian.def>
+% \fi
+% \part{backref-xepersian.def}
+% \begin{macrocode}
+\def\backrefpagesname{\if@RTL صفحات\else pages\fi}
+% \end{macrocode}
+% \iffalse
+%</backref-xepersian.def>
+%<*bidibeamer-xepersian.def>
+% \fi
+% \part{bidibeamer-xepersian.def}
+% \begin{macrocode}
+\def\familydefault{\rmdefault}
+\def\latin{\bgroup\LatinAlphs\par\raggedright\@RTLfalse\@RTL@footnotefalse\latinfont}
+\def\endlatin{\par\egroup}
+\def\persian{\bgroup\PersianAlphs\par\raggedleft\@RTLtrue\@RTL@footnotetrue\persianfont}
+\def\endpersian{\par\egroup}
+\def\biditheoremname{قضیه}
+\def\bidicorollaryname{نتیجه}
+\def\bidifactname{حقیقت}
+\def\bidilemmaname{لم}
+\def\bidiproblemname{مسئله}
+\def\bidisolutionname{پاسخ}
+\def\bididefinitionname{تعریف}
+\def\bididefinitionsname{تعریف‌ها}
+\def\bidiexamplename{مثال}
+\def\bidiexamplesname{مثال‌ها}
+\def\bidiproofname{اثبات}
+% \end{macrocode}
+% \iffalse
+%</bidibeamer-xepersian.def>
+%<*bidimoderncv-xepersian.def>
+% \fi
+% \part{bidimoderncv-xepersian.def}
+% \begin{macrocode}
+\def\refname{تألیفات}
+% \end{macrocode}
+% \iffalse
+%</bidimoderncv-xepersian.def>
+%<*bookest-xepersian.def>
+% \fi
+% \part{bookest-xepersian.def}
+% \begin{macrocode}
+\renewcommand \thepart {\@tartibi\c@part}
+%to make appendix numbering persian
+\renewcommand\appendix{\par
+ \setcounter{chapter}{0}%
+ \setcounter{section}{0}%
+ \gdef\@chapapp{\appendixname}%
+ \gdef\thechapter{\@harfi\c@chapter}
+}%end appendix
+% \end{macrocode}
+% \iffalse
+%</bookest-xepersian.def>
+%<*book-xepersian.def>
+% \fi
+% \part{book-xepersian.def}
+% \begin{macrocode}
+\renewcommand\frontmatter{%
+ \cleardoublepage
+ \@mainmatterfalse
+ \pagenumbering{harfi}}
+\renewcommand\mainmatter{%
+ \cleardoublepage
+ \@mainmattertrue
+ \pagenumbering{arabic}}
+\renewcommand \thepart {\@tartibi\c@part}
+%to make appendix numbering Persian
+\renewcommand\appendix{\par
+ \setcounter{chapter}{0}%
+ \setcounter{section}{0}%
+ \gdef\@chapapp{\appendixname}%
+ \gdef\thechapter{\@harfi\c@chapter}
+}%end appendix
+% \end{macrocode}
+% \iffalse
+%</book-xepersian.def>
+%<*footnote-bidi-xepersian.def>
+% \fi
+% \part{footnote-bidi-xepersian.def}
+% \begin{macrocode}
+\long\def\@footnotetext#1{%
+ \begingroup
+ \setbox\footins
+ \vbox{\if@RTL@footnote\@RTLtrue\else\@RTLfalse\fi\reset@font\footnotesize
+ \interlinepenalty\interfootnotelinepenalty
+ \splittopskip\footnotesep
+ \splitmaxdepth \dp\strutbox \floatingpenalty \@MM
+ \hsize\columnwidth \@parboxrestore
+ \bidi@footnotetext@dir{#1}%
+ \protected@edef\@currentlabel{\csname p@footnote\endcsname\@thefnmark}\@makefntext
+ {\rule{\z@}{\footnotesep}\ignorespaces\if@RTL@footnote#1\else\latinfont#1\fi\strut}}%
+ \bidi@footnotetext@after
+ \insert\footins{\unvbox\footins}%
+ \endgroup}
+\long\def\@RTLfootnotetext#1{%
+ \begingroup
+ \setbox\footins
+ \vbox{\@RTLtrue\reset@font\footnotesize
+ \interlinepenalty\interfootnotelinepenalty
+ \splittopskip\footnotesep
+ \splitmaxdepth \dp\strutbox \floatingpenalty \@MM
+ \hsize\columnwidth \@parboxrestore
+ \bidi@footnotetext@dir{#1}%
+ \protected@edef\@currentlabel{\csname p@footnote\endcsname\@thefnmark}\@makefntext
+ {\rule{\z@}{\footnotesep}\ignorespaces\persianfont #1\strut}}%
+ \bidi@footnotetext@after
+ \insert\footins{\unvbox\footins}%
+ \endgroup}
+\long\def\@LTRfootnotetext#1{%
+ \begingroup
+ \setbox\footins
+ \vbox{\@RTLfalse\reset@font\footnotesize
+ \interlinepenalty\interfootnotelinepenalty
+ \splittopskip\footnotesep
+ \splitmaxdepth \dp\strutbox \floatingpenalty \@MM
+ \hsize\columnwidth \@parboxrestore
+ \bidi@footnotetext@dir{#1}%
+ \protected@edef\@currentlabel{\csname p@footnote\endcsname\@thefnmark}\@makefntext
+ {\rule{\z@}{\footnotesep}\ignorespaces\latinfont #1\strut}}%
+ \bidi@footnotetext@after
+ \insert\footins{\unvbox\footins}%
+ \endgroup}
+\long\def\@mpfootnotetext#1{
+ \global\setbox\@mpfootins\vbox{\if@RTL@footnote\@RTLtrue\else\@RTLfalse\fi
+ \unvbox\@mpfootins
+ \reset@font\footnotesize
+ \hsize\columnwidth
+ \@parboxrestore
+ \protected@edef\@currentlabel
+ {\csname p@mpfootnote\endcsname\@thefnmark}
+ \color@begingroup
+ \bidi@footnotetext@dir{#1}
+ \if@RTL\global\let\bidi@footnoterule\right@footnote\else\global\let\bidi@footnoterule\left@footnote\fi
+ \@makefntext{
+ \rule\z@\footnotesep\ignorespaces\if@RTL@footnote#1\else\latinfont#1\fi\@finalstrut\strutbox}
+ \color@endgroup}}
+\long\def\@mpRTLfootnotetext#1{
+ \global\setbox\@mpfootins\vbox{\@RTLtrue
+ \unvbox\@mpfootins
+ \reset@font\footnotesize
+ \hsize\columnwidth
+ \@parboxrestore
+ \protected@edef\@currentlabel
+ {\csname p@mpfootnote\endcsname\@thefnmark}
+ \color@begingroup
+ \bidi@footnotetext@dir{#1}
+ \if@RTL\global\let\bidi@footnoterule\right@footnote\else\global\let\bidi@footnoterule\left@footnote\fi
+ \@makefntext{
+ \rule\z@\footnotesep\ignorespaces\persianfont#1\@finalstrut\strutbox}
+ \color@endgroup}}
+\long\def\@mpLTRfootnotetext#1{
+ \global\setbox\@mpfootins\vbox{\@RTLfalse
+ \unvbox\@mpfootins
+ \reset@font\footnotesize
+ \hsize\columnwidth
+ \@parboxrestore
+ \protected@edef\@currentlabel
+ {\csname p@mpfootnote\endcsname\@thefnmark}
+ \color@begingroup
+ \bidi@footnotetext@dir{#1}
+ \if@RTL\global\let\bidi@footnoterule\right@footnote\else\global\let\bidi@footnoterule\left@footnote\fi
+ \@makefntext{
+ \rule\z@\footnotesep\ignorespaces\latinfont#1\@finalstrut\strutbox}
+ \color@endgroup}}
+% \end{macrocode}
+% \iffalse
+%</footnote-bidi-xepersian.def>
+%<*localise-xepersian.def>
+% \fi
+% \part{localise-xepersian.def}
+% \begin{macrocode}
+\catcode`\﷼=3
+\catcode`‌=11
+\newcommand\eqcommand[2][]{\let#1=#2}
+\newcommand\eqenvironment[2][]{\newenvironment{#1}{\begin{#2}}{\end{#2}}}
+\define@key[zf]{options}{مقیاس}{%
+ \edef\@tempa{#1}%
+ \edef\@tempb{MatchLowercase}%
+ \ifx\@tempa\@tempb
+ \zf@calc@scale{5}%
+ \else
+ \edef\@tempb{MatchUppercase}%
+ \ifx\@tempa\@tempb
+ \zf@calc@scale{8}%
+ \else
+ \edef\zf@scale{#1}%
+ \fi
+ \fi
+ \zf@update@family{+scale:\zf@scale}%
+ \edef\zf@scale{s*[\zf@scale]}}
+\input{commands-ltx.def}
+\input{commands-xepersian.def}
+\input{environments-ltx.def}
+\input{environments-xepersian.def}
+\input{misccommandsenvironments-ltx.def}
+% \end{macrocode}
+% \iffalse
+%</localise-xepersian.def>
+%<*commands-ltx.def>
+% \fi
+% \part{commands-ltx.def}
+% \begin{macrocode}
+\eqcommand[]{\abovedisplayshortskip}
+\eqcommand[]{\abovedisplayskip}
+\eqcommand[]{\abstractname}
+\eqcommand[]{\acute}
+\eqcommand[]{\addcontentsline}
+\eqcommand[]{\address}
+\eqcommand[]{\addtocontents}
+\eqcommand[]{\addtocounter}
+\eqcommand[]{\addtolength}
+\eqcommand[]{\addvspace}
+\eqcommand[]{\aleph}
+\eqcommand[]{\allowdisplaybreaks}
+\eqcommand[]{\Alph}
+\eqcommand[]{\alph}
+\eqcommand[]{\alpha}
+\eqcommand[]{\alsoname}
+\eqcommand[]{\amalg}
+\eqcommand[]{\and}
+\eqcommand[]{\angle}
+\eqcommand[]{\appendixname}
+\eqcommand[]{\approx}
+\eqcommand[]{\arabic}
+\eqcommand[]{\arccos}
+\eqcommand[]{\arcsin}
+\eqcommand[]{\arctan}
+\eqcommand[]{\arg}
+\eqcommand[]{\arraycolsep}
+\eqcommand[]{\arrayrulewidth}
+\eqcommand[]{\arraystretch}
+\eqcommand[]{\ast}
+\eqcommand[]{\asymp}
+\eqcommand[]{\AtBeginDocument}
+\eqcommand[]{\AtEndDocument}
+\eqcommand[]{\AtEndOfClass}
+\eqcommand[]{\AtEndOfPackage}
+\eqcommand[]{\author}
+\eqcommand[]{\backmatter}
+\eqcommand[]{\backslash}
+\eqcommand[]{\bar}
+\eqcommand[]{\baselineskip}
+\eqcommand[]{\baselinestretch}
+\eqcommand[]{\begin}
+\eqcommand[]{\belowdisplayshortskip}
+\eqcommand[]{\belowdisplayskip}
+\eqcommand[]{\beta}
+\eqcommand[]{\bfdefault}
+\eqcommand[]{\bfseries}
+\eqcommand[]{\bibitem}
+\eqcommand[]{\bibliography}
+\eqcommand[]{\bibliographystyle}
+\eqcommand[]{\bibname}
+\eqcommand[]{\big}
+\eqcommand[]{\Big}
+\eqcommand[]{\bigcap}
+\eqcommand[]{\bigcirc}
+\eqcommand[]{\bigcup}
+\eqcommand[]{\bigg}
+\eqcommand[]{\Bigg}
+\eqcommand[]{\bigodot}
+\eqcommand[]{\bigoplus}
+\eqcommand[]{\bigotimes}
+\eqcommand[]{\bigskip}
+\eqcommand[]{\bigskipamount}
+\eqcommand[]{\bigsqcup}
+\eqcommand[]{\bigtriangledown}
+\eqcommand[]{\bigtriangleup}
+\eqcommand[]{\biguplus}
+\eqcommand[]{\bigvee}
+\eqcommand[]{\bigwedge}
+\eqcommand[]{\binom}
+\eqcommand[]{\bmod}
+\eqcommand[]{\boldmath}
+\eqcommand[]{\boldsymbol}
+\eqcommand[]{\bot}
+\eqcommand[]{\botfigrule}
+\eqcommand[]{\bottomfraction}
+\eqcommand[]{\bowtie}
+\eqcommand[]{\Box}
+\eqcommand[]{\boxed}
+\eqcommand[]{\breve}
+\eqcommand[]{\bullet}
+\eqcommand[]{\cap}
+\eqcommand[]{\caption}
+\eqcommand[]{\cc}
+\eqcommand[]{\ccname}
+\eqcommand[]{\cdot}
+\eqcommand[]{\cdots}
+\eqcommand[]{\centering}
+\eqcommand[]{\centerline}
+\eqcommand[]{\cfrac}
+\eqcommand[]{\chapter}
+\eqcommand[]{\chapter*}
+\eqcommand[]{\chaptername}
+\eqcommand[]{\check}
+\eqcommand[]{\CheckCommand}
+\eqcommand[]{\chi}
+\eqcommand[]{\circ}
+\eqcommand[]{\circle}
+\eqcommand[]{\circle*}
+\eqcommand[]{\cite}
+\eqcommand[]{\citep}
+\eqcommand[]{\citet}
+\eqcommand[]{\ClassError}
+\eqcommand[]{\ClassInfo}
+\eqcommand[]{\ClassWarning}
+\eqcommand[]{\ClassWarningNoLine}
+\eqcommand[]{\cleardoublepage}
+\eqcommand[]{\clearpage}
+\eqcommand[]{\cline}
+\eqcommand[]{\closing}
+\eqcommand[]{\clubsuit}
+\eqcommand[]{\color}
+\eqcommand[]{\colorbox}
+\eqcommand[]{\columnsep}
+\eqcommand[]{\columnseprule}
+\eqcommand[]{\cong}
+\eqcommand[]{\contentsline}
+\eqcommand[]{\contentsname}
+\eqcommand[]{\coprod}
+\eqcommand[]{\copyright}
+\eqcommand[]{\cos}
+\eqcommand[]{\cosh}
+\eqcommand[]{\cot}
+\eqcommand[]{\coth}
+\eqcommand[]{\csc}
+\eqcommand[]{\cup}
+\eqcommand[]{\CurrentOption}
+\eqcommand[]{\dag}
+\eqcommand[]{\dagger}
+\eqcommand[]{\dashbox}
+\eqcommand[]{\dashv}
+\eqcommand[]{\date}
+\eqcommand[]{\dbinom}
+\eqcommand[]{\dblfigrule}
+\eqcommand[]{\dblfloatpagefraction}
+\eqcommand[]{\dblfloatsep}
+\eqcommand[]{\dbltextfloatsep}
+\eqcommand[]{\dbltopfraction}
+\eqcommand[]{\ddag}
+\eqcommand[]{\ddagger}
+\eqcommand[]{\dddot}
+\eqcommand[]{\ddddot}
+\eqcommand[]{\ddot}
+\eqcommand[]{\ddots}
+\eqcommand[]{\DeclareGraphicsExtensions}
+\eqcommand[]{\DeclareGraphicsRule}
+\eqcommand[]{\DeclareOption}
+\eqcommand[]{\DeclareOption*}
+\eqcommand[]{\DeclareRobustCommand}
+\eqcommand[]{\DeclareRobustCommand*}
+\eqcommand[]{\definecolor}
+\eqcommand[]{\deg}
+\eqcommand[]{\DeleteShortVerb}
+\eqcommand[]{\Delta}
+\eqcommand[]{\delta}
+\eqcommand[]{\depth}
+\eqcommand[]{\det}
+\eqcommand[]{\dfrac}
+\eqcommand[]{\Diamond}
+\eqcommand[]{\diamond}
+\eqcommand[]{\diamondsuit}
+\eqcommand[]{\dim}
+\eqcommand[]{\discretionary}
+\eqcommand[]{\displaybreak}
+\eqcommand[]{\displaystyle}
+\eqcommand[]{\div}
+\eqcommand[]{\documentclass}
+\eqcommand[]{\dot}
+\eqcommand[]{\doteq}
+\eqcommand[]{\dotfill}
+\eqcommand[]{\dots}
+\eqcommand[]{\dotsb}
+\eqcommand[]{\dotsc}
+\eqcommand[]{\dotsi}
+\eqcommand[]{\dotsm}
+\eqcommand[]{\doublebox}
+\eqcommand[]{\doublerulesep}
+\eqcommand[]{\Downarrow}
+\eqcommand[]{\downarrow}
+\eqcommand[]{\ell}
+\eqcommand[]{\em}
+\eqcommand[]{\emph}
+\eqcommand[]{\emptyset}
+\eqcommand[]{\encl}
+\eqcommand[]{\enclname}
+\eqcommand[]{\end}
+\eqcommand[]{\endfirsthead}
+\eqcommand[]{\endfoot}
+\eqcommand[]{\endhead}
+\eqcommand[]{\endlastfoot}
+\eqcommand[]{\enlargethispage}
+\eqcommand[]{\enlargethispage*}
+\eqcommand[]{\ensuremath}
+\eqcommand[]{\epsilon}
+\eqcommand[]{\eqref}
+\eqcommand[]{\equiv}
+\eqcommand[]{\eta}
+\eqcommand[]{\euro}
+\eqcommand[]{\EUR}
+\eqcommand[]{\evensidemargin}
+\eqcommand[]{\ExecuteOptions}
+\eqcommand[]{\exists}
+\eqcommand[]{\exp}
+\eqcommand[]{\extracolsep}
+\eqcommand[]{\fancypage}
+\eqcommand[]{\fbox}
+\eqcommand[]{\fboxrule}
+\eqcommand[]{\fboxsep}
+\eqcommand[]{\fcolorbox}
+\eqcommand[]{\figurename}
+\eqcommand[]{\fill}
+\eqcommand[]{\flat}
+\eqcommand[]{\floatpagefraction}
+\eqcommand[]{\floatsep}
+\eqcommand[]{\flushbottom}
+\eqcommand[]{\fnsymbol}
+\eqcommand[]{\fontfamily}
+\eqcommand[]{\fontseries}
+\eqcommand[]{\fontshape}
+\eqcommand[]{\fontsize}
+\eqcommand[]{\LTRfootnote}
+\eqcommand[]{\footnote}
+\eqcommand[]{\footnotemark}
+\eqcommand[]{\footnoterule}
+\eqcommand[]{\footnotesep}
+\eqcommand[]{\footnotesize}
+\eqcommand[]{\footnotetext}
+\eqcommand[]{\footskip}
+\eqcommand[]{\forall}
+\eqcommand[]{\frac}
+\eqcommand[]{\frame}
+\eqcommand[]{\framebox}
+\eqcommand[]{\frenchspacing}
+\eqcommand[]{\frontmatter}
+\eqcommand[]{\frown}
+\eqcommand[]{\fussy}
+\eqcommand[]{\Gamma}
+\eqcommand[]{\gamma}
+\eqcommand[]{\gcd}
+\eqcommand[]{\ge}
+\eqcommand[]{\genfrac}
+\eqcommand[]{\geq}
+\eqcommand[]{\gets}
+\eqcommand[]{\gg}
+\eqcommand[]{\glossary}
+\eqcommand[]{\glossaryentry}
+\eqcommand[]{\graphpaper}
+\eqcommand[]{\grave}
+\eqcommand[]{\guillemotleft}
+\eqcommand[]{\guillemotright}
+\eqcommand[]{\guilsinglleft}
+\eqcommand[]{\guilsinglright}
+\eqcommand[]{\hat}
+\eqcommand[]{\hbar}
+\eqcommand[]{\headheight}
+\eqcommand[]{\headsep}
+\eqcommand[]{\headtoname}
+\eqcommand[]{\heartsuit}
+\eqcommand[]{\height}
+\eqcommand[]{\hfill}
+\eqcommand[]{\hline}
+\eqcommand[]{\hoffset}
+\eqcommand[]{\hom}
+\eqcommand[]{\hookleftarrow}
+\eqcommand[]{\hookrightarrow}
+\eqcommand[]{\hrulefill}
+\eqcommand[]{\hspace}
+\eqcommand[]{\hspace*}
+\eqcommand[]{\huge}
+\eqcommand[]{\Huge}
+\eqcommand[]{\hyperlink}
+\eqcommand[]{\hypersetup}
+\eqcommand[]{\hypertarget}
+\eqcommand[]{\hyphenation}
+\eqcommand[]{\idotsint}
+\eqcommand[]{\iff}
+\eqcommand[]{\IfFileExists}
+\eqcommand[]{\ifthenelse}
+\eqcommand[]{\Im}
+\eqcommand[]{\imath}
+\eqcommand[]{\in}
+\eqcommand[]{\include}
+\eqcommand[]{\includegraphics}
+\eqcommand[]{\includegraphics*}
+\eqcommand[]{\includeonly}
+\eqcommand[]{\indent}
+\eqcommand[]{\index}
+\eqcommand[]{\indexentry}
+\eqcommand[]{\indexname}
+\eqcommand[]{\indexspace}
+\eqcommand[]{\inf}
+\eqcommand[]{\infty}
+\eqcommand[]{\input}
+\eqcommand[]{\InputIfFileExists}
+\eqcommand[]{\int}
+\eqcommand[]{\iint}
+\eqcommand[]{\iiint}
+\eqcommand[]{\iiiint}
+\eqcommand[]{\intertext}
+\eqcommand[]{\intertextsep}
+\eqcommand[]{\invisible}
+\eqcommand[]{\iota}
+\eqcommand[]{\itdefault}
+\eqcommand[]{\item}
+\eqcommand[]{\itemindent}
+\eqcommand[]{\itemsep}
+\eqcommand[]{\itshape}
+\eqcommand[]{\jmath}
+\eqcommand[]{\join}
+\eqcommand[]{\jot}
+\eqcommand[]{\kappa}
+\eqcommand[]{\ker}
+\eqcommand[]{\kill}
+\eqcommand[]{\label}
+\eqcommand[]{\labelenumi}
+\eqcommand[]{\labelenumii}
+\eqcommand[]{\labelenumiii}
+\eqcommand[]{\labelenumiv}
+\eqcommand[]{\labelitemi}
+\eqcommand[]{\labelitemii}
+\eqcommand[]{\labelitemiii}
+\eqcommand[]{\labelitemiv}
+\eqcommand[]{\labelsep}
+\eqcommand[]{\labelwidth}
+\eqcommand[]{\Lambda}
+\eqcommand[]{\lambda}
+\eqcommand[]{\langle}
+\eqcommand[]{\language}
+\eqcommand[]{\large}
+\eqcommand[]{\Large}
+\eqcommand[]{\LARGE}
+\eqcommand[]{\LaTeX}
+\eqcommand[]{\LaTeXe}
+\eqcommand[]{\lceil}
+\eqcommand[]{\ldots}
+\eqcommand[]{\le}
+\eqcommand[]{\leadsto}
+\eqcommand[]{\left}
+\eqcommand[]{\Leftarrow}
+\eqcommand[]{\leftarrow}
+\eqcommand[]{\lefteqn}
+\eqcommand[]{\leftharpoondown}
+\eqcommand[]{\leftharpoonup}
+\eqcommand[]{\leftmargin}
+\eqcommand[]{\Leftrightarrow}
+\eqcommand[]{\leftrightarrow}
+\eqcommand[]{\leftroot}
+\eqcommand[]{\leq}
+\eqcommand[]{\lfloor}
+\eqcommand[]{\lg}
+\eqcommand[]{\lhd}
+\eqcommand[]{\lim}
+\eqcommand[]{\liminf}
+\eqcommand[]{\limits}
+\eqcommand[]{\limsup}
+\eqcommand[]{\line}
+\eqcommand[]{\linebreak}
+\eqcommand[]{\linethickness}
+\eqcommand[]{\linewidth}
+\eqcommand[]{\listfigurename}
+\eqcommand[]{\listfiles}
+\eqcommand[]{\listoffigures}
+\eqcommand[]{\listoftables}
+\eqcommand[]{\listparindent}
+\eqcommand[]{\listtablename}
+\eqcommand[]{\ll}
+\eqcommand[]{\ln}
+\eqcommand[]{\LoadClass}
+\eqcommand[]{\LoadClassWithOptions}
+\eqcommand[]{\location}
+\eqcommand[]{\log}
+\eqcommand[]{\Longleftarrow}
+\eqcommand[]{\longleftarrow}
+\eqcommand[]{\Longleftrightarrow}
+\eqcommand[]{\longleftrightarrow}
+\eqcommand[]{\longmapsto}
+\eqcommand[]{\Longrightarrow}
+\eqcommand[]{\longrightarrow}
+\eqcommand[]{\lvert}
+\eqcommand[]{\lVert}
+\eqcommand[]{\mainmatter}
+\eqcommand[]{\makebox}
+\eqcommand[]{\makeglossary}
+\eqcommand[]{\makeindex}
+\eqcommand[]{\makelabel}
+\eqcommand[]{\makelabels}
+\eqcommand[]{\MakeLowercase}
+\eqcommand[]{\MakeShortVerb}
+\eqcommand[]{\maketitle}
+\eqcommand[]{\MakeUppercase}
+\eqcommand[]{\mapsto}
+\eqcommand[]{\marginpar}
+\eqcommand[]{\marginparpush}
+\eqcommand[]{\marginparsep}
+\eqcommand[]{\marginparwidth}
+\eqcommand[]{\markboth}
+\eqcommand[]{\markright}
+\eqcommand[]{\mathbf}
+\eqcommand[]{\mathcal}
+\eqcommand[]{\mathindent}
+\eqcommand[]{\mathit}
+\eqcommand[]{\mathnormal}
+\eqcommand[]{\mathring}
+\eqcommand[]{\mathrm}
+\eqcommand[]{\mathsf}
+\eqcommand[]{\mathtt}
+\eqcommand[]{\max}
+\eqcommand[]{\mbox}
+\eqcommand[]{\mddefault}
+\eqcommand[]{\mdseries}
+\eqcommand[]{\medskip}
+\eqcommand[]{\medskipamount}
+\eqcommand[]{\medspace}
+\eqcommand[]{\MessageBreak}
+\eqcommand[]{\mho}
+\eqcommand[]{\mid}
+\eqcommand[]{\min}
+\eqcommand[]{\mod}
+\eqcommand[]{\models}
+\eqcommand[]{\mp}
+\eqcommand[]{\mspace}
+\eqcommand[]{\mu}
+\eqcommand[]{\multicolumn}
+\eqcommand[]{\multiput}
+\eqcommand[]{\multlinegap}
+\eqcommand[]{\nabla}
+\eqcommand[]{\name}
+\eqcommand[]{\natural}
+\eqcommand[]{\nearrow}
+\eqcommand[]{\NeedsTeXFormat}
+\eqcommand[]{\neg}
+\eqcommand[]{\negmedspace}
+\eqcommand[]{\negthickspace}
+\eqcommand[]{\negthinspace}
+\eqcommand[]{\neq}
+\eqcommand[]{\newboolean}
+\eqcommand[]{\newcommand}
+\eqcommand[]{\newcommand*}
+\eqcommand[]{\newcounter}
+\eqcommand[]{\newenvironment}
+\eqcommand[]{\newenvironment*}
+\eqcommand[]{\newfont}
+\eqcommand[]{\newlength}
+\eqcommand[]{\newline}
+\eqcommand[]{\newpage}
+\eqcommand[]{\newsavebox}
+\eqcommand[]{\newtheorem}
+\eqcommand[]{\ni}
+\eqcommand[]{\nocite}
+\eqcommand[]{\nofiles}
+\eqcommand[]{\noindent}
+\eqcommand[]{\nolimits}
+\eqcommand[]{\nolinebreak}
+\eqcommand[]{\nonfrenchspacing}
+\eqcommand[]{\nonumber}
+\eqcommand[]{\nopagebreak}
+\eqcommand[]{\normalcolor}
+\eqcommand[]{\normalfont}
+\eqcommand[]{\normalmarginpar}
+\eqcommand[]{\normalsize}
+\eqcommand[]{\not}
+\eqcommand[]{\notag}
+\eqcommand[]{\notin}
+\eqcommand[]{\nu}
+\eqcommand[]{\numberwithin}
+\eqcommand[]{\nwarrow}
+\eqcommand[]{\oddsidemargin}
+\eqcommand[]{\odot}
+\eqcommand[]{\oint}
+\eqcommand[]{\Omega}
+\eqcommand[]{\omega}
+\eqcommand[]{\ominus}
+\eqcommand[]{\onecolumn}
+\eqcommand[]{\onlynotes}
+\eqcommand[]{\onlyslides}
+\eqcommand[]{\opening}
+\eqcommand[]{\oplus}
+\eqcommand[]{\OptionNotUsed}
+\eqcommand[]{\oslash}
+\eqcommand[]{\otimes}
+\eqcommand[]{\oval}
+\eqcommand[]{\ovalbox}
+\eqcommand[]{\Ovalbox}
+\eqcommand[]{\overbrace}
+\eqcommand[]{\overleftarrow}
+\eqcommand[]{\overleftrightarrow}
+\eqcommand[]{\overline}
+\eqcommand[]{\overrightarrow}
+\eqcommand[]{\overset}
+\eqcommand[]{\PackageError}
+\eqcommand[]{\PackageInfo}
+\eqcommand[]{\PackageWarning}
+\eqcommand[]{\PackageWarningNoLine}
+\eqcommand[]{\pagebreak}
+\eqcommand[]{\pagecolor}
+\eqcommand[]{\pagename}
+\eqcommand[]{\pagenumbering}
+\eqcommand[]{\pageref}
+\eqcommand[]{\pagestyle}
+\eqcommand[]{\paperheight}
+\eqcommand[]{\paperwidth}
+\eqcommand[]{\par}
+\eqcommand[]{\paragraph}
+\eqcommand[]{\paragraph*}
+\eqcommand[]{\parallel}
+\eqcommand[]{\parbox}
+\eqcommand[]{\parindent}
+\eqcommand[]{\parsep}
+\eqcommand[]{\parskip}
+\eqcommand[]{\part}
+\eqcommand[]{\part*}
+\eqcommand[]{\partial}
+\eqcommand[]{\partname}
+\eqcommand[]{\partopsep}
+\eqcommand[]{\PassOptionToClass}
+\eqcommand[]{\PassOptionToPackage}
+\eqcommand[]{\path}
+\eqcommand[]{\prep}
+\eqcommand[]{\Phi}
+\eqcommand[]{\phi}
+\eqcommand[]{\Pi}
+\eqcommand[]{\pi}
+\eqcommand[]{\pm}
+\eqcommand[]{\pmb}
+\eqcommand[]{\pmod}
+\eqcommand[]{\pod}
+\eqcommand[]{\poptabs}
+\eqcommand[]{\pounds}
+\eqcommand[]{\Pr}
+\eqcommand[]{\prec}
+\eqcommand[]{\preceq}
+\eqcommand[]{\prime}
+\eqcommand[]{\printindex}
+\eqcommand[]{\ProcessOptions}
+\eqcommand[]{\ProcessOptions*}
+\eqcommand[]{\prod}
+\eqcommand[]{\propto}
+\eqcommand[]{\protect}
+\eqcommand[]{\providecommand}
+\eqcommand[]{\providecommand*}
+\eqcommand[]{\ProvidesClass}
+\eqcommand[]{\ProvidesFile}
+\eqcommand[]{\ProvidesPackage}
+\eqcommand[]{\ps}
+\eqcommand[]{\Psi}
+\eqcommand[]{\psi}
+\eqcommand[]{\pushtabs}
+\eqcommand[]{\put}
+\eqcommand[]{\qbezier}
+\eqcommand[]{\qquad}
+\eqcommand[]{\quad}
+\eqcommand[]{\raggedbottom}
+\eqcommand[]{\raggedleft}
+\eqcommand[]{\raggedright}
+\eqcommand[]{\raisebox}
+\eqcommand[]{\raisetag}
+\eqcommand[]{\rangle}
+\eqcommand[]{\rceil}
+\eqcommand[]{\Re}
+\eqcommand[]{\ref}
+\eqcommand[]{\reflectbox}
+\eqcommand[]{\refname}
+\eqcommand[]{\refstepcounter}
+\eqcommand[]{\renewcommand}
+\eqcommand[]{\renewcommand*}
+\eqcommand[]{\renewenvironment}
+\eqcommand[]{\renewenvironment*}
+\eqcommand[]{\RequirePackage}
+\eqcommand[]{\RequirePackageWithOptions}
+\eqcommand[]{\resizebox}
+\eqcommand[]{\resizebox*}
+\eqcommand[]{\reversemarginpar}
+\eqcommand[]{\rfloor}
+\eqcommand[]{\rhd}
+\eqcommand[]{\rho}
+\eqcommand[]{\right}
+\eqcommand[]{\Rightarrow}
+\eqcommand[]{\rightarrow}
+\eqcommand[]{\rightharpoondown}
+\eqcommand[]{\rightharpoonup}
+\eqcommand[]{\rightleftharpoons}
+\eqcommand[]{\rightmargin}
+\eqcommand[]{\rmdefault}
+\eqcommand[]{\rmfamily}
+\eqcommand[]{\Roman}
+\eqcommand[]{\roman}
+\eqcommand[]{\rotatebox}
+\eqcommand[]{\rule}
+\eqcommand[]{\rvert}
+\eqcommand[]{\rVert}
+\eqcommand[]{\savebox}
+\eqcommand[]{\sbox}
+\eqcommand[]{\scalebox}
+\eqcommand[]{\scdefault}
+\eqcommand[]{\scriptscriptstyle}
+\eqcommand[]{\scriptsize}
+\eqcommand[]{\scripstyle}
+\eqcommand[]{\scshape}
+\eqcommand[]{\searrow}
+\eqcommand[]{\sec}
+\eqcommand[]{\section}
+\eqcommand[]{\section*}
+\eqcommand[]{\see}
+\eqcommand[]{\seealso}
+\eqcommand[]{\seename}
+\eqcommand[]{\selectfont}
+\eqcommand[]{\setboolean}
+\eqcommand[]{\setcounter}
+\eqcommand[]{\setlength}
+\eqcommand[]{\setminus}
+\eqcommand[]{\settodepth}
+\eqcommand[]{\settoheight}
+\eqcommand[]{\settowidth}
+\eqcommand[]{\sfdefault}
+\eqcommand[]{\sffamily}
+\eqcommand[]{\shadowbox}
+\eqcommand[]{\sharp}
+\eqcommand[]{\shortstack}
+\eqcommand[]{\sideset}
+\eqcommand[]{\Sigma}
+\eqcommand[]{\sigma}
+\eqcommand[]{\signature}
+\eqcommand[]{\sim}
+\eqcommand[]{\simeq}
+\eqcommand[]{\sin}
+\eqcommand[]{\sinh}
+\eqcommand[]{\sldefault}
+\eqcommand[]{\sloppy}
+\eqcommand[]{\slshape}
+\eqcommand[]{\small}
+\eqcommand[]{\smallskip}
+\eqcommand[]{\smallskipamount}
+\eqcommand[]{\smash}
+\eqcommand[]{\smile}
+\eqcommand[]{\spadesuit}
+\eqcommand[]{\sqcap}
+\eqcommand[]{\sqcup}
+\eqcommand[]{\sqrt}
+\eqcommand[]{\sqsubset}
+\eqcommand[]{\sqsubseteq}
+\eqcommand[]{\sqsupset}
+\eqcommand[]{\sqsupseteq}
+\eqcommand[]{\stackrel}
+\eqcommand[]{\star}
+\eqcommand[]{\stepcounter}
+\eqcommand[]{\stretch}
+\eqcommand[]{\subitem}
+\eqcommand[]{\subparagraph}
+\eqcommand[]{\subparagraph*}
+\eqcommand[]{\subsection}
+\eqcommand[]{\subsection*}
+\eqcommand[]{\substack}
+\eqcommand[]{\subsubitem}
+\eqcommand[]{\subsubsection}
+\eqcommand[]{\subsubsection*}
+\eqcommand[]{\subset}
+\eqcommand[]{\subseteq}
+\eqcommand[]{\succ}
+\eqcommand[]{\succeq}
+\eqcommand[]{\sum}
+\eqcommand[]{\sup}
+\eqcommand[]{\supressfloats}
+\eqcommand[]{\supset}
+\eqcommand[]{\supseteq}
+\eqcommand[]{\surd}
+\eqcommand[]{\swarrow}
+\eqcommand[]{\tabbingsep}
+\eqcommand[]{\tabcolsep}
+\eqcommand[]{\tableofcontents}
+\eqcommand[]{\tablename}
+\eqcommand[]{\tabularnewline}
+\eqcommand[]{\tag}
+\eqcommand[]{\tan}
+\eqcommand[]{\tanh}
+\eqcommand[]{\tau}
+\eqcommand[]{\tbinom}
+\eqcommand[]{\telephone}
+\eqcommand[]{\TeX}
+\eqcommand[]{\text}
+\eqcommand[]{\textbullet}
+\eqcommand[]{\textemdash}
+\eqcommand[]{\textendash}
+\eqcommand[]{\textexclamdown}
+\eqcommand[]{\textperiodcentered}
+\eqcommand[]{\textquestiondown}
+\eqcommand[]{\textquotedblleft}
+\eqcommand[]{\textquotedblright}
+\eqcommand[]{\textquoteleft}
+\eqcommand[]{\textquoteright}
+\eqcommand[]{\textvisiblespace}
+\eqcommand[]{\textasciicircum}
+\eqcommand[]{\textasciitilde}
+\eqcommand[]{\textbackslash}
+\eqcommand[]{\textbar}
+\eqcommand[]{\textgreater}
+\eqcommand[]{\textless}
+\eqcommand[]{\textbf}
+\eqcommand[]{\textcircled}
+\eqcommand[]{\textcolor}
+\eqcommand[]{\textcompwordmark}
+\eqcommand[]{\textfloatsep}
+\eqcommand[]{\textfraction}
+\eqcommand[]{\textheight}
+\eqcommand[]{\textit}
+\eqcommand[]{\textmd}
+\eqcommand[]{\textnormal}
+\eqcommand[]{\textregistered}
+\eqcommand[]{\textrm}
+\eqcommand[]{\textsc}
+\eqcommand[]{\textsf}
+\eqcommand[]{\textsl}
+\eqcommand[]{\textstyle}
+\eqcommand[]{\textsuperscript}
+\eqcommand[]{\texttrademark}
+\eqcommand[]{\texttt}
+\eqcommand[]{\textup}
+\eqcommand[]{\textwidth}
+\eqcommand[]{\tfrac}
+\eqcommand[]{\thanks}
+\eqcommand[]{\Theta}
+\eqcommand[]{\theta}
+\eqcommand[]{\thicklines}
+\eqcommand[]{\thickspace}
+\eqcommand[]{\thinlines}
+\eqcommand[]{\thinspace}
+\eqcommand[]{\thisfancypage}
+\eqcommand[]{\thispagestyle}
+\eqcommand[]{\tilde}
+\eqcommand[]{\tiny}
+\eqcommand[]{\times}
+\eqcommand[]{\title}
+\eqcommand[]{\to}
+\eqcommand[]{\today}
+\eqcommand[]{\top}
+\eqcommand[]{\topfigrule}
+\eqcommand[]{\topfraction}
+\eqcommand[]{\topmargin}
+\eqcommand[]{\topsep}
+\eqcommand[]{\topskip}
+\eqcommand[]{\totalheight}
+\eqcommand[]{\triangle}
+\eqcommand[]{\triangleleft}
+\eqcommand[]{\triangleright}
+\eqcommand[]{\ttdefault}
+\eqcommand[]{\ttfamily}
+\eqcommand[]{\twocolumn}
+\eqcommand[]{\typein}
+\eqcommand[]{\typeout}
+\eqcommand[]{\unboldmath}
+\eqcommand[]{\underbrace}
+\eqcommand[]{\underleftarrow}
+\eqcommand[]{\underleftrightarrow}
+\eqcommand[]{\underline}
+\eqcommand[]{\underrightarrow}
+\eqcommand[]{\underset}
+\eqcommand[]{\unitlength}
+\eqcommand[]{\unlhd}
+\eqcommand[]{\unrhd}
+\eqcommand[]{\Uparrow}
+\eqcommand[]{\uparrow}
+\eqcommand[]{\updefault}
+\eqcommand[]{\Updownarrow}
+\eqcommand[]{\updownarrow}
+\eqcommand[]{\uplus}
+\eqcommand[]{\upshape}
+\eqcommand[]{\Upsilon}
+\eqcommand[]{\upsilon}
+\eqcommand[]{\uproot}
+\eqcommand[]{\url}
+\eqcommand[]{\urlstyle}
+\eqcommand[]{\usebox}
+\eqcommand[]{\usecounter}
+\eqcommand[]{\usefont}
+\eqcommand[]{\usepackage}
+\eqcommand[]{\value}
+\eqcommand[]{\varepsilon}
+\eqcommand[]{\varinjlim}
+\eqcommand[]{\varliminf}
+\eqcommand[]{\varlimsup}
+\eqcommand[]{\varphi}
+\eqcommand[]{\varpi}
+\eqcommand[]{\varprojlim}
+\eqcommand[]{\varrho}
+\eqcommand[]{\varsigma}
+\eqcommand[]{\vartheta}
+\eqcommand[]{\vdash}
+\eqcommand[]{\vdots}
+\eqcommand[]{\vec}
+\eqcommand[]{\vector}
+\eqcommand[]{\vee}
+\eqcommand[]{\verb}
+\eqcommand[]{\verb*}
+\eqcommand[]{\vfill}
+\eqcommand[]{\visible}
+\eqcommand[]{\vline}
+\eqcommand[]{\voffset}
+\eqcommand[]{\vpageref}
+\eqcommand[]{\vref}
+\eqcommand[]{\vspace}
+\eqcommand[]{\vspace*}
+\eqcommand[]{\wedge}
+\eqcommand[]{\whiledo}
+\eqcommand[]{\widehat}
+\eqcommand[]{\widetilde}
+\eqcommand[]{\width}
+\eqcommand[]{\wp}
+\eqcommand[]{\wr}
+\eqcommand[]{\Xi}
+\eqcommand[]{\xi}
+\eqcommand[]{\xleftarrow}
+\eqcommand[]{\xrightarrow}
+\eqcommand[]{\zeta}
+% \end{macrocode}
+% \iffalse
+%</commands-ltx.def>
+%<*commands-xepersian.def>
+% \fi
+% \part{commands-xepersian.def}
+% \begin{macrocode}
+
+% \end{macrocode}
+% \iffalse
+%</commands-xepersian.def>
+%<*enumerate-xepersian.def>
+% \fi
+% \part{enumerate-xepersian.def}
+% \begin{macrocode}
+\def\@enloop@{%
+ \ifx ا\@entemp \def\@tempa{\@enLabel\harfi }\else
+ \ifx ی\@entemp \def\@tempa{\@enLabel\adadi }\else
+ \ifx ت\@entemp \def\@tempa{\@enLabel\tartibi }\else
+ \ifx A\@entemp \def\@tempa{\@enLabel\Alph }\else
+ \ifx a\@entemp \def\@tempa{\@enLabel\alph }\else
+ \ifx i\@entemp \def\@tempa{\@enLabel\roman }\else
+ \ifx I\@entemp \def\@tempa{\@enLabel\Roman }\else
+ \ifx 1\@entemp \def\@tempa{\@enLabel\arabic}\else
+ \ifx \@sptoken\@entemp \let\@tempa\@enSpace \else
+ \ifx \bgroup\@entemp \let\@tempa\@enGroup \else
+ \ifx \@enum@\@entemp \let\@tempa\@gobble \else
+ \let\@tempa\@enOther
+ \@enhook
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
+ \@tempa}
+% \end{macrocode}
+% \iffalse
+%</enumerate-xepersian.def>
+%<*minitoc-xepersian.def>
+% \fi
+% \part{minitoc-xepersian.def}
+% \begin{macrocode}
+\def\ptctitle{\if@RTL فهرست مطالب\else Table of Contents\fi}%
+\def\plftitle{\if@RTL لیست تصاویر\else List of Figures\fi}%
+\def\plttitle{\if@RTL لیست جداول\else List of Tables\fi}%
+\def\mtctitle{\if@RTL عناوین\else Contents\fi}%
+\def\mlftitle{\if@RTL اشکال\else Figures\fi}%
+\def\mlttitle{\if@RTL جداول\else Tables\fi}%
+\def\stctitle{\if@RTL عناوین\else Contents\fi}%
+\def\slftitle{\if@RTL اشکال\else Figures\fi}%
+\def\slttitle{\if@RTL جداول\else Tables\fi}%
+% \end{macrocode}
+% \iffalse
+%</minitoc-xepersian.def>
+%<*environments-ltx.def>
+% \fi
+% \part{environments-ltx.def}
+% \begin{macrocode}
+\eqenvironment[]{abstract}
+\eqenvironment[]{align}
+\eqenvironment[]{alignat}
+\eqenvironment[]{aligned}
+\eqenvironment[]{appendix}
+\eqenvironment[]{array}
+\eqenvironment[]{center}
+\eqenvironment[]{alltt}
+\eqenvironment[]{bmatrix}
+\eqenvironment[]{Bmatrix}
+\eqenvironment[]{cases}
+\eqenvironment[]{description}
+\eqenvironment[]{displaymath}
+\eqenvironment[]{enumerate}
+\eqenvironment[]{eqnarray}
+\eqenvironment[]{eqnarray*}
+\eqenvironment[]{equation}
+\eqenvironment[]{equation*}
+\eqenvironment[]{falign}
+\eqenvironment[]{figure}
+\eqenvironment[]{figure*}
+\eqenvironment[]{filecontents}
+\eqenvironment[]{filecontents*}
+\eqenvironment[]{flushleft}
+\eqenvironment[]{flushright}
+\eqenvironment[]{gather}
+\eqenvironment[]{gathered}
+\eqenvironment[]{itemize}
+\eqenvironment[]{letter}
+\eqenvironment[]{list}
+\eqenvironment[]{longtable}
+\eqenvironment[]{lrbox}
+\eqenvironment[]{math}
+\eqenvironment[]{matrix}
+\eqenvironment[]{minipage}
+\eqenvironment[]{multicols}
+\eqenvironment[]{multline}
+\eqenvironment[]{note}
+\eqenvironment[]{overlay}
+\eqenvironment[]{picture}
+\eqenvironment[]{pmatrix}
+\eqenvironment[]{quotation}
+\eqenvironment[]{quote}
+\eqenvironment[]{slide}
+\eqenvironment[]{sloppypar}
+\eqenvironment[]{split}
+\eqenvironment[]{subarray}
+\eqenvironment[]{subequations}
+\eqenvironment[]{tabbing}
+\eqenvironment[]{table}
+\eqenvironment[]{table*}
+\eqenvironment[]{tabular}
+\eqenvironment[]{tabular*}
+\eqenvironment[]{thebibliography}
+\eqenvironment[]{theindex}
+\eqenvironment[]{titlepage}
+\eqenvironment[]{trivlist}
+\eqenvironment[]{verbatim}
+\eqenvironment[]{verbatim*}
+\eqenvironment[]{verse}
+\eqenvironment[]{vmatrix}
+\eqenvironment[]{Vmatrix}
+% \end{macrocode}
+% \iffalse
+%</environments-ltx.def>
+%<*environments-xepersian.def>
+% \fi
+% \part{environments-xepersian.def}
+% \begin{macrocode}
+
+% \end{macrocode}
+% \iffalse
+%</environments-xepersian.def>
+%<*extbook-xepersian.def>
+% \fi
+% \part{extbook-xepersian.def}
+% \begin{macrocode}
+\renewcommand\frontmatter{%
+ \cleardoublepage
+ \@mainmatterfalse
+ \pagenumbering{harfi}}
+\renewcommand\mainmatter{%
+ \cleardoublepage
+ \@mainmattertrue
+ \pagenumbering{arabic}}
+\renewcommand \thepart {\@tartibi\c@part}
+%to make appendix numbering Persian
+\renewcommand\appendix{\par
+ \setcounter{chapter}{0}%
+ \setcounter{section}{0}%
+ \gdef\@chapapp{\appendixname}%
+ \gdef\thechapter{\@harfi\c@chapter}
+}%end appendix
+% \end{macrocode}
+% \iffalse
+%</extbook-xepersian.def>
+%<*kashida-xepersian.def>
+% \fi
+% \part{kashida-xepersian.def}
+% \begin{macrocode}
+\chardef\zwj="200D % zero-width joiner
+\chardef\ksh="0640 % kashida
+
+\chardef\D=10 % dual-joiner class
+\chardef\L=11 % lam
+\chardef\R=12 % right-joiner
+\chardef\A=13 % alef
+\chardef\V=256 % vowel or other combining mark (to be ignored)
+
+\def\kashida{\zwj\nobreak \setbox0=\hbox{\ksh}%
+ \leaders\hrule height\ht0 \hskip0pt plus 0.5em \zwj}
+
+\def\setclass#1#2{\def\theclass{#1}\def\charlist{#2}%
+ \expandafter\dosetclass\charlist,\end}
+\def\dosetclass#1,#2\end{%
+ \def\test{#1}\def\charlist{#2}%
+ \ifx\test\empty\let\next\finishsetclass
+ \else \XeTeXcharclass "\test = \theclass
+ \let\next\dosetclass \fi
+ \expandafter\next\charlist,,\end}
+\def\finishsetclass#1,,\end{}
+
+\setclass \A {0622,0623,0625,0627}
+\setclass \R {0624,0629,062F,0630,0631,0632,0648,0698}
+\setclass \D {0626,0628,062A,062B,062C,062D,062E}
+\setclass \D {0633,0634,0635,0636,0637,0638,0639,063A}
+\setclass \D {0640,0641,0642,0643,0645,0646,0647,0649,064A}
+\setclass \D {067E,0686,06A9,06AF,06CC}
+\setclass \L {0644}
+\setclass \V {064B,064C,064D,064E,064F,0650,0651,0652}
+
+\XeTeXinterchartoks \D \D = {\kashida}
+\XeTeXinterchartoks \L \D = {\kashida}
+\XeTeXinterchartoks \D \L = {\kashida}
+\XeTeXinterchartoks \L \L = {\kashida}
+\XeTeXinterchartoks \D \R = {\kashida}
+\XeTeXinterchartoks \D \A = {\kashida}
+\XeTeXinterchartoks \L \R = {\kashida}
+\XeTeXinterchartoks \L \A = {}
+
+\XeTeXinterchartokenstate=1
+% \end{macrocode}
+% \iffalse
+%</kashida-xepersian.def>
+%<*listings-xepersian.def>
+% \fi
+% \part{listings-xepersian.def}
+% \begin{macrocode}
+\def\lstlistingname{برنامهٔ}
+\def\lstlistlistingname{فهرست برنامه‌ها}
+% \end{macrocode}
+% \iffalse
+%</listings-xepersian.def>
+%<*bidimemoir-xepersian.def>
+% \fi
+% \part{bidimemoir-xepersian.def}
+% \begin{macrocode}
+\renewcommand{\@memfront}{%
+ \@smemfront\pagenumbering{harfi}}
+\renewcommand{\setthesection}{\thechapter\@SepMark\harfi{section}}
+\renewcommand*{\thebook}{\@tartibi\c@book}
+\renewcommand*{\thepart}{\@tartibi\c@part}
+\renewcommand{\appendix}{\par
+ \setcounter{chapter}{0}%
+ \setcounter{section}{0}%
+ \gdef\@chapapp{\appendixname}%
+ \gdef\thechapter{\@harfi\c@chapter}%
+ \anappendixtrue}
+% \end{macrocode}
+% \iffalse
+%</bidimemoir-xepersian.def>
+%<*misccommandsenvironments-ltx.def>
+% \fi
+% \part{misccommandsenvironments-ltx.def}
+% \begin{macrocode}
+\eqcommand[\سند]{\document}
+\eqcommand[\endسند]{\enddocument}
+% \end{macrocode}
+% \iffalse
+%</misccommandsenvironments-ltx.def>
+%<*refrep-xepersian.def>
+% \fi
+% \part{refrep-xepersian.def}
+% \begin{macrocode}
+\renewcommand \thepart {\@tartibi\c@part}
+%to make appendix numbering Persian
+\renewcommand\appendix{\par
+ \setcounter{chapter}{0}%
+ \setcounter{section}{0}%
+ \gdef\@chapapp{\appendixname}%
+ \gdef\thechapter{\@harfi\c@chapter}
+}%end appendix
+% \end{macrocode}
+% \iffalse
+%</refrep-xepersian.def>
+%<*report-xepersian.def>
+% \fi
+% \part{report-xepersian.def}
+% \begin{macrocode}
+\renewcommand \thepart {\@tartibi\c@part}
+%to make appendix numbering Persian
+\renewcommand\appendix{\par
+ \setcounter{chapter}{0}%
+ \setcounter{section}{0}%
+ \gdef\@chapapp{\appendixname}%
+ \gdef\thechapter{\@harfi\c@chapter}
+}%end appendix
+% \end{macrocode}
+% \iffalse
+%</report-xepersian.def>
+%<*rapport3-xepersian.def>
+% \fi
+% \part{rapport3-xepersian.def}
+% \begin{macrocode}
+\renewcommand*\thepart{\@tartibi\c@part}
+\renewcommand*\appendix{\par
+ \setcounter{chapter}{0}%
+ \setcounter{section}{0}%
+ \gdef\@chapapp{\appendixname}%
+ \gdef\thechapter{\@harfi\c@chapter}}
+% \end{macrocode}
+% \iffalse
+%</rapport3-xepersian.def>
+%<*scrartcl-xepersian.def>
+% \fi
+% \part{scrartcl-xepersian.def}
+% \begin{macrocode}
+\renewcommand*\descfont{\if@RTL\persiansffamily\else\sffamily\fi\bfseries}
+\DeclareOldFontCommand{\sf}{\normalfont\if@RTL\persiansffamily\else\sffamily\fi}{\mathsf}
+\DeclareOldFontCommand{\tt}{\normalfont\if@RTL\persianttfamily\else\ttfamily\fi}{\mathtt}
+\DeclareOldFontCommand{\sfb}{\normalfont\if@RTL\persiansffamily\else\sffamily\fi\bfseries}{%
+ \@nomath\sfb}
+\renewcommand*\sectfont{\normalcolor\if@RTL\persiansffamily\else\sffamily\fi\bfseries}
+\newkomafont{dictum-xepersian}{\normalfont\normalcolor\if@RTL\persiansffamily\else\sffamily\fi\small}
+\renewcommand*{\thepart}{\@tartibi\c@part}
+\renewcommand*\appendix{\par%
+ \setcounter{section}{0}%
+ \setcounter{subsection}{0}%
+ \gdef\thesection{\@harfi\c@section}%
+ \csname appendixmore\endcsname
+}
+\renewcommand*{\@@maybeautodot}[1]{%
+ \ifx #1\@stop\let\@@maybeautodot\relax
+ \else
+ \ifx #1\harfi \@autodottrue\fi
+ \ifx #1\adadi \@autodottrue\fi
+ \ifx #1\tartibi \@autodottrue\fi
+ \ifx #1\Alph \@autodottrue\fi
+ \ifx #1\alph \@autodottrue\fi
+ \ifx #1\Roman \@autodottrue\fi
+ \ifx #1\roman \@autodottrue\fi
+ \ifx #1\@harfi \@autodottrue\fi
+ \ifx #1\@adadi \@autodottrue\fi
+ \ifx #1\@tartibi \@autodottrue\fi
+ \ifx #1\@Alph \@autodottrue\fi
+ \ifx #1\@alph \@autodottrue\fi
+ \ifx #1\@Roman \@autodottrue\fi
+ \ifx #1\@roman \@autodottrue\fi
+ \ifx #1\romannumeral \@autodottrue\fi
+ \fi
+ \@@maybeautodot
+}
+% \end{macrocode}
+% \iffalse
+%</scrartcl-xepersian.def>
+%<*scrbook-xepersian.def>
+% \fi
+% \part{scrbook-xepersian.def}
+% \begin{macrocode}
+\renewcommand*\descfont{\if@RTL\persiansffamily\else\sffamily\fi\bfseries}
+\DeclareOldFontCommand{\sf}{\normalfont\if@RTL\persiansffamily\else\sffamily\fi}{\mathsf}
+\DeclareOldFontCommand{\tt}{\normalfont\if@RTL\persianttfamily\else\ttfamily\fi}{\mathtt}
+\DeclareOldFontCommand{\sfb}{\normalfont\if@RTL\persiansffamily\else\sffamily\fi\bfseries}{%
+ \@nomath\sfb}
+\renewcommand*\sectfont{\normalcolor\if@RTL\persiansffamily\else\sffamily\fi\bfseries}
+\newkomafont{dictum-xepersian}{\normalfont\normalcolor\if@RTL\persiansffamily\else\sffamily\fi\small}
+\renewcommand*\frontmatter{%
+ \if@twoside\cleardoubleoddpage\else\clearpage\fi
+ \@mainmatterfalse\pagenumbering{harfi}%
+}
+\renewcommand*{\thepart}{\@tartibi\c@part}
+\renewcommand*\appendix{\par%
+ \setcounter{chapter}{0}%
+ \setcounter{section}{0}%
+ \gdef\@chapapp{\appendixname}%
+ \gdef\thechapter{\@harfi\c@chapter}%
+ \csname appendixmore\endcsname
+}
+\renewcommand*{\@@maybeautodot}[1]{%
+ \ifx #1\@stop\let\@@maybeautodot\relax
+ \else
+ \ifx #1\harfi \@autodottrue\fi
+ \ifx #1\adadi \@autodottrue\fi
+ \ifx #1\tartibi \@autodottrue\fi
+ \ifx #1\Alph \@autodottrue\fi
+ \ifx #1\alph \@autodottrue\fi
+ \ifx #1\Roman \@autodottrue\fi
+ \ifx #1\roman \@autodottrue\fi
+ \ifx #1\@harfi \@autodottrue\fi
+ \ifx #1\@adadi \@autodottrue\fi
+ \ifx #1\@tartibi \@autodottrue\fi
+ \ifx #1\@Alph \@autodottrue\fi
+ \ifx #1\@alph \@autodottrue\fi
+ \ifx #1\@Roman \@autodottrue\fi
+ \ifx #1\@roman \@autodottrue\fi
+ \ifx #1\romannumeral \@autodottrue\fi
+ \fi
+ \@@maybeautodot
+}
+% \end{macrocode}
+% \iffalse
+%</scrbook-xepersian.def>
+%<*scrreprt-xepersian.def>
+% \fi
+% \part{scrreprt-xepersian.def}
+% \begin{macrocode}
+\renewcommand*\descfont{\if@RTL\persiansffamily\else\sffamily\fi\bfseries}
+\DeclareOldFontCommand{\sf}{\normalfont\if@RTL\persiansffamily\else\sffamily\fi}{\mathsf}
+\DeclareOldFontCommand{\tt}{\normalfont\if@RTL\persianttfamily\else\ttfamily\fi}{\mathtt}
+\DeclareOldFontCommand{\sfb}{\normalfont\if@RTL\persiansffamily\else\sffamily\fi\bfseries}{%
+ \@nomath\sfb}
+\renewcommand*\sectfont{\normalcolor\if@RTL\persiansffamily\else\sffamily\fi\bfseries}
+\newkomafont{dictum-xepersian}{\normalfont\normalcolor\if@RTL\persiansffamily\else\sffamily\fi\small}
+\renewcommand*{\thepart}{\@tartibi\c@part}
+\renewcommand*\appendix{\par%
+ \setcounter{chapter}{0}%
+ \setcounter{section}{0}%
+ \gdef\@chapapp{\appendixname}%
+ \gdef\thechapter{\@harfi\c@chapter}%
+ \csname appendixmore\endcsname
+}
+\renewcommand*{\@@maybeautodot}[1]{%
+ \ifx #1\@stop\let\@@maybeautodot\relax
+ \else
+ \ifx #1\harfi \@autodottrue\fi
+ \ifx #1\adadi \@autodottrue\fi
+ \ifx #1\tartibi \@autodottrue\fi
+ \ifx #1\Alph \@autodottrue\fi
+ \ifx #1\alph \@autodottrue\fi
+ \ifx #1\Roman \@autodottrue\fi
+ \ifx #1\roman \@autodottrue\fi
+ \ifx #1\@harfi \@autodottrue\fi
+ \ifx #1\@adadi \@autodottrue\fi
+ \ifx #1\@tartibi \@autodottrue\fi
+ \ifx #1\@Alph \@autodottrue\fi
+ \ifx #1\@alph \@autodottrue\fi
+ \ifx #1\@Roman \@autodottrue\fi
+ \ifx #1\@roman \@autodottrue\fi
+ \ifx #1\romannumeral \@autodottrue\fi
+ \fi
+ \@@maybeautodot
+}
+% \end{macrocode}
+% \iffalse
+%</scrreprt-xepersian.def>
+%<*tocloft-xepersian.def>
+% \fi
+% \part{tocloft-xepersian.def}
+% \begin{macrocode}
+\renewcommand*{\cftchapname}{\if@RTL فصل\else chapter\fi}
+\renewcommand*{\cftsecname}{\if@RTL قسمت\else section\fi}
+\renewcommand*{\cftsubsecname}{\if@RTL زیرقسمت\else subsection\fi}
+\renewcommand*{\cftsubsubsecname}{\if@RTL زیرزیرقسمت\else subsubsection\fi}
+\renewcommand*{\cftparaname}{\if@RTL پاراگراف\else paragraph\fi}
+\renewcommand*{\cftsubparaname}{\if@RTL زیرپاراگراف\else subparagraph\fi}
+\renewcommand*{\cftfigname}{\if@RTL شکل\else figure\fi}
+\renewcommand*{\cftsubfigname}{\if@RTL زیرشکل\else subfigure\fi}
+\renewcommand*{\cfttabname}{\if@RTL جدول\else table\fi}
+\renewcommand*{\cftsubtabname}{\if@RTL زیرجدول\else subtable\fi}
+% \end{macrocode}
+% \iffalse
+%</tocloft-xepersian.def>
+%<*xepersian-magazine.cls>
+% \fi
+% \part{xepersian-magazine.cls}
+% \begin{macrocode}
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesClass{xepersian-magazine}[2009/01/05 v0.1 Typesetting Persian magazines in XeLaTeX (Author: Vafa Khalighi)]
+\RequirePackage{ifthen}
+\newlength{\xepersian@imgsize}
+\newlength{\xepersian@coltitsize}
+\newlength{\xepersian@pageneed}
+\newlength{\xepersian@pageleft}
+\newlength{\xepersian@indexwidth}
+\newcommand{\xepersian@ncolumns}{0}
+\newlength{\columnlines}
+\setlength{\columnlines}{0 pt} % no lines by default
+\newboolean{xepersian@hyphenatedtitles}
+\setboolean{xepersian@hyphenatedtitles}{true}
+\newboolean{xepersian@ninepoints}
+\setboolean{xepersian@ninepoints}{false}
+\newboolean{xepersian@showgrid}
+\setboolean{xepersian@showgrid}{false}
+\newboolean{xepersian@a3paper}
+\setboolean{xepersian@a3paper}{false}
+\newboolean{xepersian@insidefrontpage}
+\setboolean{xepersian@insidefrontpage}{false}
+\newboolean{xepersian@insideweather}
+\setboolean{xepersian@insideweather}{false}
+\newboolean{xepersian@insideindex}
+\setboolean{xepersian@insideindex}{false}
+\newcount\xepersian@gridrows
+\newcount\xepersian@gridcolumns
+\xepersian@gridrows=40
+\xepersian@gridcolumns=50
+\newcount\minraggedcols
+\minraggedcols=5
+\DeclareOption{10pt}{\PassOptionsToClass{10pt}{article}}
+\DeclareOption{11pt}{\PassOptionsToClass{11pt}{article}}
+\DeclareOption{12pt}{\PassOptionsToClass{12pt}{article}}
+\DeclareOption{twocolumn}%
+{\ClassWarning{xepersian-magazine}{Option 'twocolumn' not available for xepersian-magazine.}}
+\DeclareOption{notitlepage}%
+{\ClassWarning{xepersian-magazine}{Option 'notitlepage' not available for xepersian-magazine.}}
+\DeclareOption{twoside}%
+{\ClassWarning{xepersian-magazine}{Option 'twoside' not available for xepersian-magazine.}}
+\DeclareOption{9pt}{\setboolean{xepersian@ninepoints}{true}}
+\DeclareOption{hyphenatedtitles}{\setboolean{xepersian@hyphenatedtitles}{false}}
+\DeclareOption{columnlines}{\setlength{\columnlines}{0.1 pt}}
+\DeclareOption{showgrid}{\setboolean{xepersian@showgrid}{true}}
+\DeclareOption{a3paper}{\setboolean{xepersian@a3paper}{true}}
+\ProcessOptions\relax
+\LoadClass[10pt, onecolumn, titlepage, a4paper]{article}
+\RequirePackage{ifxetex}
+\RequirePackage{multido}
+\RequirePackage{datetime}
+\RequirePackage{fmultico}
+\RequirePackage{fancyhdr}
+\RequirePackage{fancybox}
+\ifthenelse{\boolean{xepersian@a3paper}}{%
+\RequirePackage[a3paper,headsep=0.5cm,vmargin={2cm,2cm},hmargin={1.5cm,1.5cm}]{geometry}
+}{
+\RequirePackage[headsep=0.5cm,vmargin={2cm,2cm},hmargin={1.5cm,1.5cm}]{geometry}
+}
+\RequirePackage[absolute]{textpos} % absoulte positioning
+\RequirePackage{hyphenat} % when hyphenate
+\RequirePackage{lastpage} % to know the last page number
+\RequirePackage{setspace} % set space between lines
+\RequirePackage{ragged2e}
+\newcommand{\raggedFormat}{\RaggedLeft}
+\AtEndOfClass{\xepersianInit}
+\ifthenelse{\boolean{xepersian@showgrid}}{%
+\AtBeginDocument{
+\grid[show]{\xepersian@gridrows}{\xepersian@gridcolumns}}
+\advance\minraggedcols by -1
+}{%
+\AtBeginDocument{
+\grid[]{\xepersian@gridrows}{\xepersian@gridcolumns}}
+\advance\minraggedcols by -1
+}
+\ifthenelse{\boolean{xepersian@ninepoints}}{
+\renewcommand{\normalsize}{%
+ \@setfontsize{\normalsize}{9pt}{10pt}%
+ \setlength{\abovedisplayskip}{5pt plus 1pt minus .5pt}%
+ \setlength{\belowdisplayskip}{\abovedisplayskip}%
+ \setlength{\abovedisplayshortskip}{3pt plus 1pt minus 2pt}%
+ \setlength{\belowdisplayshortskip}{\abovedisplayshortskip}}
+
+\renewcommand{\tiny}{\@setfontsize{\tiny}{5pt}{6pt}}
+
+\renewcommand{\scriptsize}{\@setfontsize{\scriptsize}{7pt}{8pt}}
+
+\renewcommand{\small}{%
+ \@setfontsize{\small}{8pt}{9pt}%
+ \setlength{\abovedisplayskip}{4pt plus 1pt minus 1pt}%
+ \setlength{\belowdisplayskip}{\abovedisplayskip}%
+ \setlength{\abovedisplayshortskip}{2pt plus 1pt}%
+ \setlength{\belowdisplayshortskip}{\abovedisplayshortskip}}
+
+\renewcommand{\footnotesize}{%
+ \@setfontsize{\footnotesize}{8pt}{9pt}%
+ \setlength{\abovedisplayskip}{4pt plus 1pt minus .5pt}%
+ \setlength{\belowdisplayskip}{\abovedisplayskip}%
+ \setlength{\abovedisplayshortskip}{2pt plus 1pt}%
+ \setlength{\belowdisplayshortskip}{\abovedisplayshortskip}}
+
+\renewcommand{\large}{\@setfontsize{\large}{11pt}{13pt}}
+\renewcommand{\Large}{\@setfontsize{\Large}{14pt}{18pt}}
+\renewcommand{\LARGE}{\@setfontsize{\LARGE}{18pt}{20pt}}
+\renewcommand{\huge}{\@setfontsize{\huge}{20pt}{25pt}}
+\renewcommand{\Huge}{\@setfontsize{\Huge}{25pt}{30pt}}
+}{}
+\def\customwwwTxt#1{\gdef\@customwwwTxt{\lr{#1}}}
+\newcommand{\xepersian@wwwFormat}{\sffamily}
+\newcommand{\xepersian@www}{%
+\raisebox{-3pt}{{\xepersian@wwwFormat\@customwwwTxt}}
+}
+\newcommand{\xepersian@edition}{ویرایش من}
+\newcommand{\editionFormat}{\large\bfseries\texttt}
+\newcommand{\xepersian@editionLogo}{%
+\raisebox{-3pt}{%
+{\editionFormat\xepersian@edition}%
+}%
+}
+\newcommand{\indexFormat}{\large\bfseries}
+\newcommand{\xepersian@indexFrameTitle}[1]
+{\begin{flushright}{{\indexFormat #1}}\end{flushright}}
+
+\newcommand{\indexEntryFormat}{\normalsize}
+\newcommand{\xepersian@indexEntry}[1]{\begin{minipage}{13\TPHorizModule}%
+{\indexEntryFormat\noindent\ignorespaces{#1}}%
+\end{minipage}}
+\newcommand{\indexEntrySeparator}{\rule{\xepersian@indexwidth}{.1pt}}
+\newcommand{\indexEntryPageTxt}{صفحهٔ}
+\newcommand{\indexEntryPageFormat}{\footnotesize}
+\newcommand{\xepersian@indexEntryPage}[1]{%
+{\indexEntryPageFormat{\indexEntryPageTxt{}~#1}}%
+}
+\newcommand{\headDateTimeFormat}{}
+\newcommand{\xepersian@headDateTime}{%
+\headDateTimeFormat\date\hspace{5pt}$\parallel$\hspace{5pt}%
+\currenttime %
+}
+\newcommand{\weatherFormat}{\bfseries}
+\newcommand{\xepersian@weather}[1]{%
+\noindent{\weatherFormat #1}%
+}
+\newcommand{\weatherTempFormat}{\small}
+\newcommand{\weatherUnits}{\textdegree{}C}
+\newcommand{\xepersian@section}[0]{صفحهٔ جلو}
+\newcommand{\xepersian@headleft}{%
+{\small\bfseries \@custommagazinename}، \date
+}
+\newcommand{\xepersian@headcenter}{%
+\xepersian@section{}
+}
+\newcommand{\xepersian@headright}{%
+\small\xepersian@edition%
+\hspace*{5pt}\beginL\thepage\ / \pageref{LastPage}\endL
+}
+
+\newcommand{\heading}[3]{%
+\renewcommand{\xepersian@headleft}{\beginR#1\endR}%
+\renewcommand{\xepersian@headcenter}{\beginR#2\endR}%
+\renewcommand{\xepersian@headright}{\beginR#3\endR}%
+}
+\newcommand{\xepersian@footright}{%
+{\footnotesize\lr{\copyright\ \@customwwwTxt{}}---تهیه‌شده توسط \lr{\XePersian}}%
+}
+\newcommand{\xepersian@footcenter}{%
+}
+\newcommand{\xepersian@footleft}{%
+}
+
+\newcommand{\foot}[3]{%
+\renewcommand{\xepersian@footleft}{\beginR#1\endR}%
+\renewcommand{\xepersian@footcenter}{\beginR#2\endR}%
+\renewcommand{\xepersian@footright}{\beginR#3\endR}%
+}
+\newcommand{\firstTitleFormat}{\Huge\bfseries\flushright}
+\newcommand{\xepersian@firstTitle}[1]{%
+{%
+\begin{spacing}{2.0}{%
+\noindent\ignorespaces
+\ifthenelse{\boolean{xepersian@hyphenatedtitles}}%
+{\nohyphens{\firstTitleFormat #1}}%
+{{\firstTitleFormat #1}}%
+}%
+\end{spacing}%
+}%
+}
+\newcommand{\firstTextFormat}{}
+\newcommand{\xepersian@firstText}[1]{%
+{\noindent\ignorespaces\firstTextFormat #1}%
+}
+\newcommand{\secondTitleFormat}{\LARGE\bfseries}
+\newcommand{\xepersian@secondTitle}[1]{%
+\begin{spacing}{1.5}{%
+\noindent\ignorespaces\flushright
+\ifthenelse{\boolean{xepersian@hyphenatedtitles}}%
+{\nohyphens{\secondTitleFormat #1}}%
+{{\secondTitleFormat #1}}%
+}\end{spacing}%
+}
+\newcommand{\secondSubtitleFormat}{\large}
+\newcommand{\xepersian@secondSubtitle}[1]{%
+{\noindent\ignorespaces{\secondSubtitleFormat #1}}%
+}
+\newcommand{\secondTextFormat}{}
+\newcommand{\xepersian@secondText}[1]{%
+\begin{multicols}{2}
+{\noindent\ignorespaces\secondTextFormat #1}
+\end{multicols}
+}
+\newcommand{\thirdTitleFormat}{\Large\bfseries}
+\newcommand{\xepersian@thirdTitle}[1]{%
+\begin{spacing}{1.5}{%
+\noindent\ignorespaces\flushright
+\ifthenelse{\boolean{xepersian@hyphenatedtitles}}%
+{\nohyphens{\thirdTitleFormat #1}}%
+{{\thirdTitleFormat #1}}%
+}\end{spacing}%
+}
+\newcommand{\thirdSubtitleFormat}{\large}
+\newcommand{\xepersian@thirdSubtitle}[1]%
+{{\noindent\ignorespaces\thirdSubtitleFormat #1}}
+\newcommand{\thirdTextFormat}{}
+\newcommand{\xepersian@thirdText}[1]{{\thirdTextFormat #1}}
+\newcommand{\pictureCaptionFormat}{\small\bfseries}
+\newcommand{\xepersian@pictureCaption}[1]{%
+{\noindent\pictureCaptionFormat #1}%
+}
+\newcommand{\pagesFormat}{\bfseries\footnotesize}
+\newcommand{\xepersian@pages}[1]%
+{\noindent{\pagesFormat\MakeUppercase{#1}}}
+\newcommand{\innerTitleFormat}{\Huge}
+\newcommand{\xepersian@innerTitle}[1]{%
+\begin{flushright}{%
+\noindent
+\ifthenelse{\boolean{xepersian@hyphenatedtitles}}%
+{\nohyphens{\innerTitleFormat #1}}%
+{{\innerTitleFormat #1}}%
+}%
+\\%
+\end{flushright}%
+}
+\newcommand{\innerSubtitleFormat}{\large}
+\newcommand{\xepersian@innerSubtitle}[1]{{\innerSubtitleFormat #1}}
+\newcommand{\timestampTxt}{}
+\newcommand{\timestampSeparator}{|}
+\newcommand{\timestampFormat}{\small}
+\newcommand{\timestamp}[1]{%
+{\timestampFormat%
+#1~\timestampTxt{}%
+}~\timestampSeparator{}%
+}
+\newcommand{\innerAuthorFormat}{\footnotesize}
+\newcommand{\innerPlaceFormat}{\footnotesize\bfseries}
+\newcommand{\innerTextFinalMark}{\rule{0.65em}{0.65em}}
+\newcommand{\editorialTitleFormat}{\LARGE\textit}
+\newcommand{\xepersian@editorialTitle}[1]{\editorialTitleFormat{#1}}
+\newcommand{\editorialAuthorFormat}{\textsc}
+\newcommand{\shortarticleTitleFormat}{\LARGE\bfseries}
+\newcommand{\xepersian@shortarticleTitle}[1]{{\shortarticleTitleFormat #1}}
+\newcommand{\shortarticleSubtitleFormat}{\Large}
+\newcommand{\xepersian@shortarticleSubtitle}[1]{{\shortarticleSubtitleFormat #1}}
+\newcommand{\shortarticleItemTitleFormat}{\large\bfseries}
+\newcommand{\xepersian@shortarticleItemTitle}[1]{{\shortarticleItemTitleFormat #1}}
+\renewcommand{\maketitle}{\begin{titlepage}%
+ \let\footnotesize\small
+ \let\footnoterule\relax
+ \let \footnote \thanks
+ \null\vfil
+ \vskip 60\p@
+ \begin{center}%
+ {\LARGE \@title \par}%
+ \vskip 1em%
+ {\LARGE «\xepersian@edition» \par}%
+ \vskip 3em%
+ {\large
+ \lineskip .75em%
+ \begin{tabular}[t]{c}%
+ \@author
+ \end{tabular}\par}%
+ \vskip 1.5em%
+ {\large \@date \par}%
+ \end{center}\par
+ \@thanks
+ \vfil\null
+ \end{titlepage}%
+ \setcounter{footnote}{0}%
+ \global\let\thanks\relax
+ \global\let\maketitle\relax
+ \global\let\@thanks\@empty
+ \global\let\@author\@empty
+ \global\let\@date\@empty
+ \global\let\@title\@empty
+ \global\let\title\relax
+ \global\let\author\relax
+ \global\let\date\relax
+ \global\let\and\relax
+}
+\newcommand{\xepersian@say}[1]{\typeout{#1}}
+\newsavebox{\xepersian@fmbox}
+\newenvironment{xepersian@fmpage}[1]
+ {\begin{lrbox}{\xepersian@fmbox}\begin{minipage}{#1}}
+ {\end{minipage}\end{lrbox}\fbox{\usebox{\xepersian@fmbox}}}
+\newcommand{\image}[2]{
+\vspace{5pt}
+\setlength{\fboxsep}{1pt}
+\addtolength{\xepersian@imgsize}{\columnwidth}
+\addtolength{\xepersian@imgsize}{-1\columnsep}
+\ifxetex
+\setlength{\xepersian@pageneed}{1.5\xepersian@imgsize}
+\addtolength{\xepersian@pageneed}{50pt}
+\ClassWarning{xepersian-magazine}{%
+Image #1 needs: \the\xepersian@pageneed \space %
+and there is left: \the\page@free\space%
+}
+\ifdim \xepersian@pageneed < \page@free
+
+{\centering\fbox{%
+\includegraphics[width = \xepersian@imgsize,
+height = \xepersian@imgsize,
+keepaspectratio ]{#1}}}
+\xepersian@pictureCaption{#2}
+
+\vspace{5pt}
+\else
+\ClassWarning{Image #1 needs more space!%
+ It was not inserted!}
+\fi
+\fi
+}
+\textblockorigin{1cm}{1cm}
+\newdimen\xepersian@dx
+\newdimen\xepersian@dy
+\newcount\xepersian@cx
+\newcount\xepersian@cy
+\newcommand{\grid}[3][]{
+\xepersian@dx=\textwidth%
+\xepersian@dy=\textheight%
+\xepersian@cx=#3% %columns
+\xepersian@cy=#2% %rows
+
+\count1=#3%
+\advance\count1 by 1
+
+\count2=#2%
+\advance\count2 by 1
+
+\divide\xepersian@dx by #3
+\divide\xepersian@dy by #2
+
+\setlength{\TPHorizModule}{\xepersian@dx}
+\setlength{\TPVertModule}{\xepersian@dy}
+
+\ifthenelse{\equal{#1}{show}}{
+\multido{\xepersian@nrow=0+1}{\count2}{
+\begin{textblock}{\xepersian@cx}(0,\xepersian@nrow)
+\rule[0pt]{\textwidth}{.1pt}
+\end{textblock}
+}
+
+\multido{\xepersian@ncol=0+1}{\count1}{
+\begin{textblock}{\xepersian@cy}(\xepersian@ncol,0)
+\rule[0pt]{.1pt}{\textheight}
+\end{textblock}
+}
+}{}
+}
+\newcommand{\xepersianInit}{
+\setlength{\headheight}{14pt}
+\renewcommand{\headrulewidth}{0.4pt}
+
+\pagestyle{fancy}
+
+\setlength{\columnseprule}{\columnlines}
+\setlength{\fboxrule}{0.1 pt}
+
+}
+
+\def\customlogo#1{\gdef\@customlogo{\beginR#1\endR}}
+\def\customminilogo#1{\gdef\@customminilogo{\beginR#1\endR}}
+\def\custommagazinename#1{\gdef\@custommagazinename{\beginR#1\endR}}
+\newcommand{\logo}[0]{
+%% Heading %%
+\noindent\hrulefill\hspace{10pt}\xepersian@editionLogo\hspace{5pt}\xepersian@www
+
+\vspace*{-3pt}
+
+{\Large\bfseries \@customlogo}
+\hrulefill
+\hspace{10pt}\xepersian@headDateTime
+
+}
+\newcommand{\minilogo}[0]{
+{\large\bfseries \@customminilogo}
+
+\vspace*{5pt}
+}
+\newcommand{\mylogo}[1]{
+{\beginR#1\endR}
+
+\noindent
+\xepersian@editionLogo\hspace{5pt}
+\hrulefill
+\hspace{5pt}\xepersian@headDateTime
+}
+\newcommand{\edition}[1]{\renewcommand{\xepersian@edition}{#1}}
+\newenvironment{frontpage}[0]
+{
+\setboolean{xepersian@insidefrontpage}{true}
+\thispagestyle{empty}
+%\pdfbookmark[1]{صفحهٔ اول}{\thepage}
+\logo
+
+}%
+{
+\thispagestyle{empty}
+\clearpage
+\newpage
+\fancyhead{}
+ \fancyfoot{}
+\fancyhead[RO,LE]{\beginR\xepersian@headright\endR}
+\fancyhead[LO,RE]{\beginR\xepersian@headleft\endR}
+ \fancyhead[C]{\beginR\xepersian@headcenter\endR}
+ \fancyfoot[RO,LE]{\beginR\xepersian@footright\endR}
+ \fancyfoot[LO,RE]{\beginR\xepersian@footleft\endR}
+\fancyfoot[C]{\beginR\xepersian@footcenter\endR}
+\renewcommand{\headrulewidth}{0.4pt}
+\setboolean{xepersian@insidefrontpage}{false}
+
+}
+\newcommand{\firstarticle}[3]
+{
+\ifthenelse{\boolean{xepersian@insidefrontpage}}{%
+\ifthenelse{\boolean{xepersian@hyphenatedtitles}}{%
+\begin{textblock}{24}(22,5)
+}
+{
+\begin{textblock}{28}(22,5)
+}
+\vspace{-7pt}
+\xepersian@firstTitle{#1}
+\end{textblock}
+\begin{textblock}{29}(22,10)
+\vspace{5pt plus 2pt minus 2pt}
+
+\xepersian@firstText{\timestamp{#3}~#2}
+
+\end{textblock}
+
+\begin{textblock}{50}(0,15)
+\rule{50\TPHorizModule}{.3pt}
+\end{textblock}
+}{%else
+\ClassError{xepersian-magazine}{%
+\protect\firstarticle\space in a wrong place.\MessageBreak
+\protect\firstarticle\space may only appear inside frontpage environment.
+}{%
+\protect\firstarticle\space may only appear inside frontpage environment.
+}%
+}
+}
+\newcommand{\secondarticle}[5]
+{
+\ifthenelse{\boolean{xepersian@insidefrontpage}}{%
+\begin{textblock}{33}(2,16)
+\xepersian@pages{#4}
+\vspace{-5pt}
+\xepersian@secondTitle{#1}
+
+\vspace*{5pt}
+
+\xepersian@secondSubtitle{#2}
+
+\vspace*{-7pt}
+
+\xepersian@secondText{\timestamp{#5}~#3}
+
+\end{textblock}
+
+\begin{textblock}{33}(2,25)
+\vspace{5pt plus 2pt minus 2pt}
+
+\noindent\ignorespaces\rule{33\TPHorizModule}{.3pt}
+\end{textblock}
+}{%else
+\ClassError{xepersian-magazine}{%
+\protect\secondarticle\space in a wrong place.\MessageBreak
+\protect\secondarticle\space may only appear inside frontpage environment.
+}{%
+\protect\secondarticle\space may only appear inside frontpage environment.
+}%
+}
+}
+\newcommand{\thirdarticle}[6]
+{
+\ifthenelse{\boolean{xepersian@insidefrontpage}}{%
+\begin{textblock}{32}(2,26)
+\xepersian@pages{#5}
+\vspace{-5pt}
+\setlength{\fboxsep}{1pt}
+\xepersian@thirdTitle{#1}
+
+\vspace*{5pt}
+
+\xepersian@thirdSubtitle{#2}
+
+\vspace*{5pt}
+
+{\noindent\ignorespaces %
+\ifthenelse{\equal{#4}{}}{}
+
+\xepersian@thirdText{\timestamp{#6}~#3}
+
+}
+
+\vspace*{5pt}
+
+\end{textblock}
+}{%else
+\ClassError{xepersian-magazine}{%
+\protect\thirdarticle\space in a wrong place.\MessageBreak
+\protect\thirdarticle\space may only appear inside frontpage environment.
+}{%
+\protect\thirdarticle\space may only appear inside frontpage environment.
+}%
+}
+}
+\newcommand{\firstimage}[2]
+{
+\ifthenelse{\boolean{xepersian@insidefrontpage}}{%
+\begin{textblock}{18}(2,5)
+\setlength{\fboxsep}{1pt}
+\ifxetex % only in PDF
+\noindent\fbox{\includegraphics[width = 18\TPHorizModule ]{#1}}
+\fi
+
+\xepersian@pictureCaption{#2}
+\end{textblock}%
+}
+{\ClassError{xepersian-magazine}{%
+\protect\firstimage\space in a wrong place.\MessageBreak
+\protect\firstimage\space may only appear inside frontpage environment.
+}{%
+\protect\firstimage\space may only appear inside frontpage environment.
+}}
+}%
+\newcommand{\weatheritem}[5]{%
+\ifthenelse{\boolean{xepersian@insideweather}}{
+\begin{minipage}{45pt}
+\ifxetex
+\includegraphics[width=40pt]{#1}
+\fi
+\end{minipage}
+\begin{minipage}{50pt}
+\weatherTempFormat
+#2\\
+\beginL#3 $\|$ #4 \lr{\weatherUnits{}}\endL\\
+#5
+\end{minipage}
+}{%else
+\ClassError{xepersian-magazine}{%
+\protect\weatheritem\space in a wrong place.\MessageBreak
+\protect\weatheritem\space may only appear inside weatherblock environment.
+}{%
+\protect\weatheritem\space may only appear inside weatherblock environment.\MessageBreak
+weatherblock environment may only appear inside frontpage environment.
+}%
+}
+}
+\newenvironment{weatherblock}[1]
+{
+\ifthenelse{\boolean{xepersian@insidefrontpage}}{%
+\setboolean{xepersian@insideweather}{true}
+\begin{textblock}{32}(2,38)
+\vspace*{-15pt}
+
+\xepersian@weather{\beginR#1\endR}
+
+\vspace*{5pt}
+
+\noindent\begin{xepersian@fmpage}{32\TPHorizModule}
+\begin{minipage}{32\TPHorizModule}
+\hspace{5pt}
+
+}{%
+\ClassError{xepersian-magazine}{%
+weatherblock in a wrong place.\MessageBreak
+weatherblock may only appear inside frontpage environment.
+}{%
+weatherblock may only appear inside frontpage environment.
+}
+}
+}%
+{
+\end{minipage}
+\end{xepersian@fmpage}
+\end{textblock}
+\setboolean{xepersian@insideweather}{false}
+}
+\newenvironment{authorblock}[0]
+{
+\ifthenelse{\boolean{xepersian@insidefrontpage}}{%
+\begin{textblock}{15}(36,35)
+\setlength{\fboxsep}{5pt}
+\begin{xepersian@fmpage}{13\TPHorizModule}
+\begin{minipage}{13\TPHorizModule}
+\centering
+\minilogo
+
+}{%else
+\ClassError{xepersian-magazine}{%
+authorblock in a wrong place.\MessageBreak
+authorblock may only appear inside frontpage environment.
+}{%
+authorblock may only appear inside frontpage environment.
+}
+}
+}
+{
+\end{minipage}
+\end{xepersian@fmpage}
+\end{textblock}
+}
+\newenvironment{indexblock}[1]
+{
+\ifthenelse{\boolean{xepersian@insidefrontpage}}{%
+\setboolean{xepersian@insideindex}{true}%let's in
+\begin{textblock}{15}(36,16)
+\setlength{\xepersian@indexwidth}{13\TPHorizModule}
+\xepersian@indexFrameTitle{#1}
+
+\setlength{\fboxsep}{5pt} %espacio entre el frame y la imagen
+\begin{xepersian@fmpage}{\xepersian@indexwidth}
+\begin{minipage}{\xepersian@indexwidth}
+\vspace*{10pt}
+}{%else
+\ClassError{xepersian-magazine}{%
+indexblock in a wrong place.\MessageBreak
+indexblock may only appear inside frontpage environment.
+}{%
+indexblock may only appear inside frontpage environment.
+}
+}
+}%
+{
+\end{minipage}
+\end{xepersian@fmpage}
+\end{textblock}
+\setboolean{xepersian@insideindex}{false}%let's out
+}
+\newcommand{\indexitem}[2]
+{
+\ifthenelse{\boolean{xepersian@insideindex}}{
+\xepersian@indexEntry{#1، \xepersian@indexEntryPage{\pageref{#2}}}
+
+\vspace{0.5cm}
+
+\noindent\ignorespaces\indexEntrySeparator{}
+}{%else
+\ClassError{xepersian-magazine}{%
+\protect\indexitem\space in a wrong place.\MessageBreak
+\protect\indexitem\space may only appear inside indexblock environment.
+}{%
+\protect\indexitem\space may only appear inside indexblock environment.\MessageBreak
+indexblock environment may only appear inside frontpage environment.
+}%
+}
+}
+\newcommand{\xepersian@inexpandedtitle}[1]{
+\begin{minipage}{.95\textwidth}
+\begin{center}
+\noindent\Large\textbf{\beginR#1\endR}
+\end{center}
+\end{minipage}
+}
+\newcommand{\expandedtitle}[2]{
+\end{multicols}
+
+\begin{center}
+\setlength{\fboxsep}{5pt}
+\setlength{\shadowsize}{2pt}
+\ifthenelse{\equal{#1}{shadowbox}}{%
+\shadowbox{%
+\xepersian@inexpandedtitle{#2}%
+}%
+}{}
+\ifthenelse{\equal{#1}{doublebox}}{%
+\doublebox{%
+\xepersian@inexpandedtitle{#2}%
+}%
+}{}
+\ifthenelse{\equal{#1}{ovalbox}}{%
+\ovalbox{%
+\xepersian@inexpandedtitle{#2}%
+}%
+}{}
+\ifthenelse{\equal{#1}{Ovalbox}}{%
+\Ovalbox{%
+\xepersian@inexpandedtitle{#2}%
+}%
+}{}
+\ifthenelse{\equal{#1}{lines}}{
+\hrule
+\vspace*{8pt}
+\begin{center}
+\noindent\Large\textbf{#2}
+\end{center}
+\vspace*{8pt}
+\hrule
+}{}
+\end{center}
+
+\begin{multicols}{\xepersian@ncolumns{}}
+\ifnum \xepersian@ncolumns > \minraggedcols
+\raggedFormat
+\fi
+}
+\newcommand{\xepersian@incolumntitle}[2]{
+\begin{minipage}{#1}
+\begin{center}
+\noindent\normalsize\textbf{#2}
+\end{center}
+\end{minipage}
+}
+
+\newcommand{\columntitle}[2]{
+\vspace*{5pt}
+\begin{center}
+\setlength{\fboxsep}{5pt}
+\setlength{\shadowsize}{2pt}
+\addtolength{\xepersian@coltitsize}{\columnwidth}
+\addtolength{\xepersian@coltitsize}{-1\columnsep}
+\addtolength{\xepersian@coltitsize}{-5pt}
+\addtolength{\xepersian@coltitsize}{-1\shadowsize}
+\ifthenelse{\equal{#1}{shadowbox}}{%
+\shadowbox{%
+\xepersian@incolumntitle{\xepersian@coltitsize}{#2}%
+}%
+}{}
+\ifthenelse{\equal{#1}{doublebox}}{%
+\doublebox{%
+\xepersian@incolumntitle{\xepersian@coltitsize}{#2}%
+}%
+}{}
+\ifthenelse{\equal{#1}{ovalbox}}{%
+\ovalbox{%
+\xepersian@incolumntitle{\xepersian@coltitsize}{#2}%
+}%
+}{}
+\ifthenelse{\equal{#1}{Ovalbox}}{%
+\Ovalbox{%
+\xepersian@incolumntitle{\xepersian@coltitsize}{#2}%
+}%
+}{}
+\ifthenelse{\equal{#1}{lines}}{
+\hrule
+\vspace*{5pt}
+\begin{center}
+\noindent\normalsize\textbf{#2}
+\end{center}
+\vspace*{5pt}
+\hrule
+}{}
+\end{center}
+}
+\renewcommand{\date}{%
+\longdate{\today}%
+}
+\newcommand{\authorandplace}[2]{%
+\rightline{%
+{\innerAuthorFormat #1},\space{}{\innerPlaceFormat #2}%
+}%
+\par %
+}
+\newcommand{\newsection}[1]{
+%\pdfbookmark[0]{#1}{\thepage} %bookmark para el pdf
+\renewcommand{\xepersian@section}{#1}
+}
+\newenvironment{article}[5]
+{
+\xepersian@say{Adding a new piece of article}
+\renewcommand{\xepersian@ncolumns}{#1}
+\begin{multicols}{#1}[
+\xepersian@pages{#4}
+\xepersian@innerTitle{#2}%
+\xepersian@innerSubtitle{#3}%
+][4cm]%
+\label{#5}
+\ifnum #1 > \minraggedcols
+\raggedFormat
+\fi
+}
+{~\innerTextFinalMark{}
+\end{multicols}
+}
+\newcommand{\articlesep}{%
+\setlength{\xepersian@pageneed}{16000pt}
+\setlength\xepersian@pageleft{\pagegoal}
+\addtolength\xepersian@pageleft{-\pagetotal}
+
+\xepersian@say{How much left \the\xepersian@pageleft}
+
+\ifdim \xepersian@pageneed < \xepersian@pageleft
+\xepersian@say{Not enough space}
+\else
+\xepersian@say{Adding sep line between articles}
+\vspace*{10pt plus 10pt minus 5pt}
+\hrule
+\vspace*{10pt plus 5pt minus 5pt}
+\fi
+
+}
+\newcommand{\xepersian@editorialTit}[2]{
+\setlength{\arrayrulewidth}{.1pt}
+\begin{center}
+\begin{tabular}{c}
+\noindent
+\xepersian@editorialTitle{#1}
+\vspace{2pt plus 1pt minus 1pt}
+\\
+\hline
+\vspace{2pt plus 1pt minus 1pt}
+\\
+\editorialAuthorFormat{#2}
+\end{tabular}
+\end{center}
+}
+\newenvironment{editorial}[4]
+{
+\xepersian@say{Adding a new editorial}
+\begin{multicols}{#1}[%
+\xepersian@editorialTit{#2}{#3}%
+][4cm]
+\label{#4}
+\ifnum #1 > \minraggedcols
+\raggedFormat
+\fi
+}
+{
+\end{multicols}
+}
+\newcommand{\xepersian@shortarticleTit}[2]{
+\begin{center}
+\vbox{%
+\noindent
+\xepersian@shortarticleTitle{#1}
+\vspace{4pt plus 2pt minus 2pt}
+\hrule
+\vspace{4pt plus 2pt minus 2pt}
+\xepersian@shortarticleSubtitle{#2}
+}
+\end{center}
+}
+\newenvironment{shortarticle}[4]
+{
+\xepersian@say{Adding a short article block}
+\begin{multicols}{#1}[\xepersian@shortarticleTit{#2}{#3}][4cm] %
+ \label{#4}
+\par %
+\ifnum #1 > \minraggedcols
+\raggedFormat
+\fi
+}
+{
+\end{multicols}
+}
+\newcommand{\shortarticleitem}[2]{
+\goodbreak
+\vspace{5pt plus 3pt minus 3pt}
+{\vbox{\noindent\xepersian@shortarticleItemTitle{#1}}}
+\vspace{5pt plus 3pt minus 3pt}
+{\noindent #2}\\
+}
+% \end{macrocode}
+% \iffalse
+%</xepersian-magazine.cls>
+%<*xepersian-mathsdigitspec.sty>
+% \fi
+% \part{xepersian-mathsdigitspec.sty}
+% \begin{macrocode}
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{xepersian-mathsdigitspec}
+ [2009/04/22 v1.0.1 Unicode Persian maths digits in XeLaTeX (Author: Vafa Khalighi)]
+\@zf@mathfalse
+\def\@preamblecmds{}
+\newcommand\not@onlypreamble[1]{{%
+ \def\do##1{\ifx#1##1\else\noexpand\do\noexpand##1\fi}%
+ \xdef\@preamblecmds{\@preamblecmds}}}
+\def\gm@notprerr{ can be used only in preamble (\on@line)}
+\AtBeginDocument{%
+ \def\do#1{\noexpand\do\noexpand#1}%
+ \edef\@preamblecmds{%
+ \def\noexpand\do##1{%
+ \def##1{\noexpand\PackageError{gmutils/LaTeX}%
+ {\noexpand\string##1 \noexpand\gm@notprerr}\noexpand\@eha}}%
+ \@preamblecmds}}
+\def\nocite#1{%
+ \@bsphack{\setbox0=\hbox{\cite{#1}}}\@esphack}
+\newcommand\xepersian@PackageInfo[1]{\PackageInfo{xepersian-mathsdigitspec}{#1}}
+\newcommand\SetMathCode[4]{%
+ \XeTeXmathcode#1="\mathchar@type#2 \csname sym#3\endcsname #4\relax}
+\newcommand\SetMathCharDef[4]{%
+ \XeTeXmathchardef#1="\mathchar@type#2 \csname sym#3\endcsname #4\relax}
+\newcommand\setdigitfont[2][]{%
+ \let\glb@currsize\relax
+ \setkeys*[xepersian-mathsdigitspec]{options}{#1}%
+ \edef\@tempa{\noexpand\zf@fontspec{%
+ \XKV@rm}{#2}}\@tempa
+ \xepersian@PackageInfo{Defining the default Persian maths digits font as '#2'}
+ \DeclareSymbolFont{OPERATORS} {EU1}{\zf@family} {m}{n}
+ \SetSymbolFont{OPERATORS}{bold}{EU1}{\zf@family} {bx}{n}
+ \DeclareMathAlphabet {\mathit}{EU1}{\zf@family}{m}{it}
+ \DeclareSymbolFontAlphabet{\mathrm} {OPERATORS}
+ \DeclareMathAlphabet {\mathbf}{EU1}{\zf@family}{bx}{n}
+ \SetMathCode{`0}{\mathalpha}{OPERATORS}{"06F0}
+ \SetMathCode{`1}{\mathalpha}{OPERATORS}{"06F1}
+ \SetMathCode{`2}{\mathalpha}{OPERATORS}{"06F2}
+ \SetMathCode{`3}{\mathalpha}{OPERATORS}{"06F3}
+ \SetMathCode{`4}{\mathalpha}{OPERATORS}{"06F4}
+ \SetMathCode{`5}{\mathalpha}{OPERATORS}{"06F5}
+ \SetMathCode{`6}{\mathalpha}{OPERATORS}{"06F6}
+ \SetMathCode{`7}{\mathalpha}{OPERATORS}{"06F7}
+ \SetMathCode{`8}{\mathalpha}{OPERATORS}{"06F8}
+ \SetMathCode{`9}{\mathalpha}{OPERATORS}{"06F9}
+ \SetMathCharDef{\decimalseparator}{\mathpunct}{OPERATORS}{"066B}
+}
+\ifx\newcommand\undefined\else
+ \newcommand{\ZifferAn}{}
+\fi
+\mathchardef\ziffer@DotOri="013A
+{\ZifferAn
+ \catcode`\.=\active\gdef.{\begingroup\obeyspaces\futurelet\n\ziffer@dcheck}}
+\def\ziffer@dcheck{\ziffer@check\ZifferLeer\ziffer@DotOri}
+\def\ziffer@check#1#2{%
+ \ifx\n1\endgroup#1\else
+ \ifx\n2\endgroup#1\else
+ \ifx\n3\endgroup#1\else
+ \ifx\n4\endgroup#1\else
+ \ifx\n5\endgroup#1\else
+ \ifx\n6\endgroup#1\else
+ \ifx\n7\endgroup#1\else
+ \ifx\n8\endgroup#1\else
+ \ifx\n9\endgroup#1\else
+ \ifx\n0\endgroup#1\else
+ \endgroup#2%
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi}
+\mathcode`.="8000\relax
+\def\ZifferLeer{\ifx\decimalseparator\undefied .\else \decimalseparator\fi}
+% \end{macrocode}
+% \iffalse
+%</xepersian-mathsdigitspec.sty>
+%<*xepersian-multiplechoice.sty>
+% \fi
+% \part{xepersian-multiplechoice.sty}
+% \begin{macrocode}
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{xepersian-multiplechoice}[2009/03/21 v0.1
+ Multiple Choice Questionnaire class for Persian in XeLaTeX (Author: Vafa Khalighi)]
+\RequirePackage{pifont}
+\RequirePackage{fullpage}
+\RequirePackage{ifthen}
+\RequirePackage{calc}
+\RequirePackage{verbatim}
+\RequirePackage{fmultico}
+\def\@headerfont{\bfseries}
+\newcommand\headerfont[1]{\gdef\@headerfont{#1}}
+\def\@X{X}
+\newcommand\X[1]{\gdef\@X{#1}}
+\def\pbs#1{\let\tmp=\\#1\let\\=\tmp}
+\newcommand\makeform@nocorrection{%
+ \addtocontents{frm}{\protect\end{tabular}}
+ \@starttoc{frm}}
+\newcommand\makeform@correction{%
+ \addtocontents{frm}{\protect\end{tabular}}}
+\newcommand\makemask@nocorrection{%
+ \addtocontents{msk}{\protect\end{tabular}}
+ \@starttoc{msk}}
+\newcommand\makemask@correction{%
+ \addtocontents{msk}{\protect\end{tabular}}}
+\newlength\questionspace
+\setlength\questionspace{0pt}
+\newcommand\answerstitle[1]{\gdef\@answerstitle{#1}}
+\def\@answerstitlefont{\bfseries}
+\newcommand\answerstitlefont[1]{\gdef\@answerstitlefont{#1}}
+\def\@answernumberfont{\bfseries}
+\newcommand\answernumberfont[1]{\gdef\@answernumberfont{#1}}
+\newcounter{question}\stepcounter{question}
+\newcounter{@choice}
+\def\@initorcheck{%
+ \xdef\@choices{\the@choice}%
+ \setcounter{@choice}{1}%
+ \gdef\@arraydesc{|l||}%
+ \gdef\@headerline{}%
+ \whiledo{\not{\value{@choice}>\@choices}}{
+ \xdef\@arraydesc{\@arraydesc c|}
+ \def\@appendheader{\g@addto@macro\@headerline}
+ \@appendheader{&\protect\@headerfont}
+ \edef\@the@choice{{\alph{@choice}}}
+ \expandafter\@appendheader\@the@choice
+ \stepcounter{@choice}}%
+ \addtocontents{frm}{%
+ \protect\begin{tabular}{\@arraydesc}
+ \protect\hline
+ \@headerline\protect\\\protect\hline\protect\hline}%
+ \addtocontents{msk}{%
+ \protect\begin{tabular}{\@arraydesc}
+ \protect\hline
+ \@headerline\protect\\\protect\hline\protect\hline}%
+ \gdef\@initorcheck{%
+ \ifthenelse{\value{@choice} = \@choices}{}{%
+ \ClassError{xepersian-multiplechoice}{Question \thequestion: wrong number of choices
+ (\the@choice\space instead of \@choices)}{%
+ Questions must all have the same number of proposed answers.%
+ \MessageBreak
+ Type X <return> to quit, fix your MCQ (multiple choice question) and rerun XeLaTeX.}}}}
+\newenvironment{question}[1]{%
+ %% \begin{question}
+ \begin{minipage}{\textwidth}
+ \xdef\@formanswerline{\@questionheader}%
+ \xdef\@maskanswerline{\@questionheader}%
+ \fbox{\parbox[c]{\linewidth}{#1}}
+ \vspace\questionspace\par
+ {\@answerstitlefont\@answerstitle}
+\begin{multicols}{4}
+ \begin{list}{\@answernumberfont\alph{@choice})~}{\usecounter{@choice}}}{%
+ %% \end{question}
+ \end{list}
+\end{multicols}
+ \@initorcheck%
+ \addtocontents{frm}{\@formanswerline\protect\\\protect\hline}%
+ \addtocontents{msk}{\@maskanswerline\protect\\\protect\hline}%
+ \end{minipage}
+ \stepcounter{question}}
+\def\@truesymbol{\ding{52}~}
+\def\@falsesymbol{\ding{56}~}
+\newcommand\truesymbol[1]{\gdef\@truesymbol{#1}}
+\newcommand\falsesymbol[1]{\gdef\@falsesymbol{#1}}
+\def\@true@nocorrection{\item}
+\def\@false@nocorrection{\item}
+\def\@true@correction{\item[\@truesymbol\refstepcounter{@choice}]}
+\def\@false@correction{\item[\@falsesymbol\refstepcounter{@choice}]}
+\newcommand\true{%
+ \xdef\@formanswerline{\@formanswerline&}%
+ \xdef\@maskanswerline{\@maskanswerline&\@X}%
+ \@true}%
+\newcommand\false{%
+ \xdef\@formanswerline{\@formanswerline&}%
+ \xdef\@maskanswerline{\@maskanswerline&}%
+ \@false}%
+\def\@correctionstyle{\itshape}
+\newcommand\correctionstyle[1]{\gdef\@correctionstyle{#1}}
+\newenvironment{@correction}{\@correctionstyle}{}
+ \def\@questionheader{سؤال \thequestion}
+ \answerstitle{جوابهای ممکن:}
+\DeclareOption{nocorrection}{%
+ \let\@true\@true@nocorrection
+ \let\@false\@false@nocorrection
+ \let\correction\comment
+ \let\endcorrection\endcomment
+ \def\makeform{\makeform@nocorrection}
+ \def\makemask{\makemask@nocorrection}}
+\DeclareOption{correction}{%
+ \let\@true\@true@correction
+ \let\@false\@false@correction
+ \let\correction\@correction
+ \let\endcorrection\end@correction
+ \def\makeform{\makeform@correction}
+ \def\makemask{\makemask@correction}}
+\ExecuteOptions{nocorrection}
+\newcommand\questiontitle[1]{\gdef\@questiontitle{#1}}
+\def\@questiontitlefont{\bfseries}
+\newcommand\questiontitlefont[1]{\gdef\@questiontitlefont{#1}}
+\newlength\questiontitlespace
+\setlength\questiontitlespace{5pt}
+\newlength\questionsepspace
+\setlength\questionsepspace{20pt}
+\gdef\@questionsepspace{0pt}
+\let\old@question\question
+\let\old@endquestion\endquestion
+\renewenvironment{question}[1]{%
+ %% \begin{question}
+ \vspace\@questionsepspace
+ \fbox{\parbox[c]{0.25\linewidth}{\@questiontitlefont\@questiontitle}}
+ \nopagebreak\vspace\questiontitlespace\par
+ \old@question{#1}}{%
+ %% \end{question}
+ \old@endquestion
+ \gdef\@questionsepspace{\questionsepspace}}
+ \questiontitle{سؤال \thequestion:}
+\ProcessOptions
+% \end{macrocode}
+% \iffalse
+%</xepersian-multiplechoice.sty>
+%<*xepersian-persiancal.sty>
+% \fi
+% \part{xepersian-persiancal.sty}
+% \begin{macrocode}
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{xepersian-persiancal}
+
+\newif\ifXePersian@leap \newif\ifXePersian@kabiseh
+\newcount\XePersian@i \newcount\XePersian@y \newcount\XePersian@m \newcount\XePersian@d
+\newcount\XePersian@latini \newcount\XePersian@persiani
+\newcount\XePersian@latinii \newcount\XePersian@persianii
+\newcount\XePersian@latiniii \newcount\XePersian@persianiii
+\newcount\XePersian@latiniv \newcount\XePersian@persianiv
+\newcount\XePersian@latinv \newcount\XePersian@persianv
+\newcount\XePersian@latinvi \newcount\XePersian@persianvi
+\newcount\XePersian@latinvii \newcount\XePersian@persianvii
+\newcount\XePersian@latinviii \newcount\XePersian@persianviii
+\newcount\XePersian@latinix \newcount\XePersian@persianix
+\newcount\XePersian@latinx \newcount\XePersian@persianx
+\newcount\XePersian@latinxi \newcount\XePersian@persianxi
+\newcount\XePersian@latinxii \newcount\XePersian@persianxii
+ \newcount\XePersian@persianxiii
+
+\newcount\XePersian@temp
+\newcount\XePersian@temptwo
+\newcount\XePersian@tempthree
+\newcount\XePersian@yModHundred
+\newcount\XePersian@thirtytwo
+\newcount\XePersian@dn
+\newcount\XePersian@sn
+\newcount\XePersian@mminusone
+
+\def\persiantoday{%
+\XePersian@y=\year \XePersian@m=\month \XePersian@d=\day
+%
+\XePersian@temp=\XePersian@y
+\divide\XePersian@temp by 100\relax
+\multiply\XePersian@temp by 100\relax
+\XePersian@yModHundred=\XePersian@y
+\advance\XePersian@yModHundred by -\XePersian@temp\relax
+%
+\ifodd\XePersian@yModHundred
+ \XePersian@leapfalse
+\else
+ \XePersian@temp=\XePersian@yModHundred
+ \divide\XePersian@temp by 2\relax
+ \ifodd\XePersian@temp\XePersian@leapfalse
+ \else
+ \ifnum\XePersian@yModHundred=0%
+ \XePersian@temp=\XePersian@y
+ \divide\XePersian@temp by 400\relax
+ \multiply\XePersian@temp by 400\relax
+ \ifnum\XePersian@y=\XePersian@temp\XePersian@leaptrue\else\XePersian@leapfalse\fi
+ \else\XePersian@leaptrue
+ \fi
+ \fi
+\fi
+%
+\XePersian@latini=31\relax
+\ifXePersian@leap
+ \XePersian@latinii = 29\relax
+\else
+ \XePersian@latinii = 28\relax
+\fi
+\XePersian@latiniii = 31\relax
+\XePersian@latiniv = 30\relax
+\XePersian@latinv = 31\relax
+\XePersian@latinvi = 30\relax
+\XePersian@latinvii = 31\relax
+\XePersian@latinviii = 31\relax
+\XePersian@latinix = 30\relax
+\XePersian@latinx = 31\relax
+\XePersian@latinxi = 30\relax
+\XePersian@latinxii = 31\relax
+%
+\XePersian@thirtytwo=32\relax
+%
+\XePersian@temp=\XePersian@y
+\advance\XePersian@temp by -17\relax
+\XePersian@temptwo=\XePersian@temp
+\divide\XePersian@temptwo by 33\relax
+\multiply\XePersian@temptwo by 33\relax
+\advance\XePersian@temp by -\XePersian@temptwo
+\ifnum\XePersian@temp=\XePersian@thirtytwo\XePersian@kabisehfalse
+\else
+ \XePersian@temptwo=\XePersian@temp
+ \divide\XePersian@temptwo by 4\relax
+ \multiply\XePersian@temptwo by 4\relax
+ \advance\XePersian@temp by -\XePersian@temptwo
+ \ifnum\XePersian@temp=\z@\XePersian@kabisehtrue\else\XePersian@kabisehfalse\fi
+\fi
+%
+% In fact persiani is equal to the Leap years from a fixed year to the last
+% year minus the Kabise years from a fixed year to the last year plus a const.
+%
+\XePersian@tempthree=\XePersian@y % Number of Leap years
+\advance\XePersian@tempthree by -1
+\XePersian@temp=\XePersian@tempthree % T := (MY-1) div 4
+\divide\XePersian@temp by 4\relax
+\XePersian@temptwo=\XePersian@tempthree % T := T - ((MY-1) div 100)
+\divide\XePersian@temptwo by 100\relax
+\advance\XePersian@temp by -\XePersian@temptwo
+\XePersian@temptwo=\XePersian@tempthree % T := T + ((MY-1) div 400)
+\divide\XePersian@temptwo by 400\relax
+\advance\XePersian@temp by \XePersian@temptwo
+\advance\XePersian@tempthree by -611 % Number of Kabise years
+\XePersian@temptwo=\XePersian@tempthree % T := T - ((SY+10) div 33) * 8
+\divide\XePersian@temptwo by 33\relax
+\multiply\XePersian@temptwo by 8\relax
+\advance\XePersian@temp by -\XePersian@temptwo
+\XePersian@temptwo=\XePersian@tempthree %
+\divide\XePersian@temptwo by 33\relax
+\multiply\XePersian@temptwo by 33\relax
+\advance\XePersian@tempthree by -\XePersian@temptwo
+\ifnum\XePersian@tempthree=32\advance\XePersian@temp by 1\fi % if (SY+10) mod 33=32 then Inc(T);
+\divide\XePersian@tempthree by 4\relax % T := T - ((SY+10) mod 33) div 4
+\advance\XePersian@temp by -\XePersian@tempthree
+\advance\XePersian@temp by -137 % T := T - 137 Adjust the value
+\XePersian@persiani=31
+\advance\XePersian@persiani by -\XePersian@temp % now 31 - T is the persiani
+%
+\XePersian@persianii = 30\relax
+\ifXePersian@kabiseh
+ \XePersian@persianiii = 30\relax
+\else
+ \XePersian@persianiii = 29\relax
+\fi
+\XePersian@persianiv = 31\relax
+\XePersian@persianv = 31\relax
+\XePersian@persianvi = 31\relax
+\XePersian@persianvii = 31\relax
+\XePersian@persianviii= 31\relax
+\XePersian@persianix = 31\relax
+\XePersian@persianx = 30\relax
+\XePersian@persianxi = 30\relax
+\XePersian@persianxii = 30\relax
+\XePersian@persianxiii= 30\relax
+%
+\XePersian@dn= 0\relax
+\XePersian@sn= 0\relax
+\XePersian@mminusone=\XePersian@m
+\advance\XePersian@mminusone by -1\relax
+%
+\XePersian@i=0\relax
+\ifnum\XePersian@i < \XePersian@mminusone
+\loop
+\advance \XePersian@i by 1\relax
+\advance\XePersian@dn by \csname XePersian@latin\romannumeral\the\XePersian@i\endcsname
+\ifnum\XePersian@i<\XePersian@mminusone \repeat
+\fi
+\advance \XePersian@dn by \XePersian@d
+%
+\XePersian@i=1\relax
+\XePersian@sn = \XePersian@persiani
+\ifnum \XePersian@sn<\XePersian@dn
+\loop
+\advance \XePersian@i by 1\relax
+\advance\XePersian@sn by \csname XePersian@persian\romannumeral\the\XePersian@i\endcsname
+\ifnum \XePersian@sn<\XePersian@dn \repeat
+\fi
+\ifnum \XePersian@i < 4
+ \XePersian@m = 9 \advance\XePersian@m by \XePersian@i
+ \advance \XePersian@y by -622\relax
+\else
+ \XePersian@m = \XePersian@i \advance \XePersian@m by -3\relax
+ \advance \XePersian@y by -621\relax
+\fi
+\advance\XePersian@sn by -\csname XePersian@persian\romannumeral\the\XePersian@i%
+\endcsname
+\ifnum\XePersian@i = 1
+ \XePersian@d = \XePersian@dn \advance \XePersian@d by 30 \advance\XePersian@d by -\XePersian@persiani
+\else
+ \XePersian@d = \XePersian@dn \advance \XePersian@d by -\XePersian@sn
+\fi
+\beginL\number\XePersian@d\endL\space%
+\persianmonth{\XePersian@m}\space\beginL\number\XePersian@y\endL%
+}
+\def\persianmonth#1{\ifcase#1\or فروردین\or
+اردیبهشت\or
+خرداد\or تیر\or
+مرداد\or
+شهریور\or مهر\or
+آبان\or آذر\or
+دی\or بهمن\or
+اسفند\fi}
+% \end{macrocode}
+% \iffalse
+%</xepersian-persiancal.sty>
+%<*xepersian-thesis.cls>
+% \fi
+% \part{xepersian-thesis.cls}
+% \begin{macrocode}
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesClass{xepersian-thesis}
+ [2009/01/05 v0.1
+ Persian thesis document class in XeLaTeX]
+\DeclareOption*{\PassOptionsToClass{\CurrentOption}{report}}
+\ProcessOptions
+\LoadClass{report}
+\def\university#1{\gdef\@university{#1}}
+\def\department#1{\gdef\@department{#1}}
+\def\degree#1{\gdef\@degree{#1}}
+\def\thesisdate#1{\gdef\@thesisdate{#1}}
+\def\supervisor#1{\gdef\@supervisor{#1}}
+\def\city#1{\gdef\@city{#1}}
+
+\def\latintitle#1{\gdef\@latintitle{#1}}
+\def\latinauthor#1{\gdef\@latinauthor{#1}}
+\def\latindegree#1{\gdef\@latindegree{#1}}
+\def\latindepartment#1{\gdef\@latindepartment{#1}}
+\def\latinthesisdate#1{\gdef\@latinthesisdate{#1}}
+\def\latinsupervisor#1{\gdef\@latinsupervisor{#1}}
+\def\latincity#1{\gdef\@latincity{#1}}
+\def\latinuniversity#1{\gdef\@latinuniversity{#1}}
+
+\def\maketitle{\begin{titlepage}
+{\includegraphics{logo}}
+\vskip 1.5cm
+{\Huge\bfseries \@title}\par
+\vskip 1cm
+{\large%
+ \by}\par
+{\Large\bfseries \@author}\par
+\vskip 5mm
+{\large\bfseries\writtenfor
+\par
+\@degree}
+\par
+\vskip 1cm
+{\large
+ \undersupervision\par
+\Large\bfseries \@supervisor}
+\par
+\vskip 1cm
+{\large \@thesisdate}
+\par
+\vskip 1cm
+{\large\bfseries\departmentof\space\@department}
+\par
+{\large\bfseries\universityof\space\@university \par\@city}
+\vfill
+\end{titlepage}%
+}
+
+\def\abstractpage{\newpage
+\thispagestyle{empty}
+\vskip 15mm
+\begin{center}{\large{\bfseries \@title} \\}
+\end{center}
+\par
+\begin{abstract}}
+\def\endabstractpage{\end{abstract}
+\newpage
+}
+
+\def\latinabstract{\newpage
+\thispagestyle{empty}
+\vskip 15mm
+\begin{center}{\Large\bfseries \@latintitle \\[5mm]}
+{\bfseries Abstract}
+\end{center}
+\vspace{5mm}}
+
+\def\endlatinabstract{\newpage}
+
+\def\acknowledgementpage{\newpage
+\thispagestyle{empty}
+\centerline{\Large \bfseries\acknowledgementname}
+\vspace{1cm}
+\par\noindent}
+\def\endacknowledgementpage{\newpage}
+
+\def\titlepage{\newpage\centering
+ \thispagestyle{empty}
+ \parindent 0pt \parskip 10pt plus 1fil minus 1fil
+ \def\baselinestretch{1}\@normalsize\vbox to \vsize\bgroup\vbox to 9in\bgroup}
+\def\endtitlepage{\par\kern 0pt\egroup\vss\egroup\newpage}
+
+\def\signature#1#2{\par\noindent#1\dotfill\null\\*
+ {\raggedright #2\par}}
+
+\def\abstract{\subsection*{\abstractname}\small
+\@normalsize}
+\def\endabstract{\par}
+
+\pagenumbering{harfi}
+\let\ol@chapter\@chapter
+\def\@chapter{%
+ \ifnum\c@chapter=0 \pagenumbering{arabic}\setcounter{page}{1}\fi
+ \ol@chapter}
+
+
+
+\def\keywords#1{\par \vspace{5mm}
+{\textbf{واژه‌های کلیدی:}} {\textit{ #1}}}
+
+\def\latinkeywords#1{\par \vspace{5mm}
+\noindent {\textbf{Keywords:}} {\textit{ #1}}}
+
+\font\titlefont=cmssbx10 scaled 2074
+\font\supervisorfont=cmbxti10
+\def\makelatintitle{\begin{titlepage}
+{\includegraphics{logo}}
+\vskip 1.5cm
+\addtolength{\baselineskip}{5mm}
+{\titlefont \@latintitle} \par
+\addtolength{\baselineskip}{-5mm}
+\vskip 1cm
+{\bfseries\latinby}\par
+{\Large\bfseries \@latinauthor}\par
+\vskip 5mm
+{\latinwrittenfor\par
+\large\@latindegree}
+\par
+\vskip 1cm
+Under supervision of \\
+{\supervisorfont\@latinsupervisor}
+\par
+\vskip 1cm
+{\@latinthesisdate}
+\par
+\vskip 1cm
+\large\bfseries
+\@latindepartment\space Department
+\par
+\@latinuniversity \par\@latincity
+\vfill
+\end{titlepage}%
+}
+
+
+\def\acknowledgementname{قدردانی}
+\def\by{توسط}
+\def\writtenfor{ رسالهٔ ارائه شده به عنوان بخشی از ملزومات برای دریافت درجهٔ}
+\def\undersupervision{زیر نظر}
+\def\departmentof{دانشکدهٔ}
+\def\universityof{دانشگاه}
+\def\latinby{by}
+\def\latinwrittenfor{Submitted in Partial Fulfillment\\ of the Requirements\\ for the Degree of}
+\def\latinundersupervision{Under supervision of}
+% \end{macrocode}
+% \iffalse
+%</xepersian-thesis.cls>
+%<*xepersian-thesis-xepersian.def>
+% \fi
+% \part{xepersian-thesis-xepersian.def}
+% \begin{macrocode}
+\renewcommand \thepart {\@tartibi\c@part}
+%to make appendix numbering persian
+\renewcommand\appendix{\par
+ \setcounter{chapter}{0}%
+ \setcounter{section}{0}%
+ \gdef\@chapapp{\appendixname}%
+ \gdef\thechapter{\@harfi\c@chapter}
+}%end appendix
+% \end{macrocode}
+% \iffalse
+%</xepersian-thesis-xepersian.def>
+%<*acm-fa.bst>
+% \fi
+% \part{acm-fa.bst}
+% \begin{macrocode}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Bib. style "acm-fa", Persian (farsi) version of acm.bst
+%%
+%% by: Mahmood Amintoosi and Mostafa Vahedi
+%% For XePersian, a Persian Typsetting Package in XeTeX, Developed by:
+%% Vafa Khalighi, Mehdi Omidali and Mostafa Vahedi
+%% 2009/02/12
+%% It may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either this version
+%% of this license or (at your option) any later version.
+%%
+%% NOTE: Its output for English references may has a bit difference with acm.bst, for pure English texts please use acm.bst
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Original Copyright of acm.bst
+% ACM Transactions bibliography style (24-Jan-88 version)
+% A lot like abbrv.bst, but names come out "Last, initials", and in \sc.
+% Some dates are parenthesized.
+
+% History of acm-fa.bst
+% 2009/02/12, The initial release was a combination of acm.bst and plain-fa.bst
+% \textsc is used here instead of \sc.
+%
+
+ENTRY
+ { address
+ author
+ booktitle
+ chapter
+ edition
+ editor
+ howpublished
+ institution
+ journal
+ key
+ language
+ month
+ note
+ number
+ organization
+ pages
+ publisher
+ school
+ series
+ title
+ translator
+ type
+ volume
+ year
+ }
+ {}
+ { label }
+
+INTEGERS { output.state before.all mid.sentence after.sentence after.block }
+STRINGS {bbl.and bbl.etal bbl.editors bbl.editor bbl.edition bbl.volume bbl.of bbl.number
+ bbl.in bbl.pages bbl.page bbl.chapter bbl.series bbl.techrep bbl.mthesis bbl.phdthesis
+ bbl.translator}% bbl.formatnames}
+FUNCTION {is.print.banners.to.terminal} { #1 }
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% FILE VERSION AND BANNER %%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+FUNCTION{bst.file.version} { "0.3" }
+FUNCTION{bst.file.date} { "2009/02/12" }
+FUNCTION{bst.file.website} { "http://developer.berlios.de/projects/xepersian" }
+FUNCTION{bst.file.authors} {"M.Amintoosi and M.Vahedi" }
+
+FUNCTION {banner.message}
+{ is.print.banners.to.terminal
+ { "-- acm-fa.bst version" " " * bst.file.version *
+ " (" * bst.file.date * ") " * %"by " * bst.file.authors *
+ top$
+ "-- This is a BibTeX style for XePersian: " bst.file.website *
+ %top$
+ %"-- See the " quote$ * "xepersian_bibtex_userguide.pdf" * quote$ * " manual for usage information." *
+ top$
+ }
+ { skip$ }
+ if$
+}
+
+FUNCTION {completed.message}
+{ is.print.banners.to.terminal
+ { ""
+ top$
+ "Done."
+ top$
+ }
+ { skip$ }
+ if$
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Persian Functions %%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+FUNCTION {fa.isPersianLanguage}
+{
+ language missing$
+ {#0}
+ {language "l" change.case$ "persian" =}
+ if$
+}
+
+FUNCTION {keywords.fa}
+{
+ " و " 'bbl.and :=
+ " و دیگران" 'bbl.etal :=
+ " ویراستاران " 'bbl.editors :=
+ " ویراسته‌ی " 'bbl.editor :=
+ " ویرایش " 'bbl.edition :=
+ " جلد " 'bbl.volume :=
+ " از " 'bbl.of :=
+ " شماره " 'bbl.number :=
+ " در " 'bbl.in :=
+ " صفحات " 'bbl.pages :=
+ " ص." 'bbl.page :=
+ " فصل " 'bbl.chapter :=
+ " سری " 'bbl.series :=
+ " گزارش طرح تحقیقی" 'bbl.techrep :=
+ " پایان‌نامه کارشناسی‌ارشد" 'bbl.mthesis :=
+ " پایان‌نامه دکترا" 'bbl.phdthesis :=
+ " ترجمه‌ی " 'bbl.translator :=
+}
+
+FUNCTION {keywords.en}
+{
+ " and " 'bbl.and :=
+ " et~al." 'bbl.etal :=
+ " Eds." 'bbl.editors :=
+ " Ed." 'bbl.editor :=
+ " Ed." 'bbl.edition :=
+ " Vol." 'bbl.volume :=
+ " of " 'bbl.of :=
+ " No." 'bbl.number :=
+ " In " 'bbl.in :=
+ " pp." 'bbl.pages :=
+ " p." 'bbl.page :=
+ " Ch." 'bbl.chapter :=
+ " Ser." 'bbl.series :=
+ " Tech. Rep." 'bbl.techrep :=
+ " Master's thesis" 'bbl.mthesis :=
+ " Ph.D. thesis" 'bbl.phdthesis :=
+ " Translator " 'bbl.translator :=
+ %"{vv~}{ll}{, jj}{, f.}" 'bbl.formatnames :=
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% End of Persian Functions %%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+FUNCTION {init.state.consts}
+{ #0 'before.all :=
+ #1 'mid.sentence :=
+ #2 'after.sentence :=
+ #3 'after.block :=
+}
+
+STRINGS { s t }
+
+FUNCTION {output.nonnull}
+{ 's :=
+ output.state mid.sentence =
+ { ", " * write$ }
+ { output.state after.block =
+ { add.period$ write$
+ newline$
+ "\newblock " write$
+ }
+ { output.state before.all =
+ 'write$
+ { add.period$ " " * write$ }
+ if$
+ }
+ if$
+ mid.sentence 'output.state :=
+ }
+ if$
+ s
+}
+
+FUNCTION {output}
+{ duplicate$ empty$
+ 'pop$
+ 'output.nonnull
+ if$
+}
+
+FUNCTION {output.check}
+{ 't :=
+ duplicate$ empty$
+ { pop$ "empty " t * " in " * cite$ * warning$ }
+ 'output.nonnull
+ if$
+}
+
+FUNCTION {output.bibitem}
+{
+ newline$
+ fa.isPersianLanguage
+ { keywords.fa
+ "\Persian" write$
+ newline$ }
+ { keywords.en
+ "\Latin" write$
+ newline$ }
+ if$
+ "\bibitem{" write$
+ cite$ write$
+ "}" write$
+ newline$
+ ""
+ before.all 'output.state :=
+}
+
+FUNCTION {fin.entry}
+{ add.period$
+ write$
+ newline$
+}
+
+FUNCTION {new.block}
+{ output.state before.all =
+ 'skip$
+ { after.block 'output.state := }
+ if$
+}
+
+FUNCTION {new.sentence}
+{ output.state after.block =
+ 'skip$
+ { output.state before.all =
+ 'skip$
+ { after.sentence 'output.state := }
+ if$
+ }
+ if$
+}
+
+FUNCTION {not}
+{ { #0 }
+ { #1 }
+ if$
+}
+
+FUNCTION {and}
+{ 'skip$
+ { pop$ #0 }
+ if$
+}
+
+FUNCTION {or}
+{ { pop$ #1 }
+ 'skip$
+ if$
+}
+
+FUNCTION {new.block.checka}
+{ empty$
+ 'skip$
+ 'new.block
+ if$
+}
+
+FUNCTION {new.block.checkb}
+{ empty$
+ swap$ empty$
+ and
+ 'skip$
+ 'new.block
+ if$
+}
+
+FUNCTION {new.sentence.checka}
+{ empty$
+ 'skip$
+ 'new.sentence
+ if$
+}
+
+FUNCTION {new.sentence.checkb}
+{ empty$
+ swap$ empty$
+ and
+ 'skip$
+ 'new.sentence
+ if$
+}
+
+
+FUNCTION {field.or.null}
+{ duplicate$ empty$
+ { pop$ "" }
+ 'skip$
+ if$
+}
+
+FUNCTION {emphasize}
+{ duplicate$ empty$
+ { pop$ "" }
+ { "{\em " swap$ * "}" * }
+ if$
+}
+
+FUNCTION {emphasizeic}
+{ duplicate$ empty$
+ { pop$ "" }
+ { "{\em " swap$ * "\/}" * }
+ if$
+}
+
+FUNCTION {scapify}
+{ duplicate$ empty$
+ { pop$ "" }
+ { "\textsc{ " swap$ * "}" * }
+ if$
+}
+
+INTEGERS { nameptr namesleft numnames }
+
+FUNCTION {format.names}
+{ 's :=
+ #1 'nameptr :=
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+ {fa.isPersianLanguage
+ { s nameptr "{vv~}{ll}{, jj}{, ff}" format.name$ 't :=}
+ { s nameptr "{vv~}{ll}{, jj}{, f.}" format.name$ 't :=}
+ if$
+ nameptr #1 >
+ { namesleft #1 >
+ { ", " * t * }
+ { t "others" =
+ { "," bbl.etal * * }
+ { "," bbl.and * * t * }
+ if$
+ }
+ if$
+ }
+ 't
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+}
+
+% For names inside entries (e.g., editors of an "In ...");
+% this is exactly ABBRV.BST's `format.names' function.
+FUNCTION {format.innames}
+{ 's :=
+ #1 'nameptr :=
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+ {fa.isPersianLanguage
+ {s nameptr "{ff}{vv~}{ll}{, jj}" format.name$ 't :=}
+ {s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't :=}
+ if$
+ nameptr #1 >
+ { namesleft #1 >
+ { ", " * t * }
+ { numnames #2 >
+ { "," * }
+ 'skip$
+ if$
+ t "others" =
+ { bbl.etal * }
+ { bbl.and * t * }
+ if$
+ }
+ if$
+ }
+ 't
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+}
+
+FUNCTION {format.authors}
+{ author empty$
+ { "" }
+ { author format.names scapify}
+ if$
+}
+
+FUNCTION {format.editors}
+{ editor empty$
+ { "" }
+ { fa.isPersianLanguage
+ {
+ editor num.names$ #1 >
+ {bbl.editors editor format.names * }
+ {bbl.editor editor format.names * }
+ if$
+ }
+ {
+ editor format.names scapify
+ editor num.names$ #1 >
+ { ", " bbl.editors * *}
+ { ", " bbl.editor * *}
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.ineditors}
+{ editor empty$
+ { "" }
+ { editor format.innames
+ editor num.names$ #1 >
+ { ", " * bbl.editors *}
+ { ", " * bbl.editor *}
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.translators}
+{ translator empty$
+ { "" }
+ { fa.isPersianLanguage
+ {
+ bbl.translator translator format.names *
+ }
+ {
+ translator format.names
+ ", " bbl.translator * *
+ }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.title}
+{ title empty$
+ { "" }
+ { title "t" change.case$ }
+ if$
+}
+
+FUNCTION {n.dashify}
+{ 't :=
+ ""
+ { t empty$ not }
+ { t #1 #1 substring$ "-" =
+ { t #1 #2 substring$ "--" = not
+ { "--" *
+ t #2 global.max$ substring$ 't :=
+ }
+ { { t #1 #1 substring$ "-" = }
+ { "-" *
+ t #2 global.max$ substring$ 't :=
+ }
+ while$
+ }
+ if$
+ }
+ { t #1 #1 substring$ *
+ t #2 global.max$ substring$ 't :=
+ }
+ if$
+ }
+ while$
+}
+
+FUNCTION {format.date}
+{ year empty$
+ { month empty$
+ { "" }
+ { "there's a month but no year in " cite$ * warning$
+ month
+ }
+ if$
+ }
+ { month empty$
+ 'year
+ { month " " * year * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.btitle}
+{ title emphasize
+}
+
+FUNCTION {tie.or.space.connect}
+{ duplicate$ text.length$ #3 <
+ { "~" }
+ { " " }
+ if$
+ swap$ * *
+}
+
+FUNCTION {either.or.check}
+{ empty$
+ 'pop$
+ { "can't use both " swap$ * " fields in " * cite$ * warning$ }
+ if$
+}
+
+FUNCTION {format.bvolume}
+{ volume empty$
+ { "" }
+ { "volume" volume tie.or.space.connect
+ series empty$
+ 'skip$
+ { " of " * series emphasize * }
+ if$
+ "volume and number" number either.or.check
+ }
+ if$
+}
+
+FUNCTION {format.number.series}
+{ volume empty$
+ { number empty$
+ { series field.or.null }
+ { output.state mid.sentence =
+ { bbl.number }
+ { bbl.number "t" change.case$ }
+ if$
+ number tie.or.space.connect
+ series empty$
+ { "there's a number but no series in " cite$ * warning$ }
+ { bbl.in * series * }
+ if$
+ }
+ if$
+ }
+ { "" }
+ if$
+}
+
+FUNCTION {format.edition}
+{ edition empty$
+ { "" }
+ { fa.isPersianLanguage
+ {
+ bbl.edition edition *
+ }
+ {
+ output.state mid.sentence =
+ { edition "l" change.case$ bbl.edition * }
+ { edition "t" change.case$ bbl.edition * }
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.pages}
+{ pages empty$
+ { "" }
+ { pages n.dashify }
+ if$
+}
+
+INTEGERS { multiresult }
+
+FUNCTION {multi.page.check}
+{ 't :=
+ #0 'multiresult :=
+ { multiresult not
+ t empty$ not
+ and
+ }
+ { t #1 #1 substring$
+ duplicate$ "-" =
+ swap$ duplicate$ "," =
+ swap$ "+" =
+ or or
+ { #1 'multiresult := }
+ { t #2 global.max$ substring$ 't := }
+ if$
+ }
+ while$
+ multiresult
+}
+
+FUNCTION {format.pp.pages}
+{ pages empty$
+ { "" }
+ { pages multi.page.check
+ { bbl.pages pages n.dashify tie.or.space.connect }
+ { bbl.page pages tie.or.space.connect }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.journal.vol.num.date}
+{ journal empty$
+ { "empty journal in " cite$ * warning$
+ ""
+ }
+ { journal
+ volume empty$
+ 'skip$
+ { " " * volume * }
+ if$
+ number empty$
+ 'emphasizeic
+ { emphasize ", " * number * }
+ if$
+ year empty$
+ { "empty year in " cite$ * warning$ }
+ { " (" * format.date * ")" * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.chapter.pages}
+{ chapter empty$
+ 'format.pp.pages
+ { type empty$
+ { bbl.chapter }
+ { type "l" change.case$ }
+ if$
+ chapter tie.or.space.connect
+ pages empty$
+ 'skip$
+ { ", " * format.pp.pages * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.in.ed.booktitle}
+{
+ booktitle empty$
+ { "" }
+ {bbl.in booktitle emphasize *
+ editor empty$
+ 'skip$
+ { ", " * format.ineditors * }
+ if$
+ }
+ if$
+}
+
+% The proceedings title (it's on the stack) gets an (address, date) appended
+FUNCTION {format.proc.date}
+{ duplicate$ empty$
+ { pop$ "" }
+ { year empty$
+ { "empty year in " cite$ * warning$
+ address empty$
+ 'emphasize
+ { emphasizeic
+ " (" * address * ")" *
+ }
+ if$
+ }
+ { emphasizeic
+ " (" *
+ address empty$
+ 'skip$
+ { address * ", " * }
+ if$
+ format.date *
+ ")" *
+ }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.in.proc.date}
+{ booktitle empty$
+ { "" }
+ { bbl.in booktitle format.proc.date * }
+ if$
+}
+FUNCTION {empty.misc.check}
+{ author empty$ title empty$ howpublished empty$
+ month empty$ year empty$ note empty$
+ and and and and and
+ key empty$ not and
+ { "all relevant fields are empty in " cite$ * warning$ }
+ 'skip$
+ if$
+}
+
+FUNCTION {format.thesis.type}
+{ type empty$
+ 'skip$
+ { pop$
+ type "t" change.case$
+ }
+ if$
+}
+
+FUNCTION {format.tr.number}
+{ type empty$
+ { bbl.techrep }
+ 'type
+ if$
+ number empty$
+ { "t" change.case$ }
+ { number tie.or.space.connect }
+ if$
+}
+
+FUNCTION {format.article.crossref}
+{ key empty$
+ { journal empty$
+ { "need key or journal for " cite$ * " to crossref " * crossref *
+ warning$
+ ""
+ }
+ { bbl.in "{\em " * journal * "\/}" * }
+ if$
+ }
+ { bbl.in key * }
+ if$
+ " \cite{" * crossref * "}" *
+}
+
+FUNCTION {format.crossref.editor}
+{ editor #1 "{vv~}{ll}" format.name$
+ editor num.names$ duplicate$ #2 >
+ { pop$ bbl.etal * }
+ { #2 < 'skip$
+ { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
+ { bbl.etal * }
+ { bbl.and * editor #2 "{vv~}{ll}" format.name$ * }
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.book.crossref}
+{ volume empty$
+ { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
+ bbl.in
+ }
+ { bbl.volume volume tie.or.space.connect
+ bbl.of *
+ }
+ if$
+ editor empty$
+ editor field.or.null author field.or.null =
+ or
+ { key empty$
+ { series empty$
+ { "need editor, key, or series for " cite$ * " to crossref " *
+ crossref * warning$
+ "" *
+ }
+ { "{\em " * series * "\/}" * }
+ if$
+ }
+ { key * }
+ if$
+ }
+ { format.crossref.editor * }
+ if$
+ " \cite{" * crossref * "}" *
+}
+
+FUNCTION {format.incoll.inproc.crossref}
+{ editor empty$
+ editor field.or.null author field.or.null =
+ or
+ { key empty$
+ { booktitle empty$
+ { "need editor, key, or booktitle for " cite$ * " to crossref " *
+ crossref * warning$
+ ""
+ }
+ { bbl.in " {\em " * booktitle * "\/}" * }
+ if$
+ }
+ { bbl.in key * }
+ if$
+ }
+ { bbl.in format.crossref.editor * }
+ if$
+ " \cite{" * crossref * "}" *
+}
+
+FUNCTION {article}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ crossref missing$
+ { format.journal.vol.num.date output
+ format.pages output
+ }
+ { format.article.crossref output.nonnull
+ format.pp.pages output
+ }
+ if$
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {book}
+{ output.bibitem
+ fa.isPersianLanguage
+ {
+ format.authors output
+ new.block
+ format.btitle "title" output.check
+ format.edition output
+ new.block
+ format.translators output
+ format.editors output
+ }
+ { author empty$
+ { format.editors "author and editor" output.check }
+ { format.authors output.nonnull
+ crossref missing$
+ { "author and editor" editor either.or.check }
+ 'skip$
+ if$
+ }
+ if$
+ new.block
+ format.btitle "title" output.check
+ format.edition output
+ }
+ if$
+ crossref missing$
+ { format.bvolume output
+ new.block
+ format.number.series output
+ new.sentence
+ publisher "publisher" output.check
+ address output
+ }
+ { new.block
+ format.book.crossref output.nonnull
+ }
+ if$
+ format.date "year" output.check
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {booklet}
+{ output.bibitem
+ format.authors output
+ new.block
+ format.title "title" output.check
+ howpublished address new.block.checkb
+ howpublished output
+ address output
+ format.date output
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {inbook}
+{ output.bibitem
+ author empty$
+ { format.editors "author and editor" output.check }
+ { format.authors output.nonnull
+ crossref missing$
+ { "author and editor" editor either.or.check }
+ 'skip$
+ if$
+ }
+ if$
+ new.block
+ format.btitle "title" output.check
+ format.edition output
+ crossref missing$
+ { format.bvolume output
+ new.block
+ format.number.series output
+ new.sentence
+ publisher "publisher" output.check
+ address output
+ }
+ {
+ new.block
+ format.book.crossref output.nonnull
+ }
+ if$
+ format.date "year" output.check
+ format.chapter.pages "chapter and pages" output.check
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {incollection}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ crossref missing$
+ { format.in.ed.booktitle "booktitle" output.check
+ format.edition output
+ format.bvolume output
+ format.number.series output
+ new.sentence
+ publisher "publisher" output.check
+ address output
+ format.date "year" output.check
+ }
+ { format.incoll.inproc.crossref output.nonnull
+ }
+ if$
+ format.chapter.pages output
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {inproceedings}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ crossref missing$
+ { format.in.proc.date "booktitle" output.check
+ format.ineditors output
+ format.bvolume output
+ format.number.series output
+ organization output
+ publisher output
+ }
+ { format.incoll.inproc.crossref output.nonnull }
+ if$
+ format.pp.pages output
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {conference} { inproceedings }
+
+FUNCTION {manual}
+{ output.bibitem
+ author empty$
+ { organization scapify output }
+ { format.authors output.nonnull }
+ if$
+ new.block
+ format.btitle "title" output.check
+ format.edition output
+ author empty$
+ { address new.block.checka }
+ { organization address new.block.checkb
+ organization output
+ }
+ if$
+ address output
+ format.date output
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {mastersthesis}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ bbl.mthesis
+ format.thesis.type output.nonnull
+ school "school" output.check
+ address output
+ format.date "year" output.check
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {misc}
+{ output.bibitem
+ format.authors output
+ title howpublished new.block.checkb
+ format.title output
+ howpublished new.block.checka
+ howpublished output
+ format.date output
+ new.block
+ note output
+ fin.entry
+ empty.misc.check
+}
+
+FUNCTION {phdthesis}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.btitle "title" output.check
+ new.block
+ bbl.phdthesis
+ format.thesis.type output.nonnull
+ school "school" output.check
+ address output
+ format.date "year" output.check
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {proceedings}
+{ output.bibitem
+ editor empty$
+ { organization scapify output }
+ { format.editors output.nonnull }
+ if$
+ new.block
+ title format.proc.date "title" output.check
+ format.bvolume output
+ format.number.series output
+ editor empty$
+ 'skip$
+ { organization output }
+ if$
+ publisher output
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {techreport}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ format.tr.number output.nonnull
+ institution "institution" output.check
+ address output
+ format.date "year" output.check
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {unpublished}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ note "note" output.check
+ format.date output
+ fin.entry
+}
+
+FUNCTION {default.type} { misc }
+
+MACRO {jan} {"Jan."}
+
+MACRO {feb} {"Feb."}
+
+MACRO {mar} {"Mar."}
+
+MACRO {apr} {"Apr."}
+
+MACRO {may} {"May"}
+
+MACRO {jun} {"June"}
+
+MACRO {jul} {"July"}
+
+MACRO {aug} {"Aug."}
+
+MACRO {sep} {"Sept."}
+
+MACRO {oct} {"Oct."}
+
+MACRO {nov} {"Nov."}
+
+MACRO {dec} {"Dec."}
+
+MACRO {acmcs} {"ACM Comput. Surv."}
+
+MACRO {acta} {"Acta Inf."}
+
+MACRO {cacm} {"Commun. ACM"}
+
+
+MACRO {ibmjrd} {"IBM J. Res. Dev."}
+
+MACRO {ibmsj} {"IBM Syst.~J."}
+
+
+MACRO {ieeese} {"IEEE Trans. Softw. Eng."}
+
+MACRO {ieeetc} {"IEEE Trans. Comput."}
+
+MACRO {ieeetcad}
+ {"IEEE Trans. Comput.-Aided Design Integrated Circuits"}
+
+
+MACRO {ipl} {"Inf. Process. Lett."}
+
+MACRO {jacm} {"J.~ACM"}
+
+
+MACRO {jcss} {"J.~Comput. Syst. Sci."}
+
+MACRO {scp} {"Sci. Comput. Programming"}
+
+MACRO {sicomp} {"SIAM J. Comput."}
+
+
+MACRO {tocs} {"ACM Trans. Comput. Syst."}
+
+MACRO {tods} {"ACM Trans. Database Syst."}
+
+MACRO {tog} {"ACM Trans. Gr."}
+
+
+MACRO {toms} {"ACM Trans. Math. Softw."}
+
+MACRO {toois} {"ACM Trans. Office Inf. Syst."}
+
+
+MACRO {toplas} {"ACM Trans. Program. Lang. Syst."}
+
+MACRO {tcs} {"Theoretical Comput. Sci."}
+
+READ
+
+FUNCTION {sortify}
+{
+ fa.isPersianLanguage
+ { "l" change.case$}
+ {purify$ "l" change.case$}
+ if$
+ %duplicate$ write$
+}
+
+INTEGERS { len }
+
+FUNCTION {chop.word}
+{ 's :=
+ 'len :=
+ s #1 len substring$ =
+ { s len #1 + global.max$ substring$ }
+ 's
+ if$
+}
+
+FUNCTION {sort.format.names}
+{ 's :=
+ #1 'nameptr :=
+ ""
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+ { nameptr #1 >
+ { " " * }
+ 'skip$
+ if$
+ s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't :=
+ nameptr numnames = t "others" = and
+ { bbl.etal * }
+ { t sortify * }
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+}
+
+FUNCTION {sort.format.title}
+{ 't :=
+ "A " #2
+ "An " #3
+ "The " #4 t chop.word
+ chop.word
+ chop.word
+ sortify
+ #1 global.max$ substring$
+}
+
+FUNCTION {author.sort}
+{ author empty$
+ { key empty$
+ { "to sort, need author or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { author sort.format.names }
+ if$
+}
+
+FUNCTION {author.editor.sort}
+{ author empty$
+ { editor empty$
+ { key empty$
+ { "to sort, need author, editor, or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { editor sort.format.names }
+ if$
+ }
+ { author sort.format.names }
+ if$
+}
+
+FUNCTION {author.organization.sort}
+{ author empty$
+ { organization empty$
+ { key empty$
+ { "to sort, need author, organization, or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { "The " #4 organization chop.word sortify }
+ if$
+ }
+ { author sort.format.names }
+ if$
+}
+
+FUNCTION {editor.organization.sort}
+{ editor empty$
+ { organization empty$
+ { key empty$
+ { "to sort, need editor, organization, or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { "The " #4 organization chop.word sortify }
+ if$
+ }
+ { editor sort.format.names }
+ if$
+}
+
+FUNCTION {presort}
+{ type$ "book" =
+ type$ "inbook" =
+ or
+ 'author.editor.sort
+ { type$ "proceedings" =
+ 'editor.organization.sort
+ { type$ "manual" =
+ 'author.organization.sort
+ 'author.sort
+ if$
+ }
+ if$
+ }
+ if$
+ " "
+ *
+ year field.or.null sortify
+ *
+ " "
+ *
+ title field.or.null
+ sort.format.title
+ *
+ #1 entry.max$ substring$
+ 'sort.key$ :=
+}
+
+ITERATE {presort}
+
+SORT
+
+STRINGS { longest.label }
+
+INTEGERS { number.label longest.label.width }
+
+FUNCTION {initialize.longest.label}
+{ "" 'longest.label :=
+ #1 'number.label :=
+ #0 'longest.label.width :=
+}
+
+FUNCTION {longest.label.pass}
+{ number.label int.to.str$ 'label :=
+ number.label #1 + 'number.label :=
+ label width$ longest.label.width >
+ { label 'longest.label :=
+ label width$ 'longest.label.width :=
+ }
+ 'skip$
+ if$
+}
+
+EXECUTE {banner.message}
+EXECUTE {initialize.longest.label}
+
+ITERATE {longest.label.pass}
+
+FUNCTION {begin.bib}
+{
+ "% Generated by plain-fa.bst, version: " bst.file.version * " (" * bst.file.date * "), for XePersian Package" *
+ write$ newline$
+ "% Authors: " bst.file.authors *
+ write$ newline$
+ "\providecommand{\noopsort}[1]{}"
+ write$ newline$
+ preamble$ empty$
+ 'skip$
+ { preamble$ write$ newline$ }
+ if$
+ "\begin{thebibliography}{" longest.label * "}" * write$ newline$
+}
+
+EXECUTE {begin.bib}
+
+EXECUTE {init.state.consts}
+
+ITERATE {call.type$}
+
+FUNCTION {end.bib}
+{ newline$
+ "\end{thebibliography}" write$ newline$
+ "\Persian" write$ newline$
+}
+
+EXECUTE {end.bib}
+EXECUTE{completed.message}
+% \end{macrocode}
+% \iffalse
+%</acm-fa.bst>
+%<*ieeetr-fa.bst>
+% \fi
+% \part{ieeetr-fa.bst}
+% \begin{macrocode}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Bib. style "ieeetr-fa", Persian (farsi) version of ieeetr.bst
+%%
+%% by: Mahmood Amintoosi and Mostafa Vahedi
+%% For XePersian, a Persian Typsetting Package in XeTeX, Developed by:
+%% Vafa Khalighi, Mehdi Omidali and Mostafa Vahedi
+%% 2009/02/12
+%% It may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either this version
+%% of this license or (at your option) any later version.
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Original Copyright
+% IEEE Transactions bibliography style (29-Jan-88 version)
+% numeric labels, order-of-reference, IEEE abbreviations,
+% quotes around article titles, commas separate all fields
+% except after book titles and before "notes". Otherwise,
+% much like the "plain" family, from which this is adapted.
+%
+
+ENTRY
+ { address
+ author
+ booktitle
+ chapter
+ edition
+ editor
+ howpublished
+ institution
+ journal
+ key
+ language
+ month
+ note
+ number
+ organization
+ pages
+ publisher
+ school
+ series
+ title
+ translator
+ type
+ volume
+ year
+ }
+ {}
+ { label }
+
+INTEGERS { output.state before.all mid.sentence after.quote after.sentence
+ after.quoted.block after.block }
+STRINGS {bbl.and bbl.etal bbl.editors bbl.editor bbl.edition bbl.volume bbl.of bbl.number
+ bbl.in bbl.pages bbl.page bbl.chapter bbl.series bbl.techrep bbl.mthesis bbl.phdthesis
+ bbl.translator}% bbl.formatnames}
+FUNCTION {is.print.banners.to.terminal} { #1 }
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% FILE VERSION AND BANNER %%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+FUNCTION{bst.file.version} { "0.3" }
+FUNCTION{bst.file.date} { "2009/02/12" }
+FUNCTION{bst.file.website} { "http://developer.berlios.de/projects/xepersian" }
+FUNCTION{bst.file.authors} {"M.Amintoosi and M.Vahedi" }
+
+FUNCTION {banner.message}
+{ is.print.banners.to.terminal
+ { "-- ieeetr-fa.bst version" " " * bst.file.version *
+ " (" * bst.file.date * ") " * %"by " * bst.file.authors *
+ top$
+ "-- This is a BibTeX style for XePersian: " bst.file.website *
+ %top$
+ %"-- See the " quote$ * "xepersian_bibtex_userguide.pdf" * quote$ * " manual for usage information." *
+ top$
+ }
+ { skip$ }
+ if$
+}
+
+FUNCTION {completed.message}
+{ is.print.banners.to.terminal
+ { ""
+ top$
+ "Done."
+ top$
+ }
+ { skip$ }
+ if$
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Persian Functions %%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+FUNCTION {fa.isPersianLanguage}
+{
+ language missing$
+ {#0}
+ {language "l" change.case$ "persian" =}
+ if$
+}
+
+FUNCTION {keywords.fa}
+{
+ " و " 'bbl.and :=
+ " و دیگران" 'bbl.etal :=
+ " ویراستاران " 'bbl.editors :=
+ " ویراسته‌ی " 'bbl.editor :=
+ " ویرایش " 'bbl.edition :=
+ " جلد " 'bbl.volume :=
+ " از " 'bbl.of :=
+ " شماره " 'bbl.number :=
+ " در " 'bbl.in :=
+ " صفحات " 'bbl.pages :=
+ " ص." 'bbl.page :=
+ " فصل " 'bbl.chapter :=
+ " سری " 'bbl.series :=
+ " گزارش طرح تحقیقی" 'bbl.techrep :=
+ " پایان‌نامه کارشناسی‌ارشد" 'bbl.mthesis :=
+ " پایان‌نامه دکترا" 'bbl.phdthesis :=
+ " ترجمه‌ی " 'bbl.translator :=
+}
+
+FUNCTION {keywords.en}
+{
+ " and " 'bbl.and :=
+ " et~al." 'bbl.etal :=
+ " Eds." 'bbl.editors :=
+ " Ed." 'bbl.editor :=
+ " Ed." 'bbl.edition :=
+ " Vol." 'bbl.volume :=
+ " of " 'bbl.of :=
+ " No." 'bbl.number :=
+ " In " 'bbl.in :=
+ " pp." 'bbl.pages :=
+ " p." 'bbl.page :=
+ " Ch." 'bbl.chapter :=
+ " Ser." 'bbl.series :=
+ " Tech. Rep." 'bbl.techrep :=
+ " Master's thesis" 'bbl.mthesis :=
+ " Ph.D. disseration" 'bbl.phdthesis :=
+ " Translator " 'bbl.translator :=
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% End of Persian Functions %%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+FUNCTION {init.state.consts}
+{ #0 'before.all :=
+ #1 'mid.sentence :=
+ #2 'after.quote :=
+ #3 'after.sentence :=
+ #4 'after.quoted.block :=
+ #5 'after.block :=
+}
+
+STRINGS { s t }
+
+FUNCTION {output.nonnull}
+{ 's :=
+ output.state mid.sentence =
+ { ", " * write$ }
+ { output.state after.quote =
+ { " " * write$ }
+ { output.state after.block =
+ { add.period$ write$
+ newline$
+ "\newblock " write$
+ }
+ { output.state before.all =
+ 'write$
+ { output.state after.quoted.block =
+ { write$
+ newline$
+ "\newblock " write$
+ }
+ { add.period$ " " * write$ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ mid.sentence 'output.state :=
+ }
+ if$
+ s
+}
+
+FUNCTION {output}
+{ duplicate$ empty$
+ 'pop$
+ 'output.nonnull
+ if$
+}
+
+FUNCTION {output.check}
+{ 't :=
+ duplicate$ empty$
+ { pop$ "empty " t * " in " * cite$ * warning$ }
+ 'output.nonnull
+ if$
+}
+
+FUNCTION {output.bibitem}
+{ newline$
+ fa.isPersianLanguage
+ { keywords.fa
+ "\Persian" write$
+ newline$ }
+ { keywords.en
+ "\Latin" write$
+ newline$ }
+ if$
+ "\bibitem{" write$
+ cite$ write$
+ "}" write$
+ newline$
+ ""
+ before.all 'output.state :=
+}
+
+FUNCTION {blank.sep}
+{ after.quote 'output.state :=
+}
+
+FUNCTION {fin.entry}
+{ output.state after.quoted.block =
+ 'skip$
+ 'add.period$
+ if$
+ write$
+ newline$
+}
+
+FUNCTION {new.block}
+{ output.state before.all =
+ 'skip$
+ { output.state after.quote =
+ { after.quoted.block 'output.state := }
+ { after.block 'output.state := }
+ if$
+ }
+ if$
+}
+
+FUNCTION {new.sentence}
+{ output.state after.block =
+ 'skip$
+ { output.state before.all =
+ 'skip$
+ { after.sentence 'output.state := }
+ if$
+ }
+ if$
+}
+
+FUNCTION {not}
+{ { #0 }
+ { #1 }
+ if$
+}
+
+FUNCTION {and}
+{ 'skip$
+ { pop$ #0 }
+ if$
+}
+
+FUNCTION {or}
+{ { pop$ #1 }
+ 'skip$
+ if$
+}
+
+FUNCTION {new.block.checka}
+{ empty$
+ 'skip$
+ 'new.block
+ if$
+}
+
+FUNCTION {new.block.checkb}
+{ empty$
+ swap$ empty$
+ and
+ 'skip$
+ 'new.block
+ if$
+}
+
+FUNCTION {new.sentence.checka}
+{ empty$
+ 'skip$
+ 'new.sentence
+ if$
+}
+
+FUNCTION {field.or.null}
+{ duplicate$ empty$
+ { pop$ "" }
+ 'skip$
+ if$
+}
+
+FUNCTION {emphasize}
+{ duplicate$ empty$
+ { pop$ "" }
+ { "{\em " swap$ * "}" * }
+ if$
+}
+
+INTEGERS { nameptr namesleft numnames }
+
+FUNCTION {format.names}
+{ 's :=
+ #1 'nameptr :=
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+ { %s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't :=
+ fa.isPersianLanguage
+ { s nameptr "{vv~}{ll}{, jj}{, ff}" format.name$ 't :=}
+ { s nameptr "{vv~}{ll}{, jj}{, f.}" format.name$ 't :=}
+ if$
+ nameptr #1 >
+ { namesleft #1 >
+ { ", " * t * }
+ { numnames #2 >
+ { "," * }
+ 'skip$
+ if$
+ t "others" =
+ { " {\em" * bbl.etal * "}" * }
+ { bbl.and * t * }
+ if$
+ }
+ if$
+ }
+ 't
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+}
+
+FUNCTION {format.authors}
+{ author empty$
+ { "" }
+ { author format.names }
+ if$
+}
+
+FUNCTION {format.editors}
+{ editor empty$
+ { "" }
+ { fa.isPersianLanguage
+ {
+ editor num.names$ #1 >
+ {bbl.editors editor format.names * }
+ {bbl.editor editor format.names * }
+ if$
+ }
+ {
+ editor format.names
+ editor num.names$ #1 >
+ { ", " bbl.editors * *}
+ { ", " bbl.editor * *}
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.translators}
+{ translator empty$
+ { "" }
+ { fa.isPersianLanguage
+ {
+ bbl.translator translator format.names *
+ }
+ {
+ translator format.names
+ ", " bbl.translator * *
+ }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.title}
+{ title empty$
+ { "" }
+ { fa.isPersianLanguage
+ { "''" title * ",``" * }
+ { "``" title "t" change.case$ * ",''" * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.title.p}
+{ title empty$
+ { "" }
+ { fa.isPersianLanguage
+ { "''" title * ",``" * }
+ { "``" title "t" change.case$ * ",''" * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {n.dashify}
+{ 't :=
+ ""
+ { t empty$ not }
+ { t #1 #1 substring$ "-" =
+ { t #1 #2 substring$ "--" = not
+ { "--" *
+ t #2 global.max$ substring$ 't :=
+ }
+ { { t #1 #1 substring$ "-" = }
+ { "-" *
+ t #2 global.max$ substring$ 't :=
+ }
+ while$
+ }
+ if$
+ }
+ { t #1 #1 substring$ *
+ t #2 global.max$ substring$ 't :=
+ }
+ if$
+ }
+ while$
+}
+
+FUNCTION {format.date}
+{ year empty$
+ { month empty$
+ { "" }
+ { "there's a month but no year in " cite$ * warning$
+ month
+ }
+ if$
+ }
+ { month empty$
+ 'year
+ { month " " * year * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.btitle}
+{ title emphasize
+}
+
+FUNCTION {tie.or.space.connect}
+{ duplicate$ text.length$ #3 <
+ { "~" }
+ { " " }
+ if$
+ swap$ * *
+}
+
+FUNCTION {either.or.check}
+{ empty$
+ 'pop$
+ { "can't use both " swap$ * " fields in " * cite$ * warning$ }
+ if$
+}
+
+FUNCTION {format.bvolume}
+{ volume empty$
+ { "" }
+ { bbl.volume volume *
+ series empty$
+ 'skip$
+ { bbl.of * series emphasize * }
+ if$
+ "volume and number" number either.or.check
+ }
+ if$
+}
+
+FUNCTION {format.number.series}
+{ volume empty$
+ { number empty$
+ { series field.or.null }
+ { output.state mid.sentence =
+ { bbl.number }
+ { bbl.number "t" change.case$ }
+ if$
+ number tie.or.space.connect
+ series empty$
+ { "there's a number but no series in " cite$ * warning$ }
+ { bbl.in * series * }
+ if$
+ }
+ if$
+ }
+ { "" }
+ if$
+}
+
+FUNCTION {format.edition}
+{ edition empty$
+ { "" }
+ { fa.isPersianLanguage
+ {
+ bbl.edition edition *
+ }
+ {
+ output.state mid.sentence =
+ { edition "l" change.case$ bbl.edition * }
+ { edition "t" change.case$ bbl.edition * }
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+INTEGERS { multiresult }
+
+FUNCTION {multi.page.check}
+{ 't :=
+ #0 'multiresult :=
+ { multiresult not
+ t empty$ not
+ and
+ }
+ { t #1 #1 substring$
+ duplicate$ "-" =
+ swap$ duplicate$ "," =
+ swap$ "+" =
+ or or
+ { #1 'multiresult := }
+ { t #2 global.max$ substring$ 't := }
+ if$
+ }
+ while$
+ multiresult
+}
+
+FUNCTION {format.pages}
+{ pages empty$
+ { "" }
+ { pages multi.page.check
+ { bbl.pages pages n.dashify * }
+ { bbl.page pages * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.volume}
+{ volume empty$
+ { "" }
+ { bbl.volume volume * }%M.Amintoosi "vol.~"
+ if$
+}
+
+FUNCTION {format.number}
+{ number empty$
+ { "" }
+ { bbl.number number * }%M.Amintoosi "no.~"
+ if$
+}
+
+FUNCTION {format.chapter.pages}
+{ chapter empty$
+ 'format.pages
+ { type empty$
+ { bbl.chapter }
+ { type "l" change.case$ }
+ if$
+ chapter tie.or.space.connect
+ pages empty$
+ 'skip$
+ { ", " * format.pages * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.in.ed.booktitle}
+{ booktitle empty$
+ { "" }
+ { bbl.in booktitle emphasize *
+ editor empty$
+ 'skip$
+ { " (" * format.editors * ")" * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.thesis.type}
+{ type empty$
+ 'skip$
+ { pop$
+ output.state after.block =
+ { type "t" change.case$ }
+ { type "l" change.case$ }
+ if$
+ }
+ if$
+}
+
+FUNCTION {empty.misc.check}
+{ author empty$ title empty$ howpublished empty$
+ month empty$ year empty$ note empty$
+ and and and and and
+ { "all relevant fields are empty in " cite$ * warning$ }
+ 'skip$
+ if$
+}
+
+FUNCTION {format.tr.number}
+{ type empty$
+ { bbl.techrep }
+ 'type
+ if$
+ number empty$
+ { "l" change.case$ }
+ { number tie.or.space.connect }
+ if$
+}
+
+FUNCTION {format.addr.pub}
+{ publisher empty$
+ { "" }
+ { address empty$
+ { "" }
+ { address ": " * }
+ if$
+ publisher *
+ }
+ if$
+}
+
+FUNCTION {format.paddress}
+{ address empty$
+ { "" }
+ { "(" address * ")" * }
+ if$
+}
+
+FUNCTION {format.article.crossref}
+{ key empty$
+ { journal empty$
+ { "need key or journal for " cite$ * " to crossref " * crossref *
+ warning$
+ ""
+ }
+ { bbl.in "{\em " * journal * "\/}" * }
+ if$
+ }
+ { bbl.in key * }
+ if$
+ " \cite{" * crossref * "}" *
+}
+
+FUNCTION {format.crossref.editor}
+{ editor #1 "{vv~}{ll}" format.name$
+ editor num.names$ duplicate$
+ #2 >
+ { pop$ " {\em" * bbl.etal * "}" * }
+ { #2 <
+ 'skip$
+ { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
+ { " {\em" bbl.etal * "}" * }
+ { bbl.and * editor #2 "{vv~}{ll}" format.name$ * }
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.book.crossref}
+{ volume empty$
+ { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
+ bbl.in
+ }
+ { bbl.volume volume tie.or.space.connect
+ bbl.of *
+ }
+ if$
+ editor empty$
+ editor field.or.null author field.or.null =
+ or
+ { key empty$
+ { series empty$
+ { "need editor, key, or series for " cite$ * " to crossref " *
+ crossref * warning$
+ "" *
+ }
+ { "{\em " * series * "\/}" * }
+ if$
+ }
+ { key * }
+ if$
+ }
+ { format.crossref.editor * }
+ if$
+ " \cite{" * crossref * "}" *
+}
+
+FUNCTION {format.incoll.inproc.crossref}
+{ editor empty$
+ editor field.or.null author field.or.null =
+ or
+ { key empty$
+ { booktitle empty$
+ { "need editor, key, or booktitle for " cite$ * " to crossref " *
+ crossref * warning$
+ ""
+ }
+ { bbl.in "{\em " * booktitle * "\/}" * }
+ if$
+ }
+ { bbl.in key * }
+ if$
+ }
+ { bbl.in format.crossref.editor * }
+ if$
+ " \cite{" * crossref * "}" *
+}
+
+FUNCTION {article}
+{ output.bibitem
+ format.authors "author" output.check
+ format.title "title" output.check
+ blank.sep
+ crossref missing$
+ { journal emphasize "journal" output.check
+ format.volume output
+ month empty$
+ { format.number output }
+ 'skip$
+ if$
+ format.pages output
+ format.date "year" output.check
+ }
+ { format.article.crossref output.nonnull
+ format.pages output
+ }
+ if$
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {book}
+{ output.bibitem
+ fa.isPersianLanguage
+ {
+ format.authors output
+ new.block
+ format.btitle "title" output.check
+ new.block
+ format.translators output
+ format.editors output
+ }
+ { author empty$
+ { format.editors "author and editor" output.check }
+ { format.authors output.nonnull
+ crossref missing$
+ { "author and editor" editor either.or.check }
+ 'skip$
+ if$
+ }
+ if$
+ new.block
+ format.btitle "title" output.check
+ }
+ if$
+ crossref missing$
+ { format.bvolume output
+ new.block
+ format.number.series output
+ format.addr.pub "publisher" output.check
+ }
+ { new.block
+ format.book.crossref output.nonnull
+ }
+ if$
+ format.edition output
+ format.date "year" output.check
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {booklet}
+{ output.bibitem
+ format.authors output
+ title empty$
+ { "empty title in " cite$ * warning$
+ howpublished new.sentence.checka
+ }
+ { howpublished empty$ not
+ address empty$ month empty$ year empty$ and and
+ or
+ { format.title.p output.nonnull }
+ { format.title output.nonnull }
+ if$
+ blank.sep
+ }
+ if$
+ howpublished output
+ address output
+ format.date output
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {inbook}
+{ output.bibitem
+ author empty$
+ { format.editors "author and editor" output.check }
+ { format.authors output.nonnull
+ crossref missing$
+ { "author and editor" editor either.or.check }
+ 'skip$
+ if$
+ }
+ if$
+ format.btitle "title" output.check
+ crossref missing$
+ { format.bvolume output
+ format.chapter.pages "chapter and pages" output.check
+ new.block
+ format.number.series output
+ format.addr.pub "publisher" output.check
+ }
+ { format.chapter.pages "chapter and pages" output.check
+ new.block
+ format.book.crossref output.nonnull
+ }
+ if$
+ format.edition output
+ format.date "year" output.check
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {incollection}
+{ output.bibitem
+ format.authors "author" output.check
+ format.title "title" output.check
+ blank.sep
+ crossref missing$
+ { format.in.ed.booktitle "booktitle" output.check
+ format.bvolume output
+ format.number.series output
+ format.chapter.pages output
+ format.addr.pub "publisher" output.check
+ format.edition output
+ format.date "year" output.check
+ }
+ { format.incoll.inproc.crossref output.nonnull
+ format.chapter.pages output
+ }
+ if$
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {inproceedings}
+{ output.bibitem
+ format.authors "author" output.check
+ format.title "title" output.check
+ blank.sep
+ crossref missing$
+ { format.in.ed.booktitle "booktitle" output.check
+ format.bvolume output
+ format.number.series output
+ format.paddress output
+ format.pages output
+ organization output
+ publisher output
+ format.date "year" output.check
+ }
+ { format.incoll.inproc.crossref output.nonnull
+ format.pages output
+ }
+ if$
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {conference} { inproceedings }
+
+FUNCTION {manual}
+{ output.bibitem
+ author empty$
+ { organization empty$
+ 'skip$
+ { organization output.nonnull
+ address output
+ }
+ if$
+ }
+ { format.authors output.nonnull }
+ if$
+ format.btitle "title" output.check
+ author empty$
+ { organization empty$
+ { address new.block.checka
+ address output
+ }
+ 'skip$
+ if$
+ }
+ { organization address new.block.checkb
+ organization output
+ address output
+ }
+ if$
+ format.edition output
+ format.date output
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {mastersthesis}
+{ output.bibitem
+ format.authors "author" output.check
+ format.title "title" output.check
+ blank.sep
+ bbl.mthesis format.thesis.type output.nonnull
+ school "school" output.check
+ address output
+ format.date "year" output.check
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {misc}
+{ output.bibitem
+ format.authors output
+ title empty$
+ { howpublished new.sentence.checka }
+ { howpublished empty$ not
+ month empty$ year empty$ and
+ or
+ { format.title.p output.nonnull }
+ { format.title output.nonnull }
+ if$
+ blank.sep
+ }
+ if$
+ howpublished output
+ format.date output
+ new.block
+ note output
+ fin.entry
+ empty.misc.check
+}
+
+FUNCTION {phdthesis}
+{ output.bibitem
+ format.authors "author" output.check
+ format.btitle "title" output.check
+ new.block
+ bbl.phdthesis format.thesis.type output.nonnull
+ school "school" output.check
+ address output
+ format.date "year" output.check
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {proceedings}
+{ output.bibitem
+ editor empty$
+ { organization output }
+ { format.editors output.nonnull }
+ if$
+ format.btitle "title" output.check
+ format.bvolume output
+ format.number.series output
+ format.paddress output
+ editor empty$
+ 'skip$
+ { organization output }
+ if$
+ publisher output
+ format.date "year" output.check
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {techreport}
+{ output.bibitem
+ format.authors "author" output.check
+ format.title "title" output.check
+ blank.sep
+ format.tr.number output.nonnull
+ institution "institution" output.check
+ address output
+ format.date "year" output.check
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {unpublished}
+{ output.bibitem
+ format.authors "author" output.check
+ format.title.p "title" output.check
+ blank.sep
+ note "note" output.check
+ format.date output
+ fin.entry
+}
+
+FUNCTION {default.type} { misc }
+
+MACRO {jan} {"Jan."}
+
+MACRO {feb} {"Feb."}
+
+MACRO {mar} {"Mar."}
+
+MACRO {apr} {"Apr."}
+
+MACRO {may} {"May"}
+
+MACRO {jun} {"June"}
+
+MACRO {jul} {"July"}
+
+MACRO {aug} {"Aug."}
+
+MACRO {sep} {"Sept."}
+
+MACRO {oct} {"Oct."}
+
+MACRO {nov} {"Nov."}
+
+MACRO {dec} {"Dec."}
+
+MACRO {acmcs} {"ACM Computing Surveys"}
+
+MACRO {acta} {"Acta Informatica"}
+
+MACRO {cacm} {"Communications ACM"}
+
+MACRO {ibmjrd} {"IBM J. Research and Development"}
+
+MACRO {ibmsj} {"IBM Systems~J."}
+
+MACRO {ieeese} {"IEEE Trans. Software Engineering"}
+
+MACRO {ieeetc} {"IEEE Trans. Computers"}
+
+MACRO {ieeetcad}
+ {"IEEE Trans. Computer-Aided Design"}
+
+MACRO {ipl} {"Information Processing Letters"}
+
+MACRO {jacm} {"J.~ACM"}
+
+MACRO {jcss} {"J.~Computer and System Sciences"}
+
+MACRO {scp} {"Science of Computer Programming"}
+
+MACRO {sicomp} {"SIAM J. Computing"}
+
+MACRO {tocs} {"ACM Trans. Computer Systems"}
+
+MACRO {tods} {"ACM Trans. Database Systems"}
+
+MACRO {tog} {"ACM Trans. Graphics"}
+
+MACRO {toms} {"ACM Trans. Mathematical Software"}
+
+MACRO {toois} {"ACM Trans. Office Information Systems"}
+
+MACRO {toplas} {"ACM Trans. Programming Languages and Systems"}
+
+MACRO {tcs} {"Theoretical Computer Science"}
+
+READ
+
+STRINGS { longest.label }
+
+INTEGERS { number.label longest.label.width }
+
+FUNCTION {initialize.longest.label}
+{ "" 'longest.label :=
+ #1 'number.label :=
+ #0 'longest.label.width :=
+}
+
+FUNCTION {longest.label.pass}
+{ number.label int.to.str$ 'label :=
+ number.label #1 + 'number.label :=
+ label width$ longest.label.width >
+ { label 'longest.label :=
+ label width$ 'longest.label.width :=
+ }
+ 'skip$
+ if$
+}
+
+EXECUTE {banner.message}
+EXECUTE {initialize.longest.label}
+
+ITERATE {longest.label.pass}
+FUNCTION {begin.bib}
+{
+ "% Generated by plain-fa.bst, version: " bst.file.version * " (" * bst.file.date * "), for XePersian Package" *
+ write$ newline$
+ "% Authors: " bst.file.authors *
+ write$ newline$
+ "\providecommand{\noopsort}[1]{}"
+ write$ newline$
+ preamble$ empty$
+ 'skip$
+ { preamble$ write$ newline$ }
+ if$
+ "\begin{thebibliography}{" longest.label * "}" * write$ newline$
+}
+
+EXECUTE {begin.bib}
+
+EXECUTE {init.state.consts}
+
+ITERATE {call.type$}
+
+FUNCTION {end.bib}
+{ newline$
+ "\end{thebibliography}" write$ newline$
+ "\Persian" write$ newline$
+}
+
+EXECUTE {end.bib}
+EXECUTE{completed.message}
+% \end{macrocode}
+% \iffalse
+%</ieeetr-fa.bst>
+%<*plain-fa.bst>
+% \fi
+% \part{plain-fa.bst}
+% \begin{macrocode}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Bib. style "plain-fa", Persian (farsi) version of plain.bst
+%%
+%% by: Mahmood Amintoosi and Mostafa Vahedi
+%% For XePersian, a Persian Typsetting Package in XeTeX, Developed by:
+%% Vafa Khalighi, Mehdi Omidali and Mostafa Vahedi
+%% 2009/02/09
+%% It may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either this version
+%% of this license or (at your option) any later version.
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Original Copyright
+% BibTeX standard bibliography style `plain'
+ % version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09.
+ % Copyright (C) 1985, all rights reserved.
+ % Copying of this file is authorized only if either
+ % (1) you make absolutely no changes to your copy, including name, or
+ % (2) if you do make changes, you name it something other than
+ % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst.
+ % This restriction helps ensure that all standard styles are identical.
+ % The file btxbst.doc has the documentation for this style.
+
+%History
+% 2009/02/11, Copy and made the necessary changes from unsrt-fa.bst
+% Changing the sortify function so that it does nothing for persian entries
+% 2009/02/12, Chaniging format.names so that prints last name and then first names,
+% also it uses only one character of latin first names and whole persian first names
+
+ENTRY
+ { address
+ author
+ booktitle
+ chapter
+ edition
+ editor
+ howpublished
+ institution
+ journal
+ key
+ language
+ month
+ note
+ number
+ organization
+ pages
+ publisher
+ school
+ series
+ title
+ translator
+ type
+ volume
+ year
+ }
+ {}
+ { label }
+
+INTEGERS { output.state before.all mid.sentence after.sentence after.block }
+STRINGS {bbl.and bbl.etal bbl.editors bbl.editor bbl.edition bbl.volume bbl.of bbl.number
+ bbl.in bbl.pages bbl.page bbl.chapter bbl.series bbl.techrep bbl.mthesis bbl.phdthesis
+ bbl.translator}% bbl.formatnames}
+FUNCTION {is.print.banners.to.terminal} { #1 }
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% FILE VERSION AND BANNER %%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+FUNCTION{bst.file.version} { "0.2" }
+FUNCTION{bst.file.date} { "2009/02/09" }
+FUNCTION{bst.file.website} { "http://developer.berlios.de/projects/xepersian" }
+FUNCTION{bst.file.authors} {"M.Amintoosi and M.Vahedi" }
+
+FUNCTION {banner.message}
+{ is.print.banners.to.terminal
+ { "-- plain-fa.bst version" " " * bst.file.version *
+ " (" * bst.file.date * ") " * %"by " * bst.file.authors *
+ top$
+ "-- This is a BibTeX style for XePersian: " bst.file.website *
+ %top$
+ %"-- See the " quote$ * "xepersian_bibtex_userguide.pdf" * quote$ * " manual for usage information." *
+ top$
+ }
+ { skip$ }
+ if$
+}
+
+FUNCTION {completed.message}
+{ is.print.banners.to.terminal
+ { ""
+ top$
+ "Done."
+ top$
+ }
+ { skip$ }
+ if$
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Persian Functions %%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+FUNCTION {fa.isPersianLanguage}
+{
+ language missing$
+ {#0}
+ {language "l" change.case$ "persian" =}
+ if$
+}
+
+FUNCTION {keywords.fa}
+{
+ " و " 'bbl.and :=
+ " و دیگران" 'bbl.etal :=
+ " ویراستاران " 'bbl.editors :=
+ " ویراسته‌ی " 'bbl.editor :=
+ " ویرایش " 'bbl.edition :=
+ " جلد " 'bbl.volume :=
+ " از " 'bbl.of :=
+ " شماره " 'bbl.number :=
+ " در " 'bbl.in :=
+ " صفحات " 'bbl.pages :=
+ " ص." 'bbl.page :=
+ " فصل " 'bbl.chapter :=
+ " سری " 'bbl.series :=
+ " گزارش طرح تحقیقی" 'bbl.techrep :=
+ " پایان‌نامه کارشناسی‌ارشد" 'bbl.mthesis :=
+ " پایان‌نامه دکترا" 'bbl.phdthesis :=
+ " ترجمه‌ی " 'bbl.translator :=
+}
+
+FUNCTION {keywords.en}
+{
+ " and " 'bbl.and :=
+ " et~al." 'bbl.etal :=
+ " Eds." 'bbl.editors :=
+ " Ed." 'bbl.editor :=
+ " Ed." 'bbl.edition :=
+ " Vol." 'bbl.volume :=
+ " of " 'bbl.of :=
+ " No." 'bbl.number :=
+ " In " 'bbl.in :=
+ " pp." 'bbl.pages :=
+ " p." 'bbl.page :=
+ " Ch." 'bbl.chapter :=
+ " Ser." 'bbl.series :=
+ " Tech. Rep." 'bbl.techrep :=
+ " Master's thesis" 'bbl.mthesis :=
+ " Ph.D. disseration" 'bbl.phdthesis :=
+ " Translator " 'bbl.translator :=
+ %"{vv~}{ll}{, jj}{, f.}" 'bbl.formatnames :=
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% End of Persian Functions %%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+FUNCTION {init.state.consts}
+{ #0 'before.all :=
+ #1 'mid.sentence :=
+ #2 'after.sentence :=
+ #3 'after.block :=
+}
+
+STRINGS { s t }
+
+FUNCTION {output.nonnull}
+{ 's :=
+ output.state mid.sentence =
+ { ", " * write$ }
+ { output.state after.block =
+ { add.period$ write$
+ newline$
+ "\newblock " write$
+ }
+ { output.state before.all =
+ 'write$
+ { add.period$ " " * write$ }
+ if$
+ }
+ if$
+ mid.sentence 'output.state :=
+ }
+ if$
+ s
+}
+
+FUNCTION {output}
+{ duplicate$ empty$
+ 'pop$
+ 'output.nonnull
+ if$
+}
+
+FUNCTION {output.check}
+{ 't :=
+ duplicate$ empty$
+ { pop$ "empty " t * " in " * cite$ * warning$ }
+ 'output.nonnull
+ if$
+}
+
+FUNCTION {output.bibitem}
+{
+ newline$
+ fa.isPersianLanguage
+ { keywords.fa
+ "\Persian" write$
+ newline$ }
+ { keywords.en
+ "\Latin" write$
+ newline$ }
+ if$
+ "\bibitem{" write$
+ cite$ write$
+ "}" write$
+ newline$
+ ""
+ before.all 'output.state :=
+}
+
+FUNCTION {fin.entry}
+{ add.period$
+ write$
+ newline$
+}
+
+FUNCTION {new.block}
+{ output.state before.all =
+ 'skip$
+ { after.block 'output.state := }
+ if$
+}
+
+FUNCTION {new.sentence}
+{ output.state after.block =
+ 'skip$
+ { output.state before.all =
+ 'skip$
+ { after.sentence 'output.state := }
+ if$
+ }
+ if$
+}
+
+FUNCTION {not}
+{ { #0 }
+ { #1 }
+ if$
+}
+
+FUNCTION {and}
+{ 'skip$
+ { pop$ #0 }
+ if$
+}
+
+FUNCTION {or}
+{ { pop$ #1 }
+ 'skip$
+ if$
+}
+
+FUNCTION {new.block.checka}
+{ empty$
+ 'skip$
+ 'new.block
+ if$
+}
+
+FUNCTION {new.block.checkb}
+{ empty$
+ swap$ empty$
+ and
+ 'skip$
+ 'new.block
+ if$
+}
+
+FUNCTION {new.sentence.checka}
+{ empty$
+ 'skip$
+ 'new.sentence
+ if$
+}
+
+FUNCTION {new.sentence.checkb}
+{ empty$
+ swap$ empty$
+ and
+ 'skip$
+ 'new.sentence
+ if$
+}
+
+FUNCTION {field.or.null}
+{ duplicate$ empty$
+ { pop$ "" }
+ 'skip$
+ if$
+}
+
+FUNCTION {emphasize}
+{ duplicate$ empty$
+ { pop$ "" }
+ { "{\em " swap$ * "}" * }
+ if$
+}
+
+INTEGERS { nameptr namesleft numnames }
+
+FUNCTION {format.names}
+{ 's :=
+ #1 'nameptr :=
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+ {
+ s nameptr "{vv~}{ll}{, jj}{, ff}" format.name$ 't := %{ff~}{vv~}{ll}{, jj}
+ %fa.isPersianLanguage
+ % {s nameptr "{vv~}{ll}{, jj}{, ff}" format.name$ 't := %{ff~}{vv~}{ll}{, jj}
+ % }
+ % {s nameptr "{vv~}{ll}{, jj}{, f.}" format.name$ 't :=
+ %t "t" change.case$ 't := %I wrote it to lower the letters of latin last names, but it also affected the first name
+ %}
+ %if$
+ nameptr #1 >
+ { namesleft #1 >
+ { ", " * t * }
+ { numnames #2 >
+ { "," * }
+ 'skip$
+ if$
+ t "others" =
+ { bbl.etal * }
+ { bbl.and * t * }
+ if$
+ }
+ if$
+ }
+ 't
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+}
+
+FUNCTION {format.authors}
+{ author empty$
+ { "" }
+ { author format.names }
+ if$
+}
+
+FUNCTION {format.editors}
+{ editor empty$
+ { "" }
+ { fa.isPersianLanguage
+ {
+ editor num.names$ #1 >
+ {bbl.editors editor format.names * }
+ {bbl.editor editor format.names * }
+ if$
+ }
+ {
+ editor format.names
+ editor num.names$ #1 >
+ { ", " bbl.editors * *}
+ { ", " bbl.editor * *}
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.translators}
+{ translator empty$
+ { "" }
+ { fa.isPersianLanguage
+ {
+ bbl.translator translator format.names *
+ }
+ {
+ translator format.names
+ ", " bbl.translator * *
+ }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.title}
+{ title empty$
+ { "" }
+ { title "t" change.case$ }
+ if$
+}
+
+FUNCTION {n.dashify}
+{ 't :=
+ ""
+ { t empty$ not }
+ { t #1 #1 substring$ "-" =
+ { t #1 #2 substring$ "--" = not
+ { "--" *
+ t #2 global.max$ substring$ 't :=
+ }
+ { { t #1 #1 substring$ "-" = }
+ { "-" *
+ t #2 global.max$ substring$ 't :=
+ }
+ while$
+ }
+ if$
+ }
+ { t #1 #1 substring$ *
+ t #2 global.max$ substring$ 't :=
+ }
+ if$
+ }
+ while$
+}
+
+FUNCTION {format.date}
+{ year empty$
+ { month empty$
+ { "" }
+ { "there's a month but no year in " cite$ * warning$
+ month
+ }
+ if$
+ }
+ { month empty$
+ 'year
+ { month " " * year * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.btitle}
+{ title emphasize
+}
+
+FUNCTION {tie.or.space.connect}
+{ duplicate$ text.length$ #3 <
+ { "~" }
+ { " " }
+ if$
+ swap$ * *
+}
+
+FUNCTION {either.or.check}
+{ empty$
+ 'pop$
+ { "can't use both " swap$ * " fields in " * cite$ * warning$ }
+ if$
+}
+
+FUNCTION {format.bvolume}
+{ volume empty$
+ { "" }
+ { bbl.volume volume tie.or.space.connect
+ series empty$
+ 'skip$
+ { bbl.of * series emphasize * }
+ if$
+ "volume and number" number either.or.check
+ }
+ if$
+}
+
+FUNCTION {format.number.series}
+{ volume empty$
+ { number empty$
+ { series field.or.null }
+ { output.state mid.sentence =
+ { bbl.number }
+ { bbl.number "t" change.case$ }
+ if$
+ number tie.or.space.connect
+ series empty$
+ { "there's a number but no series in " cite$ * warning$ }
+ { bbl.in * series * }
+ if$
+ }
+ if$
+ }
+ { "" }
+ if$
+}
+
+FUNCTION {format.edition}
+{ edition empty$
+ { "" }
+ { fa.isPersianLanguage
+ {
+ bbl.edition edition *
+ }
+ {
+ output.state mid.sentence =
+ { edition "l" change.case$ bbl.edition * }
+ { edition "t" change.case$ bbl.edition * }
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+INTEGERS { multiresult }
+
+FUNCTION {multi.page.check}
+{ 't :=
+ #0 'multiresult :=
+ { multiresult not
+ t empty$ not
+ and
+ }
+ { t #1 #1 substring$
+ duplicate$ "-" =
+ swap$ duplicate$ "," =
+ swap$ "+" =
+ or or
+ { #1 'multiresult := }
+ { t #2 global.max$ substring$ 't := }
+ if$
+ }
+ while$
+ multiresult
+}
+
+FUNCTION {format.pages}
+{ pages empty$
+ { "" }
+ { pages multi.page.check
+ { bbl.pages pages n.dashify tie.or.space.connect }
+ { bbl.page pages tie.or.space.connect }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.vol.num.pages}
+{ volume field.or.null
+ number empty$
+ 'skip$
+ { "(" number * ")" * *
+ volume empty$
+ { "there's a number but no volume in " cite$ * warning$ }
+ 'skip$
+ if$
+ }
+ if$
+ pages empty$
+ 'skip$
+ { duplicate$ empty$
+ { pop$ format.pages }
+ { ":" * pages n.dashify * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.chapter.pages}
+{ chapter empty$
+ 'format.pages
+ { type empty$
+ { bbl.chapter }
+ { type "l" change.case$ }
+ if$
+ chapter tie.or.space.connect
+ pages empty$
+ 'skip$
+ { ", " * format.pages * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.in.ed.booktitle}
+{
+ booktitle empty$
+ { "" }
+ { editor empty$
+ { bbl.in booktitle emphasize * }
+ { bbl.in format.editors * ", " * booktitle emphasize * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {empty.misc.check}
+{ author empty$ title empty$ howpublished empty$
+ month empty$ year empty$ note empty$
+ and and and and and
+ key empty$ not and
+ { "all relevant fields are empty in " cite$ * warning$ }
+ 'skip$
+ if$
+}
+
+FUNCTION {format.thesis.type}
+{ type empty$
+ 'skip$
+ { pop$
+ type "t" change.case$
+ }
+ if$
+}
+
+FUNCTION {format.tr.number}
+{ type empty$
+ { bbl.techrep }
+ 'type
+ if$
+ number empty$
+ { "t" change.case$ }
+ { number tie.or.space.connect }
+ if$
+}
+
+FUNCTION {format.article.crossref}
+{ key empty$
+ { journal empty$
+ { "need key or journal for " cite$ * " to crossref " * crossref *
+ warning$
+ ""
+ }
+ { bbl.in "{\em " * journal * "\/}" * }
+ if$
+ }
+ { bbl.in key * }
+ if$
+ " \cite{" * crossref * "}" *
+}
+
+FUNCTION {format.crossref.editor}
+{ editor #1 "{vv~}{ll}" format.name$
+ editor num.names$ duplicate$ #2 >
+ { pop$ bbl.etal * }
+ { #2 < 'skip$
+ { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =%"{ff }{vv }{ll}{ jj}"
+ { bbl.etal * }
+ { bbl.and * editor #2 "{vv~}{ll}" format.name$ * }
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.book.crossref}
+{ volume empty$
+ { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
+ bbl.in
+ }
+ { bbl.volume volume tie.or.space.connect
+ bbl.of *
+ }
+ if$
+ editor empty$
+ editor field.or.null author field.or.null =
+ or
+ { key empty$
+ { series empty$
+ { "need editor, key, or series for " cite$ * " to crossref " *
+ crossref * warning$
+ "" *
+ }
+ { "{\em " * series * "\/}" * }
+ if$
+ }
+ { key * }
+ if$
+ }
+ { format.crossref.editor * }
+ if$
+ " \cite{" * crossref * "}" *
+}
+
+FUNCTION {format.incoll.inproc.crossref}
+{ editor empty$
+ editor field.or.null author field.or.null =
+ or
+ { key empty$
+ { booktitle empty$
+ { "need editor, key, or booktitle for " cite$ * " to crossref " *
+ crossref * warning$
+ ""
+ }
+ { bbl.in " {\em " * booktitle * "\/}" * }
+ if$
+ }
+ { bbl.in key * }
+ if$
+ }
+ { bbl.in format.crossref.editor * }
+ if$
+ " \cite{" * crossref * "}" *
+}
+
+FUNCTION {article}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ crossref missing$
+ { journal emphasize "journal" output.check
+ format.vol.num.pages output
+ format.date "year" output.check
+ }
+ { format.article.crossref output.nonnull
+ format.pages output
+ }
+ if$
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {book}
+{ output.bibitem
+ fa.isPersianLanguage
+ {
+ format.authors output
+ new.block
+ format.btitle "title" output.check
+ new.block
+ format.translators output
+ format.editors output
+ }
+ { author empty$
+ { format.editors "author and editor" output.check }
+ { format.authors output.nonnull
+ crossref missing$
+ { "author and editor" editor either.or.check }
+ 'skip$
+ if$
+ }
+ if$
+ new.block
+ format.btitle "title" output.check
+ }
+ if$
+ crossref missing$
+ { format.bvolume output
+ new.block
+ format.number.series output
+ new.sentence
+ publisher "publisher" output.check
+ address output
+ }
+ { new.block
+ format.book.crossref output.nonnull
+ }
+ if$
+ format.edition output
+ format.date "year" output.check
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {booklet}
+{ output.bibitem
+ format.authors output
+ new.block
+ format.title "title" output.check
+ howpublished address new.block.checkb
+ howpublished output
+ address output
+ format.date output
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {inbook}
+{ output.bibitem
+ author empty$
+ { format.editors "author and editor" output.check }
+ { format.authors output.nonnull
+ crossref missing$
+ { "author and editor" editor either.or.check }
+ 'skip$
+ if$
+ }
+ if$
+ new.block
+ format.btitle "title" output.check
+ crossref missing$
+ { format.bvolume output
+ format.chapter.pages "chapter and pages" output.check
+ new.block
+ format.number.series output
+ new.sentence
+ publisher "publisher" output.check
+ address output
+ }
+ { format.chapter.pages "chapter and pages" output.check
+ new.block
+ format.book.crossref output.nonnull
+ }
+ if$
+ format.edition output
+ format.date "year" output.check
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {incollection}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ crossref missing$
+ { format.in.ed.booktitle "booktitle" output.check
+ format.bvolume output
+ format.number.series output
+ format.chapter.pages output
+ new.sentence
+ publisher "publisher" output.check
+ address output
+ format.edition output
+ format.date "year" output.check
+ }
+ { format.incoll.inproc.crossref output.nonnull
+ format.chapter.pages output
+ }
+ if$
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {inproceedings}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ crossref missing$
+ { format.in.ed.booktitle "booktitle" output.check
+ format.bvolume output
+ format.number.series output
+ format.pages output
+ address empty$
+ { organization publisher new.sentence.checkb
+ organization output
+ publisher output
+ format.date "year" output.check
+ }
+ { address output.nonnull
+ format.date "year" output.check
+ new.sentence
+ organization output
+ publisher output
+ }
+ if$
+ }
+ { format.incoll.inproc.crossref output.nonnull
+ format.pages output
+ }
+ if$
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {conference} { inproceedings }
+
+FUNCTION {manual}
+{ output.bibitem
+ author empty$
+ { organization empty$
+ 'skip$
+ { organization output.nonnull
+ address output
+ }
+ if$
+ }
+ { format.authors output.nonnull }
+ if$
+ new.block
+ format.btitle "title" output.check
+ author empty$
+ { organization empty$
+ { address new.block.checka
+ address output
+ }
+ 'skip$
+ if$
+ }
+ { organization address new.block.checkb
+ organization output
+ address output
+ }
+ if$
+ format.edition output
+ format.date output
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {mastersthesis}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ bbl.mthesis
+ format.thesis.type output.nonnull
+ school "school" output.check
+ address output
+ format.date "year" output.check
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {misc}
+{ output.bibitem
+ format.authors output
+ title howpublished new.block.checkb
+ format.title output
+ howpublished new.block.checka
+ howpublished output
+ format.date output
+ new.block
+ note output
+ fin.entry
+ empty.misc.check
+}
+
+FUNCTION {phdthesis}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.btitle "title" output.check
+ new.block
+ bbl.phdthesis
+ format.thesis.type output.nonnull
+ school "school" output.check
+ address output
+ format.date "year" output.check
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {proceedings}
+{ output.bibitem
+ editor empty$
+ { organization output }
+ { format.editors output.nonnull }
+ if$
+ new.block
+ format.btitle "title" output.check
+ format.bvolume output
+ format.number.series output
+ address empty$
+ { editor empty$
+ { publisher new.sentence.checka }
+ { organization publisher new.sentence.checkb
+ organization output
+ }
+ if$
+ publisher output
+ format.date "year" output.check
+ }
+ { address output.nonnull
+ format.date "year" output.check
+ new.sentence
+ editor empty$
+ 'skip$
+ { organization output }
+ if$
+ publisher output
+ }
+ if$
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {techreport}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ format.tr.number output.nonnull
+ institution "institution" output.check
+ address output
+ format.date "year" output.check
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {unpublished}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ note "note" output.check
+ format.date output
+ fin.entry
+}
+
+FUNCTION {default.type} { misc }
+
+MACRO {jan} {"January"}
+
+MACRO {feb} {"February"}
+
+MACRO {mar} {"March"}
+
+MACRO {apr} {"April"}
+
+MACRO {may} {"May"}
+
+MACRO {jun} {"June"}
+
+MACRO {jul} {"July"}
+
+MACRO {aug} {"August"}
+
+MACRO {sep} {"September"}
+
+MACRO {oct} {"October"}
+
+MACRO {nov} {"November"}
+
+MACRO {dec} {"December"}
+
+MACRO {acmcs} {"ACM Computing Surveys"}
+
+MACRO {acta} {"Acta Informatica"}
+
+MACRO {cacm} {"Communications of the ACM"}
+
+MACRO {ibmjrd} {"IBM Journal of Research and Development"}
+
+MACRO {ibmsj} {"IBM Systems Journal"}
+
+MACRO {ieeese} {"IEEE Transactions on Software Engineering"}
+
+MACRO {ieeetc} {"IEEE Transactions on Computers"}
+
+MACRO {ieeetcad}
+ {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"}
+
+MACRO {ipl} {"Information Processing Letters"}
+
+MACRO {jacm} {"Journal of the ACM"}
+
+MACRO {jcss} {"Journal of Computer and System Sciences"}
+
+MACRO {scp} {"Science of Computer Programming"}
+
+MACRO {sicomp} {"SIAM Journal on Computing"}
+
+MACRO {tocs} {"ACM Transactions on Computer Systems"}
+
+MACRO {tods} {"ACM Transactions on Database Systems"}
+
+MACRO {tog} {"ACM Transactions on Graphics"}
+
+MACRO {toms} {"ACM Transactions on Mathematical Software"}
+
+MACRO {toois} {"ACM Transactions on Office Information Systems"}
+
+MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"}
+
+MACRO {tcs} {"Theoretical Computer Science"}
+
+READ
+
+FUNCTION {sortify}
+{
+ fa.isPersianLanguage
+ { "l" change.case$}
+ {purify$ "l" change.case$}
+ if$
+ %duplicate$ write$
+}
+
+INTEGERS { len }
+
+FUNCTION {chop.word}
+{ 's :=
+ 'len :=
+ s #1 len substring$ =
+ { s len #1 + global.max$ substring$ }
+ 's
+ if$
+}
+
+FUNCTION {sort.format.names}
+{ 's :=
+ #1 'nameptr :=
+ ""
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+ { nameptr #1 >
+ { " " * }
+ 'skip$
+ if$
+ s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't :=
+ nameptr numnames = t "others" = and
+ { bbl.etal * }
+ %{ t write$ t sortify * t write$ }
+ { t sortify * }
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+}
+
+FUNCTION {sort.format.title}
+{ 't :=
+ "A " #2
+ "An " #3
+ "The " #4 t chop.word
+ chop.word
+ chop.word
+ sortify
+ #1 global.max$ substring$
+}
+
+FUNCTION {author.sort}
+{ author empty$
+ { key empty$
+ { "to sort, need author or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { author sort.format.names }
+ if$
+}
+
+FUNCTION {author.editor.sort}
+{ author empty$
+ { editor empty$
+ { key empty$
+ { "to sort, need author, editor, or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { editor sort.format.names }
+ if$
+ }
+ { author sort.format.names }
+ if$
+}
+
+FUNCTION {author.organization.sort}
+{ author empty$
+ { organization empty$
+ { key empty$
+ { "to sort, need author, organization, or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { "The " #4 organization chop.word sortify }
+ if$
+ }
+ { author sort.format.names }
+ if$
+}
+
+FUNCTION {editor.organization.sort}
+{ editor empty$
+ { organization empty$
+ { key empty$
+ { "to sort, need editor, organization, or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { "The " #4 organization chop.word sortify }
+ if$
+ }
+ { editor sort.format.names }
+ if$
+}
+
+FUNCTION {presort}
+{ type$ "book" =
+ type$ "inbook" =
+ or
+ 'author.editor.sort
+ { type$ "proceedings" =
+ 'editor.organization.sort
+ { type$ "manual" =
+ 'author.organization.sort
+ 'author.sort
+ if$
+ }
+ if$
+ }
+ if$
+ " "
+ *
+ year field.or.null sortify
+ *
+ " "
+ *
+ title field.or.null
+ sort.format.title
+ *
+ #1 entry.max$ substring$
+ 'sort.key$ :=
+}
+
+ITERATE {presort}
+
+SORT
+
+STRINGS { longest.label }
+
+INTEGERS { number.label longest.label.width }
+
+FUNCTION {initialize.longest.label}
+{ "" 'longest.label :=
+ #1 'number.label :=
+ #0 'longest.label.width :=
+}
+
+FUNCTION {longest.label.pass}
+{ number.label int.to.str$ 'label :=
+ number.label #1 + 'number.label :=
+ label width$ longest.label.width >
+ { label 'longest.label :=
+ label width$ 'longest.label.width :=
+ }
+ 'skip$
+ if$
+}
+
+EXECUTE {banner.message}
+EXECUTE {initialize.longest.label}
+
+ITERATE {longest.label.pass}
+
+FUNCTION {begin.bib}
+{
+ "% Generated by plain-fa.bst, version: " bst.file.version * " (" * bst.file.date * "), for XePersian Package" *
+ write$ newline$
+ "% Authors: " bst.file.authors *
+ write$ newline$
+ "\providecommand{\noopsort}[1]{}"
+ write$ newline$
+ preamble$ empty$
+ 'skip$
+ { preamble$ write$ newline$ }
+ if$
+ "\begin{thebibliography}{" longest.label * "}" * write$ newline$
+}
+
+EXECUTE {begin.bib}
+
+EXECUTE {init.state.consts}
+
+ITERATE {call.type$}
+
+FUNCTION {end.bib}
+{ newline$
+ "\end{thebibliography}" write$ newline$
+ "\Persian" write$ newline$
+}
+
+EXECUTE {end.bib}
+EXECUTE{completed.message}
+% \end{macrocode}
+% \iffalse
+%</plain-fa.bst>
+%<*unsrt-fa.bst>
+% \fi
+% \part{unsrt-fa.bst}
+% \begin{macrocode}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Bib. style "usrt-fa", Persian (farsi) version of unsrt.bst
+%%
+%% by: Mahmood Amintoosi and Mostafa Vahedi
+%% For XePersian, a Persian Typsetting Package in XeTeX, Developed by:
+%% Vafa Khalighi, Mehdi Omidali and Mostafa Vahedi
+%% 2009/02/09
+%% It may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either this version
+%% of this license or (at your option) any later version.
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Original Copyright
+% BibTeX standard bibliography style `unsrt'
+ % version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09.
+ % Copyright (C) 1985, all rights reserved.
+ % Copying of this file is authorized only if either
+ % (1) you make absolutely no changes to your copy, including name, or
+ % (2) if you do make changes, you name it something other than
+ % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst.
+ % This restriction helps ensure that all standard styles are identical.
+ % The file btxbst.doc has the documentation for this style.
+
+%%%%%%%%%%% History:
+% 2009/02/07: v.1, First Release
+% 2009/02/08: v.2, Some bugs fixed
+% 2009/02/09: v.21, I have to check the persian language in format.edition, because in Persian, "edition" lies before the edition number.
+% 2009/02/09: v.22, I added a field Translator for translated books
+
+
+ENTRY
+ { address
+ author
+ booktitle
+ chapter
+ edition
+ editor
+ howpublished
+ institution
+ journal
+ key
+ language
+ month
+ note
+ number
+ organization
+ pages
+ publisher
+ school
+ series
+ title
+ translator
+ type
+ volume
+ year
+ }
+ {}
+ { label }
+
+INTEGERS { output.state before.all mid.sentence after.sentence after.block }
+STRINGS {bbl.and bbl.etal bbl.editors bbl.editor bbl.edition bbl.volume bbl.of bbl.number
+ bbl.in bbl.pages bbl.page bbl.chapter bbl.series bbl.techrep bbl.mthesis bbl.phdthesis
+ bbl.translator }
+FUNCTION {is.print.banners.to.terminal} { #1 }
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% FILE VERSION AND BANNER %%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+FUNCTION{bst.file.version} { "0.22" }
+FUNCTION{bst.file.date} { "2009/02/09" }
+FUNCTION{bst.file.website} { "http://developer.berlios.de/projects/xepersian" }
+FUNCTION{bst.file.authors} {"M.Amintoosi and M.Vahedi" }
+
+FUNCTION {banner.message}
+{ is.print.banners.to.terminal
+ { "-- unsrt-fa.bst version" " " * bst.file.version *
+ " (" * bst.file.date * ") " * %"by " * bst.file.authors *
+ top$
+ "-- This is a BibTeX style for XePersian: " bst.file.website *
+ %top$
+ %"-- See the " quote$ * "xepersian_bibtex_userguide.pdf" * quote$ * " manual for usage information." *
+ top$
+ }
+ { skip$ }
+ if$
+}
+
+FUNCTION {completed.message}
+{ is.print.banners.to.terminal
+ { ""
+ top$
+ "Done."
+ top$
+ }
+ { skip$ }
+ if$
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Persian Functions %%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+FUNCTION {fa.isPersianLanguage}
+{
+ language missing$
+ {#0}
+ {language "l" change.case$ "persian" =}
+ if$
+}
+
+FUNCTION {keywords.fa}
+{
+ " و " 'bbl.and :=
+ " و دیگران" 'bbl.etal :=
+ " ویراستاران " 'bbl.editors :=
+ " ویراسته‌ی " 'bbl.editor :=
+ " ویرایش " 'bbl.edition :=
+ " جلد " 'bbl.volume :=
+ " از " 'bbl.of :=
+ " شماره " 'bbl.number :=
+ " در " 'bbl.in :=
+ " صفحات " 'bbl.pages :=
+ " ص." 'bbl.page :=
+ " فصل " 'bbl.chapter :=
+ " سری " 'bbl.series :=
+ " گزارش طرح تحقیقی" 'bbl.techrep :=
+ " پایان‌نامه کارشناسی‌ارشد" 'bbl.mthesis :=
+ " پایان‌نامه دکترا" 'bbl.phdthesis :=
+ " ترجمه‌ی " 'bbl.translator :=
+}
+
+FUNCTION {keywords.en}
+{
+ " and " 'bbl.and :=
+ " et~al." 'bbl.etal :=
+ " eds." 'bbl.editors :=
+ " ed." 'bbl.editor :=
+ " ed." 'bbl.edition :=
+ " Vol." 'bbl.volume :=
+ " of " 'bbl.of :=
+ " No." 'bbl.number :=
+ " In " 'bbl.in :=
+ " pp." 'bbl.pages :=
+ " p." 'bbl.page :=
+ " Ch." 'bbl.chapter :=
+ " Ser." 'bbl.series :=
+ " Tech. Rep." 'bbl.techrep :=
+ " Master's thesis" 'bbl.mthesis :=
+ " Ph.D. disseration" 'bbl.phdthesis :=
+ " Translator " 'bbl.translator :=
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% End of Persian Functions %%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+FUNCTION {init.state.consts}
+{ #0 'before.all :=
+ #1 'mid.sentence :=
+ #2 'after.sentence :=
+ #3 'after.block :=
+}
+
+STRINGS { s t }
+
+FUNCTION {output.nonnull}
+{ 's :=
+ output.state mid.sentence =
+ { ", " * write$ }
+ { output.state after.block =
+ { add.period$ write$
+ newline$
+ "\newblock " write$
+ }
+ { output.state before.all =
+ 'write$
+ { add.period$ " " * write$ }
+ if$
+ }
+ if$
+ mid.sentence 'output.state :=
+ }
+ if$
+ s
+}
+
+FUNCTION {output}
+{ duplicate$ empty$
+ 'pop$
+ 'output.nonnull
+ if$
+}
+
+FUNCTION {output.check}
+{ 't :=
+ duplicate$ empty$
+ { pop$ "empty " t * " in " * cite$ * warning$ }
+ 'output.nonnull
+ if$
+}
+
+FUNCTION {output.bibitem}
+{ newline$
+ fa.isPersianLanguage
+ { keywords.fa
+ "\Persian" write$
+ newline$ }
+ { keywords.en
+ "\Latin" write$
+ newline$ }
+ if$
+ "\bibitem{" write$
+ cite$ write$
+ "}" write$
+ newline$
+ ""
+ before.all 'output.state :=
+}
+
+FUNCTION {fin.entry}
+{ add.period$
+ write$
+ newline$
+}
+
+FUNCTION {new.block}
+{ output.state before.all =
+ 'skip$
+ { after.block 'output.state := }
+ if$
+}
+
+FUNCTION {new.sentence}
+{ output.state after.block =
+ 'skip$
+ { output.state before.all =
+ 'skip$
+ { after.sentence 'output.state := }
+ if$
+ }
+ if$
+}
+
+FUNCTION {not}
+{ { #0 }
+ { #1 }
+ if$
+}
+
+FUNCTION {and}
+{ 'skip$
+ { pop$ #0 }
+ if$
+}
+
+FUNCTION {or}
+{ { pop$ #1 }
+ 'skip$
+ if$
+}
+
+FUNCTION {new.block.checka}
+{ empty$
+ 'skip$
+ 'new.block
+ if$
+}
+
+FUNCTION {new.block.checkb}
+{ empty$
+ swap$ empty$
+ and
+ 'skip$
+ 'new.block
+ if$
+}
+
+FUNCTION {new.sentence.checka}
+{ empty$
+ 'skip$
+ 'new.sentence
+ if$
+}
+
+FUNCTION {new.sentence.checkb}
+{ empty$
+ swap$ empty$
+ and
+ 'skip$
+ 'new.sentence
+ if$
+}
+
+FUNCTION {field.or.null}
+{ duplicate$ empty$
+ { pop$ "" }
+ 'skip$
+ if$
+}
+
+FUNCTION {emphasize}
+{ duplicate$ empty$
+ { pop$ "" }
+ { "{\em " swap$ * "}" * }
+ if$
+}
+
+INTEGERS { nameptr namesleft numnames }
+
+FUNCTION {format.names}
+{ 's :=
+ #1 'nameptr :=
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+ { s nameptr "{vv~}{ll}{, jj}{, ff}" format.name$ 't := %{ff}{vv~}{ll}{, jj}
+ nameptr #1 >
+ { namesleft #1 >
+ { ", " * t * }
+ { numnames #2 >
+ { "," * }
+ 'skip$
+ if$
+ t "others" =
+ { bbl.etal * }
+ { bbl.and * t * }
+ if$
+ }
+ if$
+ }
+ 't
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+}
+
+FUNCTION {format.authors}
+{ author empty$
+ { "" }
+ { author format.names }
+ if$
+}
+
+FUNCTION {format.editors}
+{ editor empty$
+ { "" }
+ { fa.isPersianLanguage
+ {
+ editor num.names$ #1 >
+ {bbl.editors editor format.names * }
+ {bbl.editor editor format.names * }
+ if$
+ }
+ {
+ editor format.names
+ editor num.names$ #1 >
+ { ", " bbl.editors * *}
+ { ", " bbl.editor * *}
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.translators}
+{ translator empty$
+ { "" }
+ { fa.isPersianLanguage
+ {
+ bbl.translator translator format.names *
+ }
+ {
+ translator format.names
+ ", " bbl.translator * *
+ }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.title}
+{ title empty$
+ { "" }
+ { title "t" change.case$ }
+ if$
+}
+
+FUNCTION {n.dashify}
+{ 't :=
+ ""
+ { t empty$ not }
+ { t #1 #1 substring$ "-" =
+ { t #1 #2 substring$ "--" = not
+ { "--" *
+ t #2 global.max$ substring$ 't :=
+ }
+ { { t #1 #1 substring$ "-" = }
+ { "-" *
+ t #2 global.max$ substring$ 't :=
+ }
+ while$
+ }
+ if$
+ }
+ { t #1 #1 substring$ *
+ t #2 global.max$ substring$ 't :=
+ }
+ if$
+ }
+ while$
+}
+
+FUNCTION {format.date}
+{ year empty$
+ { month empty$
+ { "" }
+ { "there's a month but no year in " cite$ * warning$
+ month
+ }
+ if$
+ }
+ { month empty$
+ 'year
+ { month " " * year * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.btitle}
+{ title emphasize
+}
+
+FUNCTION {tie.or.space.connect}
+{ duplicate$ text.length$ #3 <
+ { "~" }
+ { " " }
+ if$
+ swap$ * *
+}
+
+FUNCTION {either.or.check}
+{ empty$
+ 'pop$
+ { "can't use both " swap$ * " fields in " * cite$ * warning$ }
+ if$
+}
+
+FUNCTION {format.bvolume}
+{ volume empty$
+ { "" }
+ { bbl.volume volume tie.or.space.connect
+ series empty$
+ 'skip$
+ { bbl.of * series emphasize * }
+ if$
+ "volume and number" number either.or.check
+ }
+ if$
+}
+
+FUNCTION {format.number.series}
+{ volume empty$
+ { number empty$
+ { series field.or.null }
+ { output.state mid.sentence =
+ { bbl.number }
+ { bbl.number "t" change.case$ }
+ if$
+ number tie.or.space.connect
+ series empty$
+ { "there's a number but no series in " cite$ * warning$ }
+ { bbl.in * series * }
+ if$
+ }
+ if$
+ }
+ { "" }
+ if$
+}
+
+FUNCTION {format.edition}
+{ edition empty$
+ { "" }
+ { fa.isPersianLanguage
+ {
+ bbl.edition edition *
+ }
+ {
+ output.state mid.sentence =
+ { edition "l" change.case$ bbl.edition * }
+ { edition "t" change.case$ bbl.edition * }
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+INTEGERS { multiresult }
+
+FUNCTION {multi.page.check}
+{ 't :=
+ #0 'multiresult :=
+ { multiresult not
+ t empty$ not
+ and
+ }
+ { t #1 #1 substring$
+ duplicate$ "-" =
+ swap$ duplicate$ "," =
+ swap$ "+" =
+ or or
+ { #1 'multiresult := }
+ { t #2 global.max$ substring$ 't := }
+ if$
+ }
+ while$
+ multiresult
+}
+
+FUNCTION {format.pages}
+{ pages empty$
+ { "" }
+ { pages multi.page.check
+ { bbl.pages pages n.dashify tie.or.space.connect }
+ { bbl.page pages tie.or.space.connect }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.vol.num.pages}
+{ volume field.or.null
+ number empty$
+ 'skip$
+ { "(" number * ")" * *
+ volume empty$
+ { "there's a number but no volume in " cite$ * warning$ }
+ 'skip$
+ if$
+ }
+ if$
+ pages empty$
+ 'skip$
+ { duplicate$ empty$
+ { pop$ format.pages }
+ { ":" * pages n.dashify * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.chapter.pages}
+{ chapter empty$
+ 'format.pages
+ { type empty$
+ { bbl.chapter }
+ { type "l" change.case$ }
+ if$
+ chapter tie.or.space.connect
+ pages empty$
+ 'skip$
+ { ", " * format.pages * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.in.ed.booktitle}
+{
+ booktitle empty$
+ { "" }
+ { editor empty$
+ { bbl.in booktitle emphasize * }
+ { bbl.in format.editors * ", " * booktitle emphasize * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {empty.misc.check}
+{ author empty$ title empty$ howpublished empty$
+ month empty$ year empty$ note empty$
+ and and and and and
+ { "all relevant fields are empty in " cite$ * warning$ }
+ 'skip$
+ if$
+}
+
+FUNCTION {format.thesis.type}
+{ type empty$
+ 'skip$
+ { pop$
+ type "t" change.case$
+ }
+ if$
+}
+
+FUNCTION {format.tr.number}
+{ type empty$
+ { bbl.techrep }
+ 'type
+ if$
+ number empty$
+ { "t" change.case$ }
+ { number tie.or.space.connect }
+ if$
+}
+
+FUNCTION {format.article.crossref}
+{ key empty$
+ { journal empty$
+ { "need key or journal for " cite$ * " to crossref " * crossref *
+ warning$
+ ""
+ }
+ { bbl.in "{\em " * journal * "\/}" * }
+ if$
+ }
+ { bbl.in key * }
+ if$
+ " \cite{" * crossref * "}" *
+}
+
+FUNCTION {format.crossref.editor}
+{ editor #1 "{vv~}{ll}" format.name$
+ editor num.names$ duplicate$ #2 >
+ { pop$ bbl.etal * }
+ { #2 < 'skip$
+ { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
+ { bbl.etal * }
+ { bbl.and * editor #2 "{vv~}{ll}" format.name$ * }
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.book.crossref}
+{ volume empty$
+ { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
+ bbl.in
+ }
+ { bbl.volume volume tie.or.space.connect
+ bbl.of *
+ }
+ if$
+ editor empty$
+ editor field.or.null author field.or.null =
+ or
+ { key empty$
+ { series empty$
+ { "need editor, key, or series for " cite$ * " to crossref " *
+ crossref * warning$
+ "" *
+ }
+ { "{\em " * series * "\/}" * }
+ if$
+ }
+ { key * }
+ if$
+ }
+ { format.crossref.editor * }
+ if$
+ " \cite{" * crossref * "}" *
+}
+
+FUNCTION {format.incoll.inproc.crossref}
+{ editor empty$
+ editor field.or.null author field.or.null =
+ or
+ { key empty$
+ { booktitle empty$
+ { "need editor, key, or booktitle for " cite$ * " to crossref " *
+ crossref * warning$
+ ""
+ }
+ { bbl.in " {\em " * booktitle * "\/}" * }
+ if$
+ }
+ { bbl.in key * }
+ if$
+ }
+ { bbl.in format.crossref.editor * }
+ if$
+ " \cite{" * crossref * "}" *
+}
+
+FUNCTION {article}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ crossref missing$
+ { journal emphasize "journal" output.check
+ format.vol.num.pages output
+ format.date "year" output.check
+ }
+ { format.article.crossref output.nonnull
+ format.pages output
+ }
+ if$
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {book}
+{ output.bibitem
+ fa.isPersianLanguage
+ {
+ format.authors output
+ new.block
+ format.btitle "title" output.check
+ new.block
+ format.translators output
+ format.editors output
+ }
+ { author empty$
+ { format.editors "author and editor" output.check }
+ { format.authors output.nonnull
+ crossref missing$
+ { "author and editor" editor either.or.check }
+ 'skip$
+ if$
+ }
+ if$
+ new.block
+ format.btitle "title" output.check
+ }
+ if$
+ crossref missing$
+ { format.bvolume output
+ new.block
+ format.number.series output
+ new.sentence
+ publisher "publisher" output.check
+ address output
+ }
+ { new.block
+ format.book.crossref output.nonnull
+ }
+ if$
+ format.edition output
+ format.date "year" output.check
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {booklet}
+{ output.bibitem
+ format.authors output
+ new.block
+ format.title "title" output.check
+ howpublished address new.block.checkb
+ howpublished output
+ address output
+ format.date output
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {inbook}
+{ output.bibitem
+ author empty$
+ { format.editors "author and editor" output.check }
+ { format.authors output.nonnull
+ crossref missing$
+ { "author and editor" editor either.or.check }
+ 'skip$
+ if$
+ }
+ if$
+ new.block
+ format.btitle "title" output.check
+ crossref missing$
+ { format.bvolume output
+ format.chapter.pages "chapter and pages" output.check
+ new.block
+ format.number.series output
+ new.sentence
+ publisher "publisher" output.check
+ address output
+ }
+ { format.chapter.pages "chapter and pages" output.check
+ new.block
+ format.book.crossref output.nonnull
+ }
+ if$
+ format.edition output
+ format.date "year" output.check
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {incollection}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ crossref missing$
+ { format.in.ed.booktitle "booktitle" output.check
+ format.bvolume output
+ format.number.series output
+ format.chapter.pages output
+ new.sentence
+ publisher "publisher" output.check
+ address output
+ format.edition output
+ format.date "year" output.check
+ }
+ { format.incoll.inproc.crossref output.nonnull
+ format.chapter.pages output
+ }
+ if$
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {inproceedings}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ crossref missing$
+ { format.in.ed.booktitle "booktitle" output.check
+ format.bvolume output
+ format.number.series output
+ format.pages output
+ address empty$
+ { organization publisher new.sentence.checkb
+ organization output
+ publisher output
+ format.date "year" output.check
+ }
+ { address output.nonnull
+ format.date "year" output.check
+ new.sentence
+ organization output
+ publisher output
+ }
+ if$
+ }
+ { format.incoll.inproc.crossref output.nonnull
+ format.pages output
+ }
+ if$
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {conference} { inproceedings }
+
+FUNCTION {manual}
+{ output.bibitem
+ author empty$
+ { organization empty$
+ 'skip$
+ { organization output.nonnull
+ address output
+ }
+ if$
+ }
+ { format.authors output.nonnull }
+ if$
+ new.block
+ format.btitle "title" output.check
+ author empty$
+ { organization empty$
+ { address new.block.checka
+ address output
+ }
+ 'skip$
+ if$
+ }
+ { organization address new.block.checkb
+ organization output
+ address output
+ }
+ if$
+ format.edition output
+ format.date output
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {mastersthesis}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ bbl.mthesis
+ format.thesis.type output.nonnull
+ school "school" output.check
+ address output
+ format.date "year" output.check
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {misc}
+{ output.bibitem
+ format.authors output
+ title howpublished new.block.checkb
+ format.title output
+ howpublished new.block.checka
+ howpublished output
+ format.date output
+ new.block
+ note output
+ fin.entry
+ empty.misc.check
+}
+
+FUNCTION {phdthesis}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.btitle "title" output.check
+ new.block
+ bbl.phdthesis
+ format.thesis.type output.nonnull
+ school "school" output.check
+ address output
+ format.date "year" output.check
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {proceedings}
+{ output.bibitem
+ editor empty$
+ { organization output }
+ { format.editors output.nonnull }
+ if$
+ new.block
+ format.btitle "title" output.check
+ format.bvolume output
+ format.number.series output
+ address empty$
+ { editor empty$
+ { publisher new.sentence.checka }
+ { organization publisher new.sentence.checkb
+ organization output
+ }
+ if$
+ publisher output
+ format.date "year" output.check
+ }
+ { address output.nonnull
+ format.date "year" output.check
+ new.sentence
+ editor empty$
+ 'skip$
+ { organization output }
+ if$
+ publisher output
+ }
+ if$
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {techreport}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ format.tr.number output.nonnull
+ institution "institution" output.check
+ address output
+ format.date "year" output.check
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {unpublished}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ note "note" output.check
+ format.date output
+ fin.entry
+}
+
+FUNCTION {default.type} { misc }
+
+MACRO {jan} {"January"}
+
+MACRO {feb} {"February"}
+
+MACRO {mar} {"March"}
+
+MACRO {apr} {"April"}
+
+MACRO {may} {"May"}
+
+MACRO {jun} {"June"}
+
+MACRO {jul} {"July"}
+
+MACRO {aug} {"August"}
+
+MACRO {sep} {"September"}
+
+MACRO {oct} {"October"}
+
+MACRO {nov} {"November"}
+
+MACRO {dec} {"December"}
+
+MACRO {acmcs} {"ACM Computing Surveys"}
+
+MACRO {acta} {"Acta Informatica"}
+
+MACRO {cacm} {"Communications of the ACM"}
+
+MACRO {ibmjrd} {"IBM Journal of Research and Development"}
+
+MACRO {ibmsj} {"IBM Systems Journal"}
+
+MACRO {ieeese} {"IEEE Transactions on Software Engineering"}
+
+MACRO {ieeetc} {"IEEE Transactions on Computers"}
+
+MACRO {ieeetcad}
+ {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"}
+
+MACRO {ipl} {"Information Processing Letters"}
+
+MACRO {jacm} {"Journal of the ACM"}
+
+MACRO {jcss} {"Journal of Computer and System Sciences"}
+
+MACRO {scp} {"Science of Computer Programming"}
+
+MACRO {sicomp} {"SIAM Journal on Computing"}
+
+MACRO {tocs} {"ACM Transactions on Computer Systems"}
+
+MACRO {tods} {"ACM Transactions on Database Systems"}
+
+MACRO {tog} {"ACM Transactions on Graphics"}
+
+MACRO {toms} {"ACM Transactions on Mathematical Software"}
+
+MACRO {toois} {"ACM Transactions on Office Information Systems"}
+
+MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"}
+
+MACRO {tcs} {"Theoretical Computer Science"}
+
+READ
+
+STRINGS { longest.label }
+
+INTEGERS { number.label longest.label.width }
+
+FUNCTION {initialize.longest.label}
+{ "" 'longest.label :=
+ #1 'number.label :=
+ #0 'longest.label.width :=
+}
+
+FUNCTION {longest.label.pass}
+{ number.label int.to.str$ 'label :=
+ number.label #1 + 'number.label :=
+ label width$ longest.label.width >
+ { label 'longest.label :=
+ label width$ 'longest.label.width :=
+ }
+ 'skip$
+ if$
+}
+
+EXECUTE {banner.message}
+EXECUTE {initialize.longest.label}
+
+ITERATE {longest.label.pass}
+
+FUNCTION {begin.bib}
+{
+ "% Generated by unsrt-fa.bst, version: " bst.file.version * " (" * bst.file.date * "), for XePersian Package" *
+ write$ newline$
+ "% Authors: " bst.file.authors *
+ write$ newline$
+ "\providecommand{\noopsort}[1]{}"
+ write$ newline$
+ preamble$ empty$
+ 'skip$
+ { preamble$ write$ newline$ }
+ if$
+ "\begin{thebibliography}{" longest.label * "}" * write$ newline$
+}
+
+EXECUTE {begin.bib}
+
+EXECUTE {init.state.consts}
+
+ITERATE {call.type$}
+
+FUNCTION {end.bib}
+{ newline$
+ "\end{thebibliography}" write$ newline$
+ "\Persian" write$ newline$
+}
+
+EXECUTE {end.bib}
+EXECUTE{completed.message}
+% \end{macrocode}
+% \iffalse
+%</unsrt-fa.bst>
+% \fi
+% \clearpage
+% \PrintChanges
+% \Finale
+%
+% \iffalse
+%<*parsidigits.map>
+; Vafa Khalighi ...
+LHSName "Digits"
+RHSName "ParsiDigits"
+
+pass(Unicode)
+U+0030 <> U+06F0 ;
+U+0031 <> U+06F1 ;
+U+0032 <> U+06F2 ;
+U+0033 <> U+06F3 ;
+U+0034 <> U+06F4 ;
+U+0035 <> U+06F5 ;
+U+0036 <> U+06F6 ;
+U+0037 <> U+06F7 ;
+U+0038 <> U+06F8 ;
+U+0039 <> U+06F9 ;
+
+U+0644 U+0651 U+064E U+0627 <> U+0644 U+0627 U+0651 U+064E ; lam shadda fatha alif -> lam alif shadda fatha
+U+0644 U+0651 U+0627 <> U+0644 U+0627 U+0651 ; lam shadda alif -> lam alif shadda
+U+0644 U+0652 U+0622 <> U+0644 U+0622 U+0652 ; lam sukun alifmadda -> lam alifmadda sukun
+U+0644 U+0652 U+0623 <> U+0644 U+0623 U+0652 ; lam sukun alifhamzaabove -> lam alifhamzaabove sukun
+U+0644 U+0652 U+0625 <> U+0644 U+0625 U+0652 ; lam sukun alifhamzabelow -> lam alifhamzabelow sukun
+U+0644 U+0651 U+064B U+0627 <> U+0644 U+0627 U+0651 U+064b ; lam shadda fathatan alif -> lam alif shadda fathatan
+U+0644 U+064B U+0627 <> U+0644 U+0627 U+064B ; lam fathatan alif -> lam alif fathatan
+
+U+002C <> U+060C ; comma ­> arabic comma
+U+003F <> U+061F ; question mark -> arabic qm
+U+003B <> U+061B ; semicolon -> arabic semicolon
+
+; ligatures from Knuth's original CMR fonts
+U+002D U+002D <> U+2013 ; -- -> en dash
+U+002D U+002D U+002D <> U+2014 ; --- -> em dash
+
+U+0027 <> U+2019 ; ' -> right single quote
+U+0027 U+0027 <> U+201D ; '' -> right double quote
+U+0022 > U+201D ; " -> right double quote
+
+U+0060 <> U+2018 ; ` -> left single quote
+U+0060 U+0060 <> U+201C ; `` -> left double quote
+
+U+0021 U+0060 <> U+00A1 ; !` -> inverted exclam
+U+003F U+0060 <> U+00BF ; ?` -> inverted question
+
+; additions supported in T1 encoding
+U+002C U+002C <> U+201E ; ,, -> DOUBLE LOW-9 QUOTATION MARK
+U+003C U+003C <> U+00AB ; << -> LEFT POINTING GUILLEMET
+U+003E U+003E <> U+00BB ; >> -> RIGHT POINTING GUILLEMET
+%</parsidigits.map>
+%<*txt2maths.map>
+; Vafa Khalighi ...
+LHSName "Digits"
+RHSName "txt2maths"
+
+Pass(Unicode)
+U+002E <> U+066B ; convert dot to Persian decimal separator
+U+002D <> U+2212 ; convert hyphen to minus sign
+U+0030 <> U+06F0 ;
+U+0031 <> U+06F1 ;
+U+0032 <> U+06F2 ;
+U+0033 <> U+06F3 ;
+U+0034 <> U+06F4 ;
+U+0035 <> U+06F5 ;
+U+0036 <> U+06F6 ;
+U+0037 <> U+06F7 ;
+U+0038 <> U+06F8 ;
+U+0039 <> U+06F9 ;
+
+U+0644 U+0651 U+064E U+0627 <> U+0644 U+0627 U+0651 U+064E ; lam shadda fatha alif -> lam alif shadda fatha
+U+0644 U+0651 U+0627 <> U+0644 U+0627 U+0651 ; lam shadda alif -> lam alif shadda
+U+0644 U+0652 U+0622 <> U+0644 U+0622 U+0652 ; lam sukun alifmadda -> lam alifmadda sukun
+U+0644 U+0652 U+0623 <> U+0644 U+0623 U+0652 ; lam sukun alifhamzaabove -> lam alifhamzaabove sukun
+U+0644 U+0652 U+0625 <> U+0644 U+0625 U+0652 ; lam sukun alifhamzabelow -> lam alifhamzabelow sukun
+U+0644 U+0651 U+064B U+0627 <> U+0644 U+0627 U+0651 U+064b ; lam shadda fathatan alif -> lam alif shadda fathatan
+U+0644 U+064B U+0627 <> U+0644 U+0627 U+064B ; lam fathatan alif -> lam alif fathatan
+
+U+002C <> U+060C ; comma ­> arabic comma
+U+003F <> U+061F ; question mark -> arabic qm
+U+003B <> U+061B ; semicolon -> arabic semicolon
+
+; ligatures from Knuth's original CMR fonts
+U+002D U+002D <> U+2013 ; -- -> en dash
+U+002D U+002D U+002D <> U+2014 ; --- -> em dash
+
+U+0027 <> U+2019 ; ' -> right single quote
+U+0027 U+0027 <> U+201D ; '' -> right double quote
+U+0022 > U+201D ; " -> right double quote
+
+U+0060 <> U+2018 ; ` -> left single quote
+U+0060 U+0060 <> U+201C ; `` -> left double quote
+
+U+0021 U+0060 <> U+00A1 ; !` -> inverted exclam
+U+003F U+0060 <> U+00BF ; ?` -> inverted question
+
+; additions supported in T1 encoding
+U+002C U+002C <> U+201E ; ,, -> DOUBLE LOW-9 QUOTATION MARK
+U+003C U+003C <> U+00AB ; << -> LEFT POINTING GUILLEMET
+U+003E U+003E <> U+00BB ; >> -> RIGHT POINTING GUILLEMET
+%</txt2maths.map>
+%<*thesis-sample.tex>
+\documentclass[a4paper,11pt]{xepersian-thesis}
+\usepackage{graphicx}
+\usepackage{xepersian}
+\settextfont[Scale=1]{XB Zar}
+\setlatintextfont[Scale=1]{Linux Libertine}
+\setdigitfont[Scale=1]{XB Zar}
+
+
+
+
+\begin{document}
+\title{اعداد مرکب}
+\author{وفا خلیقی}
+\degree{کارشناسی ریاضیات محض}
+\supervisor{محمد قدسی}
+\department{ریاضی}
+\university{تهران}
+\city{تهران}
+\thesisdate{\today}
+\maketitle
+\begin{acknowledgementpage}
+در اینجا دوست دارم از همه تشکر کنم
+\end{acknowledgementpage}
+\begin{abstractpage}
+اینجا هم باید مطلبی نوشت...
+\keywords{ریاضی محض، هندسه و توپولوژی}
+\end{abstractpage}
+\tableofcontents
+\listoftables
+\chapter{مجموعه اعداد}
+در اینجا لازم می‌دانم تا نگاهی روی مجموعهٔ اعداد اندازیم تا متوجه خصلت‌های آن شویم
+\begin{equation}
+(a+b)^2=a^2+2ab+b^3
+\end{equation}
+\newpage
+این صفحهٔ جدید است که ما در این صفحه به نوشتن مقالات دیگری مشغول هستیم.
+\section{مقدمه}
+
+\newpage
+این هم یک صفحهٔ جدید دیگر
+\chapter{دوم}
+\chapter{سوم}
+\appendix
+\chapter{اول}
+\chapter{دوم}
+\chapter{سوم}
+\bibliographystyle{unsrt}
+\begin{thebibliography}{99}
+\end{thebibliography}
+%\printindex
+\begin{latin}
+\latintitle{Pure Mathematics}
+\latinauthor{Vafa Khalighi}
+\latindegree{Bachelor of Pure Mathematics}
+\latinthesisdate{\latintoday}
+\latinsupervisor{Mohammad Ghodsi}
+\latindepartment{Computer Science}
+\latinuniversity{Iran University of Science \& Technology}
+\latincity{Tehran}
+\begin{latinabstract}
+\noindent This is our abstract written in English and This thesis is written very very very carefully so that we can keep an eye on the beauty of typesetting.
+\latinkeywords{Mathematics, topology, geometry and category theory.}
+\end{latinabstract}
+\makelatintitle
+\end{latin}
+\end{document}
+%</thesis-sample.tex>
+%<*magazine-sample.tex>
+\documentclass[12pt,twoside]{xepersian-magazine}
+\usepackage{graphicx}
+\usepackage{xepersian}
+\usepackage{xunicode}
+\settextfont[Scale=1]{XB Zar}
+\setlatintextfont[Scale=1]{Junicode}
+\setdigitfont{XB Zar}
+\pagestyle{fancy}
+\title{مجلهٔ زی‌پرشین}
+\author{وفا خلیقی}
+\edition{جلد اول}
+\customlogo{مجلهٔ زی‌پرشین}
+\customminilogo{مجلهٔ زی‌پرشین}
+\custommagazinename{مجلهٔ زی‌پرشین}
+\customwwwTxt{http://developer.berlios.de/projects/xepersian}
+\begin{document}
+\begin{frontpage}
+\firstimage{img/ireland.jpg}{این زیرنویس تصویر اصلی در صفحهٔ اول است.}
+\firstarticle{این تیتر مقالهٔ اول است.}
+ {خوب این قسمت کوچکی از مقالهٔ اول است که ما در حال نوشتن آن هستم. باید یک مقدار بنویسیم تا مقداری این قسمت پر شود تا بتوانیم چیز قشنگی داشته باشیم. دقت کنیم که بصورت انتخابی حتی می‌توانیم زمان را هم درج کنیم که در سمت راست قرار می‌گیرد.}%
+ {۱۲:۳۴}
+\secondarticle{این هم سر تیتر مقالهٔ دوم است.}%
+ {این هم زیر تیتر مقالهٔ دوم است که آن را در اینجا می‌نویسیم.}%
+ {خوب این قسمت کوچکی از مقالهٔ اول است که ما در حال نوشتن آن هستم. باید یک مقدار بنویسیم تا مقداری این قسمت پر شود تا بتوانیم چیز قشنگی داشته باشیم. دقت کنیم که بصورت انتخابی حتی می‌توانیم زمان را هم درج کنیم که در سمت راست قرار می‌گیرد.}%
+ {قسمت الف}%
+ {۱۰:۲۳}
+
+\thirdarticle{این سرتیتر مقالهٔ سوم است.}%
+ {این هم زیرتیتر مقالهٔ سوم است که ما آن را در اینجا قرار می‌دهیم.}%
+ {خوب این قسمت کوچکی از مقالهٔ اول است که ما در حال نوشتن آن هستم. باید یک مقدار بنویسیم تا مقداری این قسمت پر شود تا بتوانیم چیز قشنگی داشته باشیم. دقت کنیم که بصورت انتخابی حتی می‌توانیم زمان را هم درج کنیم که در سمت راست قرار می‌گیرد. و همانطور که می‌بینید من مطلبی برای گفتن ندارم فقط متن علکی می‌نویسم تا کمی صفحه را پر کرده باشم. اما در قسمتهای بعدی مقداری از سهراب سپهری خواهم نوشت.}%
+
+ {قسمت ب}%
+ {۱۰:۰۲}
+
+\begin{indexblock}{نمایه (فهرست مطالب) اصلی}
+\indexitem{۱- مقاله اول}{1}
+
+\indexitem{۲- مقاله دوم}{3}
+
+\indexitem{۳- مقاله سوم}{3}
+
+\indexitem{۴- مقاله چهارم}{5}
+\end{indexblock}
+
+\begin{weatherblock}{وضع آب و هوا}
+\weatheritem{img/weather/rain.jpg}{امروز}{13}{9}{}
+\weatheritem{img/weather/sun.jpg}{فردا}{15}{1}{}
+\weatheritem{img/weather/clouds.jpg}{جمعه}{12}{6}{}
+\end{weatherblock}
+
+
+\begin{authorblock}
+\textbf{ویرایشگران}
+
+وفا خلیقی، مهدی امیدعلی و مصطفی واحدی
+
+\texttt{vafa@users.berlios.de\\[5pt]
+http://developer.berlios.de/projects/xepersian}\\
+\end{authorblock}
+\end{frontpage}
+\newsection{قسمت الف}
+\begin{article}{2}
+ {این تیتر این مقاله است.}
+ {این هم زیرتیتر این مقاله هست.}
+ {قسمت الف}
+ {1}
+\authorandplace{نام نویسنده}{مکان}
+
+
+
+
+\noindent\timestamp{۸:۲۵}
+ويژگی اصلی که اين معماری را متمايز کرده و در دنيای اينترنت آن‌ها در مقابل معماری قبلی شبكه‌ها قرار داده است، امكان ايجاد ارتباط مستقيم بين كامپيوترهای مختلف بدون نياز به دخالت سرورهای قدرتمند در بين راه است. نام‌ اين نوع معماری هم در واقع بر گرفته شده از همین ارتباط مستقیم بين گره‌ها است. در واقع در اين نوع شبكه‌ها اثری از سرورها نيست و تمامی گره‌های معمولی موجود در شبكه، بايد وظايفی را که قبلا بر عهده‌ی سرورها بود، خود انجام دهند. بنابراين در اين نوع معماری گره‌های معمولی در ضمن اين‌که از خدمات شبکه بهره‌مند می‌شود بايد نقش خدمت‌گزار را هم ايفا کنند . در اين نوع شبکه‌ها گره‌های معمولی به كمك روش‌ها و پروتكل‌های توزيع شده، تمامی وظايف مسير يابی در شبكه، جستجوی منابع، امنيت شبكه و شناسايی هويت استفاده كننده‌ها و هم‌چنين مقابله با حملات احتمالی مهاجمان را بر عهده دارند.
+\footnote{این یک زیرنویس فارسی است.}\LTRfootnote{This is an English footnote.}
+\begin{equation}
+(a+b)^3=a^3+3a^2b+3ab^2+b^3\label{eq-1}
+\end{equation}
+این معادلهٔ \eqref{eq-1} است.
+\columntitle{lines}{این را برای مهم یا نشان دادن حرفی مهم در این مجله انجام می‌دهیم.}
+
+ويژگی اصلی که اين معماری را متمايز کرده و در دنيای اينترنت آن‌ها در مقابل معماری قبلی شبكه‌ها قرار داده است، امكان ايجاد ارتباط مستقيم بين كامپيوترهای مختلف بدون نياز به دخالت سرورهای قدرتمند در بين راه است. نام‌ اين نوع معماری هم در واقع بر گرفته شده از همین ارتباط مستقیم بين گره‌ها است. در واقع در اين نوع شبكه‌ها اثری از سرورها نيست و تمامی گره‌های معمولی موجود در شبكه، بايد وظايفی را که قبلا بر عهده‌ی سرورها بود، خود انجام دهند. بنابراين در اين نوع معماری گره‌های معمولی در ضمن اين‌که از خدمات شبکه بهره‌مند می‌شود بايد نقش خدمت‌گزار را هم ايفا کنند . در اين نوع شبکه‌ها گره‌های معمولی به كمك روش‌ها و پروتكل‌های توزيع شده، تمامی وظايف مسير يابی در شبكه، جستجوی منابع، امنيت شبكه و شناسايی هويت استفاده كننده‌ها و هم‌چنين مقابله با حملات احتمالی مهاجمان را بر عهده دارند.
+
+اما معماری همتابه‌همتا ويژگی‌های ديگری نيز دارد که آن را هم برای فراهم‌کنندگان کاربردها و هم برای استفاده‌کنندگان جذاب‌تر می‌کند. از آن‌جا که شبکه‌های همتابه‌همتا از همان زيرساخت‌های اينترنت استفاده می‌کنند ونيازی به راه‌اندازی سرورها ندارند، ساخت اين شبكه‌ها بسيار ارزان‌تر از ايجاد زير ساخت‌های لازم برای راه‌اندازی شبكه‌های مشتری/خدمت‌گزار است. هم‌چنين با زياد شدن تعداد کاربران چون درعمل تعداد گره‌های ارائه کننده‌ی خدمات هم بالا می‌رود، نه تنها عملكرد شبكه افت پيدا نمی‌كند بلكه انتظار بهبود عملکرد نيز می‌رود. گذشته از اين موارد، مالكيت اين شبكه‌ها به صورت اشتراكی بين تمام کاربران پخش شده و هيچ شخص يا شركتی نمی‌تواند سياست‌های دلخواه خود را در اين نوع شبكه‌ها اعمال کند.
+
+اماهيچ چيزی بی‌ بها به دست نمی‌آید. نبود سرور مرکزی اگر چه ويژگی‌های جذابی به شبکه‌های همتابه‌همتا می‌بخشد اما از طرف ديگر آن‌ها را با دشواری‌هايی نيز روبه‌رو می‌کند. عدم وجود يك هماهنگ كننده مركزی در شبكه، انجام بسياری از امور و ارائه خدمات را دچار مشكل می‌کند. از يک طرف، تغيير و رفت‌وآمد زیاد کاربران از ويژگی‌های ذاتی اين شبکه‌ها است و از طرف ديگر در اين شبكه‌ها، ديگر اين گره‌های معمولی هستند كه عهده‌دار تمامی وظايف هستند. به همين دلیل يکی از مشکلات اصلی فراروی اين شبكه‌ها، مقابله با تغييرات لحظه‌ای و فراهم آوردن ثبات در ارائه خدمات در بستری از بی‌ثباتی است.
+\end{article}
+
+\articlesep
+
+\begin{article}{2}
+ {این تیتر این مقاله است.}
+ {این هم زیرتیتر این مقاله هست.}
+ {قسمت الف}
+ {1}
+\authorandplace{نام نویسنده}{مکان}
+
+\noindent\timestamp{08:25}
+ويژگی اصلی که اين معماری را متمايز کرده و در دنيای اينترنت آن‌ها در مقابل معماری قبلی شبكه‌ها قرار داده است، امكان ايجاد ارتباط مستقيم بين كامپيوترهای مختلف بدون نياز به دخالت سرورهای قدرتمند در بين راه است. نام‌ اين نوع معماری هم در واقع بر گرفته شده از همین ارتباط مستقیم بين گره‌ها است. در واقع در اين نوع شبكه‌ها اثری از سرورها نيست و تمامی گره‌های معمولی موجود در شبكه، بايد وظايفی را که قبلا بر عهده‌ی سرورها بود، خود انجام دهند. بنابراين در اين نوع معماری گره‌های معمولی در ضمن اين‌که از خدمات شبکه بهره‌مند می‌شود بايد نقش خدمت‌گزار را هم ايفا کنند . در اين نوع شبکه‌ها گره‌های معمولی به كمك روش‌ها و پروتكل‌های توزيع شده، تمامی وظايف مسير يابی در شبكه، جستجوی منابع، امنيت شبكه و شناسايی هويت استفاده كننده‌ها و هم‌چنين مقابله با حملات احتمالی مهاجمان را بر عهده دارند.
+\LTRfootnote{This is an English footnote.}\footnote{این یک زیرنویس فارسی است.}
+اما معماری همتابه‌همتا ويژگی‌های ديگری نيز دارد که آن را هم برای فراهم‌کنندگان کاربردها و هم برای استفاده‌کنندگان جذاب‌تر می‌کند. از آن‌جا که شبکه‌های همتابه‌همتا از همان زيرساخت‌های اينترنت استفاده می‌کنند ونيازی به راه‌اندازی سرورها ندارند، ساخت اين شبكه‌ها بسيار ارزان‌تر از ايجاد زير ساخت‌های لازم برای راه‌اندازی شبكه‌های مشتری/خدمت‌گزار است. هم‌چنين با زياد شدن تعداد کاربران چون درعمل تعداد گره‌های ارائه کننده‌ی خدمات هم بالا می‌رود، نه تنها عملكرد شبكه افت پيدا نمی‌كند بلكه انتظار بهبود عملکرد نيز می‌رود. گذشته از اين موارد، مالكيت اين شبكه‌ها به صورت اشتراكی بين تمام کاربران پخش شده و هيچ شخص يا شركتی نمی‌تواند سياست‌های دلخواه خود را در اين نوع شبكه‌ها اعمال کند.
+
+اماهيچ چيزی بی‌ بها به دست نمی‌آید. نبود سرور مرکزی اگر چه ويژگی‌های جذابی به شبکه‌های همتابه‌همتا می‌بخشد اما از طرف ديگر آن‌ها را با دشواری‌هايی نيز روبه‌رو می‌کند. عدم وجود يك هماهنگ كننده مركزی در شبكه، انجام بسياری از امور و ارائه خدمات را دچار مشكل می‌کند. از يک طرف، تغيير و رفت‌وآمد زیاد کاربران از ويژگی‌های ذاتی اين شبکه‌ها است و از طرف ديگر در اين شبكه‌ها، ديگر اين گره‌های معمولی هستند كه عهده‌دار تمامی وظايف هستند. به همين دلیل يکی از مشکلات اصلی فراروی اين شبكه‌ها، مقابله با تغييرات لحظه‌ای و فراهم آوردن ثبات در ارائه خدمات در بستری از بی‌ثباتی است.
+
+ويژگی اصلی که اين معماری را متمايز کرده و در دنيای اينترنت آن‌ها در مقابل معماری قبلی شبكه‌ها قرار داده است، امكان ايجاد ارتباط مستقيم بين كامپيوترهای مختلف بدون نياز به دخالت سرورهای قدرتمند در بين راه است. نام‌ اين نوع معماری هم در واقع بر گرفته شده از همین ارتباط مستقیم بين گره‌ها است. در واقع در اين نوع شبكه‌ها اثری از سرورها نيست و تمامی گره‌های معمولی موجود در شبكه، بايد وظايفی را که قبلا بر عهده‌ی سرورها بود، خود انجام دهند. بنابراين در اين نوع معماری گره‌های معمولی در ضمن اين‌که از خدمات شبکه بهره‌مند می‌شود بايد نقش خدمت‌گزار را هم ايفا کنند . در اين نوع شبکه‌ها گره‌های معمولی به كمك روش‌ها و پروتكل‌های توزيع شده، تمامی وظايف مسير يابی در شبكه، جستجوی منابع، امنيت شبكه و شناسايی هويت استفاده كننده‌ها و هم‌چنين مقابله با حملات احتمالی مهاجمان را بر عهده دارند.
+
+اما معماری همتابه‌همتا ويژگی‌های ديگری نيز دارد که آن را هم برای فراهم‌کنندگان کاربردها و هم برای استفاده‌کنندگان جذاب‌تر می‌کند. از آن‌جا که شبکه‌های همتابه‌همتا از همان زيرساخت‌های اينترنت استفاده می‌کنند ونيازی به راه‌اندازی سرورها ندارند، ساخت اين شبكه‌ها بسيار ارزان‌تر از ايجاد زير ساخت‌های لازم برای راه‌اندازی شبكه‌های مشتری/خدمت‌گزار است. هم‌چنين با زياد شدن تعداد کاربران چون درعمل تعداد گره‌های ارائه کننده‌ی خدمات هم بالا می‌رود، نه تنها عملكرد شبكه افت پيدا نمی‌كند بلكه انتظار بهبود عملکرد نيز می‌رود. گذشته از اين موارد، مالكيت اين شبكه‌ها به صورت اشتراكی بين تمام کاربران پخش شده و هيچ شخص يا شركتی نمی‌تواند سياست‌های دلخواه خود را در اين نوع شبكه‌ها اعمال کند.
+
+اماهيچ چيزی بی‌ بها به دست نمی‌آید. نبود سرور مرکزی اگر چه ويژگی‌های جذابی به شبکه‌های همتابه‌همتا می‌بخشد اما از طرف ديگر آن‌ها را با دشواری‌هايی نيز روبه‌رو می‌کند. عدم وجود يك هماهنگ كننده مركزی در شبكه، انجام بسياری از امور و ارائه خدمات را دچار مشكل می‌کند. از يک طرف، تغيير و رفت‌وآمد زیاد کاربران از ويژگی‌های ذاتی اين شبکه‌ها است و از طرف ديگر در اين شبكه‌ها، ديگر اين گره‌های معمولی هستند كه عهده‌دار تمامی وظايف هستند. به همين دلیل يکی از مشکلات اصلی فراروی اين شبكه‌ها، مقابله با تغييرات لحظه‌ای و فراهم آوردن ثبات در ارائه خدمات در بستری از بی‌ثباتی است.
+
+\expandedtitle{doublebox}{این هم مطلی است مهم یا چیزی که از خلاصهٔ این مقاله ما متوجه شده‌ایم و این برای ما و خوانندگان خیلی مهم است.}
+
+ويژگی اصلی که اين معماری را متمايز کرده و در دنيای اينترنت آن‌ها در مقابل معماری قبلی شبكه‌ها قرار داده است، امكان ايجاد ارتباط مستقيم بين كامپيوترهای مختلف بدون نياز به دخالت سرورهای قدرتمند در بين راه است. نام‌ اين نوع معماری هم در واقع بر گرفته شده از همین ارتباط مستقیم بين گره‌ها است. در واقع در اين نوع شبكه‌ها اثری از سرورها نيست و تمامی گره‌های معمولی موجود در شبكه، بايد وظايفی را که قبلا بر عهده‌ی سرورها بود، خود انجام دهند. بنابراين در اين نوع معماری گره‌های معمولی در ضمن اين‌که از خدمات شبکه بهره‌مند می‌شود بايد نقش خدمت‌گزار را هم ايفا کنند . در اين نوع شبکه‌ها گره‌های معمولی به كمك روش‌ها و پروتكل‌های توزيع شده، تمامی وظايف مسير يابی در شبكه، جستجوی منابع، امنيت شبكه و شناسايی هويت استفاده كننده‌ها و هم‌چنين مقابله با حملات احتمالی مهاجمان را بر عهده دارند.
+
+اما معماری همتابه‌همتا ويژگی‌های ديگری نيز دارد که آن را هم برای فراهم‌کنندگان کاربردها و هم برای استفاده‌کنندگان جذاب‌تر می‌کند. از آن‌جا که شبکه‌های همتابه‌همتا از همان زيرساخت‌های اينترنت استفاده می‌کنند ونيازی به راه‌اندازی سرورها ندارند، ساخت اين شبكه‌ها بسيار ارزان‌تر از ايجاد زير ساخت‌های لازم برای راه‌اندازی شبكه‌های مشتری/خدمت‌گزار است. هم‌چنين با زياد شدن تعداد کاربران چون درعمل تعداد گره‌های ارائه کننده‌ی خدمات هم بالا می‌رود، نه تنها عملكرد شبكه افت پيدا نمی‌كند بلكه انتظار بهبود عملکرد نيز می‌رود. گذشته از اين موارد، مالكيت اين شبكه‌ها به صورت اشتراكی بين تمام کاربران پخش شده و هيچ شخص يا شركتی نمی‌تواند سياست‌های دلخواه خود را در اين نوع شبكه‌ها اعمال کند.
+
+اماهيچ چيزی بی‌ بها به دست نمی‌آید. نبود سرور مرکزی اگر چه ويژگی‌های جذابی به شبکه‌های همتابه‌همتا می‌بخشد اما از طرف ديگر آن‌ها را با دشواری‌هايی نيز روبه‌رو می‌کند. عدم وجود يك هماهنگ كننده مركزی در شبكه، انجام بسياری از امور و ارائه خدمات را دچار مشكل می‌کند. از يک طرف، تغيير و رفت‌وآمد زیاد کاربران از ويژگی‌های ذاتی اين شبکه‌ها است و از طرف ديگر در اين شبكه‌ها، ديگر اين گره‌های معمولی هستند كه عهده‌دار تمامی وظايف هستند. به همين دلیل يکی از مشکلات اصلی فراروی اين شبكه‌ها، مقابله با تغييرات لحظه‌ای و فراهم آوردن ثبات در ارائه خدمات در بستری از بی‌ثباتی است.
+\end{article}
+
+\articlesep
+
+\newsection{قسمت ب}
+
+
+\begin{article}{2}
+ {این یک تیتر کوتاه است.وفا خلیقی}
+ {این هم مثل همیشه زیرتیتر است که ما آن را در اینجا قرار می‌دهیم.}
+ {قسمت ب}
+ {3}
+
+\authorandplace{نام نویسنده}{مکان}
+
+
+
+\noindent\timestamp{08:25} et ويژگی اصلی که اين معماری را متمايز کرده و در دنيای اينترنت آن‌ها در مقابل معماری قبلی شبكه‌ها قرار داده است، امكان ايجاد ارتباط مستقيم بين كامپيوترهای مختلف بدون نياز به دخالت سرورهای قدرتمند در بين راه است. نام‌ اين نوع معماری هم در واقع بر گرفته شده از همین ارتباط مستقیم بين گره‌ها است. در واقع در اين نوع شبكه‌ها اثری از سرورها نيست و تمامی گره‌های معمولی موجود در شبكه، بايد وظايفی را که قبلا بر عهده‌ی سرورها بود، خود انجام دهند. بنابراين در اين نوع معماری گره‌های معمولی در ضمن اين‌که از خدمات شبکه بهره‌مند می‌شود بايد نقش خدمت‌گزار را هم ايفا کنند . در اين نوع شبکه‌ها گره‌های معمولی به كمك روش‌ها و پروتكل‌های توزيع شده، تمامی وظايف مسير يابی در شبكه، جستجوی منابع، امنيت شبكه و شناسايی هويت استفاده كننده‌ها و هم‌چنين مقابله با حملات احتمالی مهاجمان را بر عهده دارند.
+
+اما معماری همتابه‌همتا ويژگی‌های ديگری نيز دارد که آن را هم برای فراهم‌کنندگان کاربردها و هم برای استفاده‌کنندگان جذاب‌تر می‌کند. از آن‌جا که شبکه‌های همتابه‌همتا از همان زيرساخت‌های اينترنت استفاده می‌کنند ونيازی به راه‌اندازی سرورها ندارند، ساخت اين شبكه‌ها بسيار ارزان‌تر از ايجاد زير ساخت‌های لازم برای راه‌اندازی شبكه‌های مشتری/خدمت‌گزار است. هم‌چنين با زياد شدن تعداد کاربران چون درعمل تعداد گره‌های ارائه کننده‌ی خدمات هم بالا می‌رود، نه تنها عملكرد شبكه افت پيدا نمی‌كند بلكه انتظار بهبود عملکرد نيز می‌رود. گذشته از اين موارد، مالكيت اين شبكه‌ها به صورت اشتراكی بين تمام کاربران پخش شده و هيچ شخص يا شركتی نمی‌تواند سياست‌های دلخواه خود را در اين نوع شبكه‌ها اعمال کند.
+
+اماهيچ چيزی بی‌ بها به دست نمی‌آید. نبود سرور مرکزی اگر چه ويژگی‌های جذابی به شبکه‌های همتابه‌همتا می‌بخشد اما از طرف ديگر آن‌ها را با دشواری‌هايی نيز روبه‌رو می‌کند. عدم وجود يك هماهنگ كننده مركزی در شبكه، انجام بسياری از امور و ارائه خدمات را دچار مشكل می‌کند. از يک طرف، تغيير و رفت‌وآمد زیاد کاربران از ويژگی‌های ذاتی اين شبکه‌ها است و از طرف ديگر در اين شبكه‌ها، ديگر اين گره‌های معمولی هستند كه عهده‌دار تمامی وظايف هستند. به همين دلیل يکی از مشکلات اصلی فراروی اين شبكه‌ها، مقابله با تغييرات لحظه‌ای و فراهم آوردن ثبات در ارائه خدمات در بستری از بی‌ثباتی است.
+
+ويژگی اصلی که اين معماری را متمايز کرده و در دنيای اينترنت آن‌ها در مقابل معماری قبلی شبكه‌ها قرار داده است، امكان ايجاد ارتباط مستقيم بين كامپيوترهای مختلف بدون نياز به دخالت سرورهای قدرتمند در بين راه است. نام‌ اين نوع معماری هم در واقع بر گرفته شده از همین ارتباط مستقیم بين گره‌ها است. در واقع در اين نوع شبكه‌ها اثری از سرورها نيست و تمامی گره‌های معمولی موجود در شبكه، بايد وظايفی را که قبلا بر عهده‌ی سرورها بود، خود انجام دهند. بنابراين در اين نوع معماری گره‌های معمولی در ضمن اين‌که از خدمات شبکه بهره‌مند می‌شود بايد نقش خدمت‌گزار را هم ايفا کنند . در اين نوع شبکه‌ها گره‌های معمولی به كمك روش‌ها و پروتكل‌های توزيع شده، تمامی وظايف مسير يابی در شبكه، جستجوی منابع، امنيت شبكه و شناسايی هويت استفاده كننده‌ها و هم‌چنين مقابله با حملات احتمالی مهاجمان را بر عهده دارند.
+
+اما معماری همتابه‌همتا ويژگی‌های ديگری نيز دارد که آن را هم برای فراهم‌کنندگان کاربردها و هم برای استفاده‌کنندگان جذاب‌تر می‌کند. از آن‌جا که شبکه‌های همتابه‌همتا از همان زيرساخت‌های اينترنت استفاده می‌کنند ونيازی به راه‌اندازی سرورها ندارند، ساخت اين شبكه‌ها بسيار ارزان‌تر از ايجاد زير ساخت‌های لازم برای راه‌اندازی شبكه‌های مشتری/خدمت‌گزار است. هم‌چنين با زياد شدن تعداد کاربران چون درعمل تعداد گره‌های ارائه کننده‌ی خدمات هم بالا می‌رود، نه تنها عملكرد شبكه افت پيدا نمی‌كند بلكه انتظار بهبود عملکرد نيز می‌رود. گذشته از اين موارد، مالكيت اين شبكه‌ها به صورت اشتراكی بين تمام کاربران پخش شده و هيچ شخص يا شركتی نمی‌تواند سياست‌های دلخواه خود را در اين نوع شبكه‌ها اعمال کند.
+
+اماهيچ چيزی بی‌ بها به دست نمی‌آید. نبود سرور مرکزی اگر چه ويژگی‌های جذابی به شبکه‌های همتابه‌همتا می‌بخشد اما از طرف ديگر آن‌ها را با دشواری‌هايی نيز روبه‌رو می‌کند. عدم وجود يك هماهنگ كننده مركزی در شبكه، انجام بسياری از امور و ارائه خدمات را دچار مشكل می‌کند. از يک طرف، تغيير و رفت‌وآمد زیاد کاربران از ويژگی‌های ذاتی اين شبکه‌ها است و از طرف ديگر در اين شبكه‌ها، ديگر اين گره‌های معمولی هستند كه عهده‌دار تمامی وظايف هستند. به همين دلیل يکی از مشکلات اصلی فراروی اين شبكه‌ها، مقابله با تغييرات لحظه‌ای و فراهم آوردن ثبات در ارائه خدمات در بستری از بی‌ثباتی است.
+
+\expandedtitle{lines}{این هم دوباره مطلب مهمی است که ما آن را از لابلای این مقاله برای خواننده درست کرده‌ایم.}
+
+ويژگی اصلی که اين معماری را متمايز کرده و در دنيای اينترنت آن‌ها در مقابل معماری قبلی شبكه‌ها قرار داده است، امكان ايجاد ارتباط مستقيم بين كامپيوترهای مختلف بدون نياز به دخالت سرورهای قدرتمند در بين راه است. نام‌ اين نوع معماری هم در واقع بر گرفته شده از همین ارتباط مستقیم بين گره‌ها است. در واقع در اين نوع شبكه‌ها اثری از سرورها نيست و تمامی گره‌های معمولی موجود در شبكه، بايد وظايفی را که قبلا بر عهده‌ی سرورها بود، خود انجام دهند. بنابراين در اين نوع معماری گره‌های معمولی در ضمن اين‌که از خدمات شبکه بهره‌مند می‌شود بايد نقش خدمت‌گزار را هم ايفا کنند . در اين نوع شبکه‌ها گره‌های معمولی به كمك روش‌ها و پروتكل‌های توزيع شده، تمامی وظايف مسير يابی در شبكه، جستجوی منابع، امنيت شبكه و شناسايی هويت استفاده كننده‌ها و هم‌چنين مقابله با حملات احتمالی مهاجمان را بر عهده دارند.
+
+اما معماری همتابه‌همتا ويژگی‌های ديگری نيز دارد که آن را هم برای فراهم‌کنندگان کاربردها و هم برای استفاده‌کنندگان جذاب‌تر می‌کند. از آن‌جا که شبکه‌های همتابه‌همتا از همان زيرساخت‌های اينترنت استفاده می‌کنند ونيازی به راه‌اندازی سرورها ندارند، ساخت اين شبكه‌ها بسيار ارزان‌تر از ايجاد زير ساخت‌های لازم برای راه‌اندازی شبكه‌های مشتری/خدمت‌گزار است. هم‌چنين با زياد شدن تعداد کاربران چون درعمل تعداد گره‌های ارائه کننده‌ی خدمات هم بالا می‌رود، نه تنها عملكرد شبكه افت پيدا نمی‌كند بلكه انتظار بهبود عملکرد نيز می‌رود. گذشته از اين موارد، مالكيت اين شبكه‌ها به صورت اشتراكی بين تمام کاربران پخش شده و هيچ شخص يا شركتی نمی‌تواند سياست‌های دلخواه خود را در اين نوع شبكه‌ها اعمال کند.
+
+اماهيچ چيزی بی‌ بها به دست نمی‌آید. نبود سرور مرکزی اگر چه ويژگی‌های جذابی به شبکه‌های همتابه‌همتا می‌بخشد اما از طرف ديگر آن‌ها را با دشواری‌هايی نيز روبه‌رو می‌کند. عدم وجود يك هماهنگ كننده مركزی در شبكه، انجام بسياری از امور و ارائه خدمات را دچار مشكل می‌کند. از يک طرف، تغيير و رفت‌وآمد زیاد کاربران از ويژگی‌های ذاتی اين شبکه‌ها است و از طرف ديگر در اين شبكه‌ها، ديگر اين گره‌های معمولی هستند كه عهده‌دار تمامی وظايف هستند. به همين دلیل يکی از مشکلات اصلی فراروی اين شبكه‌ها، مقابله با تغييرات لحظه‌ای و فراهم آوردن ثبات در ارائه خدمات در بستری از بی‌ثباتی است.
+\end{article}
+
+\articlesep
+
+
+\begin{editorial}{1}{این یک مثال از مقاله‌ای از طرف ویرایشگر است.}{نام و نام خانوادگی}{4}
+يژگی اصلی که اين معماری را متمايز کرده و در دنيای اينترنت آن‌ها در مقابل معماری قبلی شبكه‌ها قرار داده است، امكان ايجاد ارتباط مستقيم بين كامپيوترهای مختلف بدون نياز به دخالت سرورهای قدرتمند در بين راه است. نام‌ اين نوع معماری هم در واقع بر گرفته شده از همین ارتباط مستقیم بين گره‌ها است. در واقع در اين نوع شبكه‌ها اثری از سرورها نيست و تمامی گره‌های معمولی موجود در شبكه، بايد وظايفی را که قبلا بر عهده‌ی سرورها بود، خود انجام دهند. بنابراين در اين نوع معماری گره‌های معمولی در ضمن اين‌که از خدمات شبکه بهره‌مند می‌شود بايد نقش خدمت‌گزار را هم ايفا کنند . در اين نوع شبکه‌ها گره‌های معمولی به كمك روش‌ها و پروتكل‌های توزيع شده، تمامی وظايف مسير يابی در شبكه، جستجوی منابع، امنيت شبكه و شناسايی هويت استفاده كننده‌ها و هم‌چنين مقابله با حملات احتمالی مهاجمان را بر عهده دارند.
+
+اما معماری همتابه‌همتا ويژگی‌های ديگری نيز دارد که آن را هم برای فراهم‌کنندگان کاربردها و هم برای استفاده‌کنندگان جذاب‌تر می‌کند. از آن‌جا که شبکه‌های همتابه‌همتا از همان زيرساخت‌های اينترنت استفاده می‌کنند ونيازی به راه‌اندازی سرورها ندارند، ساخت اين شبكه‌ها بسيار ارزان‌تر از ايجاد زير ساخت‌های لازم برای راه‌اندازی شبكه‌های مشتری/خدمت‌گزار است. هم‌چنين با زياد شدن تعداد کاربران چون درعمل تعداد گره‌های ارائه کننده‌ی خدمات هم بالا می‌رود، نه تنها عملكرد شبكه افت پيدا نمی‌كند بلكه انتظار بهبود عملکرد نيز می‌رود. گذشته از اين موارد، مالكيت اين شبكه‌ها به صورت اشتراكی بين تمام کاربران پخش شده و هيچ شخص يا شركتی نمی‌تواند سياست‌های دلخواه خود را در اين نوع شبكه‌ها اعمال کند.
+
+اماهيچ چيزی بی‌ بها به دست نمی‌آید. نبود سرور مرکزی اگر چه ويژگی‌های جذابی به شبکه‌های همتابه‌همتا می‌بخشد اما از طرف ديگر آن‌ها را با دشواری‌هايی نيز روبه‌رو می‌کند. عدم وجود يك هماهنگ كننده مركزی در شبكه، انجام بسياری از امور و ارائه خدمات را دچار مشكل می‌کند. از يک طرف، تغيير و رفت‌وآمد زیاد کاربران از ويژگی‌های ذاتی اين شبکه‌ها است و از طرف ديگر در اين شبكه‌ها، ديگر اين گره‌های معمولی هستند كه عهده‌دار تمامی وظايف هستند. به همين دلیل يکی از مشکلات اصلی فراروی اين شبكه‌ها، مقابله با تغييرات لحظه‌ای و فراهم آوردن ثبات در ارائه خدمات در بستری از بی‌ثباتی است.
+\end{editorial}
+
+\articlesep
+
+
+\begin{shortarticle}{4}{محیط مقالهٔ کوتاه}{محیط مقالهٔ کوتاه داخل مجلهٔ زی‌پرشین}{5}
+\shortarticleitem{این یک تیتر کوتاه است}{ويژگی اصلی که اين معماری را متمايز کرده و در دنيای اينترنت آن‌ها در مقابل معماری قبلی شبكه‌ها قرار داده است، امكان ايجاد ارتباط مستقيم بين كامپيوترهای مختلف بدون نياز به دخالت سرورهای قدرتمند در بين راه است. نام‌ اين نوع معماری هم در واقع بر گرفته شده از همین ارتباط مستقیم بين گره‌ها است. در واقع در اين نوع شبكه‌ها اثری از سرورها نيست و تمامی گره‌های معمولی موجود در شبكه، بايد وظايفی را که قبلا بر عهده‌ی سرورها بود، خود انجام دهند. بنابراين در اين نوع معماری گره‌های معمولی در ضمن اين‌که از خدمات شبکه بهره‌مند می‌شود بايد نقش خدمت‌گزار را هم ايفا کنند . در اين نوع شبکه‌ها گره‌های معمولی به كمك روش‌ها و پروتكل‌های توزيع شده، تمامی وظايف مسير يابی در شبكه، جستجوی منابع، امنيت شبكه و شناسايی هويت استفاده كننده‌ها و هم‌چنين مقابله با حملات احتمالی مهاجمان را بر عهده دارند.}
+\shortarticleitem{یک تیتر کوتاه دیگر}{ويژگی اصلی که اين معماری را متمايز کرده و در دنيای اينترنت آن‌ها در مقابل معماری قبلی شبكه‌ها قرار داده است، امكان ايجاد ارتباط مستقيم بين كامپيوترهای مختلف بدون نياز به دخالت سرورهای قدرتمند در بين راه است. نام‌ اين نوع معماری هم در واقع بر گرفته شده از همین ارتباط مستقیم بين گره‌ها است. در واقع در اين نوع شبكه‌ها اثری از سرورها نيست و تمامی گره‌های معمولی موجود در شبكه، بايد وظايفی را که قبلا بر عهده‌ی سرورها بود، خود انجام دهند. بنابراين در اين نوع معماری گره‌های معمولی در ضمن اين‌که از خدمات شبکه بهره‌مند می‌شود بايد نقش خدمت‌گزار را هم ايفا کنند . در اين نوع شبکه‌ها گره‌های معمولی به كمك روش‌ها و پروتكل‌های توزيع شده، تمامی وظايف مسير يابی در شبكه، جستجوی منابع، امنيت شبكه و شناسايی هويت استفاده كننده‌ها و هم‌چنين مقابله با حملات احتمالی مهاجمان را بر عهده دارند.}
+\shortarticleitem{یک تیتر کوتاه دیگر}{ويژگی اصلی که اين معماری را متمايز کرده و در دنيای اينترنت آن‌ها در مقابل معماری قبلی شبكه‌ها قرار داده است، امكان ايجاد ارتباط مستقيم بين كامپيوترهای مختلف بدون نياز به دخالت سرورهای قدرتمند در بين راه است. نام‌ اين نوع معماری هم در واقع بر گرفته شده از همین ارتباط مستقیم بين گره‌ها است. در واقع در اين نوع شبكه‌ها اثری از سرورها نيست و تمامی گره‌های معمولی موجود در شبكه، بايد وظايفی را که قبلا بر عهده‌ی سرورها بود، خود انجام دهند. بنابراين در اين نوع معماری گره‌های معمولی در ضمن اين‌که از خدمات شبکه بهره‌مند می‌شود بايد نقش خدمت‌گزار را هم ايفا کنند . در اين نوع شبکه‌ها گره‌های معمولی به كمك روش‌ها و پروتكل‌های توزيع شده، تمامی وظايف مسير يابی در شبكه، جستجوی منابع، امنيت شبكه و شناسايی هويت استفاده كننده‌ها و هم‌چنين مقابله با حملات احتمالی مهاجمان را بر عهده دارند.}
+\shortarticleitem{یک تیتر کوتاه دیگر}{ويژگی اصلی که اين معماری را متمايز کرده و در دنيای اينترنت آن‌ها در مقابل معماری قبلی شبكه‌ها قرار داده است، امكان ايجاد ارتباط مستقيم بين كامپيوترهای مختلف بدون نياز به دخالت سرورهای قدرتمند در بين راه است. نام‌ اين نوع معماری هم در واقع بر گرفته شده از همین ارتباط مستقیم بين گره‌ها است. در واقع در اين نوع شبكه‌ها اثری از سرورها نيست و تمامی گره‌های معمولی موجود در شبكه، بايد وظايفی را که قبلا بر عهده‌ی سرورها بود، خود انجام دهند. بنابراين در اين نوع معماری گره‌های معمولی در ضمن اين‌که از خدمات شبکه بهره‌مند می‌شود بايد نقش خدمت‌گزار را هم ايفا کنند . در اين نوع شبکه‌ها گره‌های معمولی به كمك روش‌ها و پروتكل‌های توزيع شده، تمامی وظايف مسير يابی در شبكه، جستجوی منابع، امنيت شبكه و شناسايی هويت استفاده كننده‌ها و هم‌چنين مقابله با حملات احتمالی مهاجمان را بر عهده دارند.}
+\shortarticleitem{یک تیتر کوتاه دیگر}{ويژگی اصلی که اين معماری را متمايز کرده و در دنيای اينترنت آن‌ها در مقابل معماری قبلی شبكه‌ها قرار داده است، امكان ايجاد ارتباط مستقيم بين كامپيوترهای مختلف بدون نياز به دخالت سرورهای قدرتمند در بين راه است. نام‌ اين نوع معماری هم در واقع بر گرفته شده از همین ارتباط مستقیم بين گره‌ها است. در واقع در اين نوع شبكه‌ها اثری از سرورها نيست و تمامی گره‌های معمولی موجود در شبكه، بايد وظايفی را که قبلا بر عهده‌ی سرورها بود، خود انجام دهند. بنابراين در اين نوع معماری گره‌های معمولی در ضمن اين‌که از خدمات شبکه بهره‌مند می‌شود بايد نقش خدمت‌گزار را هم ايفا کنند . در اين نوع شبکه‌ها گره‌های معمولی به كمك روش‌ها و پروتكل‌های توزيع شده، تمامی وظايف مسير يابی در شبكه، جستجوی منابع، امنيت شبكه و شناسايی هويت استفاده كننده‌ها و هم‌چنين مقابله با حملات احتمالی مهاجمان را بر عهده دارند.}
+\shortarticleitem{یک تیتر کوتاه دیگر}{ويژگی اصلی که اين معماری را متمايز کرده و در دنيای اينترنت آن‌ها در مقابل معماری قبلی شبكه‌ها قرار داده است، امكان ايجاد ارتباط مستقيم بين كامپيوترهای مختلف بدون نياز به دخالت سرورهای قدرتمند در بين راه است. نام‌ اين نوع معماری هم در واقع بر گرفته شده از همین ارتباط مستقیم بين گره‌ها است. در واقع در اين نوع شبكه‌ها اثری از سرورها نيست و تمامی گره‌های معمولی موجود در شبكه، بايد وظايفی را که قبلا بر عهده‌ی سرورها بود، خود انجام دهند. بنابراين در اين نوع معماری گره‌های معمولی در ضمن اين‌که از خدمات شبکه بهره‌مند می‌شود بايد نقش خدمت‌گزار را هم ايفا کنند . در اين نوع شبکه‌ها گره‌های معمولی به كمك روش‌ها و پروتكل‌های توزيع شده، تمامی وظايف مسير يابی در شبكه، جستجوی منابع، امنيت شبكه و شناسايی هويت استفاده كننده‌ها و هم‌چنين مقابله با حملات احتمالی مهاجمان را بر عهده دارند.}
+\end{shortarticle}
+
+\articlesep
+
+\end{document}
+%</magazine-sample.tex>
+%<*test-correction.tex>
+\documentclass{article}
+\usepackage[correction]{xepersian-multiplechoice}
+\usepackage{xepersian}
+\settextfont[Scale=1]{XB Zar}
+\setlatintextfont[Scale=1]{Linux Libertine}
+\setdigitfont[Scale=1]{Parsi Digits}
+\begin{document}
+\begin{question}{اگر ‎$A=\{ 1,2\} $‎ و ‎$B=\{ 2,3\} $‎ آنگاه حاصل $B^2-A\times B$ کدام است.}
+\false $\{(3,2),(3,3)\} $
+\true $\{(2,2),(2,3)\} $
+\false $\{(2,3),(3,3)\} $
+\false $\{(2,2),(3,2)\} $
+\end{question}
+
+\begin{question}{اگر ‎$A=\{ 1,2\} $‎ و ‎$B=\{ 2,3\} $‎ آنگاه حاصل $B^2-A\times B$ کدام است.}
+\true $x$
+\false $y$
+\false $z$
+\false $t$
+\end{question}
+
+\begin{question}{مجموعه‎ $(B-A^{'})^{'}$ ‎برابر است با:}
+\false $B^{'}\bigcap A$
+\false $B'\bigcup A' $
+\true $A$
+\false هیچکدام.
+\end{question}
+
+\begin{question}{صورت متعارفی عدد مختلط ‎$\frac{7+i}{1-i}$‎ کدام است.}
+\false $4+4i$
+\false $4-3i$
+\false $3+4i$
+\true $3-3i$
+\end{question}
+\begin{correction}
+جواب درست یکی از اینها است.
+\end{correction}
+
+
+\end{document}
+%</test-correction.tex>
+%<*test-empty-form.tex>
+\documentclass{article}
+\usepackage{xepersian-multiplechoice}
+\usepackage{xepersian}
+\settextfont[Scale=1]{XB Zar}
+\setlatintextfont[Scale=1]{Linux Libertine}
+\setdigitfont[Scale=1]{Parsi Digits}
+\begin{document}
+\begin{question}{اگر ‎$A=\{ 1,2\} $‎ و ‎$B=\{ 2,3\} $‎ آنگاه حاصل $B^2-A\times B$ کدام است.}
+\false $\{(3,2),(3,3)\} $
+\true $\{(2,2),(2,3)\} $
+\false $\{(2,3),(3,3)\} $
+\false $\{(2,2),(3,2)\} $
+\end{question}
+
+\begin{question}{اگر ‎$A=\{ 1,2\} $‎ و ‎$B=\{ 2,3\} $‎ آنگاه حاصل $B^2-A\times B$ کدام است.}
+\true $x$
+\false $y$
+\false $z$
+\false $t$
+\end{question}
+
+\begin{question}{مجموعه‎ $(B-A^{'})^{'}$ ‎برابر است با:}
+\false $B^{'}\bigcap A$
+\false $B'\bigcup A' $
+\true $A$
+\false هیچکدام.
+\end{question}
+
+\begin{question}{صورت متعارفی عدد مختلط ‎$\frac{7+i}{1-i}$‎ کدام است.}
+\false $4+4i$
+\false $4-3i$
+\false $3+4i$
+\true $3-3i$
+\end{question}
+\begin{correction}
+جواب درست یکی از اینها است.
+\end{correction}
+\bigskip
+
+\begin{center}
+\makeform
+\end{center}
+\end{document}
+%</test-empty-form.tex>
+%<*test-question-only.tex>
+\documentclass{article}
+\usepackage{xepersian-multiplechoice}
+\usepackage{xepersian}
+\settextfont[Scale=1]{XB Zar}
+\setlatintextfont[Scale=1]{Linux Libertine}
+\setdigitfont[Scale=1]{Parsi Digits}
+\begin{document}
+\begin{question}{اگر ‎$A=\{ 1,2\} $‎ و ‎$B=\{ 2,3\} $‎ آنگاه حاصل $B^2-A\times B$ کدام است.}
+\false $\{(3,2),(3,3)\} $
+\true $\{(2,2),(2,3)\} $
+\false $\{(2,3),(3,3)\} $
+\false $\{(2,2),(3,2)\} $
+\end{question}
+
+\begin{question}{اگر ‎$A=\{ 1,2\} $‎ و ‎$B=\{ 2,3\} $‎ آنگاه حاصل $B^2-A\times B$ کدام است.}
+\true $x$
+\false $y$
+\false $z$
+\false $t$
+\end{question}
+
+\begin{question}{مجموعه‎ $(B-A^{'})^{'}$ ‎برابر است با:}
+\false $B^{'}\bigcap A$
+\false $B'\bigcup A' $
+\true $A$
+\false هیچکدام.
+\end{question}
+
+\begin{question}{صورت متعارفی عدد مختلط ‎$\frac{7+i}{1-i}$‎ کدام است.}
+\false $4+4i$
+\false $4-3i$
+\false $3+4i$
+\true $3-3i$
+\end{question}
+\begin{correction}
+جواب درست یکی از اینها است.
+\end{correction}
+
+
+\end{document}
+%</test-question-only.tex>
+%<*test-solution-form.tex>
+\documentclass{article}
+\usepackage{xepersian-multiplechoice}
+\usepackage{xepersian}
+\settextfont[Scale=1]{XB Zar}
+\setlatintextfont[Scale=1]{Linux Libertine}
+\setdigitfont[Scale=1]{Parsi Digits}
+\begin{document}
+\begin{question}{اگر ‎$A=\{ 1,2\} $‎ و ‎$B=\{ 2,3\} $‎ آنگاه حاصل $B^2-A\times B$ کدام است.}
+\false $\{(3,2),(3,3)\} $
+\true $\{(2,2),(2,3)\} $
+\false $\{(2,3),(3,3)\} $
+\false $\{(2,2),(3,2)\} $
+\end{question}
+
+\begin{question}{اگر ‎$A=\{ 1,2\} $‎ و ‎$B=\{ 2,3\} $‎ آنگاه حاصل $B^2-A\times B$ کدام است.}
+\true $x$
+\false $y$
+\false $z$
+\false $t$
+\end{question}
+
+\begin{question}{مجموعه‎ $(B-A^{'})^{'}$ ‎برابر است با:}
+\false $B^{'}\bigcap A$
+\false $B'\bigcup A' $
+\true $A$
+\false هیچکدام.
+\end{question}
+
+\begin{question}{صورت متعارفی عدد مختلط ‎$\frac{7+i}{1-i}$‎ کدام است.}
+\false $4+4i$
+\false $4-3i$
+\false $3+4i$
+\true $3-3i$
+\end{question}
+\begin{correction}
+جواب درست یکی از اینها است.
+\end{correction}
+
+\bigskip
+\begin{center}
+\makemask
+\end{center}
+\end{document}
+%</test-solution-form.tex>
+%<*acm-fa-output.tex>
+\documentclass[11pt,a4paper]{article}
+
+
+\usepackage{verbatim}
+\usepackage{xepersian}
+\settextfont[Scale=1]{XB Zar}%{XB Zar}
+\setlatintextfont[Scale=.95]{Linux Libertine}%{Arial}%
+\setdigitfont{Parsi Digits}
+
+\title{نمونه خروجی با سبک فارسی \lr{acm-fa} در زی‌پرشین}
+\author{}\date{}
+\begin{document}
+\maketitle
+\nocite{*}
+\bibliographystyle{acm-fa}%{ieeetr-fa}%{persia}%
+\bibliography{MyReferences}
+
+
+\end{document}
+%</acm-fa-output.tex>
+%<*bibtex-example.tex>
+\documentclass[11pt,a4paper]{article}
+% محمود امین‌طوسی، http://webpages.iust.ac.ir/mamintoosi
+% فایل حاضر مثالی برای استفاده از سبک‌های فارسی در زی‌پرشین می‌باشد.
+% توجه نمایید که برای استفاده از این مثال باید به صورت زیر عمل نمایید:
+% xelatex filename (در نوت‌پد++ F6 یا Ctrl+F6) - با توجه به راهنمای زی‌پرشین
+% bibtex filename (تایپ دستور در خط فرمان نوت‌پد++)
+% xelatex filename (در نوت‌پد++ F6)
+% xelatex filename (در نوت‌پد++ F6 یا Ctrl+F6)
+% در این مثال به جای filename باید bibtex_example قرار دهید.
+% برای ویرایش مدخل‌ها فایل MyReferences.bib را باز کنید. در صورت تغییر این فایل بایستی دو مرحله‌ی میانی را پس از ذخیره‌ی آن اجرا نمایید.
+% در صورت تغییر در ارجاعات در این فایل باید هر چهار مرحله انجام شوند.
+
+% به جای unsrt می‌توانید سایر سبک‌ها را قرار داده و نتیجه را مشاهده نمایید. (plain-fa, acm-fa, ieeetr-fa, persia)
+
+\usepackage{verbatim}
+\usepackage{backref}
+\def\backrefpagesname{}
+\usepackage{xepersian}
+\settextfont[Scale=1]{XB Zar}
+\setlatintextfont[Scale=.95]{Linux Libertine}%{Times New latin}
+\setdigitfont{Parsi Digits}
+
+\title{نمونه خروجی با استیل فارسی \lr{unsrt-fa} برای \lr{BibTeX} در زی‌پرشین}
+\author{}\date{}
+\begin{document}
+\maketitle
+
+مرجع \cite{امیدعلی82دکترا} یک نمونه پروژه دکترا و مرجع\cite{واحدی87} یک نمونه مقاله مجله فارسی است.
+مرجع \cite{Baker02limits} یک نمونه مقاله انگلیسی است که در بین مراجع فارسی قرار گرفته است، مرجع \cite{Amintoosi87using} یک نمونه مقاله کنفرانس فارسی و
+مرجع \cite{استالینگ۸۰کتاب} یک نمونه کتاب فارسی با ذکر مترجمان و ویراستاران فارسی است. مرجع \cite{Khalighi07MscThesis} یک نمونه پروژه کارشناسی ارشد انگلیسی و
+\cite{خلیقی۸۷زی‌پرشین} هم یک نمونه متفرقه می‌باشند.
+
+%\nocite{*}
+{\small
+\bibliographystyle{unsrt-fa}%{plain-fa}%{ieeetr-fa}%{persia}%
+\bibliography{MyReferences}
+}
+
+\end{document}
+%</bibtex-example.tex>
+%<*ieeetr-fa-output.tex>
+\documentclass[11pt,a4paper]{article}
+% محمود امین‌طوسی، http://webpages.iust.ac.ir/mamintoosi
+
+\usepackage{verbatim}
+\usepackage{xepersian}
+\settextfont[Scale=1]{XB Zar}%{XB Zar}
+\setlatintextfont[Scale=.95]{Linux Libertine}%{Arial}%
+\setdigitfont{Parsi Digits}
+
+\title{نمونه خروجی با سبک فارسی \lr{ieeetr-fa} در زی‌پرشین}
+\author{}\date{}
+\begin{document}
+\maketitle
+
+\nocite{*}
+
+\bibliographystyle{ieeetr-fa}%{persia}%
+\bibliography{MyReferences}
+
+
+\end{document}
+%</ieeetr-fa-output.tex>
+%<*MyReferences.bib>
+@article{Baker02limits,
+ author = {Baker,, Simon and Kanade,, Takeo},
+ title = {Limits on Super-Resolution and How to Break Them},
+ journal = {IEEE Trans. Pattern Anal. Mach. Intell.},
+ volume = {24},
+ number = {9},
+ year = {2002},
+ issn = {0162-8828},
+ pages = {1167--1183},
+ publisher = {IEEE Computer Society},
+ address = {Washington, DC, USA}
+ }
+
+@CONFERENCE{Amintoosi87using,
+ AUTHOR = {\noopsort{امین‌طوسی,محمود}{امین‌طوسی,محمود} and others},
+ TITLE = {استفاده از تجزیه ماتریس در وضوح برتر},
+ BOOKTITLE = {پنجمین کنفرانس بینائی ماشین},
+ YEAR = {1387},
+ ORGANIZATION = {دانشگاه تبریز},
+ ADDRESS = {تبریز، ایران},
+ PAGES = {172-178},
+ LANGUAGE = {Persian}
+}
+
+@MASTERSTHESIS{پورموسی۸۸ارشد,
+ AUTHOR = {\noopsort{بپورموسی, امیرمسعود}{پورموسی, امیرمسعود}},
+ TITLE = {یک موضوع فیزیک},
+ SCHOOL = {دانشکده فیزیک، دانشگاه صنعتی‌شریف},
+ YEAR = {۱۳۸۸},
+ MONTH = {مرداد},
+ NOTE = {(در حال انجام)},
+ LANGUAGE = {Persian}
+}
+
+@MASTERSTHESIS{Khalighi07MscThesis,
+ AUTHOR = {Vafa Khalighi},
+ TITLE = {Category Theory},
+ SCHOOL = {Sydny Univ.},
+ YEAR = {2007},
+ MONTH = {April}
+}
+
+@PHDTHESIS{امیدعلی82دکترا,
+ AUTHOR = {\noopsort{امیدعلی, مهدی}{امیدعلی, مهدی}},
+ TITLE = {تابع هیلبرت},
+ SCHOOL = {دانشکده ریاضی، دانشگاه امیرکبیر},
+ YEAR = {1382},
+ MONTH = {تیر},
+ LANGUAGE = {Persian}
+}
+
+@MISC{خلیقی۸۷زی‌پرشین,
+ AUTHOR = {\noopsort{خلیقی,وفا}{خلیقی,وفا} and امیدعلی, مهدی and واحدی,مصطفی.},
+ TITLE = {زی‌پرشین (\lr{\XePersian}): بسته فارسی برای حروف‌چینی در \lr{\LaTeX2e}},
+ HOWPUBLISHED = {\lr{http://developer.berlios.de/projects/xepersian}},
+ YEAR = {۱۳۸۷},
+ LANGUAGE = {Persian}
+ }
+
+@BOOK{استالینگ۸۰کتاب,
+ AUTHOR = {\noopsort{استالینگ, ویلیام}{استالینگ, ویلیام}},
+ EDITOR = {برنجکوب, محمود},
+ translator = { صدیقی‌ مشکنانی, محسن and پدرام,حسین },
+ TITLE = {اصول طراحی و ویژگیهای داخلی سیستم‌های عامل},
+ PUBLISHER = {نشر شیخ بهایی},
+ YEAR = {۱۳۸۰},
+ ADDRESS = {اصفهان},
+ edition = {سوم},
+ MONTH = {بهار},
+ LANGUAGE = {Persian}
+}
+
+@ARTICLE{واحدی87,
+ AUTHOR = {\noopsort{واحدی, مصطفی}{واحدی, مصطفی}},
+ TITLE = {موضوعی جدید در هندسه محاسباتی},
+ JOURNAL = {مجله فارسی نمونه},
+ VOLUME = {1},
+ YEAR = {1387},
+ NUMBER = {2},
+ MONTH = {آبان},
+ PAGES = {22-30},
+ LANGUAGE = {Persian}
+}
+
+@CONFERENCE{Amintoosi09regional,
+ author = {Mahmood Amintoosi and Mahmood Fathy and Nasser Mozayani},
+ title = {Regional Varying Image Super-Resolution},
+ booktitle = {(CSO 2009) The 2009 IEEE International Joint Conference on Computational Sciences and Optimization},
+ year = {2009},
+ month = {24-26 April},
+ organization = {City University},
+ address = {Sanya, Hainan, China},
+ pages = {101-105}
+}
+
+@PHDTHESIS{Farsiu05thesis,
+ AUTHOR = {Sina Farsiu},
+ TITLE = {A Fast and Robust Framework for Image Fusion and Enhancement},
+ SCHOOL = {Electrical Engineeting},
+ YEAR = {2005},
+ ADDRESS = {UC Santa Cruz},
+ MONTH = {December}
+}
+
+
+@BOOK{Gonzalez02book,
+ AUTHOR = {Gonzalez,, Rafael C. and Woods,, Richard E.},
+ TITLE = {Digital Image Processing},
+ PUBLISHER = {Prentice-Hall, Inc.},
+ YEAR = {2006},
+ ISBN = {013168728X},
+ EDITION = {3rd},
+ ADDRESS = {Upper Saddle River, NJ, USA},
+}
+%</MyReferences.bib>
+%<*plain-fa-output.tex>
+\documentclass[11pt,a4paper]{article}
+% محمود امین‌طوسی، http://webpages.iust.ac.ir/mamintoosi
+
+\usepackage{verbatim}
+\usepackage{xepersian}
+\settextfont[Scale=1]{XB Zar}%{XB Zar}
+\setlatintextfont[Scale=.95]{Linux Libertine}%{Arial}%
+\setdigitfont{XB Zar}
+
+\title{نمونه خروجی با سبک فارسی \lr{plain-fa} در زی‌پرشین}
+\author{}\date{}
+\begin{document}
+\maketitle
+
+\nocite{*}
+
+\bibliographystyle{plain-fa}%{ieeetr-fa}%{persia}%
+\bibliography{MyReferences1}
+
+
+\end{document}
+%</plain-fa-output.tex>
+% \fi
+%
+% \typeout{*************************************************************}
+% \typeout{*}
+% \typeout{* To finish the installation you have to move the following}
+% \typeout{* file into a directory searched by TeX:}
+% \typeout{*}
+% \typeout{* \space\space\space all *.cls, *.sty and *.def files}
+% \typeout{* You also need to compile the *.map files with teckit_compile}
+% \typeout{* and place the resulting *.tec files under}
+% \typeout{* .../fonts/misc/xetex/fontmapping/xepersian}
+% \typeout{*}
+% \typeout{*************************************************************}
+\endinput