% \iffalse %<*internal> \iffalse % %<*readme> ____________________ The XePersian package v25.5 The xepersian package provides a convenient interface for typesetting Persian and English texts in LaTeX, using XeTeX engine. If you want to report any bugs or typos and corrections in the documentation, or ask for any new features, or suggest any improvements, or ask any questions about the package, then please use the issue tracker: In doing so, please always explain your issue well enough, and always include a minimal working example showing the issue. You may also have conversations, ask questions and post answers without opening issues using the Discussions space: The announcements for the new releases of the package will also appear in the Discussions space under the Announcements category. Current version release date: 2024/12/20 ___________________________________________ Vafa Khalighi Copyright (c) Vafa Khalighi 2008--2024 Copyright (c) bidi-tex GitHub Organization 2018--2020 Distributed under the LaTeX Project Public License It may be distributed and/or modified 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 “author-maintained” (as per LPPL maintenance status) by Vafa Khalighi. % %<*internal> \fi \begingroup % %<*batchfile> \input docstrip.tex \let\MetaPrefix\relax \keepsilent \preamble __________________________________________________ Vafa Khalighi Copyright (c) 2008--2024 Vafa Khalighi Copyright (c) 2018--2020 bidi-tex GitHub Organization It may be distributed and/or modified 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 “author-maintained” (as per LPPL maintenance status) by Vafa Khalighi. \endpreamble \askforoverwritefalse \let\MetaPrefix\DoubleperCent \generate{\file{algorithmic-xepersian.def}{\from{\jobname.dtx}{table,algorithmic-xepersian.def}}} \generate{\file{algorithm-xepersian.def}{\from{\jobname.dtx}{table,algorithm-xepersian.def}}} \generate{\file{amsart-xepersian.def}{\from{\jobname.dtx}{table,amsart-xepersian.def}}} \generate{\file{amsbook-xepersian.def}{\from{\jobname.dtx}{table,amsbook-xepersian.def}}} \generate{\file{appendix-xepersian.def}{\from{\jobname.dtx}{table,appendix-xepersian.def}}} \generate{\file{article-xepersian.def}{\from{\jobname.dtx}{table,article-xepersian.def}}} \generate{\file{artikel1-xepersian.def}{\from{\jobname.dtx}{table,artikel1-xepersian.def}}} \generate{\file{artikel2-xepersian.def}{\from{\jobname.dtx}{table,artikel2-xepersian.def}}} \generate{\file{artikel3-xepersian.def}{\from{\jobname.dtx}{table,artikel3-xepersian.def}}} \generate{\file{backref-xepersian.def}{\from{\jobname.dtx}{table,backref-xepersian.def}}} \generate{\file{beamer-xepersian.def}{\from{\jobname.dtx}{table,beamer-xepersian.def}}} \generate{\file{beamerbasetranslator-xepersian.def}{\from{\jobname.dtx}{table,beamerbasetranslator-xepersian.def}}} \generate{\file{bidituftesidenote-xepersian.def}{\from{\jobname.dtx}{table,bidituftesidenote-xepersian.def}}} \generate{\file{bidimoderncv-xepersian.def}{\from{\jobname.dtx}{table,bidimoderncv-xepersian.def}}} \generate{\file{boek3-xepersian.def}{\from{\jobname.dtx}{table,boek3-xepersian.def}}} \generate{\file{boek-xepersian.def}{\from{\jobname.dtx}{table,boek-xepersian.def}}} \generate{\file{bookest-xepersian.def}{\from{\jobname.dtx}{table,bookest-xepersian.def}}} \generate{\file{book-xepersian.def}{\from{\jobname.dtx}{table,book-xepersian.def}}} \generate{\file{breqn-xepersian.def}{\from{\jobname.dtx}{table,breqn-xepersian.def}}} \generate{\file{latex-localise-commands-xepersian.def}{\from{\jobname.dtx}{table,latex-localise-commands-xepersian.def}}} \generate{\file{color-localise-xepersian.def}{\from{\jobname.dtx}{table,color-localise-xepersian.def}}} \generate{\file{xepersian-localise-commands-xepersian.def}{\from{\jobname.dtx}{table,xepersian-localise-commands-xepersian.def}}} \generate{\file{enumerate-xepersian.def}{\from{\jobname.dtx}{table,enumerate-xepersian.def}}} \generate{\file{enumitem-xepersian.def}{\from{\jobname.dtx}{table,enumitem-xepersian.def}}} \generate{\file{latex-localise-environments-xepersian.def}{\from{\jobname.dtx}{table,latex-localise-environments-xepersian.def}}} \generate{\file{xepersian-localise-environments-xepersian.def}{\from{\jobname.dtx}{table,xepersian-localise-environments-xepersian.def}}} \generate{\file{extarticle-xepersian.def}{\from{\jobname.dtx}{table,extarticle-xepersian.def}}} \generate{\file{extbook-xepersian.def}{\from{\jobname.dtx}{table,extbook-xepersian.def}}} \generate{\file{extrafootnotefeatures-xepersian.def}{\from{\jobname.dtx}{table,extrafootnotefeatures-xepersian.def}}} \generate{\file{extreport-xepersian.def}{\from{\jobname.dtx}{table,extreport-xepersian.def}}} \generate{\file{fancyref-xepersian.def}{\from{\jobname.dtx}{table,fancyref-xepersian.def}}} \generate{\file{footnote-xepersian.def}{\from{\jobname.dtx}{table,footnote-xepersian.def}}} \generate{\file{framed-xepersian.def}{\from{\jobname.dtx}{table,framed-xepersian.def}}} \generate{\file{glossaries-xepersian.def}{\from{\jobname.dtx}{table,glossaries-xepersian.def}}} \generate{\file{hyperref-xepersian.def}{\from{\jobname.dtx}{table,hyperref-xepersian.def}}} \generate{\file{imsproc-xepersian.def}{\from{\jobname.dtx}{table,imsproc-xepersian.def}}} \generate{\file{kashida-xepersian.def}{\from{\jobname.dtx}{table,kashida-xepersian.def}}} \generate{\file{listings-xepersian.def}{\from{\jobname.dtx}{table,listings-xepersian.def}}} \generate{\file{loadingorder-xepersian.def}{\from{\jobname.dtx}{table,loadingorder-xepersian.def}}} \generate{\file{localise-xepersian.def}{\from{\jobname.dtx}{table,localise-xepersian.def}}} \generate{\file{memoir-xepersian.def}{\from{\jobname.dtx}{table,memoir-xepersian.def}}} \generate{\file{latex-localise-messages-xepersian.def}{\from{\jobname.dtx}{table,latex-localise-messages-xepersian.def}}} \generate{\file{minitoc-xepersian.def}{\from{\jobname.dtx}{table,minitoc-xepersian.def}}} \generate{\file{latex-localise-misc-xepersian.def}{\from{\jobname.dtx}{table,latex-localise-misc-xepersian.def}}} \generate{\file{natbib-xepersian.def}{\from{\jobname.dtx}{table,natbib-xepersian.def}}} \generate{\file{packages-localise-xepersian.def}{\from{\jobname.dtx}{table,packages-localise-xepersian.def}}} \generate{\file{url-xepersian.def}{\from{\jobname.dtx}{table,url-xepersian.def}}} \def\MetaPrefix{;;} \def\mapping@postamble{% \MetaPrefix ^^J% \MetaPrefix\space End of file `\outFileName'.% } \usepostamble\mapping@postamble \generate{\file{persian-tex-text.map}{\from{\jobname.dtx}{persian-tex-text.map}}} \generate{\file{persian-tex-text-nonumbers.map}{\from{\jobname.dtx}{persian-tex-text-nonumbers.map}}} \let\MetaPrefix\DoubleperCent \usepostamble\org@postamble \generate{\file{rapport1-xepersian.def}{\from{\jobname.dtx}{table,rapport1-xepersian.def}}} \generate{\file{rapport3-xepersian.def}{\from{\jobname.dtx}{table,rapport3-xepersian.def}}} \generate{\file{refrep-xepersian.def}{\from{\jobname.dtx}{table,refrep-xepersian.def}}} \generate{\file{report-xepersian.def}{\from{\jobname.dtx}{table,report-xepersian.def}}} \generate{\file{scrartcl-xepersian.def}{\from{\jobname.dtx}{table,scrartcl-xepersian.def}}} \generate{\file{scrbook-xepersian.def}{\from{\jobname.dtx}{table,scrbook-xepersian.def}}} \generate{\file{scrreprt-xepersian.def}{\from{\jobname.dtx}{table,scrreprt-xepersian.def}}} \generate{\file{soul-xepersian.def}{\from{\jobname.dtx}{table,soul-xepersian.def}}} \generate{\file{tkz-linknodes-xepersian.def}{\from{\jobname.dtx}{table,tkz-linknodes-xepersian.def}}} \generate{\file{tocloft-xepersian.def}{\from{\jobname.dtx}{table,tocloft-xepersian.def}}} \generate{\file{varioref-xepersian.def}{\from{\jobname.dtx}{table,varioref-xepersian.def}}} \generate{\file{xepersian.sty}{\from{\jobname.dtx}{table,xepersian.sty}}} \generate{\file{xepersian-magazine.cls}{\from{\jobname.dtx}{table,xepersian-magazine.cls}}} \generate{\file{xepersian-mathdigitspec.sty}{\from{\jobname.dtx}{table,xepersian-mathdigitspec.sty}}} \generate{\file{xepersian-multiplechoice.sty}{\from{\jobname.dtx}{table,xepersian-multiplechoice.sty}}} \generate{\file{xepersian-persiancal.sty}{\from{\jobname.dtx}{table,xepersian-persiancal.sty}}} % %\endbatchfile %<*internal> \generate{\file{\jobname.ins}{\from{\jobname.dtx}{batchfile}}} \nopreamble\nopostamble \generate{\file{README.txt}{\from{\jobname.dtx}{readme}}} \generate{\file{magazine-sample.tex}{\from{\jobname.dtx}{magazine-sample.tex}}} \generate{\file{test-correction.tex}{\from{\jobname.dtx}{test-correction.tex}}} \generate{\file{test-empty-form.tex}{\from{\jobname.dtx}{test-empty-form.tex}}} \generate{\file{test-question-only.tex}{\from{\jobname.dtx}{test-question-only.tex}}} \generate{\file{test-solution-form.tex}{\from{\jobname.dtx}{test-solution-form.tex}}} \generate{\file{xepersian-logo.tex}{\from{\jobname.dtx}{xepersian-logo.tex}}} \endgroup \immediate\write18{mv README.txt README} \immediate\write18{makeindex -s gind.ist -o \jobname.ind \jobname.idx} \immediate\write18{makeindex -s gglo.ist -o \jobname.gls \jobname.glo} % % %<*driver> \documentclass{ltxdoc} \input{xepersian-doc-preamble.ltx} \hypersetup{% pdftitle={Source documentation for version 25.5 of the XePersian package}% } \EnableCrossrefs \CodelineIndex %\RecordChanges \begin{document} \DocInput{\jobname.dtx} \PrintIndex % \PrintChanges \end{document} % % % % \fi % % \GetFileInfo{\jobname.dtx} % \title{\textcolor{xepersianblue}{\Huge The \textsf{\XePersian} \textit{Package}}\\ %\LARGE Persian for \LaTeXe, using {\XeTeX} engine\\[5pt] %\large Source documentation for \textcolor{xepersianblue}{version 25.5}} % \author{Vafa Khalighi\thanks{Thanks to the bidi-tex GitHub organization consisted of David Carlisle and other members of the {\LaTeX} team for maintaining the package in the period 2018--2020.}} %\setcounter{page}{0} %\thispagestyle{empty} %\includegraphics[width=.3\textwidth]{xepersian-logo}\qquad %\parindent 0pt %\vbox{\Huge %\textcolor{xepersianblue}{\Huge The \textsf{\XePersian} \textit{Package}} % %\Large %Source documentation for \textcolor{xepersianblue}{version 25.5}} % %\vskip 0pt plus 3fill %\textit{\large to my Master, \textbf{Ferdowsi The Great}} % %\vskip 0pt plus 3fill %{\color{red!85!black}\fbox{\begin{minipage}{\dimexpr\textwidth-2\fboxsep-2\fboxrule} %If you want to report any bugs or typos and corrections in the documentation, %or ask for any new features, or suggest any improvements, or ask any questions about the package, then please use the issue tracker: % %\medskip % \centerline{\url{https://github.com/xepersian/xepersian/issues}} % %\medskip %In doing so, please always explain your issue well enough, and always include %a minimal working example showing the issue. % %\bigskip %You may also have conversations, ask questions and post answers %without opening issues using the Discussions space: % %\medskip % \centerline{\url{https://github.com/xepersian/xepersian/discussions}} % %\medskip %The announcements for the new releases of the package will %also appear in the Discussions space under the Announcements %category. %\end{minipage} %}} % %\vskip 0pt plus 3fill % %Copyright (c) 2008--2024 Vafa Khalighi % %Copyright (c) 2018--2020 bidi-tex GitHub Organization % %\medskip %Permission is granted to distribute and/or modify \emph{both the documentation and the code} under the conditions of the \LaTeX{} Project Public License, either version 1.3c of this license or (at your option) any later version. % %\clearpage %\maketitle % \tableofcontents % \StopEventually{} % \section{File \texttt{algorithmic-xepersian.def}} %\iffalse %<*table> %\fi %% \CheckSum{10981} %% \CharacterTable %% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z %% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z %% Digits \0\1\2\3\4\5\6\7\8\9 %% Exclamation \! Double quote \" Hash (number) \# %% Dollar \$ Percent \% Ampersand \& %% Acute accent \' Left paren \( Right paren \) %% Asterisk \* Plus \+ Comma \, %% Minus \- Point \. Solidus \/ %% Colon \: Semicolon \; Less than \< %% Equals \= Greater than \> Question mark \? %% Commercial at \@ Left bracket \[ Backslash \\ %% Right bracket \] Circumflex \^ Underscore \_ %% Grave accent \` Left brace \{ Vertical bar \| %% Right brace \} Tilde \~} %% % \iffalse % %<*algorithmic-xepersian.def> %\fi % % % % \begin{macrocode} \ProvidesFile{algorithmic-xepersian.def}[2010/07/25 v0.2 adaptations for algorithmic package] \def\algorithmicrequire{\if@RTL\textbf{ورودی:}\else\textbf{Require:}\fi} \def\algorithmicensure{\if@RTL\textbf{خروجی:}\else\textbf{Ensure:}\fi} % \end{macrocode} % %\iffalse % %<*algorithm-xepersian.def> %\fi % \section{File \texttt{algorithm-xepersian.def}} % \begin{macrocode} \ProvidesFile{algorithm-xepersian.def}[2010/07/25 v0.2 adaptations for algorithm package] \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 % %<*amsart-xepersian.def> %\fi % \section{File \texttt{amsart-xepersian.def}} % \begin{macrocode} \ProvidesFile{amsart-xepersian.def}[2017/02/04 v0.4 adaptations for amsart class] \renewcommand \thepart {\@tartibi\c@part} \def\appendix{\par\c@section\z@ \c@subsection\z@ \let\sectionname\appendixname \def\thesection{\@harfi\c@section}} % \end{macrocode} % \iffalse % %<*amsbook-xepersian.def> %\fi % \section{File \texttt{amsbook-xepersian.def}} % \begin{macrocode} \ProvidesFile{amsbook-xepersian.def}[2017/02/04 v0.5 adaptations for amsbook class] \def\frontmatter{\cleardoublepage\pagenumbering{harfi}} \renewcommand \thepart {\@tartibi\c@part} \def\appendix{\par \c@chapter\z@ \c@section\z@ \let\chaptername\appendixname \def\thechapter{\@harfi\c@chapter}} % \end{macrocode} % \iffalse % %<*appendix-xepersian.def> %\fi % \section{File \texttt{appendix-xepersian.def}} % \begin{macrocode} \ProvidesFile{appendix-xepersian.def}[2015/02/01 v0.1 adaptations for appendix package] \renewcommand{\@resets@pp}{\par \@ppsavesec \stepcounter{@pps} \setcounter{section}{0}% \if@chapter@pp \setcounter{chapter}{0}% \renewcommand\@chapapp{\appendixname}% \renewcommand\thechapter{\@harfi\c@chapter}% \else \setcounter{subsection}{0}% \renewcommand\thesection{\@harfi\c@section}% \fi \restoreapp } % \end{macrocode} % \iffalse % %<*article-xepersian.def> %\fi % \section{File \texttt{article-xepersian.def}} % \begin{macrocode} \ProvidesFile{article-xepersian.def}[2010/07/25 v0.2 adaptations for standard article class] \renewcommand \thepart {\@tartibi\c@part} \renewcommand\appendix{\par \setcounter{section}{0}% \setcounter{subsection}{0}% \gdef\thesection{\@harfi\c@section}} % \end{macrocode} % \iffalse % %<*artikel1-xepersian.def> %\fi % \section{File \texttt{artikel1-xepersian.def}} % \begin{macrocode} \ProvidesFile{artikel1-xepersian.def}[2010/07/25 v0.1 adaptations for artikel1 class] \renewcommand*\thepart{\@tartibi\c@part} \renewcommand*\appendix{\par \setcounter{section}{0}% \setcounter{subsection}{0}% \gdef\thesection{\@harfi\c@section}} % \end{macrocode} % \iffalse % %<*artikel2-xepersian.def> %\fi % \section{File \texttt{artikel2-xepersian.def}} % \begin{macrocode} \ProvidesFile{artikel2-xepersian.def}[2010/07/25 v0.1 adaptations for artikel2 class] \renewcommand*\thepart{\@tartibi\c@part} \renewcommand*\appendix{\par \setcounter{section}{0}% \setcounter{subsection}{0}% \gdef\thesection{\@harfi\c@section}} % \end{macrocode} % \iffalse % %<*artikel3-xepersian.def> %\fi % \section{File \texttt{artikel3-xepersian.def}} % \begin{macrocode} \ProvidesFile{artikel3-xepersian.def}[2010/07/25 v0.1 adaptations for artikel3 class] \renewcommand*\thepart{\@tartibi\c@part} \renewcommand*\appendix{\par \setcounter{section}{0}% \setcounter{subsection}{0}% \gdef\thesection{\@harfi\c@section}} % \end{macrocode} % \iffalse % %<*backref-xepersian.def> %\fi % \section{File \texttt{backref-xepersian.def}} % \begin{macrocode} \ProvidesFile{backref-xepersian.def}[2010/07/25 v0.1 adaptations for backref package] \def\backrefpagesname{\if@RTL صفحات\else pages\fi} \def\BR@Latincitex[#1]#2{% \BRorg@Latincitex[{#1}]{#2}% \ifBR@verbose \PackageInfo{backref}{back Latin cite \string`#2\string'}% \fi \Hy@backout{#2}% } \AtBeginDocument{% \@ifundefined{NAT@parse}{% \global\let\BRorg@Latincitex\@Latincitex \global\let\@Latincitex\BR@Latincitex }{% \@ifpackageloaded{hyperref}{}{% \def\hyper@natlinkstart#1{\Hy@backout{#1}}% }% \PackageInfo{backref}{** backref set up for natbib **}% }% }% % \end{macrocode} % \iffalse % %<*beamer-xepersian.def> %\fi % \section{File \texttt{beamer-xepersian.def}} % \begin{macrocode} \ProvidesFile{beamer-xepersian.def}[2022/06/27 v0.2 xepersian changes to beamer class] \usefonttheme[stillsansserifmath]{serif} \renewcommand*{\bidi@beamer@today}{% \the\persianyear-\ifnum\persianmonth<10\relax0\fi\the\persianmonth-\ifnum\persianday<10\relax0\fi\the\persianday} % \end{macrocode} % \iffalse % %<*beamerbasetranslator-xepersian.def> %\fi % \section{File \texttt{beamerbasetranslator-xepersian.def}} % \begin{macrocode} \ProvidesFile{beamerbasetranslator-xepersian.def}[2022/06/27 v0.3 xepersian changes to beamerbasetranslator package] \newcommand*{\ProvidePersianTranslation}[2]{% \providetranslation{#1}{\ifRtoL{#2}{#1}}% } \ProvidePersianTranslation{Corollary}{نتیجه} \ProvidePersianTranslation{Definition}{تعریف} \ProvidePersianTranslation{Definitions}{تعریف‌ها} \ProvidePersianTranslation{Example}{مثال} \ProvidePersianTranslation{Examples}{مثال‌ها} \ProvidePersianTranslation{Fact}{حقیقت} \ProvidePersianTranslation{From?}{از} \ProvidePersianTranslation{Lemma}{لما} \ProvidePersianTranslation{Problem}{مساله} \ProvidePersianTranslation{Section}{قسمت} \ProvidePersianTranslation{Solution}{راه‌حل} \ProvidePersianTranslation{Subsection}{زیرقسمت} \ProvidePersianTranslation{Theorem}{قضیه} \ProvidePersianTranslation{When?}{زمان} \ProvidePersianTranslation{Who?}{ارایه‌دهنده} % \end{macrocode} % \iffalse % %<*bidituftesidenote-xepersian.def> %\fi % \section{File \texttt{bidituftesidenote-xepersian.def}} % \begin{macrocode} \ProvidesFile{bidituftesidenote-xepersian.def}[2017/02/04 v0.3 xepersian changes to bidituftesidenote package] \setLTRcitationfont{\resetlatinfont\footnotesize} \renewcommand*{\@bidituftesidenote@LTRmarginfont}{\resetlatinfont\footnotesize} \renewcommand*{\@bidituftesidenote@RTLmarginfont}{\setpersianfont\footnotesize} % \end{macrocode} % \iffalse % %<*bidimoderncv-xepersian.def> %\fi % \section{File \texttt{bidimoderncv-xepersian.def}} % \begin{macrocode} \ProvidesFile{bidimoderncv-xepersian.def}[2010/07/25 v0.1 adaptations for bidimoderncv class] \def\refname{\if@RTL تألیفات\else Publications\fi} % \end{macrocode} % \iffalse % %<*boek3-xepersian.def> %\fi % \section{File \texttt{boek3-xepersian.def}} % \begin{macrocode} \ProvidesFile{boek3-xepersian.def}[2010/07/25 v0.1 adaptations for boek3 class] \renewcommand*\thepart{\@tartibi\c@part} \renewcommand*\frontmatter{% \cleardoublepage \@mainmatterfalse \pagenumbering{harfi}} \renewcommand*\appendix{\par \setcounter{chapter}{0}% \setcounter{section}{0}% \gdef\@chapapp{\appendixname}% \gdef\thechapter{\@harfi\c@chapter}} % \end{macrocode} % \iffalse % %<*boek-xepersian.def> %\fi % \section{File \texttt{boek-xepersian.def}} % \begin{macrocode} \ProvidesFile{boek-xepersian.def}[2010/07/25 v0.1 adaptations for boek class] \renewcommand*\thepart{\@tartibi\c@part} \renewcommand*\frontmatter{% \cleardoublepage \@mainmatterfalse \pagenumbering{harfi}} \renewcommand*\appendix{\par \setcounter{chapter}{0}% \setcounter{section}{0}% \gdef\@chapapp{\appendixname}% \gdef\thechapter{\@harfi\c@chapter}} % \end{macrocode} % \iffalse % %<*bookest-xepersian.def> %\fi % \section{File \texttt{bookest-xepersian.def}} % \begin{macrocode} \ProvidesFile{bookest-xepersian.def}[2010/07/25 v0.1 adaptations for bookest class] \renewcommand \thepart {\@tartibi\c@part} \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> %\fi % \section{File \texttt{book-xepersian.def}} % \begin{macrocode} \ProvidesFile{book-xepersian.def}[2010/07/25 v0.2 adaptations for standard book class] \renewcommand\frontmatter{% \cleardoublepage \@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} }%end appendix % \end{macrocode} % \iffalse % %<*breqn-xepersian.def> %\fi % \section{File \texttt{breqn-xepersian.def}} % \begin{macrocode} \ProvidesFile{breqn-xepersian.def}[2010/07/25 v0.1 adaptations for breqn package] \def\@dmath[#1]{\if@RTL\@RTLfalse\addfontfeatures{Mapping=farsidigits}\fi% \everydisplay\expandafter{\the\everydisplay \display@setup}% \if@noskipsec \leavevmode \fi \if@inlabel \leavevmode \global\@inlabelfalse \fi \if\eq@group\else\eq@prelim\fi \setkeys{breqn}{#1}% \the\eqstyle \eq@setnumber \begingroup \eq@setup@a \eq@startup } \def\@dgroup[#1]{\if@RTL\@RTLfalse\addfontfeatures{Mapping=farsidigits}\fi% \let\eq@group\@True \global\let\eq@GRP@first@dmath\@True \global\GRP@queue\@emptytoks \global\setbox\GRP@box\box\voidb@x \global\let\GRP@label\@empty \global\grp@wdL\z@\global\grp@wdR\z@\global\grp@wdT\z@ \global\grp@linewidth\z@\global\grp@wdNum\z@ \global\let\grp@eqs@numbered\@False \global\let\grp@aligned\@True \global\let\grp@shiftnumber\@False \eq@prelim \setkeys{breqn}{#1}% \if\grp@hasNumber \grp@setnumber \fi } \def\@dseries[#1]{\if@RTL\@RTLfalse\addfontfeatures{Mapping=farsidigits}\fi% \let\display@setup\dseries@display@setup % Question: should this be the default for dseries??? \global\eq@wdCond\z@ \@dmath[layout={M},#1]% \mathsurround\z@\@@math \penalty\@Mi \let\endmath\ends@math \def\premath{% \ifdim\lastskip<.3em \unskip \else\ifnum\lastpenalty<\@M \dquad\fi\fi }% \def\postmath{\unpenalty\eq@addpunct \penalty\intermath@penalty \dquad \@ignoretrue}% \ignorespaces } % \end{macrocode} % \iffalse % %<*latex-localise-commands-xepersian.def> %\fi % \section{File \texttt{latex-localise-commands-xepersian.def}} % \begin{macrocode} \ProvidesFile{latex-localise-commands-xepersian.def}[2014/02/05 v0.3 Persian localisation of LaTeX2e commands] \eqcommand{شمع‌جدول}{@arstrut} \eqcommand{فوق}{above} \eqcommand{فاصله‌کوتاه‌بالای‌نمایش}{abovedisplayshortskip} \eqcommand{فاصله‌بالای‌نمایش}{abovedisplayskip} \eqcommand{عنوان‌چکیده}{abstractname} \eqcommand{اکسنت}{accent} \eqcommand{فعال}{active} \eqcommand{بیفزاسطرفهرست}{addcontentsline} \eqcommand{اضافه‌برجریمه}{addpenalty} \eqcommand{نشانی}{address} \eqcommand{بیفزابه‌فهرست}{addtocontents} \eqcommand{اضافه‌برشمارنده}{addtocounter} \eqcommand{اضافه‌بربعد}{addtolength} \eqcommand{بیفزافضای‌و}{addvspace} \eqcommand{تنظیم‌بدنمایی}{adjdemerits} \eqcommand{بیفزابر}{advance} \eqcommand{بعدازانتساب}{afterassignment} \eqcommand{بعدازگروه}{aftergroup} \eqcommand{الف}{aleph} \eqcommand{خصیصه‌مستعارقلم}{aliasfontfeature} \eqcommand{انتخاب‌خصیصه‌مستعارقلم}{aliasfontfeatureoption} \eqcommand{شکستنی}{allowbreak} \eqcommand{تخصی@}{alloc@} \eqcommand{تخصیص‌یافته}{allocationnumber} \eqcommand{شکست‌نمایش‌مجاز}{allowdisplaybreaks} \eqcommand{حروف‌بزرگ}{Alph} \eqcommand{حروف‌کوچک}{alph} \eqcommand{نام‌همچنین}{alsoname} \eqcommand{و}{and} \eqcommand{زاویه}{angle} \eqcommand{عنوان‌پیوست}{appendixname} \eqcommand{تقریب}{approx} \eqcommand{عربی}{arabic} \eqcommand{آرگ}{arg} \eqcommand{رنگ‌خط‌جدول}{arrayrulecolor} \eqcommand{فاصله‌ستونهای‌آرایه}{arraycolsep} \eqcommand{ضخامت‌خط‌جدول}{arrayrulewidth} \eqcommand{کشیدگی‌آرایه}{arraystretch} \eqcommand{درآغازنوشتار}{AtBeginDocument} \eqcommand{درپایان‌نوشتار}{AtEndDocument} \eqcommand{درانتهای‌طبقه}{AtEndOfClass} \eqcommand{درانتهای‌سبک}{AtEndOfPackage} \eqcommand{نویسنده}{author} \eqcommand{مطلب‌پشت}{backmatter} \eqcommand{شکاف‌پشت}{backslash} \eqcommand{بدنمایی}{badness} \eqcommand{میله}{bar} \eqcommand{فاصله‌کرسی}{baselineskip} \eqcommand{کشش‌فاصله‌کرسی}{baselinestretch} \eqcommand{پردازش‌دسته‌ای}{batchmode} \eqcommand{شروع}{begin} \eqcommand{شروع‌چپ}{beginL} \eqcommand{شروع‌راست}{beginR} \eqcommand{شروع‌گروه}{begingroup} \eqcommand{فاصله‌کوتاه‌پایین‌نمایش}{belowdisplayshortskip} \eqcommand{فاصله‌پایین‌نمایش}{belowdisplayskip} \eqcommand{سیاه}{bf} \eqcommand{پیش‌فرض‌سیاه}{bfdefault} \eqcommand{شمایل‌سیاه}{bfseries} \eqcommand{شرگروه}{bgroup} \eqcommand{مرجوع}{bibitem} \eqcommand{کتاب‌نامه}{bibliography} \eqcommand{سبک‌کتاب‌نامه}{bibliographystyle} \eqcommand{عنوان‌کتاب‌نامه}{bibname} \eqcommand{پرش‌بلند}{bigskip} \eqcommand{مقدارپرش‌بلند}{bigskipamount} \eqcommand{خط‌پایین‌شناور}{botfigrule} \eqcommand{علامت‌پایین}{botmark} \eqcommand{کادرتاپایین}{bottompageskip} \eqcommand{نسبت‌پایین}{bottomfraction} \eqcommand{کادر}{box} \eqcommand{حداکثرعمق‌کادر}{boxmaxdepth} \eqcommand{بشکن}{break} \eqcommand{گلوله}{bullet} \eqcommand{دوپن@پنج}{@cclv} \eqcommand{دوپن@شش}{@cclvi} \eqcommand{شرح}{caption} \eqcommand{کدرده}{catcode} \eqcommand{رونوشت}{cc} \eqcommand{نام‌رونوشت}{ccname} \eqcommand{نقطه‌وسط}{cdot} \eqcommand{نقاط‌وسط}{cdots} \eqcommand{تنظیم‌ازوسط}{centering} \eqcommand{خط‌وسط}{centerline} \eqcommand{چک@ن}{ch@ck} \eqcommand{فصل}{chapter} \eqcommand{عنوان‌فصل}{chaptername} \eqcommand{نویسه}{char} \eqcommand{تعریف‌نویسه}{chardef} \eqcommand{برسی‌فرمان}{CheckCommand} \eqcommand{مرجع}{cite} \eqcommand{خطای‌طبقه}{ClassError} \eqcommand{اطلاع‌طبقه}{ClassInfo} \eqcommand{هشدارطبقه}{ClassWarning} \eqcommand{هشدارطبقه‌بی‌سطر}{ClassWarningNoLine} \eqcommand{نشانگرمرکزی}{cleaders} \eqcommand{دوصفحه‌پاک}{cleardoublepage} \eqcommand{صفحه‌پاک}{clearpage} \eqcommand{خط‌ناپر}{cline} \eqcommand{ببندورودی}{closein} \eqcommand{ببندخروجی}{closeout} \eqcommand{بستن}{closing} \eqcommand{جریمه‌سربند}{clubpenalty} \eqcommand{خاج}{clubsuit} \eqcommand{علامت‌پایین‌ستون‌اول}{colbotmark} \eqcommand{علامت‌اول‌ستون‌اول}{colfirstmark} \eqcommand{رنگ}{color} \eqcommand{کادررنگ}{colorbox} \eqcommand{علامت‌بالای‌ستون‌اول}{coltopmark} \eqcommand{رنگ‌ستون}{columncolor} \eqcommand{بین‌ستون}{columnsep} \eqcommand{پهنای‌ستون}{columnwidth} \eqcommand{خط‌بین‌ستون}{columnseprule} \eqcommand{سطرفهرست}{contentsline} \eqcommand{عنوان‌فهرست‌مطالب}{contentsname} \eqcommand{کپی}{copy} \eqcommand{حق‌تالیف}{copyright} \eqcommand{شمار}{count} \eqcommand{شمار@}{count@} \eqcommand{تعریف‌شمار}{countdef} \eqcommand{سخ}{cr} \eqcommand{سخ‌سخ}{crcr} \eqcommand{نام‌فرمان}{csname} \eqcommand{گزینه‌جاری}{CurrentOption} \eqcommand{کادربینابین}{dashbox} \eqcommand{بینابین‌ع}{dashv} \eqcommand{@تاریخ}{@date} \eqcommand{تاریخ}{date} \eqcommand{روز}{day} \eqcommand{خط‌پایین‌شناورپهن}{dblbotfigrule} \eqcommand{نسبت‌پهن‌پایین}{dblbottomfraction} \eqcommand{خط‌بالای‌شناورپهن}{dblfigrule} \eqcommand{نسبت‌صفحه‌شناورپهن}{dblfloatpagefraction} \eqcommand{فاصله‌بین‌شناورپهن}{dblfloatsep} \eqcommand{کدمکان‌غیرهمانطور}{dblfntlocatecode} \eqcommand{فاصله‌متن‌وشناورپهن}{dbltextfloatsep} \eqcommand{نسبت‌پهن‌بالا}{dbltopfraction} \eqcommand{اعلان‌قلم‌ثابت}{DeclareFixedFont} \eqcommand{اعلان‌پسوندگرافیک}{DeclareGraphicsExtensions} \eqcommand{اعلان‌دستورگرافیک}{DeclareGraphicsRule} \eqcommand{اعلان‌فرمان‌قلم‌قدیمی}{DeclareOldFontCommand} \eqcommand{اعلان‌گزینه}{DeclareOption} \eqcommand{اعلان‌فرمان‌قوی}{DeclareRobustCommand} \eqcommand{اعلان‌قلم‌علائم}{DeclareSymbolFont} \eqcommand{دوربسته}{deadcycles} \eqcommand{تر}{def} \eqcommand{تعریف@کلید}{define@key} \eqcommand{تعریف‌رنگ}{definecolor} \eqcommand{درجه}{deg} \eqcommand{کدجداساز}{delcode} \eqcommand{جداساز}{delimiter} \eqcommand{ضریب‌جداساز}{delimiterfactor} \eqcommand{گودی}{depth} \eqcommand{خشت}{diamondsuit} \eqcommand{ابعاد}{dim} \eqcommand{بعد}{dimen} \eqcommand{بعد@}{dimen@} \eqcommand{بعد@یک}{dimen@i} \eqcommand{بعد@دو}{dimen@ii} \eqcommand{تعریف‌بعد}{dimendef} \eqcommand{تیره‌گذاری}{discretionary} \eqcommand{شکست‌نمایش}{displaybreak} \eqcommand{تورفتگی‌نمایش}{displayindent} \eqcommand{سبک‌نمایش}{displaystyle} \eqcommand{عرض‌نمایش}{displaywidth} \eqcommand{تقسیم}{divide} \eqcommand{طبقه‌نوشتار}{documentclass} \eqcommand{کن}{do} \eqcommand{تعویض‌کدها}{dospecials} \eqcommand{نقطه}{dot} \eqcommand{نقطه‌مساوی}{doteq} \eqcommand{پرنقطه‌ا}{dotfill} \eqcommand{نقاط}{dots} \eqcommand{کادردولا}{doublebox} \eqcommand{رنگ‌فاصله‌دوخط‌جدول}{doublerulesepcolor} \eqcommand{فاصله‌بین‌دوخط}{doublerulesep} \eqcommand{فلش‌پایین}{downarrow} \eqcommand{عمق}{dp} \eqcommand{تخلیه}{dump} \eqcommand{ترگ}{edef} \eqcommand{پاگروه}{egroup} \eqcommand{انتهای‌فاصله}{eject} \eqcommand{گرنه}{else} \eqcommand{تاکید}{em} \eqcommand{کشش‌لاجرم}{emergencystretch} \eqcommand{موکد}{emph} \eqcommand{@پوچ}{@empty} \eqcommand{پوچ}{empty} \eqcommand{مجموعه‌پوچ}{emptyset} \eqcommand{پایان}{end} \eqcommand{پایان‌چپ}{endL} \eqcommand{پایان‌راست}{endR} \eqcommand{پایان‌نام‌فرمان}{endcsname} \eqcommand{پایان‌اولین‌سر}{endfirsthead} \eqcommand{پایان‌پا}{endfoot} \eqcommand{ته‌بند}{endgraf} \eqcommand{پایان‌گروه}{endgroup} \eqcommand{پایان‌سر}{endhead} \eqcommand{پایان‌ورودی}{endinput} \eqcommand{پایان‌آخرین‌پا}{endlastfoot} \eqcommand{گسترش‌این‌صفحه}{enlargethispage} \eqcommand{ته‌سطر}{endline} \eqcommand{نویسه‌ته‌سطر}{endlinechar} \eqcommand{ان‌دوری}{enspace} \eqcommand{ان‌فاصله}{enskip} \eqcommand{فرمان‌جانشین}{eqcommand} \eqcommand{محیط‌جانشین}{eqenvironment} \eqcommand{ارجاع‌فر}{eqref} \eqcommand{کمک‌خطا}{errhelp} \eqcommand{پیام‌خطا}{errmessage} \eqcommand{سطرمتن‌خطا}{errorcontextlines} \eqcommand{پردازش‌توقف‌خطا}{errorstopmode} \eqcommand{نویسه‌ویژه}{escapechar} \eqcommand{یورو}{euro} \eqcommand{حاشیه‌زوج}{evensidemargin} \eqcommand{هرسخ}{everycr} \eqcommand{هرنمایش}{everydisplay} \eqcommand{هرکادرا}{everyhbox} \eqcommand{هرکار}{everyjob} \eqcommand{هرریاضی}{everymath} \eqcommand{هربند}{everypar} \eqcommand{هرکادرو}{everyvbox} \eqcommand{اجرای‌گزینه‌ها}{ExecuteOptions} \eqcommand{جریمه‌اضافی‌تیره‌بندی}{exhyphenpenalty} \eqcommand{بگسترپس‌از}{expandafter} \eqcommand{فاصله‌اضافی‌بین‌ستونها}{extracolsep} \eqcommand{@اولی‌ازیک}{@firstofone} \eqcommand{@اولی‌ازدو}{@firstoftwo} \eqcommand{چ@ار}{f@ur} \eqcommand{خانواده}{fam} \eqcommand{صفحه‌تجملی}{fancypage} \eqcommand{کادربا}{fbox} \eqcommand{ضخامت‌کادربا}{fboxrule} \eqcommand{حاشیه‌کادربا}{fboxsep} \eqcommand{کادربارنگ}{fcolorbox} \eqcommand{رگ}{fi} \eqcommand{عنوان‌شکل}{figurename} \eqcommand{پرشکن}{filbreak} \eqcommand{پر}{fill} \eqcommand{علامت‌اول}{firstmark} \eqcommand{پهن}{flat} \eqcommand{نسبت‌صفحه‌شناور}{floatpagefraction} \eqcommand{جریمه‌شناور}{floatingpenalty} \eqcommand{فاصله‌بین‌شناور}{floatsep} \eqcommand{تنظیم‌ازپایین}{flushbottom} \eqcommand{شکلبندی}{fmtname} \eqcommand{رده‌شکلبندی}{fmtversion} \eqcommand{نشانه}{fnsymbol} \eqcommand{قلم}{font} \eqcommand{بعدقلم}{fontdimen} \eqcommand{رمزینه‌قلم}{fontencoding} \eqcommand{فامیل‌قلم}{fontfamily} \eqcommand{نام‌قلم}{fontname} \eqcommand{شمایل‌قلم}{fontseries} \eqcommand{شکل‌قلم}{fontshape} \eqcommand{اندازه‌قلم}{fontsize} \eqcommand{بلندای‌پایین‌صفحه}{footheight} \eqcommand{درج‌زیرنویس}{footins} \eqcommand{زیرنویس}{footnote} \eqcommand{علامت‌زیرنویس}{footnotemark} \eqcommand{خط‌زیرنویس}{footnoterule} \eqcommand{فاصله‌تازیرنویس}{footnotesep} \eqcommand{اندازه‌زیرنویس}{footnotesize} \eqcommand{متن‌زیرنویس}{footnotetext} \eqcommand{فاصله‌تاپایین‌صفحه}{footskip} \eqcommand{فریم}{frame} \eqcommand{کادرباخط}{framebox} \eqcommand{فواصل‌یکنواخت‌لاتین}{frenchspacing} \eqcommand{مطلب‌پیش}{frontmatter} \eqcommand{بعدبگذار}{futurelet} \eqcommand{@خورحریصانه}{@gobble} \eqcommand{@خورحریصانه‌دو}{@gobbletwo} \eqcommand{@خورحریصانه‌چهار}{@gobblefour} \eqcommand{@عاقت‌آ}{@gtempa} \eqcommand{@عاقت‌ب}{@gtempb} \eqcommand{ترع}{gdef} \eqcommand{الگوی‌اطلاع}{GenericInfo} \eqcommand{الگوی‌هشدار}{GenericWarning} \eqcommand{الگوی‌خطا}{GenericError} \eqcommand{عام}{global} \eqcommand{تعاریف‌عام}{globaldefs} \eqcommand{لغت‌نامه}{glossary} \eqcommand{فقره‌فرهنگ}{glossaryentry} \eqcommand{خوش‌شکن}{goodbreak} \eqcommand{کاغذگراف}{graphpaper} \eqcommand{گیومه‌چپ}{guillemotleft} \eqcommand{گیومه‌راست}{guillemotright} \eqcommand{گیومه‌تکی‌چپ}{guilsinglleft} \eqcommand{گیومه‌تکی‌راست}{guilsinglright} \eqcommand{ردیف‌ا}{halign} \eqcommand{بروتو}{hang} \eqcommand{بعدازسطر}{hangafter} \eqcommand{تورفتگی‌ثابت}{hangindent} \eqcommand{بدنمایی‌ا}{hbadness} \eqcommand{کادرا}{hbox} \eqcommand{بلندای‌سرصفحه}{headheight} \eqcommand{فاصله‌ازسرصفحه}{headsep} \eqcommand{سربه‌نام}{headtoname} \eqcommand{دل}{heartsuit} \eqcommand{بلندا}{height} \eqcommand{پرا}{hfil} \eqcommand{پررا}{hfill} \eqcommand{رفع‌پرا}{hfilneg} \eqcommand{پرزافقی}{hfuzz} \eqcommand{فاصله‌مخفی}{hideskip} \eqcommand{عرض‌پنهان}{hidewidth} \bidi@csletcs{خط‌پر}{hline}% this is an exception \eqcommand{حاشیه‌ا}{hoffset} \eqcommand{حفظ‌درج}{holdinginserts} \eqcommand{فاصله‌اگرد}{hrboxsep} \eqcommand{خط‌ا}{hrule} \eqcommand{پرخط‌ا}{hrulefill} \eqcommand{طول‌سطر}{hsize} \eqcommand{فاصله‌ا}{hskip} \eqcommand{فضای‌ا}{hspace} \eqcommand{هردوا}{hss} \eqcommand{ارتفاع}{ht} \eqcommand{بزرگ}{huge} \eqcommand{بزرگ‌تر}{Huge} \eqcommand{ابرپیوند}{hyperlink} \eqcommand{بارگذاری‌ابر}{hypersetup} \eqcommand{هدف‌ابر}{hypertarget} \eqcommand{تیره‌بندی}{hyphenation} \eqcommand{نویسه‌تیره}{hyphenchar} \eqcommand{جریمه‌تیره‌بندی}{hyphenpenalty} \eqcommand{@گرکلاس‌فراخوانی‌شده}{@ifclassloaded} \eqcommand{@گرترشدنی}{@ifdefinable} \eqcommand{@گرنویسه‌بعدی}{@ifnextchar} \eqcommand{@گرسبک‌فراخوانی‌شده}{@ifpackageloaded} \eqcommand{@گرستاره}{@ifstar} \eqcommand{@گرتعریف‌نشده}{@ifundefined} \eqcommand{گر}{if} \eqcommand{گر@سواقت‌آ}{if@tempswa} \eqcommand{گرانواع}{ifcase} \eqcommand{گررده}{ifcat} \eqcommand{گرتعریف‌شده}{ifdefined} \eqcommand{گربعد}{ifdim} \eqcommand{گرته‌پرونده}{ifeof} \eqcommand{گرر}{iff} \eqcommand{گرنادرست}{iffalse} \eqcommand{گرپرونده‌موجود}{IfFileExists} \eqcommand{گرکادرا}{ifhbox} \eqcommand{گرحالت‌ا}{ifhmode} \eqcommand{گردرونی}{ifinner} \eqcommand{گرحالت‌ریاضی}{ifmmode} \eqcommand{گرعدد}{ifnum} \eqcommand{گرفرد}{ifodd} \eqcommand{گرآنگاه‌دیگر}{ifthenelse} \eqcommand{گردرست}{iftrue} \eqcommand{گرکادرو}{ifvbox} \eqcommand{گرحالت‌و}{ifvmode} \eqcommand{گرتهی}{ifvoid} \eqcommand{گرتام}{ifx} \eqcommand{فاصله‌خالی‌راندیده‌بگیر}{ignorespaces} \eqcommand{فوری}{immediate} \eqcommand{شامل}{include} \eqcommand{درج‌تصویر}{includegraphics} \eqcommand{مشمولین}{includeonly} \eqcommand{تورفتگی}{indent} \eqcommand{درنمایه}{index} \eqcommand{استعلام}{indexentry} \eqcommand{عنوان‌نمایه}{indexname} \eqcommand{فاصله‌رهنما}{indexspace} \eqcommand{ورودی}{input} \eqcommand{ورودپرونده‌گرموجود}{InputIfFileExists} \eqcommand{شماره‌سطرورودی}{inputlineno} \eqcommand{درج}{insert} \eqcommand{جریمه‌درج}{insertpenalties} \eqcommand{جریمه‌بین‌سطرهای‌زیرنویس}{interfootnotelinepenalty} \eqcommand{جریمه‌بین‌سطرهای‌نمایش}{interdisplaylinepenalty} \eqcommand{جریمه‌بین‌سطرها}{interlinepenalty} \eqcommand{متن‌داخلی}{intertext} \eqcommand{فاصله‌شناوردرمتن}{intertextsep} \eqcommand{مخفی}{invisible} \eqcommand{پیش‌فرض‌ای}{itdefault} \eqcommand{شکل‌ایتالیک}{itshape} \eqcommand{فقره}{item} \eqcommand{تورفتگی‌فقره}{itemindent} \eqcommand{فاصله‌فقره}{itemsep} \eqcommand{تکرارکن}{iterate} \eqcommand{شکل‌ای}{itshape} \eqcommand{نام‌کار}{jobname} \eqcommand{قلپ}{jot} \eqcommand{دوری}{kern} \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{زبان}{language} \eqcommand{درشت}{large} \eqcommand{درشت‌تر}{Large} \eqcommand{درشت‌درشت}{LARGE} \eqcommand{آخرین‌کادر}{lastbox} \eqcommand{آخرین‌دوری}{lastkern} \eqcommand{آخرین‌جریمه}{lastpenalty} \eqcommand{آخرین‌فاصله}{lastskip} \eqcommand{لاتک}{LaTeX} \eqcommand{لاتک‌ای}{LaTeXe} \eqcommand{کدکوچک}{lccode} \eqcommand{نقاط‌خ}{ldots} \eqcommand{نشانگر}{leaders} \eqcommand{ترک‌و}{leavevmode} \eqcommand{چپ}{left} \eqcommand{حاشیه‌چپ}{leftmargin} \eqcommand{حاشیه‌چپ‌یک}{leftmargini} \eqcommand{حاشیه‌چپ‌دو}{leftmarginii} \eqcommand{حاشیه‌چپ‌سه}{leftmarginiii} \eqcommand{حاشیه‌چپ‌چهار}{leftmarginiv} \eqcommand{حاشیه‌چپ‌پنج}{leftmarginv} \eqcommand{حاشیه‌چپ‌شش}{leftmarginvi} \eqcommand{علامت‌چپ}{leftmark} \eqcommand{کادرتاچپ}{leftpageskip} \eqcommand{فاصله‌ابتدای‌سطر}{leftskip} \eqcommand{بگذار}{let} \eqcommand{سطر}{line} \eqcommand{سطرشکن}{linebreak} \eqcommand{جریمه‌سطر}{linepenalty} \eqcommand{فاصله‌سطرها}{lineskip} \eqcommand{حدفاصله‌سطر}{lineskiplimit} \eqcommand{کشش‌فاصله‌سطر}{linespread} \eqcommand{ضخامت‌خط}{linethickness} \eqcommand{پهنای‌سطر}{linewidth} \eqcommand{عنوان‌فهرست‌اشکال}{listfigurename} \eqcommand{لیست‌پرونده‌ها}{listfiles} \eqcommand{فهرست‌اشکال}{listoffigures} \eqcommand{فهرست‌جداول}{listoftables} \eqcommand{تورفتگی‌بندلیست}{listparindent} \eqcommand{عنوان‌فهرست‌جداول}{listtablename} \eqcommand{بارکن‌طبقه}{LoadClass} \eqcommand{بارکن‌طبقه‌باگزینه}{LoadClassWithOptions} \eqcommand{مکان}{location} \eqcommand{بلند}{long} \eqcommand{گسیختگی}{looseness} \eqcommand{انتقال‌بپایین}{lower} \eqcommand{@دیگر}{@makeother} \eqcommand{@زار}{@m} \eqcommand{ده@زار}{@M} \eqcommand{ده@زاریک}{@Mi} \eqcommand{ده@زاردو}{@Mii} \eqcommand{ده@زارسه}{@Miii} \eqcommand{ده@زارچهار}{@Miv} \eqcommand{بیس@زار}{@MM} \eqcommand{من@ا}{m@ne} \eqcommand{بزرگ‌نمایی}{mag} \eqcommand{گام}{magstep} \eqcommand{نیم‌گام}{magstephalf} \eqcommand{مطلب‌اصلی}{mainmatter} \eqcommand{ات‌حرف}{makeatletter} \eqcommand{ات‌دیگر}{makeatother} \eqcommand{کادربی‌خط}{makebox} \eqcommand{ساخت‌فرهنگ}{makeglossary} \eqcommand{تهیه‌نمایه}{makeindex} \eqcommand{ساخت‌برچسب}{makelabel} \eqcommand{ساخت‌برچسب‌ها}{makelabels} \eqcommand{ساخت‌حروف‌کوچک}{MakeLowercase} \eqcommand{عنوان‌ساز}{maketitle} \eqcommand{ساخت‌حروف‌بزرگ}{MakeUppercase} \eqcommand{درحاشیه}{marginpar} \eqcommand{فاصله‌دوحاشیه}{marginparpush} \eqcommand{فاصله‌تاحاشیه}{marginparsep} \eqcommand{پهنای‌حاشیه}{marginparwidth} \eqcommand{علامت}{mark} \eqcommand{علامت‌دردوطرف}{markboth} \eqcommand{علامت‌درراست}{markright} \eqcommand{اعراب‌ریاضی}{mathaccent} \eqcommand{نویسه‌ریاضی}{mathchar} \eqcommand{تعریف‌نویسه‌ریاضی}{mathchardef} \eqcommand{کدریاضی}{mathcode} \eqcommand{ریاضی‌رومن}{mathrm} \eqcommand{حداکثرتکرار}{maxdeadcycles} \eqcommand{حداکثرعمق‌صفحه}{maxdepth} \eqcommand{بعدبیشین}{maxdimen} \eqcommand{کادربی}{mbox} \eqcommand{شمایل‌نازک}{mdseries} \eqcommand{معنا}{meaning} \eqcommand{نازک}{mediumseries} \eqcommand{فاصله‌متوسط‌ریاضی}{medmuskip} \eqcommand{پرش‌متوسط}{medskip} \eqcommand{مقدارپرش‌متوسط}{medskipamount} \eqcommand{فضای‌متوسط}{medspace} \eqcommand{پیام}{message} \eqcommand{پیام‌شکن}{MessageBreak} \eqcommand{حداقل‌فاصله‌ردیف}{minrowclearance} \eqcommand{دوری‌ریاضی}{mkern} \eqcommand{ماه}{month} \eqcommand{انتقال‌بچپ}{moveleft} \eqcommand{انتقال‌براست}{moveright} \eqcommand{فاصله‌ریاضی}{mskip} \eqcommand{ری@ضی}{m@th} \eqcommand{چندستونی}{multicolumn} \eqcommand{ضرب}{multiply} \eqcommand{چندادغام}{multispan} \eqcommand{میوفاصله}{muskip} \eqcommand{تعریف‌میوفاصله}{muskipdef} \eqcommand{@ترنام}{@namedef} \eqcommand{@کاربردنام}{@nameuse} \eqcommand{یک@}{@ne} \eqcommand{نام}{name} \eqcommand{طبیعی}{natural} \eqcommand{باریک}{nearrow} \eqcommand{باریکتر}{nearrower} \eqcommand{شکلبندی‌موردنیاز}{NeedsTeXFormat} \eqcommand{منفی}{neg} \eqcommand{فضای‌متوسط‌منفی}{negmedspace} \eqcommand{فضای‌ضخیم‌منفی}{negthickspace} \eqcommand{دوری‌کوچک‌منفی}{negthinspace} \eqcommand{بولی‌نو}{newboolean} \eqcommand{کادرجدید}{newbox} \eqcommand{فرمان‌نو}{newcommand} \eqcommand{شمارجدید}{newcount} \eqcommand{شمارنده‌جدید}{newcounter} \eqcommand{بعدجدید}{newdimen} \eqcommand{محیط‌نو}{newenvironment} \eqcommand{خانواده‌جدید}{newfam} \eqcommand{قلم‌نو}{newfont} \eqcommand{کمک‌جدید}{newhelp} \eqcommand{درج‌جدید}{newinsert} \eqcommand{برچسب‌جدید}{newlabel} \eqcommand{تعریف‌بعدجدید}{newlength} \eqcommand{سطرجدید}{newline} \eqcommand{نویسه‌سطرجدید}{newlinechar} \eqcommand{میوفاصله‌جدید}{newmuskip} \eqcommand{صفحه‌جدید}{newpage} \eqcommand{بخوان‌جدید}{newread} \eqcommand{تعریف‌کادرجدید}{newsavebox} \eqcommand{فاصله‌جدید}{newskip} \eqcommand{قضیه‌جدید}{newtheorem} \eqcommand{جزءجدید}{newtoks} \eqcommand{بنویس‌جدید}{newwrite} \eqcommand{بی‌ردیف}{noalign} \eqcommand{نشکن}{nobreak} \eqcommand{فاصله‌نشکستنی}{nobreakspace} \eqcommand{بدون‌سند}{nocite} \eqcommand{نگستر}{noexpand} \eqcommand{بدون‌پرونده}{nofiles} \eqcommand{بدون‌تورفتگی}{noindent} \eqcommand{بی‌فاصله‌سطر}{nointerlineskip} \eqcommand{بدون‌حد}{nolimits} \eqcommand{سطرنشکن}{nolinebreak} \eqcommand{پردازش‌بدون‌توقف}{nonstopmode} \eqcommand{فواصل‌متعارف‌لاتین}{nonfrenchspacing} \eqcommand{بدون‌شماره}{nonumber} \eqcommand{صفحه‌نشکن}{nopagebreak} \eqcommand{کرسیهای‌متعارف}{normalbaselines} \eqcommand{فاصله‌کرسی‌متعارف}{normalbaselineskip} \eqcommand{رنگ‌عادی}{normalcolor} \eqcommand{قلم‌عادی}{normalfont} \eqcommand{فاصله‌سطرمتعارف}{normallineskip} \eqcommand{حدفاصله‌سطرمتعارف}{normallineskiplimit} \eqcommand{درحاشیه‌عادی}{normalmarginpar} \eqcommand{اندازه‌عادی}{normalsize} \eqcommand{بدون‌اتیکت}{notag} \eqcommand{نول}{null} \eqcommand{قلم‌تهی}{nullfont} \eqcommand{عدد}{number} \eqcommand{سطرعددی}{numberline} \eqcommand{شماره‌مطابق}{numberwithin} \eqcommand{پایین‌صفحه‌زوج}{@evenfoot} \eqcommand{بالای‌صفحه‌زوج}{@evenhead} \eqcommand{پایین‌صفحه‌فرد}{@oddfoot} \eqcommand{بالای‌صفحه‌فرد}{@oddhead} \eqcommand{شماره‌بیرون‌درست}{@outeqntrue} \eqcommand{شماره‌بیرون‌نادرست}{@outeqnfalse} \eqcommand{سطربه‌سطر}{obeylines} \eqcommand{فضافعال}{obeyspaces} \eqcommand{حاشیه‌فرد}{oddsidemargin} \eqcommand{سطوربی‌فاصله}{offinterlineskip} \eqcommand{حذف}{omit} \eqcommand{@تنهادرپیش‌درآمد}{@onlypreamble} \eqcommand{یک‌ستون}{onecolumn} \eqcommand{تنها‌یادداشت‌ها}{onlynotes} \eqcommand{تنهااسلایدها}{onlyslides} \eqcommand{بازکن‌ورودی}{openin} \eqcommand{بازکن‌خروجی}{openout} \eqcommand{گزینه‌مصرف‌نشده}{OptionNotUsed} \eqcommand{یا}{or} \eqcommand{برونی}{outer} \eqcommand{صفحه‌بندی}{output} \eqcommand{جریمه‌صفحه‌بندی}{outputpenalty} \eqcommand{علامت‌سرریز}{overfullrule} \eqcommand{@فرمان‌های‌پیش‌درآمد}{@preamblecmds} \eqcommand{@پو}{p@} \eqcommand{خطای‌سبک}{PackageError} \eqcommand{اطلاع‌سبک}{PackageInfo} \eqcommand{هشدارسبک}{PackageWarning} \eqcommand{هشدارسبک‌بی‌سطر}{PackageWarningNoLine} \eqcommand{صفحه‌شکن}{pagebreak} \eqcommand{رنگ‌صفحه}{pagecolor} \eqcommand{عمق‌صفحه}{pagedepth} \eqcommand{کشش‌پرررصفحه}{pagefilllstretch} \eqcommand{کشش‌پررصفحه}{pagefillstretch} \eqcommand{کشش‌پرصفحه}{pagefilstretch} \eqcommand{غایت‌صفحه}{pagegoal} \eqcommand{نام‌صفحه}{pagename} \eqcommand{شماره‌گذاری‌صفحه}{pagenumbering} \eqcommand{رجوع‌صفحه}{pageref} \eqcommand{ضخامت‌خط‌صفحه}{pagerulewidth} \eqcommand{فشردگی‌صفحه}{pageshrink} \eqcommand{کشش‌صفحه}{pagestretch} \eqcommand{سبک‌صفحه}{pagestyle} \eqcommand{جمع‌صفحه}{pagetotal} \eqcommand{بلندای‌کاغذ}{paperheight} \eqcommand{پهنای‌کاغذ}{paperwidth} \bidi@csdefcs{بند}{par}% this is an exception since \par is redefined only in some circumstances \eqcommand{پاراگراف}{paragraph} \eqcommand{موازی}{parallel} \eqcommand{کادرپار}{parbox} \eqcommand{فاصله‌ته‌بند}{parfillskip} \eqcommand{تورفتگی‌سربند}{parindent} \eqcommand{فاصله‌بندلیست}{parsep} \eqcommand{شکل‌بند}{parshape} \eqcommand{فاصله‌بند}{parskip} \eqcommand{بخش}{part} \eqcommand{عنوان‌بخش}{partname} \eqcommand{فاصله‌بالای‌لیست‌بند}{partopsep} \eqcommand{ارسال‌گزینه‌به‌کلاس}{PassOptionToClass} \eqcommand{ارسال‌گزینه‌به‌پکیج}{PassOptionToPackage} \eqcommand{مسیر}{path} \eqcommand{الگوها}{patterns} \eqcommand{مکث}{pausing} \eqcommand{جریمه}{penalty} \eqcommand{غیب}{phantom} \eqcommand{الگوی‌قبلی}{poptabs} \eqcommand{جریمه‌پس‌نمایش}{postdisplaypenalty} \eqcommand{جهت‌پیش‌نمایش}{predisplaydirection} \eqcommand{جریمه‌پیش‌نمایش}{predisplaypenalty} \eqcommand{اندازه‌پیش‌نمایش}{predisplaysize} \eqcommand{پیش‌حدبدنمایی}{pretolerance} \eqcommand{عمق‌قبلی}{prevdepth} \eqcommand{بندقبلی}{prevgraf} \eqcommand{نمایه‌دراینجا}{printindex} \eqcommand{پردازش‌گزینه‌ها}{ProcessOptions} \eqcommand{تامین}{protect} \eqcommand{تهیه‌فرمان}{providecommand} \eqcommand{آماده‌سازی‌طبقه}{ProvidesClass} \eqcommand{آماده‌سازی‌پرونده}{ProvidesFile} \eqcommand{آماده‌سازی‌سبک}{ProvidesPackage} \eqcommand{ثبت‌الگو}{pushtabs} \eqcommand{کواد}{quad} \eqcommand{کوکواد}{qquad} \eqcommand{@بازآیی‌خروج‌صفحه}{@outputpagerestore} \eqcommand{رادیکال}{radical} \eqcommand{پایین‌بی‌تنظیم}{raggedbottom} \eqcommand{تنظیم‌ازراست}{raggedleft} \eqcommand{تنظیم‌ازچپ}{raggedright} \eqcommand{انتقال‌ببالا}{raise} \eqcommand{بالابر}{raisebox} \eqcommand{ترفیع‌اتیکت}{raisetag} \eqcommand{زاویه‌ر}{rangle} \eqcommand{سقف‌ر}{rceil} \eqcommand{بخوان}{read} \eqcommand{رجوع}{ref} \eqcommand{کادرقرینه}{reflectbox} \eqcommand{عنوان‌مراجع}{refname} \eqcommand{گام‌شمارنده‌مرجع}{refstepcounter} \eqcommand{راحت}{relax} \eqcommand{رفع‌آخرین‌فاصله}{removelastskip} \eqcommand{فرمان‌ازنو}{renewcommand} \eqcommand{محیط‌ازنو}{renewenvironment} \eqcommand{سبک‌موردنیاز}{RequirePackage} \eqcommand{سبک‌موردنیازباگزینه}{RequirePackageWithOptions} \eqcommand{کادرکشیده}{resizebox} \eqcommand{درحاشیه‌معکوس}{reversemarginpar} \eqcommand{کف‌ر}{rfloor} \eqcommand{راست}{right} \eqcommand{حاشیه‌راست}{rightmargin} \eqcommand{علامت‌راست}{rightmark} \eqcommand{کادرتاراست}{rightpageskip} \eqcommand{فاصله‌انتهای‌سطر}{rightskip} \eqcommand{رومن‌عادی}{rmdefault} \eqcommand{فامیل‌رومن}{rmfamily} \eqcommand{رومن‌بزرگ}{Roman} \eqcommand{رومن‌کوچک}{roman} \eqcommand{عددرومی}{romannumeral} \eqcommand{کادرچرخان}{rotatebox} \eqcommand{رنگ‌ردیف}{rowcolor} \eqcommand{خط}{rule} \eqcommand{@دومی‌ازدو}{@secondoftwo} \eqcommand{@فضاها}{@spaces} \eqcommand{همین‌صفحه}{samepage} \eqcommand{مقدارکادر}{savebox} \eqcommand{مقکادر}{sbox} \eqcommand{کادراندازه}{scalebox} \eqcommand{پیش‌فرض‌تمام‌بزرگ}{scdefault} \eqcommand{شکل‌تمام‌بزرگ}{scshape} \eqcommand{مقدارکلیدها}{setkeys} \eqcommand{قلم‌توان}{scriptfont} \eqcommand{قلم‌توان‌توان}{scriptscriptfont} \eqcommand{سبک‌ته‌نوشت‌ته‌نوشت}{scriptscriptstyle} \eqcommand{اندازه‌پانویس}{scriptsize} \eqcommand{سبک‌ته‌نوشت}{scripstyle} \eqcommand{پردازش‌گذری}{scrollmode} \eqcommand{قسمت}{section} \eqcommand{تعریف‌قسمت}{secdef} \eqcommand{ببینید}{see} \eqcommand{نیزببینید}{seealso} \eqcommand{نام‌ببینید}{seename} \eqcommand{قلم‌بردار}{selectfont} \eqcommand{تنظیم‌بولی}{setboolean} \eqcommand{درکادر}{setbox} \eqcommand{مقدارشمارنده}{setcounter} \eqcommand{مقداربعد}{setlength} \eqcommand{تنظیم‌منها}{setminus} \eqcommand{تعریف‌قلم‌علائم}{SetSymbolFont} \eqcommand{تنظیم‌به‌عمق}{settodepth} \eqcommand{تنظیم‌به‌ارتفاع}{settoheight} \eqcommand{مقداربعدبه‌اندازه}{settowidth} \eqcommand{کدضریب‌فاصله}{sfcode} \eqcommand{پیش‌فرض‌س‌ف}{sfdefault} \eqcommand{فامیل‌سن‌سریف}{sffamily} \eqcommand{کادرسایه‌دار}{shadowbox} \eqcommand{تیز}{sharp} \eqcommand{بفرست}{shipout} \eqcommand{پشته‌کوتاه}{shortstack} \eqcommand{نمایش‌بده}{show} \eqcommand{نمایش‌بده‌کادر}{showbox} \eqcommand{میزان‌نمایش‌کادر}{showboxbreadth} \eqcommand{عمق‌نمایش‌کادر}{showboxdepth} \eqcommand{نمایش‌بده‌لیستها}{showlists} \eqcommand{نمایش‌بده‌محتوای}{showthe} \eqcommand{حالت‌ساده‌قلم}{simplefontmode} \eqcommand{شانزد@}{sixt@@n} \eqcommand{نویسه‌اریب}{skewchar} \eqcommand{فاصله}{skip} \eqcommand{فاصل@}{skip@} \eqcommand{تعریف‌فاصله}{skipdef} \eqcommand{خوابیده}{sl} \eqcommand{پیش‌فرض‌خو}{sldefault} \eqcommand{شکل‌خوابیده}{slshape} \eqcommand{راحت‌چین}{sloppy} \eqcommand{شمایل‌خو}{slshape} \eqcommand{کوچک}{small} \eqcommand{پرش‌کوتاه}{smallskip} \eqcommand{مقدارپرش‌کوتاه}{smallskipamount} \eqcommand{کوب}{smash} \eqcommand{لبخند}{smile} \eqcommand{کدمکان‌همانطور}{snglfntlocatecode} \eqcommand{فضا}{space} \eqcommand{ضریب‌فاصله}{spacefactor} \eqcommand{فاصله‌کلمات}{spaceskip} \eqcommand{پیک}{spadesuit} \eqcommand{ادغام}{span} \eqcommand{ویژه}{special} \eqcommand{حداکثرعمق‌ستون}{splitmaxdepth} \eqcommand{فاصله‌بالای‌ستون}{splittopskip} \eqcommand{ستاره}{star} \eqcommand{گام‌شمارنده}{stepcounter} \eqcommand{کشی}{stretch} \eqcommand{رشته}{string} \eqcommand{شمع}{strut} \eqcommand{کادرشمع}{strutbox} \eqcommand{زیربند}{subitem} \eqcommand{زیرپاراگراف}{subparagraph} \eqcommand{زیرقسمت}{subsection} \eqcommand{زیرپشته}{substack} \eqcommand{زیرزیربند}{subsubitem} \eqcommand{زیرزیرقسمت}{subsubsection} \eqcommand{زیرمجموعه}{subset} \eqcommand{زیرمجموعه‌مس}{subseteq} \eqcommand{منتهای‌صفحه}{supereject} \eqcommand{حذف‌مکان‌شناور}{suppressfloats} \eqcommand{@موقت‌آ}{@tempa} \eqcommand{@موقت‌ب}{@tempb} \eqcommand{@موقت‌پ}{@tempc} \eqcommand{@موقت‌ت}{@tempd} \eqcommand{@موقت‌ث}{@tempe} \eqcommand{@کادرقت‌آ}{@tempboxa} \eqcommand{@شماقت‌آ}{@tempcnta} \eqcommand{@شماقت‌ب}{@tempcntb} \eqcommand{@بعدقت‌آ}{@tempdima} \eqcommand{@بعدقت‌ب}{@tempdimb} \eqcommand{@بعدقت‌پ}{@tempdimc} \eqcommand{@فاقت‌آ}{@tempskipa} \eqcommand{@فاقت‌ب}{@tempskipb} \eqcommand{@سواقت‌آنادرست}{@tempswafalse} \eqcommand{@سواقت‌آدرست}{@tempswatrue} \eqcommand{@جزقت‌آ}{@temptokena} \eqcommand{انگ‌زیرنویس}{@thefnmark} \eqcommand{@سومی‌ازسه}{@thirdofthree} \eqcommand{فاصله‌جاگذاری}{tabbingsep} \eqcommand{فاصله‌بین‌ستونها}{tabcolsep} \eqcommand{فهرست‌مطالب}{tableofcontents} \eqcommand{عنوان‌جدول}{tablename} \eqcommand{فاصله‌ستونها}{tabskip} \eqcommand{ته‌سطرجدول}{tabularnewline} \eqcommand{اتیکت}{tag} \eqcommand{تلفن}{telephone} \eqcommand{تک}{TeX} \eqcommand{متن}{text} \eqcommand{گلوله‌متنی}{textbullet} \eqcommand{قلم‌متن}{textfont} \eqcommand{ام‌دش‌متنی}{textemdash} \eqcommand{ان‌دش‌متنی}{textendash} \eqcommand{تعجب‌وارونه‌متنی}{textexclamdown} \eqcommand{نقطه‌وسط‌متنی}{textperiodcentered} \eqcommand{سوال‌وارونه‌متنی}{textquestiondown} \eqcommand{نقل‌چپ‌متنی‌دولا}{textquotedblleft} \eqcommand{نقل‌راست‌متنی‌دولا}{textquotedblright} \eqcommand{نقل‌متنی‌چپ}{textquoteleft} \eqcommand{نقل‌متنی‌راست}{textquoteright} \eqcommand{فضای‌نمایان‌متنی‌}{textvisiblespace} \eqcommand{شکافت‌پشت‌متنی}{textbackslash} \eqcommand{میله‌متنی}{textbar} \eqcommand{بزرگ‌تر‌متنی}{textgreater} \eqcommand{کمتر‌متنی}{textless} \eqcommand{متن‌سیاه}{textbf} \eqcommand{مدور‌متنی}{textcircled} \eqcommand{رنگ‌متن}{textcolor} \eqcommand{نشان‌کلمه‌مرکب‌متن}{textcompwordmark} \eqcommand{فاصله‌متن‌وشناور}{textfloatsep} \eqcommand{نسبت‌متن}{textfraction} \eqcommand{بلندای‌متن}{textheight} \eqcommand{متن‌تورفته}{textindent} \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{زیر‌نویس‌عنوان}{thanks} \eqcommand{محتوای}{the} \eqcommand{این‌زیرنویس}{thempfn} \eqcommand{خط‌هاضخیم}{thicklines} \eqcommand{فاصله‌زیادریاضی}{thickmuskip} \eqcommand{فاصله‌کم‌ریاضی}{thinmuskip} \eqcommand{فضاضخیم}{thickspace} \eqcommand{خط‌هانازک}{thinlines} \eqcommand{دوری‌کوچک}{thinspace} \eqcommand{این‌صفحه‌تجملی}{thisfancypage} \eqcommand{سبک‌این‌صفحه}{thispagestyle} \eqcommand{سه@}{thr@@} \eqcommand{مد}{tilde} \eqcommand{ظریف}{tiny} \eqcommand{زمان}{time} \eqcommand{ضرب‌در}{times} \eqcommand{عنوان}{title} \eqcommand{به}{to} \eqcommand{امروز}{today} \eqcommand{جزء}{toks} \eqcommand{تعریف‌جزء}{toksdef} \eqcommand{حدبدنمایی}{tolerance} \eqcommand{بالا}{top} \eqcommand{خط‌بالای‌شناور}{topfigrule} \eqcommand{نسبت‌بالا}{topfraction} \eqcommand{حاشیه‌بالا}{topmargin} \eqcommand{علامت‌بالا}{topmark} \eqcommand{کادرتابالا}{toppageskip} \eqcommand{فاصله‌بالای‌لیست}{topsep} \eqcommand{فاصله‌بالا}{topskip} \eqcommand{بلندای‌کل}{totalheight} \eqcommand{ردگیری‌کل}{tracingall} \eqcommand{ردگیری‌فرامین}{tracingcommands} \eqcommand{ردگیری‌حروف}{tracinglostchars} \eqcommand{ردگیری‌ماکروها}{tracingmacros} \eqcommand{ردگیری‌نمایشی}{tracingonline} \eqcommand{ردگیری‌صفحه‌بندی}{tracingoutput} \eqcommand{ردگیری‌صفحات}{tracingpages} \eqcommand{ردگیری‌بندها}{tracingparagraphs} \eqcommand{ردگیری‌بازگردانی}{tracingrestores} \eqcommand{ردگیری‌آمارها}{tracingstats} \eqcommand{مثلث}{triangle} \eqcommand{پیش‌فرض‌تایپ}{ttdefault} \eqcommand{فامیل‌تایپ}{ttfamily} \eqcommand{دو@}{tw@} \eqcommand{دوستون}{twocolumn} \eqcommand{درنویس}{typein} \eqcommand{برنویس}{typeout} \eqcommand{کدبزرگ}{uccode} \eqcommand{تیره‌بندی‌بزرگ}{uchyph} \eqcommand{زیرخط}{underline} \eqcommand{بی‌کادرا}{unhbox} \eqcommand{بی‌کپی‌ا}{unhcopy} \eqcommand{واحدطول}{unitlength} \eqcommand{برگشت‌دوری}{unkern} \eqcommand{برگشت‌جریمه}{unpenalty} \eqcommand{برگشت‌فاصله}{unskip} \eqcommand{بی‌کادرو}{unvbox} \eqcommand{بی‌کپی‌و}{unvcopy} \eqcommand{پیش‌فرض‌ایستاده}{updefault} \eqcommand{شکل‌ایستاده}{upshape} \eqcommand{ازکادر}{usebox} \eqcommand{باشمارشگر}{usecounter} \eqcommand{گزینش‌قلم}{usefont} \eqcommand{سبک‌لازم}{usepackage} \eqcommand{@فضاهای‌فعال}{@vobeyspaces} \eqcommand{@تهی}{@void} \eqcommand{تنظیم‌و}{vadjust} \eqcommand{ردیف‌و}{valign} \eqcommand{محتوای‌شمارنده}{value} \eqcommand{بدنمایی‌و}{vbadness} \eqcommand{کادرو}{vbox} \eqcommand{کادروسط}{vcenter} \eqcommand{همانطور}{verb} \eqcommand{پرو}{vfil} \eqcommand{پررو}{vfill} \eqcommand{رفع‌پرو}{vfilneg} \eqcommand{پرزعمودی}{vfuzz} \eqcommand{نمایان}{visible} \eqcommand{خط‌عمود}{vline} \eqcommand{حاشیه‌و}{voffset} \eqcommand{ک@درتهی}{voidb@x} \eqcommand{ارجاع‌صفحه‌ع}{vpageref} \eqcommand{فاصله‌وگرد}{vrboxsep} \eqcommand{ارجاع‌ع}{vref} \eqcommand{خط‌و}{vrule} \eqcommand{طول‌صفحه}{vsize} \eqcommand{فاصله‌و}{vskip} \eqcommand{فضای‌و}{vspace} \eqcommand{شکست‌و}{vsplit} \eqcommand{هردوو}{vss} \eqcommand{کادرگود}{vtop} \eqcommand{عرض}{wd} \eqcommand{مادام‌بکن}{whiledo} \eqcommand{کلاه‌پهن}{widehat} \eqcommand{مدپهن}{widetilde} \eqcommand{جریمه‌ته‌بند}{widowpenalty} \eqcommand{پهنا}{width} \eqcommand{درکارنامه}{wlog} \eqcommand{بنویس}{write} \eqcommand{@فضای‌لاتین}{@xobeysp} \eqcommand{سی@دو}{@xxxii} \eqcommand{ترگع}{xdef} \eqcommand{نشانگرگسترشی}{xleaders} \eqcommand{فاصله‌اضافی‌کلمات}{xspaceskip} \eqcommand{سال}{year} \eqcommand{@فر}{z@} \eqcommand{@فرفاصله}{z@skip} % \end{macrocode} % \iffalse % %<*color-localise-xepersian.def> %\fi % \section{File \texttt{color-localise-xepersian.def}} % \begin{macrocode} \آماده‌سازی‌پرونده{color-localise-xepersian.def}[2011/03/01 v0.1 localising color package] \تعریف‌رنگ{سیاه}{rgb}{0,0,0} \تعریف‌رنگ{سفید}{rgb}{1,1,1} \تعریف‌رنگ{قرمز}{rgb}{1,0,0} \تعریف‌رنگ{سبز}{rgb}{0,1,0} \تعریف‌رنگ{آبی}{rgb}{0,0,1} \تعریف‌رنگ{آسمانی}{cmyk}{1,0,0,0} \تعریف‌رنگ{بنفش}{cmyk}{0,1,0,0} \تعریف‌رنگ{زرد}{cmyk}{0,0,1,0} % \end{macrocode} % \iffalse % %<*xepersian-localise-commands-xepersian.def> %\fi % \section{File \texttt{xepersian-localise-commands-xepersian.def}} % \begin{macrocode} \ProvidesFile{xepersian-localise-commands-xepersian.def}[2012/07/25 v0.2 Persian localisation of XePersian commands] \eqcommand{خط‌زیرنویس‌خودکار}{autofootnoterule} \eqcommand{اعدادفرمولهاخودکار}{AutoMathDigits} \eqcommand{اعدادفرمولهالاتین}{DefaultMathDigits} \eqcommand{معادل@کلید}{keyval@eq@alias@key} \eqcommand{تعریف‌قلم‌لاتین}{deflatinfont} \eqcommand{تعریف‌قلم‌پارسی}{defpersianfont} \eqcommand{کادراچپ}{hboxL} \eqcommand{کادراست}{hboxR} \eqcommand{مرجع‌لاتین}{Latincite} \eqcommand{قلم‌لاتین}{latinfont} \eqcommand{امروزلاتین}{latintoday} \eqcommand{خط‌زیرنویس‌چپ}{leftfootnoterule} \eqcommand{متن‌لاتین}{lr} \eqcommand{چپ‌براست}{LRE} \eqcommand{دوستونی‌چپ}{LTRdblcol} \eqcommand{پانویس}{LTRfootnote} \eqcommand{متن‌پانویس}{LTRfootnotetext} \eqcommand{پانویس‌عنوان}{LTRthanks} \eqcommand{روزپارسی}{persianday} \eqcommand{قلم‌پارسی}{persianfont} \eqcommand{اعدادفرمولهاپارسی}{PersianMathDigits} \eqcommand{ماه‌پارسی}{persianmonth} \eqcommand{سال‌پارسی}{persianyear} \eqcommand{علامت‌چپ‌نقل‌قول‌پارسی}{plq} \eqcommand{علامت‌راست‌نقل‌قول‌پارسی}{prq} \eqcommand{خط‌زیرنویس‌راست}{rightfootnoterule} \eqcommand{متن‌پارسی}{rl} \eqcommand{راست‌بچپ}{RLE} \eqcommand{دوستونی‌راست}{RTLdblcol} \eqcommand{پانوشت}{RTLfootnote} \eqcommand{متن‌پانوشت}{RTLfootnotetext} \eqcommand{پانوشت‌عنوان}{RTLthanks} \eqcommand{@علامت‌بین}{@SepMark} \eqcommand{علامت‌بین}{SepMark} \eqcommand{بگذارمرجوعات‌عادی}{setdefaultbibitems} \eqcommand{بگذاردرحاشیه‌عادی}{setdefaultmarginpar} \eqcommand{گزینش‌قلم‌اعدادفرمولها}{setmathdigitfont} \eqcommand{بگذارزیرنویس‌چپ}{setfootnoteLR} \eqcommand{بگذارزیرنویس‌راست}{setfootnoteRL} \eqcommand{گزینش‌قلم‌لاتین‌متن}{setlatintextfont} \eqcommand{بگذارمتن‌چپ}{setLTR} \eqcommand{بگذارمرجوعات‌چپ}{setLTRbibitems} \eqcommand{بگذاردرحاشیه‌چپ}{setLTRmarginpar} \eqcommand{بگذارمتن‌راست}{setRTL} \eqcommand{بگذارمرجوعات‌راست}{setRTLbibitems} \eqcommand{بگذاردرحاشیه‌راست}{setRTLmarginpar} \eqcommand{گزینش‌قلم‌متن}{settextfont} \eqcommand{خط‌زیرنویس‌پهنای‌متن}{textwidthfootnoterule} \eqcommand{فهرست‌مطالب‌دوستونی}{twocolumnstableofcontents} \eqcommand{نگذارزیرنویس‌راست}{unsetfootnoteRL} \eqcommand{نگذارمتن‌چپ}{unsetLTR} \eqcommand{نگذارمتن‌راست}{unsetRTL} \eqcommand{کادروازچپ}{vboxL} \eqcommand{کادروازراست}{vboxR} \eqcommand{زی‌لاتک}{XeLaTeX} \eqcommand{زی‌پرشین}{XePersian} \eqcommand{گونه‌زی‌پرشین}{xepersianversion} \eqcommand{تاریخ‌گونه‌زی‌پرشین}{xepersiandate} \eqcommand{زی‌تک}{XeTeX} % \end{macrocode} % \iffalse % %<*enumerate-xepersian.def> %\fi % \section{File \texttt{enumerate-xepersian.def}} % \begin{macrocode} \ProvidesFile{enumerate-xepersian.def}[2010/07/25 v0.1 adaptations for enumerate package] \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 % %<*enumitem-xepersian.def> %\fi % \section{File \texttt{enumitem-xepersian.def}} % \begin{macrocode} \ProvidesFile{enumitem-xepersian.def}[2017/09/06 v0.1 adaptations for enumitem package] \AddEnumerateCounter*\tartibi\@tartibi{999999999} \AddEnumerateCounter*\adadi\@adadi{999999999} \AddEnumerateCounter\harfi\@harfi{گ} \AddEnumerateCounter\Abjad\@Abjad{ک} \AddEnumerateCounter\abjad\@abjad{غثکب} \SetEnumerateShortLabel{اول}{\tartibi*} \SetEnumerateShortLabel{یک}{\adadi*} \SetEnumerateShortLabel{آ}{\harfi*} \SetEnumerateShortLabel{ب}{\Abjad*} \SetEnumerateShortLabel{ج}{\abjad*} % \end{macrocode} % \iffalse % %<*latex-localise-environments-xepersian.def> %\fi % \section{File \texttt{latex-localise-environments-xepersian.def}} % \begin{macrocode} \ProvidesFile{latex-localise-environments-xepersian.def}[2022/06/06 v0.3 Persian localisation of LaTeX2e environments] \eqenvironment{چکیده}{abstract} \eqenvironment{پیوست}{appendix} \eqenvironment{آرایه}{array} \eqenvironment{وسط‌چین}{center} \eqenvironment{توضیح}{description} \eqenvironment{ریاضی‌نمایشی}{displaymath} \EqEnvironment{نوشتار}{document} \eqenvironment{شمارش}{enumerate} \eqenvironment{شکل}{figure} \eqenvironment{شکل*}{figure*} \eqenvironment{محتوای‌پرونده}{filecontents} \eqenvironment{محتوای‌پرونده*}{filecontents*} \eqenvironment{چپ‌چین}{flushleft} \eqenvironment{راست‌چین}{flushright} \eqenvironment{فقرات}{itemize} \eqenvironment{نامه}{letter} \eqenvironment{لیست}{list} \eqenvironment{جدول‌دراز}{longtable} \eqenvironment{کادررچ}{lrbox} \eqenvironment{ریاضی}{math} \eqenvironment{ماتریس}{matrix} \eqenvironment{صفحه‌کوچک}{minipage} \eqenvironment{چندخطی}{multline} \eqenvironment{یادداشت}{note} \eqenvironment{انباشتن}{overlay} \eqenvironment{تصویر}{picture} \eqenvironment{اقتباس}{quotation} \eqenvironment{نقل}{quote} \eqenvironment{اسلاید}{slide} \eqenvironment{پارنامرتب}{sloppypar} \eqenvironment{شکافتن}{split} \eqenvironment{زیرآرایه}{subarray} \eqenvironment{جاگذاری}{tabbing} \eqenvironment{لوح}{table} \eqenvironment{لوح*}{table*} \eqenvironment{جدول}{tabular} \eqenvironment{جدول*}{tabular*} \eqenvironment{مراجع}{thebibliography} \eqenvironment{محتوای‌نمایه}{theindex} \eqenvironment{صفحه‌عنوان}{titlepage} \eqenvironment{لیست‌بدوی}{trivlist} \eqenvironment{شعر}{verse} % \end{macrocode} % \iffalse % %<*xepersian-localise-environments-xepersian.def> %\fi % \section{File \texttt{xepersian-localise-environments-xepersian.def}} % \begin{macrocode} \ProvidesFile{xepersian-localise-environments-xepersian.def}[2010/07/25 v0.1 Persian localisation of XePersian and bidi environments] \eqenvironment{لاتین}{latin} \eqenvironment{متن‌چپ}{LTR} \eqenvironment{دسته‌بندی‌چپ}{LTRitems} \eqenvironment{شعرنو}{modernpoem} \eqenvironment{شعرنو*}{modernpoem*} \eqenvironment{پارسی}{persian} \eqenvironment{متن‌راست}{RTL} \eqenvironment{دسته‌بندی‌راست}{RTLitems} \eqenvironment{شعرسنتی}{traditionalpoem} \eqenvironment{شعرسنتی*}{traditionalpoem*} % \end{macrocode} % \iffalse % %<*extarticle-xepersian.def> %\fi % \section{File \texttt{extarticle-xepersian.def}} % \begin{macrocode} \ProvidesFile{extarticle-xepersian.def}[2010/07/25 v0.1 adaptations for extarticle class] \renewcommand\thepart {\@tartibi\c@part} \renewcommand\appendix{\par \setcounter{section}{0}% \setcounter{subsection}{0}% \gdef\thesection{\@harfi\c@section}} % \end{macrocode} % \iffalse % %<*extbook-xepersian.def> %\fi % \section{File \texttt{extbook-xepersian.def}} % \begin{macrocode} \ProvidesFile{extbook-xepersian.def}[2010/07/25 v0.1 adaptations for extbook class] \renewcommand\frontmatter{% \cleardoublepage \@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} }%end appendix % \end{macrocode} % \iffalse % %<*extrafootnotefeatures-xepersian.def> %\fi % \section{File \texttt{extrafootnotefeatures-xepersian.def}} % \begin{macrocode} \ProvidesFile{extrafootnotefeatures-xepersian.def}[2012/01/01 v0.2 footnote macros for extrafootnotefeatures option of xepersian package] \renewcommand{\foottextfont}{\footnotesize\if@RTL@footnote\else\resetlatinfont\fi} \renewcommand{\LTRfoottextfont}{\footnotesize\resetlatinfont} \renewcommand{\RTLfoottextfont}{\footnotesize\setpersianfont} % \end{macrocode} % \iffalse % %<*extreport-xepersian.def> %\fi % \section{File \texttt{extreport-xepersian.def}} % \begin{macrocode} \ProvidesFile{extreport-xepersian.def}[2010/07/25 v0.1 adaptations for extreport class] \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 % %<*fancyref-xepersian.def> %\fi % \section{File \texttt{fancyref-xepersian.def}} % \begin{macrocode} \ProvidesFile{fancyref-xepersian.def}[2018/09/29 v0.1 bilingual captions for fancyref package] \renewcommand*{\Frefchapname}{\chaptername} \renewcommand*{\Frefenumname}{% \if@RTL فقره% \else Item% \fi } \renewcommand*{\Frefeqname}{% \if@RTL معادله% \else Equation% \fi } \renewcommand*{\Freffigname}{\figurename} \renewcommand*{\Freffnname}{% \if@RTL زیرنویس% \else Footnote% \fi } \renewcommand*{\Frefonname}{% \if@RTL در% \else On% \fi } \renewcommand*{\Frefpgname}{\pagename} \renewcommand*{\Frefsecname}{% \if@RTL قسمت% \else Section% \fi } \renewcommand*{\Frefseename}{% \if@RTL ببینید% \else See% \fi } \renewcommand*{\Freftabname}{\tablename} \renewcommand*{\Freffigshortname}{% \if@RTL \Freffigname \else Fig.% \fi } \renewcommand*{\Frefpgshortname}{% \if@RTL \Frefpgname \else P.% \fi } \renewcommand*{\Freftabshortname}{% \if@RTL \tablename \else Tab.% \fi } \renewcommand*{\frefchapname}{% \if@RTL \Frefchapname \else \MakeLowercase{\Frefchapname}% \fi } \renewcommand*{\frefenumname}{% \if@RTL \Frefenumname \else \MakeLowercase{\Frefenumname}% \fi } \renewcommand*{\frefeqname}{% \if@RTL \Frefeqname \else \MakeLowercase{\Frefeqname}% \fi } \renewcommand*{\freffigname}{% \if@RTL \Freffigname \else \MakeLowercase{\Freffigname}% \fi } \renewcommand*{\freffnname}{% \if@RTL \Freffnname \else \MakeLowercase{\Freffnname}% \fi } \renewcommand*{\frefonname}{% \if@RTL \Frefonname \else \MakeLowercase{\Frefonname}% \fi } \renewcommand*{\frefpgname}{% \if@RTL \Frefpgname \else \MakeLowercase{\Frefpgname}% \fi } \renewcommand*{\frefsecname}{% \if@RTL \Frefsecname \else \MakeLowercase{\Frefsecname}% \fi } \renewcommand*{\frefseename}{% \if@RTL \Frefseename \else \MakeLowercase{\Frefseename}% \fi } \renewcommand*{\freftabname}{% \if@RTL \Freftabname \else \MakeLowercase{\Freftabname}% \fi } \renewcommand*{\freffigshortname}{% \if@RTL \Freffigshortname \else \MakeLowercase{\Freffigshortname}% \fi } \renewcommand*{\frefpgshortname}{% \if@RTL \Frefpgshortname \else \MakeLowercase{\Frefpgshortname}% \fi } \renewcommand*{\freftabshortname}{% \if@RTL \Freftabshortname \else \MakeLowercase{\Freftabshortname}% \fi } % \end{macrocode} % \iffalse % %<*footnote-xepersian.def> %\fi % \section{File \texttt{footnote-xepersian.def}} % \begin{macrocode} \ProvidesFile{footnote-xepersian.def}[2017/08/09 v0.6 footnote macros for xepersian package] \renewcommand*{\bidi@@footnotetext@font}{\footnotesize\if@RTL@footnote\else\resetlatinfont\fi} \renewcommand*{\bidi@@LTRfootnotetext@font}{\footnotesize\resetlatinfont} \renewcommand*{\bidi@@RTLfootnotetext@font}{\footnotesize\setpersianfont} % \end{macrocode} % \iffalse % %<*framed-xepersian.def> %\fi % \section{File \texttt{framed-xepersian.def}} % \begin{macrocode} \ProvidesFile{framed-xepersian.def}[2012/06/05 v0.1 xepersian adaptations for framed package for XeTeX engine] \renewenvironment{titled-frame}[1]{% \def\FrameCommand{\fboxsep8pt\fboxrule2pt \TitleBarFrame{\textbf{#1}}}% \def\FirstFrameCommand{\fboxsep8pt\fboxrule2pt \TitleBarFrame[$\if@RTL\blacktriangleleft\else\blacktriangleright\fi$]{\textbf{#1}}}% \def\MidFrameCommand{\fboxsep8pt\fboxrule2pt \TitleBarFrame[$\if@RTL\blacktriangleleft\else\blacktriangleright\fi$]{\textbf{#1\ (\if@RTL ادامه\else cont\fi)}}}% \def\LastFrameCommand{\fboxsep8pt\fboxrule2pt \TitleBarFrame{\textbf{#1\ (\if@RTL ادامه\else cont\fi)}}}% \MakeFramed{\advance\hsize-20pt \FrameRestore}}% % note: 8 + 2 + 8 + 2 = 20. Don't use \width because the frame title % could interfere with the width measurement. {\endMakeFramed} % \end{macrocode} % \iffalse % %<*glossaries-xepersian.def> %\fi % \section{File \texttt{glossaries-xepersian.def}} % \begin{macrocode} \ProvidesFile{glossaries-xepersian.def}[2014/09/04 v0.4 xepersian adaptations for glossaries package for XeTeX engine] \glsaddprotectedpagefmt{@harfi} \glsaddprotectedpagefmt{@tartibi} \glsaddprotectedpagefmt{@adadi} % \end{macrocode} % \iffalse % %<*hyperref-xepersian.def> %\fi % \section{File \texttt{hyperref-xepersian.def}} % \begin{macrocode} \ProvidesFile{hyperref-xepersian.def}[2022/10/30 v0.8 xepersian adaptations for hyperref package] \def\equationautorefname{\if@RTL معادله\else Equation\fi}% \def\footnoteautorefname{\if@RTL زیرنویس\else footnote\fi}% \def\itemautorefname{\if@RTL فقره\else item\fi}% \def\figureautorefname{\if@RTL شکل\else Figure\fi}% \def\tableautorefname{\if@RTL جدول\else Table\fi}% \def\partautorefname{\if@RTL بخش\else Part\fi}% \def\appendixautorefname{\if@RTL ضمیمه\else Appendix\fi}% \def\chapterautorefname{\if@RTL فصل\else chapter\fi}% \def\sectionautorefname{\if@RTL قسمت\else section\fi}% \def\subsectionautorefname{\if@RTL زیرقسمت\else subsection\fi}% \def\subsubsectionautorefname{\if@RTL زیرزیرقسمت\else subsubsection\fi}% \def\paragraphautorefname{\if@RTL پاراگراف\else paragraph\fi}% \def\subparagraphautorefname{\if@RTL زیرپاراگراف\else subparagraph\fi}% \def\FancyVerbLineautorefname{\if@RTL سطر\else line\fi}% \def\theoremautorefname{\if@RTL قضیه\else Theorem\fi}% \def\pageautorefname{\if@RTL صفحه\else page\fi}% \ifHy@implicit \AtBeginDocument{% \let\HyOrg@appendix\appendix \def\appendix{% \ltx@IfUndefined{chapter}% {\gdef\theHsection{\Alph{section}}}% {\gdef\theHchapter{\Alph{chapter}}}% \xdef\Hy@chapapp{\Hy@appendixstring}% \HyOrg@appendix }% }% \fi \pdfstringdefDisableCommands{% \let\lr\@firstofone \let\rl\@firstofone \def\XePersian{XePersian}% } \ltx@IfUndefined{@resets@pp}{% }{% \let\HyOrg@resets@pp\@resets@pp \def\@resets@pp{% \ltx@IfUndefined{chapter}{% \gdef\theHsection{\Hy@AlphNoErr{section}}% }{% \gdef\theHchapter{\Hy@AlphNoErr{chapter}}% }% \xdef\Hy@chapapp{\Hy@appendixstring}% \HyOrg@resets@pp }% } % \end{macrocode} % \iffalse % %<*imsproc-xepersian.def> %\fi % \section{File \texttt{imsproc-xepersian.def}} % \begin{macrocode} \ProvidesFile{imsproc-xepersian.def}[2017/06/09 v0.5 xepersian adaptations for imsproc class for XeTeX engine] \renewcommand \thepart {\@tartibi\c@part} \def\appendix{\par\c@section\z@ \c@subsection\z@ \let\sectionname\appendixname \def\thesection{\@harfi\c@section}} % \end{macrocode} % \iffalse % %<*kashida-xepersian.def> %\fi % \section{File \texttt{kashida-xepersian.def}} % \begin{macrocode} \ProvidesFile{kashida-xepersian.def}[2024/12/20 v1.0 implementation of Kashida for xepersian package] \chardef\xepersian@zwj="200D % zero-width joiner \chardef\xepersian@kashidachar="0640 % kashida \chardef\xepersian@dualjoiner=10 % dual-joiner class \chardef\xepersian@lam=11 % lam \chardef\xepersian@rightjoiner=12 % right-joiner \chardef\xepersian@alef=13 % alef \chardef\xepersian@vowel=4096 % vowel or other combining mark (to be ignored) \newif\if@Kashida@on \def\xepersian@kashida{% \if@Kashida@on \xepersian@zwj \nobreak \leaders\hrule height \XeTeXglyphbounds\tw@ \the\XeTeXcharglyph\xepersian@kashidachar depth \XeTeXglyphbounds\f@ur \the\XeTeXcharglyph\xepersian@kashidachar \hskip0pt plus 0.5em \xepersian@zwj \fi } \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 \xepersian@alef {0622,0623,0625,0627} \setclass \xepersian@rightjoiner {0624,0629,062F,0630,0631,0632,0648,0698} \setclass \xepersian@dualjoiner {0626,0628,062A,062B,062C,062D,062E} \setclass \xepersian@dualjoiner {0633,0634,0635,0636,0637,0638,0639,063A} \setclass \xepersian@dualjoiner {0640,0641,0642,0643,0645,0646,0647,0649,064A} \setclass \xepersian@dualjoiner {067E,0686,06A9,06AF,06CC} \setclass \xepersian@lam {0644} \setclass \xepersian@vowel {064B,064C,064D,064E,064F,0650,0651,0652} \XeTeXinterchartoks \xepersian@dualjoiner \xepersian@dualjoiner = {\xepersian@kashida} \XeTeXinterchartoks \xepersian@lam \xepersian@dualjoiner = {\xepersian@kashida} \XeTeXinterchartoks \xepersian@dualjoiner \xepersian@lam = {\xepersian@kashida} \XeTeXinterchartoks \xepersian@lam \xepersian@lam = {\xepersian@kashida} \XeTeXinterchartoks \xepersian@dualjoiner \xepersian@rightjoiner = {\xepersian@kashida} \XeTeXinterchartoks \xepersian@dualjoiner \xepersian@alef = {\xepersian@kashida} \XeTeXinterchartoks \xepersian@lam \xepersian@rightjoiner = {\xepersian@kashida} \XeTeXinterchartoks \xepersian@lam \xepersian@alef = {} \newcommand{\KashidaOn}{\@Kashida@ontrue} \newcommand{\KashidaOff}{\@Kashida@onfalse} \KashidaOn % \end{macrocode} % \iffalse % %<*listings-xepersian.def> %\fi % \section{File \texttt{listings-xepersian.def}} % \begin{macrocode} \ProvidesFile{listings-xepersian.def}[2014/07/17 v0.3 bilingual captions for listings package] \def\lstlistingname{\if@RTL برنامهٔ\else Listing\fi} \def\lstlistlistingname{\if@RTL فهرست برنامه‌ها\else Listings\fi} % \end{macrocode} % \iffalse % %<*loadingorder-xepersian.def> %\fi % \section{File \texttt{loadingorder-xepersian.def}} % \begin{macrocode} \ProvidesFile{loadingorder-xepersian.def}[2018/09/29 v0.5 making sure that xepersian is the last package loaded] \bidi@isloaded{algorithmic} \bidi@isloaded{algorithm} \bidi@isloaded{backref} \bidi@isloaded{enumerate} \bidi@isloaded{enumitem} \bidi@isloaded{fancyref} \bidi@isloaded{tocloft} \bidi@isloaded{url} \bidi@isloaded{varioref} \AtBeginDocument{ \if@bidi@algorithmicloaded@\else \bidi@isloaded[\PackageError{xepersian}{Oops! you have loaded package algorithmic after xepersian package. Please load package algorithmic before xepersian package, and then try to run xelatex on your document again}{}]{algorithmic} \fi% \if@bidi@algorithmloaded@\else \bidi@isloaded[\PackageError{xepersian}{Oops! you have loaded package algorithm after xepersian package. Please load package algorithm before xepersian package, and then try to run xelatex on your document again}{}]{algorithm} \fi% \if@bidi@backrefloaded@\else \bidi@isloaded[\PackageError{xepersian}{Oops! you have loaded package backref after xepersian package. Please load package backref before xepersian package, and then try to run xelatex on your document again}{}]{backref} \fi% \if@bidi@enumerateloaded@\else \bidi@isloaded[\PackageError{xepersian}{Oops! you have loaded package enumerate after xepersian package. Please load package enumerate before xepersian package, and then try to run xelatex on your document again}{}]{enumerate} \fi% \if@bidi@enumitemloaded@\else \bidi@isloaded[\PackageError{xepersian}{Oops! you have loaded package enumitem after xepersian package. Please load package enumitem before xepersian package, and then try to run xelatex on your document again}{}]{enumitem} \fi% \if@bidi@fancyrefloaded@\else \bidi@isloaded[\PackageError{xepersian}{Oops! you have loaded package fancyref after xepersian package. Please load package fancyref before xepersian package, and then try to run xelatex on your document again}{}]{fancyref} \fi% \if@bidi@tocloftloaded@\else \bidi@isloaded[\PackageError{xepersian}{Oops! you have loaded package tocloft after xepersian package. Please load package tocloft before xepersian package, and then try to run xelatex on your document again}{}]{tocloft} \fi% \if@bidi@urlloaded@\else \bidi@isloaded[\PackageError{xepersian}{Oops! you have loaded package url after xepersian package. Please load package url before xepersian package, and then try to run xelatex on your document again}{}]{url} \fi% \if@bidi@variorefloaded@\else \bidi@isloaded[\PackageError{xepersian}{Oops! you have loaded package varioref after xepersian package. Please load package varioref before xepersian package, and then try to run xelatex on your document again}{}]{varioref} \fi% } % \end{macrocode} % \iffalse % %<*localise-xepersian.def> %\fi % \section{File \texttt{localise-xepersian.def}} % \begin{macrocode} \ProvidesFile{localise-xepersian.def}[2022/06/06 v0.2c Persian localisation of LaTeX2e] \newcommand{\makezwnjletter}{\catcode`‌=11\relax} \makezwnjletter \newcommand*{\eqcommand}[2]{\if@bidi@csprimitive{#2}{\bidi@csletcs{#1}{#2}}{\bidi@csdefcs{#1}{#2}}} \newcommand*{\eqenvironment}[2]{\newenvironment{#1}{% \if@bidi@csdef{verbatim@}{\let\verbatim@\xepersian@localize@verbatim@}{}\csname#2\endcsname}{\csname end#2\endcsname}} \newcommand*{\EqEnvironment}[2]{% \expandafter\let\csname #1\expandafter\endcsname\csname #2\endcsname \expandafter\let\csname end#1\expandafter\endcsname\csname end#2\endcsname } \@ifpackageloaded{keyval}{% \newcommand*\keyval@eq@alias@key[4][KV]{% \bidi@csletcs{#1@#2@#3}{#1@#2@#4}% \bidi@csletcs{#1@#2@#3@default}{#1@#2@#4@default}}% }{\@ifpackageloaded{xkeyval}{% \newcommand*\keyval@eq@alias@key[4][KV]{% \bidi@csletcs{#1@#2@#3}{#1@#2@#4}% \bidi@csletcs{#1@#2@#3@default}{#1@#2@#4@default}}% }{}} \input{latex-localise-commands-xepersian.def} \input{xepersian-localise-commands-xepersian.def} \input{latex-localise-environments-xepersian.def} \input{xepersian-localise-environments-xepersian.def} \input{latex-localise-messages-xepersian.def} \input{latex-localise-misc-xepersian.def} \input{packages-localise-xepersian.def} \aliasfontfeature{ExternalLocation}{مکان‌خارجی} \aliasfontfeature{Path}{مسیر} \aliasfontfeature{Renderer}{تحویل‌دهنده} \aliasfontfeature{BoldFont}{قلم‌سیاه} \aliasfontfeature{Language}{زبان} \aliasfontfeature{Script}{خط} \aliasfontfeature{UprightFont}{قلم‌عمودی} \aliasfontfeature{ItalicFont}{قلم‌ایتالیک} \aliasfontfeature{BoldItalicFont}{قلم‌ایتالیک‌سیاه} \aliasfontfeature{SlantedFont}{قلم‌خوابیده} \aliasfontfeature{BoldSlantedFont}{قلم‌خوابیده‌سیاه} \aliasfontfeature{SmallCapsFont}{قلم‌کلاه‌کوچک} \aliasfontfeature{UprightFeatures}{ویژگی‌های‌قلم‌عمودی} \aliasfontfeature{BoldFeatures}{ویژگی‌های‌قلم‌سیاه} \aliasfontfeature{ItalicFeatures}{ویژگی‌های‌قلم‌ایتالیک} \aliasfontfeature{BoldItalicFeatures}{ویژگی‌های‌قلم‌ایتالیک‌سیاه} \aliasfontfeature{SlantedFeatures}{ویژگی‌های‌قلم‌خوابیده} \aliasfontfeature{BoldSlantedFeatures}{ویژگی‌های‌قلم‌خوابیده‌سیاه} \aliasfontfeature{SmallCapsFeatures}{ویژگی‌های‌قلم‌کلاه‌کوچک} \aliasfontfeature{SizeFeatures}{ویژگی‌های‌اندازه} \aliasfontfeature{Scale}{ضریب} \aliasfontfeature{WordSpace}{فضای‌کلمه} \aliasfontfeature{PunctuationSpace}{فضای‌نقطه‌گذاری} \aliasfontfeature{FontAdjustment}{تنظیم‌قلم} \aliasfontfeature{LetterSpace}{فضای‌حرف} \aliasfontfeature{HyphenChar}{نویسه‌تیره} \aliasfontfeature{Color}{رنگ} \aliasfontfeature{Opacity}{کدری} \aliasfontfeature{Mapping}{نگاشت} \aliasfontfeature{Weight}{سنگینی} \aliasfontfeature{Width}{پهنا} \aliasfontfeature{OpticalSize}{اندازه‌چشمی} \aliasfontfeature{FakeSlant}{خوابیده‌تقلبی} \aliasfontfeature{FakeStretch}{کشش‌تقلبی} \aliasfontfeature{FakeBold}{سیاه‌تقلبی} \aliasfontfeature{AutoFakeSlant}{خوابیده‌تقلبی‌خودکار} \aliasfontfeature{AutoFakeBold}{سیاه‌تقلبی‌خودکار} \aliasfontfeature{Ligatures}{دویاچندحرف‌متصل‌به‌هم} \aliasfontfeature{Alternate}{متناوب} \aliasfontfeature{Variant}{گوناگون} \aliasfontfeature{Variant}{مجموعه‌سبکی} \aliasfontfeature{CharacterVariant}{گوناگونی‌نویسه} \aliasfontfeature{Style}{سبک} \aliasfontfeature{Annotation}{یادداشت} \aliasfontfeature{RawFeature}{ویژگی‌های‌کال} \aliasfontfeature{CharacterWidth}{پهنای‌نویسه} \aliasfontfeature{Numbers}{ارقام} \aliasfontfeature{Contextuals}{متنی} \aliasfontfeature{Diacritics}{تفکیک‌کننده‌ها} \aliasfontfeature{Letters}{حروف} \aliasfontfeature{Kerning}{دوری} \aliasfontfeature{VerticalPosition}{موقعیت‌عمودی} \aliasfontfeature{Fractions}{کسر} \aliasfontfeatureoption{Language}{Default}{پیش‌فرض} \aliasfontfeatureoption{Language}{Persian}{پارسی} \aliasfontfeatureoption{Script}{Persian}{پارسی} \aliasfontfeatureoption{Script}{Latin}{لاتین} \aliasfontfeatureoption{Style}{MathScript}{اسکریپت‌ریاضی} \aliasfontfeatureoption{Style}{MathScriptScript}{اسکریپت‌اسکریپت‌ریاضی} % \end{macrocode} % \iffalse % %<*memoir-xepersian.def> %\fi % \section{File \texttt{memoir-xepersian.def}} % \begin{macrocode} \ProvidesFile{memoir-xepersian.def}[2010/07/25 v0.1 adaptations for memoir class] \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 % %<*latex-localise-messages-xepersian.def> %\fi % \section{File \texttt{latex-localise-messages-xepersian.def}} % \begin{macrocode} \آماده‌سازی‌پرونده{latex-localise-messages-xepersian.def}[2011/03/01 v0.1 localising LaTeX2e messages] % \end{macrocode} % \iffalse % %<*minitoc-xepersian.def> %\fi % \section{File \texttt{minitoc-xepersian.def}} % \begin{macrocode} \ProvidesFile{minitoc-xepersian.def}[2010/07/25 v0.1 bilingual captions for minitoc package] \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 % %<*latex-localise-misc-xepersian.def> %\fi % \section{File \texttt{latex-localise-misc-xepersian.def}} % \begin{macrocode} \ProvidesFile{latex-localise-misc-xepersian.def}[2012/01/01 v0.2 miscellaneous Persian localisation of LaTeX2e] \تر\گرجدید#1{% \شمار@\نویسه‌ویژه \نویسه‌ویژه\من@ا \بگذار#1\گرنادرست \@گر#1\گردرست \@گر#1\گرنادرست \نویسه‌ویژه\شمار@} \تر\@گر#1#2{% \بگسترپس‌از\تر\نام‌فرمان\بگسترپس‌از\@خورحریصانه‌دو\رشته#1% \بگسترپس‌از\@خورحریصانه‌دو\رشته#2\پایان‌نام‌فرمان {\بگذار#1#2}} \بگذار\تعریف‌نشده\undefined \تر\حلقه#1\ازنو{\تر\تکرارکن{#1\راحت\بگسترپس‌از\تکرارکن\رگ}% \تکرارکن \بگذار\تکرارکن\راحت} \بگذار\ازنو\رگ \بلند\تر \حلقه #1\ازنو{% \تر\تکرارکن{#1\راحت % \راحت اضافی \بگسترپس‌از\تکرارکن\رگ }% \تکرارکن \بگذار\تکرارکن\راحت } \بگذار\ازنو=\رگ \@ifdefinitionfileloaded{latex-xetex-bidi}{% \def\@xfloat #1[#2]{% \@nodocument \def \@captype {#1}% \def \@fps {#2}% \@onelevel@sanitize \@fps \def \reserved@b {!}% \ifx \reserved@b \@fps \@fpsadddefault \else \ifx \@fps \@empty \@fpsadddefault \fi \fi \ifhmode \@bsphack \@floatpenalty -\@Mii \else \@floatpenalty-\@Miii \fi \ifinner \@parmoderr\@floatpenalty\z@ \else \@next\@currbox\@freelist {% \@tempcnta \sixt@@n \expandafter \@tfor \expandafter \reserved@a \expandafter :\expandafter =\@fps \do {% \if \reserved@a h% \ifodd \@tempcnta \else \advance \@tempcnta \@ne \fi \fi \if \reserved@a ا% \ifodd \@tempcnta \else \advance \@tempcnta \@ne \fi \fi \if \reserved@a t% \@setfpsbit \tw@ \fi \if \reserved@a ب% \@setfpsbit \tw@ \fi \if \reserved@a b% \@setfpsbit 4% \fi \if \reserved@a ز% \@setfpsbit 4% \fi \if \reserved@a p% \@setfpsbit 8% \fi \if \reserved@a ص% \@setfpsbit 8% \fi \if \reserved@a !% \ifnum \@tempcnta>15 \advance\@tempcnta -\sixt@@n\relax \fi \fi }% \@tempcntb \csname ftype@\@captype \endcsname \multiply \@tempcntb \@xxxii \advance \@tempcnta \@tempcntb \global \count\@currbox \@tempcnta }% \@fltovf \fi \global \setbox\@currbox \color@vbox \normalcolor \vbox \bgroup \hsize\columnwidth \@parboxrestore \@floatboxreset } \let\bm@و\bm@c \let\bm@چ\bm@l \let\bm@ر\bm@r \let\bm@ز\bm@b \let\bm@ب\bm@t \let\bm@ک\bm@s \long\def\@iiiparbox#1#2[#3]#4#5{% \leavevmode \@pboxswfalse \if@hboxRconstruct\@bidi@list@minipage@parbox@not@nobtrue\fi \if@RTL\if#1t\@bidi@list@minipage@parboxtrue\else\if#1b\@bidi@list@minipage@parboxtrue\else\if#1ز\@bidi@list@minipage@parboxtrue\else\if#1ب\@bidi@list@minipage@parboxtrue\fi\fi\fi\fi\fi \setlength\@tempdima{#4}% \@begin@tempboxa\vbox{\hsize\@tempdima\@parboxrestore#5\@@par}% \ifx\relax#2\else \setlength\@tempdimb{#2}% \edef\@parboxto{to\the\@tempdimb}% \fi \if#1b\vbox \else\if#1ز\vbox \else\if #1t\vtop \else\if #1ب\vtop \else\ifmmode\vcenter \else\@pboxswtrue $\vcenter \fi\fi\fi\fi\fi \@parboxto{\let\hss\vss\let\unhbox\unvbox \csname bm@#3\endcsname}% \if@pboxsw \m@th$\fi \@end@tempboxa} \def\@iiiminipage#1#2[#3]#4{% \leavevmode \@pboxswfalse \if@hboxRconstruct\@bidi@list@minipage@parbox@not@nobtrue\fi \if@RTL\if#1t\@bidi@list@minipage@parboxtrue\else\if#1b\@bidi@list@minipage@parboxtrue\else\if#1ز\@bidi@list@minipage@parboxtrue\else\if#1ب\@bidi@list@minipage@parboxtrue\fi\fi\fi\fi\fi \setlength\@tempdima{#4}% \def\@mpargs{{#1}{#2}[#3]{#4}}% \setbox\@tempboxa\vbox\bgroup \color@begingroup \hsize\@tempdima \textwidth\hsize \columnwidth\hsize \@parboxrestore \def\@mpfn{mpfootnote}\def\thempfn{\thempfootnote}\c@mpfootnote\z@ \let\@footnotetext\@mpfootnotetext \let\@LTRfootnotetext\@mpLTRfootnotetext \let\@RTLfootnotetext\@mpRTLfootnotetext \let\@listdepth\@mplistdepth \@mplistdepth\z@ \@minipagerestore \@setminipage} \def\@testpach#1{\@chclass \ifnum \@lastchclass=\tw@ 4 \else \ifnum \@lastchclass=3 5 \else \z@ \if #1c\@chnum \z@ \else \if #1و\@chnum \z@ \else \if \if@RTLtab#1r\else#1l\fi\@chnum \@ne \else \if \if@RTLtab#1ر\else#1چ\fi\@chnum \@ne \else \if \if@RTLtab#1l\else#1r\fi\@chnum \tw@ \else \if \if@RTLtab#1چ\else#1ر\fi\@chnum \tw@ \else \@chclass \if #1|\@ne \else \if #1@\tw@ \else \if #1p3 \else \if #1پ3 \else \z@ \@preamerr 0\fi \fi \fi \fi \fi \fi \fi \fi \fi \fi \fi \fi}% }{} \@ifdefinitionfileloaded{array-xetex-bidi}{% \def\@testpach{\@chclass \ifnum \@lastchclass=6 \@ne \@chnum \@ne \else \ifnum \@lastchclass=7 5 \else \ifnum \@lastchclass=8 \tw@ \else \ifnum \@lastchclass=9 \thr@@ \else \z@ \ifnum \@lastchclass = 10 \else \edef\@nextchar{\expandafter\string\@nextchar}% \@chnum \if \@nextchar c\z@ \else \if \@nextchar و\z@ \else \if \@nextchar \if@RTLtab r\else l\fi\@ne \else \if \@nextchar \if@RTLtab ر\else چ\fi\@ne \else \if \@nextchar \if@RTLtab l\else r\fi\tw@ \else \if \@nextchar \if@RTLtab چ\else ر\fi\tw@ \else \z@ \@chclass \if\@nextchar |\@ne \else \if \@nextchar !6 \else \if \@nextchar @7 \else \if \@nextchar <8 \else \if \@nextchar >9 \else 10 \@chnum \if \@nextchar m\thr@@\else \if \@nextchar م\thr@@\else \if \@nextchar p4 \else \if \@nextchar پ4 \else \if \@nextchar b5 \else \if \@nextchar ز5 \else \z@ \@chclass \z@ \@preamerr \z@ \fi \fi \fi \fi \fi \fi \fi \fi \fi \fi \fi \fi \fi \fi \fi \fi \fi \fi \fi \fi \fi \fi}% }{} \@ifdefinitionfileloaded{arydshln-xetex-bidi}{ \ifadl@usingarypkg \def\@testpach{\@chclass \ifnum \@lastchclass=6 \@ne \@chnum \@ne \else \ifnum \@lastchclass=7 5 \else \ifnum \@lastchclass=8 \tw@ \else \ifnum \@lastchclass=9 \thr@@ \else \z@ \ifnum \@lastchclass = 10 \else \edef\@nextchar{\expandafter\string\@nextchar}% \@chnum \if \@nextchar c\z@ \else \if \@nextchar و\z@ \else \if \@nextchar \if@RTLtab r\else l\fi\@ne \else \if \@nextchar \if@RTLtab ر\else چ\fi\@ne \else \if \@nextchar \if@RTLtab l\else r\fi\tw@ \else \if \@nextchar \if@RTLtab چ\else ر\fi\tw@ \else \z@ \@chclass \if\@nextchar |\@ne \let\@arrayrule\adl@arrayrule \else \if\@nextchar :\@ne \let\@arrayrule\adl@arraydashrule \else \if\@nextchar ;\@ne \let\@arrayrule\adl@argarraydashrule \else \if \@nextchar !6 \else \if \@nextchar @7 \else \if \@nextchar <8 \else \if \@nextchar >9 \else 10 \@chnum \if \@nextchar m\thr@@\else \if \@nextchar م\thr@@\else \if \@nextchar p4 \else \if \@nextchar پ4 \else \if \@nextchar b5 \else \if \@nextchar ز5 \else \z@ \@chclass \z@ \@preamerr \z@ \fi \fi \fi \fi \fi \fi \fi \fi \fi \fi \fi \fi \fi \fi \fi \fi \fi \fi \fi \fi \fi \fi \fi \fi} \def\@classz{\@classx \@tempcnta \count@ \prepnext@tok \@addtopreamble{\ifcase \@chnum \hfil \adl@putlrc{\d@llarbegin \insert@column \d@llarend}\hfil \or \hskip1sp\adl@putlrc{\d@llarbegin \insert@column \d@llarend}\hfil \or \hfil\hskip1sp\adl@putlrc{\d@llarbegin \insert@column \d@llarend}\or \setbox\adl@box\hbox \adl@startmbox{\@nextchar}\insert@column \adl@endmbox\or \setbox\adl@box\vtop \@startpbox{\@nextchar}\insert@column \@endpbox \or \setbox\adl@box\vbox \@startpbox{\@nextchar}\insert@column \@endpbox \fi}\prepnext@tok} \def\adl@class@start{4} \def\adl@class@iiiorvii{7} \else \def\@testpach#1{\@chclass \ifnum \@lastchclass=\tw@ 4\relax \else \ifnum \@lastchclass=\thr@@ 5\relax \else \z@ \if #1c\@chnum \z@ \else \if #1و\@chnum\z@ \else \if \if@RTLtab#1r\else#1l\fi\@chnum \@ne \else \if \if@RTLtab#1ر\else#1چ\fi\@chnum \@ne \else \if \if@RTLtab#1l\else#1r\fi\@chnum \tw@ \else \if \if@RTLtab#1چ\else#1ر\fi\@chnum \tw@ \else \@chclass \if #1|\@ne \let\@arrayrule\adl@arrayrule \else \if #1:\@ne \let\@arrayrule\adl@arraydashrule \else \if #1;\@ne \let\@arrayrule\adl@argarraydashrule \else \if #1@\tw@ \else \if #1p\thr@@ \else \if #1پ\thr@@ \else\z@ \@preamerr 0\fi \fi \fi \fi \fi \fi \fi \fi \fi \fi \fi \fi \fi \fi} \def\@arrayclassz{\ifcase \@lastchclass \@acolampacol \or \@ampacol \or \or \or \@addamp \or \@acolampacol \or \@firstampfalse \@acol \fi \edef\@preamble{\@preamble \ifcase \@chnum \hfil\adl@putlrc{$\relax\@sharp$}\hfil \or \adl@putlrc{$\relax\@sharp$}\hfil \or \hfil\adl@putlrc{$\relax\@sharp$}\fi}} \def\@tabclassz{\ifcase \@lastchclass \@acolampacol \or \@ampacol \or \or \or \@addamp \or \@acolampacol \or \@firstampfalse \@acol \fi \edef\@preamble{\@preamble \ifcase \@chnum \hfil\adl@putlrc{\@sharp\unskip}\hfil \or \adl@putlrc{\@sharp\unskip}\hfil \or \hfil\hskip\z@ \adl@putlrc{\@sharp\unskip}\fi}} \def\adl@class@start{6} \def\adl@class@iiiorvii{3} \fi }{} \@ifdefinitionfileloaded{tabulary-xetex-bidi}{% \def\@testpach{\@chclass \ifnum \@lastchclass=6 \@ne \@chnum \@ne \else \ifnum \@lastchclass=7 5 \else \ifnum \@lastchclass=8 \tw@ \else \ifnum \@lastchclass=9 \thr@@ \else \z@ \ifnum \@lastchclass = 10 \else \edef\@nextchar{\expandafter\string\@nextchar}% \@chnum \if \@nextchar c\z@ \else \if \@nextchar و\z@ \else \if \@nextchar \if@RTLtab r\else l\fi\@ne \else \if \@nextchar \if@RTLtab ر\else چ\fi\@ne \else \if \@nextchar \if@RTLtab l\else r\fi\tw@ \else \if \@nextchar \if@RTLtab چ\else ر\fi\tw@ \else \if \@nextchar C7 \else \if \@nextchar س7 \else \if \@nextchar L8 \else \if \@nextchar ف8 \else \if \@nextchar R9 \else \if \@nextchar ا9 \else \if \@nextchar J10 \else \if \@nextchar ت10 \else \z@ \@chclass \if\@nextchar |\@ne \else \if \@nextchar !6 \else \if \@nextchar @7 \else \if \@nextchar <8 \else \if \@nextchar >9 \else 10 \@chnum \if \@nextchar m\thr@@\else \if \@nextchar م\thr@@\else \if \@nextchar p4 \else \if \@nextcharپ4 \else \if \@nextchar b5 \else \if \@nextchar ز5 \else \z@ \@chclass \z@ \@preamerr \z@ \fi \fi \fi \fi\fi \fi \fi\fi \fi \fi \fi \fi \fi \fi \fi \fi \fi \fi \fi \fi \fi \fi \fi \fi \fi \fi \fi \fi \fi \fi}% }{} \@ifdefinitionfileloaded{float-xetex-bidi}{% \let\@float@Hx\@xfloat \def\@xfloat#1[{\@ifnextchar{H}{\@float@HH{#1}[}{\@ifnextchar{آ}{\@float@آآ{#1}[}{\@float@Hx{#1}[}}} \def\@float@HH#1[H]{% \expandafter\let\csname end#1\endcsname\float@endH \let\@currbox\float@box \def\@captype{#1}\setbox\@floatcapt=\vbox{}% \expandafter\ifx\csname fst@#1\endcsname\relax \@flstylefalse\else\@flstyletrue\fi \setbox\@currbox\color@vbox\normalcolor \vbox\bgroup \hsize\columnwidth \@parboxrestore \@floatboxreset \@setnobreak \ignorespaces} \def\@float@آآ#1[آ]{% \expandafter\let\csname end#1\endcsname\float@endH \let\@currbox\float@box \def\@captype{#1}\setbox\@floatcapt=\vbox{}% \expandafter\ifx\csname fst@#1\endcsname\relax \@flstylefalse\else\@flstyletrue\fi \setbox\@currbox\color@vbox\normalcolor \vbox\bgroup \hsize\columnwidth \@parboxrestore \@floatboxreset \@setnobreak \ignorespaces} }{} \begingroup \catcode `|=0 \catcode `[= 1 \catcode`]=2 \catcode `\{=12 \catcode `\}=12 \catcode`\\=12 |gdef|@x@xepersian@localize@verbatim#1\پایان{همانطورکه‌هست}[#1|پایان[همانطورکه‌هست]] |gdef|@sx@xepersian@localize@verbatim#1\پایان{همانطورکه‌هست*}[#1|پایان[همانطورکه‌هست*]] |endgroup \def\همانطورکه‌هست{\@verbatim \frenchspacing\@vobeyspaces \@x@xepersian@localize@verbatim} \def\endهمانطورکه‌هست{\if@newlist \leavevmode\fi\endtrivlist} \ExplSyntaxOn \AtBeginDocument{\@namedef{همانطورکه‌هست*}{\@verbatim \fontspec_print_visible_spaces: \@sx@xepersian@localize@verbatim}} \ExplSyntaxOff \expandafter\let\csname endهمانطورکه‌هست*\endcsname =\endهمانطورکه‌هست % \end{macrocode} % \iffalse % %<*natbib-xepersian.def> %\fi % \section{File \texttt{natbib-xepersian.def}} % \begin{macrocode} \ProvidesFile{natbib-xepersian.def}[2011/08/01 v0.1 adaptations for natbib package] \renewcommand\NAT@set@cites{% \ifNAT@numbers \ifNAT@super \let\@cite\NAT@citesuper \def\NAT@mbox##1{\unskip\nobreak\textsuperscript{##1}}% \let\citeyearpar=\citeyear \let\NAT@space\relax \def\NAT@super@kern{\kern\p@}% \else \let\NAT@mbox=\mbox \let\@cite\NAT@citenum \let\NAT@space\NAT@spacechar \let\NAT@super@kern\relax \fi \let\@citex\NAT@citexnum \let\@Latincitex\NAT@Latin@citexnum \let\@biblabel\NAT@biblabelnum \let\@bibsetup\NAT@bibsetnum \renewcommand\NAT@idxtxt{\NAT@name\NAT@spacechar\NAT@open\NAT@num\NAT@close}% \def\natexlab##1{}% \def\NAT@penalty{\penalty\@m}% \else \let\@cite\NAT@cite \let\@citex\NAT@citex \let\@Latincitex\NAT@Latin@citex \let\@biblabel\NAT@biblabel \let\@bibsetup\NAT@bibsetup \let\NAT@space\NAT@spacechar \let\NAT@penalty\@empty \renewcommand\NAT@idxtxt{\NAT@name\NAT@spacechar\NAT@open\NAT@date\NAT@close}% \def\natexlab##1{##1}% \fi} \newcommand\NAT@Latin@citex{} \def\NAT@Latin@citex% [#1][#2]#3{% \NAT@reset@parser \NAT@sort@cites{#3}% \NAT@reset@citea \@cite{\lr{\let\NAT@nm\@empty\let\NAT@year\@empty \@for\@citeb:=\NAT@cite@list\do {\@safe@activestrue \edef\@citeb{\expandafter\@firstofone\@citeb\@empty}% \@safe@activesfalse \@ifundefined{b@\@citeb\@extra@b@citeb}{\@citea% {\reset@font\bfseries ?}\NAT@citeundefined \PackageWarning{natbib}% {Citation `\@citeb' on page \thepage \space undefined}\def\NAT@date{}}% {\let\NAT@last@nm=\NAT@nm\let\NAT@last@yr=\NAT@year \NAT@parse{\@citeb}% \ifNAT@longnames\@ifundefined{bv@\@citeb\@extra@b@citeb}{% \let\NAT@name=\NAT@all@names \global\@namedef{bv@\@citeb\@extra@b@citeb}{}}{}% \fi \ifNAT@full\let\NAT@nm\NAT@all@names\else \let\NAT@nm\NAT@name\fi \ifNAT@swa\ifcase\NAT@ctype \if\relax\NAT@date\relax \@citea\NAT@hyper@{\NAT@nmfmt{\NAT@nm}\NAT@date}% \else \ifx\NAT@last@nm\NAT@nm\NAT@yrsep \ifx\NAT@last@yr\NAT@year \def\NAT@temp{{?}}% \ifx\NAT@temp\NAT@exlab\PackageWarningNoLine{natbib}% {Multiple citation on page \thepage: same authors and year\MessageBreak without distinguishing extra letter,\MessageBreak appears as question mark}\fi \NAT@hyper@{\NAT@exlab}% \else\unskip\NAT@spacechar \NAT@hyper@{\NAT@date}% \fi \else \@citea\NAT@hyper@{% \NAT@nmfmt{\NAT@nm}% \hyper@natlinkbreak{% \NAT@aysep\NAT@spacechar}{\@citeb\@extra@b@citeb }% \NAT@date }% \fi \fi \or\@citea\NAT@hyper@{\NAT@nmfmt{\NAT@nm}}% \or\@citea\NAT@hyper@{\NAT@date}% \or\@citea\NAT@hyper@{\NAT@alias}% \fi \NAT@def@citea \else \ifcase\NAT@ctype \if\relax\NAT@date\relax \@citea\NAT@hyper@{\NAT@nmfmt{\NAT@nm}}% \else \ifx\NAT@last@nm\NAT@nm\NAT@yrsep \ifx\NAT@last@yr\NAT@year \def\NAT@temp{{?}}% \ifx\NAT@temp\NAT@exlab\PackageWarningNoLine{natbib}% {Multiple citation on page \thepage: same authors and year\MessageBreak without distinguishing extra letter,\MessageBreak appears as question mark}\fi \NAT@hyper@{\NAT@exlab}% \else \unskip\NAT@spacechar \NAT@hyper@{\NAT@date}% \fi \else \@citea\NAT@hyper@{% \NAT@nmfmt{\NAT@nm}% \hyper@natlinkbreak{\NAT@spacechar\NAT@@open\if*#1*\else#1\NAT@spacechar\fi}% {\@citeb\@extra@b@citeb}% \NAT@date }% \fi \fi \or\@citea\NAT@hyper@{\NAT@nmfmt{\NAT@nm}}% \or\@citea\NAT@hyper@{\NAT@date}% \or\@citea\NAT@hyper@{\NAT@alias}% \fi \if\relax\NAT@date\relax \NAT@def@citea \else \NAT@def@citea@close \fi \fi }}\ifNAT@swa\else\if*#2*\else\NAT@cmt#2\fi \if\relax\NAT@date\relax\else\NAT@@close\fi\fi}}{#1}{#2}} \newcommand\NAT@Latin@citexnum{} \def\NAT@Latin@citexnum[#1][#2]#3{% \NAT@reset@parser \NAT@sort@cites{#3}% \NAT@reset@citea \@cite{\lr{\def\NAT@num{-1}\let\NAT@last@yr\relax\let\NAT@nm\@empty \@for\@citeb:=\NAT@cite@list\do {\@safe@activestrue \edef\@citeb{\expandafter\@firstofone\@citeb\@empty}% \@safe@activesfalse \@ifundefined{b@\@citeb\@extra@b@citeb}{% {\reset@font\bfseries?} \NAT@citeundefined\PackageWarning{natbib}% {Citation `\@citeb' on page \thepage \space undefined}}% {\let\NAT@last@num\NAT@num\let\NAT@last@nm\NAT@nm \NAT@parse{\@citeb}% \ifNAT@longnames\@ifundefined{bv@\@citeb\@extra@b@citeb}{% \let\NAT@name=\NAT@all@names \global\@namedef{bv@\@citeb\@extra@b@citeb}{}}{}% \fi \ifNAT@full\let\NAT@nm\NAT@all@names\else \let\NAT@nm\NAT@name\fi \ifNAT@swa \@ifnum{\NAT@ctype>\@ne}{% \@citea \NAT@hyper@{\@ifnum{\NAT@ctype=\tw@}{\NAT@test{\NAT@ctype}}{\NAT@alias}}% }{% \@ifnum{\NAT@cmprs>\z@}{% \NAT@ifcat@num\NAT@num {\let\NAT@nm=\NAT@num}% {\def\NAT@nm{-2}}% \NAT@ifcat@num\NAT@last@num {\@tempcnta=\NAT@last@num\relax}% {\@tempcnta\m@ne}% \@ifnum{\NAT@nm=\@tempcnta}{% \@ifnum{\NAT@merge>\@ne}{}{\NAT@last@yr@mbox}% }{% \advance\@tempcnta by\@ne \@ifnum{\NAT@nm=\@tempcnta}{% \ifx\NAT@last@yr\relax \def@NAT@last@yr{\@citea}% \else \def@NAT@last@yr{--\NAT@penalty}% \fi }{% \NAT@last@yr@mbox }% }% }{% \@tempswatrue \@ifnum{\NAT@merge>\@ne}{\@ifnum{\NAT@last@num=\NAT@num\relax}{\@tempswafalse}{}}{}% \if@tempswa\NAT@citea@mbox\fi }% }% \NAT@def@citea \else \ifcase\NAT@ctype \ifx\NAT@last@nm\NAT@nm \NAT@yrsep\NAT@penalty\NAT@space\else \@citea \NAT@test{\@ne}\NAT@spacechar\NAT@mbox{\NAT@super@kern\NAT@@open}% \fi \if*#1*\else#1\NAT@spacechar\fi \NAT@mbox{\NAT@hyper@{{\citenumfont{\NAT@num}}}}% \NAT@def@citea@box \or \NAT@hyper@citea@space{\NAT@test{\NAT@ctype}}% \or \NAT@hyper@citea@space{\NAT@test{\NAT@ctype}}% \or \NAT@hyper@citea@space\NAT@alias \fi \fi }% }% \@ifnum{\NAT@cmprs>\z@}{\NAT@last@yr}{}% \ifNAT@swa\else \@ifnum{\NAT@ctype=\z@}{% \if*#2*\else\NAT@cmt#2\fi }{}% \NAT@mbox{\NAT@@close}% \fi }}{#1}{#2}% }% \AtBeginDocument{\NAT@set@cites} \DeclareRobustCommand\Latincite {\begingroup\let\NAT@ctype\z@\NAT@partrue\NAT@swatrue \@ifstar{\NAT@fulltrue\NAT@Latin@cites}{\NAT@fullfalse\NAT@Latin@cites}} \newcommand\NAT@Latin@cites{\@ifnextchar [{\NAT@@Latin@@citetp}{% \ifNAT@numbers\else \NAT@swafalse \fi \NAT@@Latin@@citetp[]}} \newcommand\NAT@@Latin@@citetp{} \def\NAT@@Latin@@citetp[#1]{\@ifnextchar[{\@Latincitex[#1]}{\@Latincitex[][#1]}} % \end{macrocode} % \iffalse % %<*packages-localise-xepersian.def> %\fi % \section{File \texttt{packages-localise-xepersian.def}} % \begin{macrocode} \آماده‌سازی‌پرونده{packages-localise-xepersian.def}[2013/04/24 v0.2 localising LaTeX2e Packages] \@گرسبک‌فراخوانی‌شده{color}{\ورودی{color-localise-xepersian.def}}{} \@ifpackageloaded{multicol}{% \newenvironment{چندستونی‌ها}{\begin{multicols}}{\end{multicols}}% \newenvironment{چندستونی‌ها*}{\begin{multicols*}}{\end{multicols*}}% }{} \@ifpackageloaded{verbatim}{% \begingroup \vrb@catcodes \lccode`\!=`\\ \lccode`\[=`\{ \lccode`\]=`\} \catcode`\~=\active \lccode`\~=`\^^M \lccode`\C=`\C \lowercase{\endgroup \def\xepersian@localize@verbatim@start#1{% \verbatim@startline \if\noexpand#1\noexpand~% \let\next\xepersian@localize@verbatim@ \else \def\next{\xepersian@localize@verbatim@#1}\fi \next}% \def\xepersian@localize@verbatim@#1~{\xepersian@localize@verbatim@@#1!پایان\@nil}% \def\xepersian@localize@verbatim@@#1!پایان{% \verbatim@addtoline{#1}% \futurelet\next\xepersian@localize@verbatim@@@}% \def\xepersian@localize@verbatim@@@#1\@nil{% \ifx\next\@nil \verbatim@processline \verbatim@startline \let\next\xepersian@localize@verbatim@ \else \def\@tempa##1!پایان\@nil{##1}% \@temptokena{!پایان}% \def\next{\expandafter\xepersian@localize@verbatim@test\@tempa#1\@nil~}% \fi \next}% \def\xepersian@localize@verbatim@test#1{% \let\next\xepersian@localize@verbatim@test \if\noexpand#1\noexpand~% \expandafter\verbatim@addtoline \expandafter{\the\@temptokena}% \verbatim@processline \verbatim@startline \let\next\xepersian@localize@verbatim@ \else \if\noexpand#1 \@temptokena\expandafter{\the\@temptokena#1}% \else \if\noexpand#1\noexpand[% \let\@tempc\@empty \let\next\xepersian@localize@verbatim@testend \else \expandafter\verbatim@addtoline \expandafter{\the\@temptokena}% \def\next{\xepersian@localize@verbatim@#1}% \fi\fi\fi \next}% \def\xepersian@localize@verbatim@testend#1{% \if\noexpand#1\noexpand~% \expandafter\verbatim@addtoline \expandafter{\the\@temptokena[}% \expandafter\verbatim@addtoline \expandafter{\@tempc}% \verbatim@processline \verbatim@startline \let\next\xepersian@localize@verbatim@ \else\if\noexpand#1\noexpand]% \let\next\xepersian@localize@verbatim@@testend \else\if\noexpand#1\noexpand!% \expandafter\verbatim@addtoline \expandafter{\the\@temptokena[}% \expandafter\verbatim@addtoline \expandafter{\@tempc}% \def\next{\xepersian@localize@verbatim@!}% \else \expandafter\def\expandafter\@tempc\expandafter {\@tempc#1}\fi\fi\fi \next}% \def\xepersian@localize@verbatim@@testend{% \ifx\@tempc\@currenvir \verbatim@finish \edef\next{\noexpand\end{\@currenvir}% \noexpand\xepersian@localize@verbatim@rescan{\@currenvir}}% \else \expandafter\verbatim@addtoline \expandafter{\the\@temptokena[}% \expandafter\verbatim@addtoline \expandafter{\@tempc]}% \let\next\xepersian@localize@verbatim@ \fi \next}% \def\xepersian@localize@verbatim@rescan#1#2~{\if\noexpand~\noexpand#2~\else \@warning{Characters dropped after `\string\end{#1}'}\fi}}% \def\همانطورکه‌هست{\begingroup\@verbatim \frenchspacing\@vobeyspaces \xepersian@localize@verbatim@start} \@namedef{همانطورکه‌هست*}{\begingroup\@verbatim\xepersian@localize@verbatim@start} \def\endهمانطورکه‌هست{\endtrivlist\endgroup\@doendpe} \expandafter\let\csname endهمانطورکه‌هست*\endcsname =\endهمانطورکه‌هست }{} \ExplSyntaxOn \AtBeginDocument{ \xepersian_localize_patch_verbatim: } \cs_set:Npn \xepersian_localize_patch_verbatim: { \@ifpackageloaded{verbatim}{ \cs_set:cpn {همانطورکه‌هست*} { \group_begin: \@verbatim \fontspec_print_visible_spaces: \xepersian@localize@verbatim@start } }{ } } \ExplSyntaxOff \@ifpackageloaded{graphicx}{% \def\Gin@boolkey#1#2{% \expandafter\@ifdefinable \csname Gin@#2درست\endcsname{% \expandafter\let\csname Gin@#2درست\expandafter\endcsname\csname Gin@#2true\endcsname}% \expandafter\@ifdefinable \csname Gin@#2نادرست\endcsname{% \expandafter\let\csname Gin@#2نادرست\expandafter\endcsname\csname Gin@#2false\endcsname}% \csname Gin@#2\ifx\relax#1\relax true\else#1\fi\endcsname} \define@key{Grot}{origin}[c]{% \@tfor\@tempa:=#1\do{% \if l\@tempa \Grot@x\z@\else \if چ\@tempa \Grot@x\z@\else \if r\@tempa \Grot@x\width\else \if ر\@tempa \Grot@x\width\else \if t\@tempa \Grot@y\height\else \if ب\@tempa \Grot@y\height\else \if b\@tempa \Grot@y-\depth\else \if ز\@tempa \Grot@y-\depth\else \if B\@tempa \Grot@y\z@\else \if ک\@tempa \Grot@y\z@\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}} \معادل@کلید{Gin}{پیش‌نویس}{draft} \معادل@کلید{Gin}{مبدا}{origin} \معادل@کلید{Grot}{مبدا}{origin} \معادل@کلید{Gin}{بی‌اضافه}{clip} \معادل@کلید{Gin}{حفظ‌تناسب}{keepaspectratio} \معادل@کلید{Gin}{پهنای‌طبیعی}{natwidth} \معادل@کلید{Gin}{بلندای‌طبیعی}{natheight} \معادل@کلید{Gin}{مختصات}{bb} \معادل@کلید{Gin}{محدوده‌نمایش}{viewport} \معادل@کلید{Gin}{حذف‌اطراف}{trim} \معادل@کلید{Gin}{زاویه}{angle} \معادل@کلید{Gin}{پهنا}{width} \معادل@کلید{Gin}{بلندا}{height} \معادل@کلید{Gin}{بلندای‌کل}{totalheight} \معادل@کلید{Gin}{ضریب}{scale} \معادل@کلید{Gin}{نوع}{type} \معادل@کلید{Gin}{پسوند}{ext} \معادل@کلید{Gin}{خواندنی}{read} \معادل@کلید{Gin}{فرمان}{command} \معادل@کلید{Grot}{طول}{x} \معادل@کلید{Grot}{عرض}{y} \معادل@کلید{Grot}{واحد}{units} }{} % \end{macrocode} % \iffalse % %<*url-xepersian.def> %\fi % \section{File \texttt{url-xepersian.def}} % \begin{macrocode} \ProvidesFile{url-xepersian.def}[2022/02/18 v0.1 adaptations for url package] \begingroup \lccode`+=`\% \lccode`\~=`\% \lowercase {\long\gdef\Url@actpercent{\Url@Edit\Url@String{+}{~}% \ifnum\Umathcodenum`\%<32768 \def~{\%}\fi}}% \endgroup% % \end{macrocode} % \iffalse % %<*persian-tex-text.map> %\fi % \section{File \texttt{persian-tex-text.map}} % \begin{macrocode} LHSName "persian-TeX-text" RHSName "Unicode" 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+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 % \end{macrocode} % \iffalse % %<*persian-tex-text-nonumbers.map> %\fi % \section{File \texttt{persian-tex-text-nonumbers.map}} % \begin{macrocode} LHSName "persian-TeX-text-nonumbers" RHSName "Unicode" pass(Unicode) 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 % \end{macrocode} % \iffalse % %<*rapport1-xepersian.def> %\fi % \section{File \texttt{rapport1-xepersian.def}} % \begin{macrocode} \ProvidesFile{rapport1-xepersian.def}[2010/07/25 v0.1 adaptations for rapport1 class] \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> %\fi % \section{File \texttt{rapport3-xepersian.def}} % \begin{macrocode} \ProvidesFile{rapport3-xepersian.def}[2010/07/25 v0.2 adaptations for rapport3 class] \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 % %<*refrep-xepersian.def> %\fi % \section{File \texttt{refrep-xepersian.def}} % \begin{macrocode} \ProvidesFile{refrep-xepersian.def}[2010/07/25 v0.2 adaptations for refrep class] \renewcommand \thepart {\@tartibi\c@part} \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> %\fi % \section{File \texttt{report-xepersian.def}} % \begin{macrocode} \ProvidesFile{report-xepersian.def}[2010/07/25 v0.2 adaptations for standard report class] \renewcommand \thepart {\@tartibi\c@part} \renewcommand\appendix{\par \setcounter{chapter}{0}% \setcounter{section}{0}% \gdef\@chapapp{\appendixname}% \gdef\thechapter{\@harfi\c@chapter} }%end appendix % \end{macrocode} % \iffalse % %<*scrartcl-xepersian.def> %\fi % \section{File \texttt{scrartcl-xepersian.def}} % \begin{macrocode} \ProvidesFile{scrartcl-xepersian.def}[2022/05/22 v0.3 adaptations for scrartcl class] \renewcommand*{\thepart}{\@tartibi\c@part} \renewcommand*\appendix{% \Ifstr{\@currenvir}{appendix}{% \ClassWarning{\KOMAClassName}{% You are using `\string\begin{appendix}...\string\end{appendix}'.\MessageBreak You should note, that `\string\appendix' is a mostly globally\MessageBreak working command not an enviroment with only local\MessageBreak effects. Therefore `\string\end{appendix}' will neither\MessageBreak switch back to normal section numbering nor finish\MessageBreak every other effect of `\string\begin{appendix}'.\MessageBreak Nevertheless, some effects may end with\MessageBreak `\string\end{appendix}' and the document may become\MessageBreak inconsistent.\MessageBreak Because of this, you should remove `\string\end{appendix}'\MessageBreak and replace `\string\begin{appendix}' by command\MessageBreak `\string\appendix'% }% }{}% \par \setcounter{section}{0}% \setcounter{subsection}{0}% \gdef\thesection{\@harfi\c@section}% } \IfLTXAtLeastTF{2020/10/01}{% \g@addto@macro{\appendix}{\UseOneTimeHook{\KOMAClassName/appendix}}% }{} \g@addto@macro{\appendix}{\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> %\fi % \section{File \texttt{scrbook-xepersian.def}} % \begin{macrocode} \ProvidesFile{scrbook-xepersian.def}[2022/05/22 v0.3 adaptations for scrbook class] \renewcommand*\frontmatter{% \if@twoside\cleardoubleoddpage\else\clearpage\fi \@mainmatterfalse\pagenumbering{harfi}% } \renewcommand*{\thepart}{\@tartibi\c@part} \renewcommand*\appendix{% \Ifstr{\@currenvir}{appendix}{% \ClassWarning{\KOMAClassName}{% You are using `\string\begin{appendix}...\string\end{appendix}'.\MessageBreak You should note, that `\string\appendix' is a mostly globally\MessageBreak working command not an enviroment with only local\MessageBreak effects. Therefore `\string\end{appendix}' will neither\MessageBreak switch back to normal section numbering nor finish\MessageBreak every other effect of `\string\begin{appendix}'.\MessageBreak Nevertheless, some effects may end with\MessageBreak `\string\end{appendix}' and the document may become\MessageBreak inconsistent.\MessageBreak Because of this, you should remove `\string\end{appendix}'\MessageBreak and replace `\string\begin{appendix}' by command\MessageBreak `\string\appendix'% }% }{}% \par \setcounter{chapter}{0}% \setcounter{section}{0}% \gdef\@chapapp{\appendixname}% \gdef\thechapter{\@harfi\c@chapter}% } \IfLTXAtLeastTF{2020/10/01}{% \g@addto@macro{\appendix}{\UseOneTimeHook{\KOMAClassName/appendix}}% }{} \g@addto@macro{\appendix}{\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> %\fi % \section{File \texttt{scrreprt-xepersian.def}} % \begin{macrocode} \ProvidesFile{scrreprt-xepersian.def}[2022/05/22 v0.3 adaptations for scrreprt class] \renewcommand*{\thepart}{\@tartibi\c@part} \renewcommand*\appendix{% \Ifstr{\@currenvir}{appendix}{% \ClassWarning{\KOMAClassName}{% You are using `\string\begin{appendix}...\string\end{appendix}'.\MessageBreak You should note, that `\string\appendix' is a mostly globally\MessageBreak working command not an enviroment with only local\MessageBreak effects. Therefore `\string\end{appendix}' will neither\MessageBreak switch back to normal section numbering nor finish\MessageBreak every other effect of `\string\begin{appendix}'.\MessageBreak Nevertheless, some effects may end with\MessageBreak `\string\end{appendix}' and the document may become\MessageBreak inconsistent.\MessageBreak Because of this, you should remove `\string\end{appendix}'\MessageBreak and replace `\string\begin{appendix}' by command\MessageBreak `\string\appendix'% }% }{}% \par \setcounter{chapter}{0}% \setcounter{section}{0}% \gdef\@chapapp{\appendixname}% \gdef\thechapter{\@harfi\c@chapter}% } \IfLTXAtLeastTF{2020/10/01}{% \g@addto@macro{\appendix}{\UseOneTimeHook{\KOMAClassName/appendix}}% }{} \g@addto@macro{\appendix}{\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 % %<*soul-xepersian.def> %\fi % \section{File \texttt{soul-xepersian.def}} % \begin{macrocode} \ProvidesFile{soul-xepersian.def}[2018/12/12 v0.2 adaptations for soul package] \let\SOUL@tt@latin\SOUL@tt \newfontface{\SOUL@tt@nonlatin}{Times New Roman} \def\SOUL@tt{% \if@nonlatin \SOUL@tt@nonlatin \else \SOUL@tt@latin \fi } \bidi@appto\resetlatinfont{% \setbox\z@\hbox{\SOUL@tt-}% \SOUL@ttwidth\wd\z@ } \bidi@appto\setpersianfont{% \setbox\z@\hbox{\SOUL@tt-}% \SOUL@ttwidth\wd\z@ } % \end{macrocode} % \iffalse % %<*tkz-linknodes-xepersian.def> %\fi % \section{File \texttt{tkz-linknodes-xepersian.def}} % \begin{macrocode} \ProvidesFile{tkz-linknodes-xepersian.def}[2012/06/13 v0.1 adaptations for tkz-linknodes package] \renewcommand*{\@SetTab}{% \let\@alph\@latinalph% \ifnum \value{C@NumTab}>25\relax% \setcounter{C@NumTab}{1}% \else% \stepcounter{C@NumTab}% \fi% \setcounter{C@NumGroup}{0}% \newcommand*{\PrefixCurrentTab}{\alph{C@NumTab}} \setboolean{B@FirstLink}{true} \setboolean{B@NewGroup}{false} \setcounter{C@NumGroup}{0} \setcounter{C@CurrentGroup}{0} \setcounter{NumC@Node}{0} \setcounter{NumC@Stop}{0} \setcounter{C@NextNode}{0} \setcounter{C@CurrentStop}{0} \setcounter{C@CurrentNode}{0} }% % \end{macrocode} % \iffalse % %<*tocloft-xepersian.def> %\fi % \section{File \texttt{tocloft-xepersian.def}} % \begin{macrocode} \ProvidesFile{tocloft-xepersian.def}[2010/07/25 v0.1 bilingual captions for tocloft package] \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 % %<*varioref-xepersian.def> %\fi % \section{File \texttt{varioref-xepersian.def}} % \begin{macrocode} \ProvidesFile{varioref-xepersian.def}[2018/09/29 v0.1 bilingual captions for varioref package] \def\reftextfaceafter{% \if@RTL در صفحه \reftextvario{مقابل}{بعد}% \else on the \reftextvario{facing}{next} page% \fi } \def\reftextfacebefore{% \if@RTL در صفحه \reftextvario{مقابل}{قبل}% \else on the \reftextvario{facing}{preceding} page% \fi } \def\reftextafter{% \if@RTL در صفحه \reftextvario{بعد}{بعد}% \else on the \reftextvario{following}{next} page% \fi } \def\reftextbefore{% \if@RTL در صفحه \reftextvario{قبل}{قبل}% \else on the \reftextvario{preceding}{previous} page% \fi } \def\reftextcurrent{% \if@RTL در \reftextvario{همین صفحه}{صفحه جاری}% \else on \reftextvario{this}{the current} page% \fi } \def\reftextfaraway#1{% \if@RTL در صفحه% ~\pageref{#1}% \else on page~\pageref{#1}% \fi } \def\reftextpagerange#1#2{% \if@RTL در صفحه‌های% ~\pageref{#1}--\pageref{#2}% \else on pages~\pageref{#1}--\pageref{#2}% \fi } \def\reftextlabelrange#1#2{% \if@RTL \ref{#1} تا~\ref{#2}% \else \ref{#1} to~\ref{#2}% \fi } % \end{macrocode} % \iffalse % %<*xepersian.sty> %\fi % \section{File \texttt{xepersian.sty}} % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} \def\xepersian@version{25.5} \def\xepersiandate{2024/12/20} \def\xepersian@releasename{Mount Damavand} \def\xepersian@persian@@releasename{دماوند} \newcommand*{\xepersianreleasename}{\if@RTL\xepersian@persian@@releasename\else\xepersian@releasename\fi} \ProvidesPackage{xepersian}[\xepersiandate\space v\xepersian@version\space (Release \xepersian@releasename)\space Persian typesetting in XeLaTeX] \newif\if@xepersian@banner \newif\if@xepersian@@computeautoilg \DeclareUnknownKeyHandler{% \PassOptionsToPackage{\CurrentOption}{bidi}% } \ExplSyntaxOn \keys_define:nn { xepersian } { banner .choice: , banner / on .code:n = \@xepersian@bannertrue \PassOptionsToPackage{banner=on}{bidi} , banner / off .code:n = \@xepersian@bannerfalse \PassOptionsToPackage{banner=off}{bidi} , banner .default:n = on } \keys_define:nn { xepersian } { mathdigits .choice: , mathdigits / automatic .code:n = \AtEndOfPackage{\AutoMathDigits} , mathdigits / default .code:n = \AtEndOfPackage{\DefaultMathDigits} , mathdigits / persian .code:n = \AtEndOfPackage{\PersianMathDigits} } \keys_define:nn { xepersian } { inlinemathdigits .choice: , inlinemathdigits / automatic .code:n = \AtEndOfPackage{\AutoInlineMathDigits} , inlinemathdigits / default .code:n = \AtEndOfPackage{\DefaultInlineMathDigits} , inlinemathdigits / persian .code:n = \AtEndOfPackage{\PersianInlineMathDigits} } \keys_define:nn { xepersian } { displaymathdigits .choice: , displaymathdigits / automatic .code:n = \AtEndOfPackage{\AutoDisplayMathDigits} , displaymathdigits / default .code:n = \AtEndOfPackage{\DefaultDisplayMathDigits} , displaymathdigits / persian .code:n = \AtEndOfPackage{\PersianDisplayMathDigits} } \keys_define:nn { xepersian } { Kashida .choice: , Kashida / on .code:n = \AtEndOfPackage{\input{kashida-xepersian.def}} , Kashida / off .code:n = \relax , Kashida .default:n = on } \keys_define:nn { xepersian } { localise .choice: , localise / on .code:n = \AtEndOfPackage{\input{localise-xepersian.def}} , localise / off .code:n = \relax , localise .default:n = on } \cs_new_protected:Npn \__xepersian_quickindex_variant:n #1 { \AtEndOfPackage{% \ifwritexviii \@ifclassloaded{memoir}{% \PackageError{xepersian}{% This~feature~does~not~yet~work~with~the~memoir~class}{}% }{% \renewcommand\printindex{\newpage% \immediate\closeout\@indexfile \immediate\write18{% xindy~-L~persian-variant#1~-C~utf8~-M~texindy~-M~page-ranges~\jobname.idx} \@input@{\jobname.ind}}% } \else \PackageError{xepersian}{% “shell~escape”~(or~“write18”)~is~not~enabled.~You~need~to~run~“xelatex~--shell-escape”~on~your~TeX~document~for~this~feature~to~work}{} \fi } } \keys_define:nn { xepersian } { quickindex-variant .choice: , quickindex-variant / one .code:n = \__xepersian_quickindex_variant:n { 1 } , quickindex-variant / two .code:n = \__xepersian_quickindex_variant:n { 2 } , quickindex-variant / three .code:n = \__xepersian_quickindex_variant:n { 3 } } \keys_define:nn { xepersian } { abjad-variant .choice: , abjad-variant / one .code:n = \def\PersianAlphs{% \let\@alph\@abjad \let\@Alph\@abjad } , abjad-variant / two .code:n = \def\PersianAlphs{% \let\@alph\@Abjad \let\@Alph\@Abjad } } \keys_define:nn { xepersian } { defaultlatinfontfeatures .code:n = \AtEndOfPackage{\defaultfontfeatures[\latinfont]{#1}} } \keys_define:nn { xepersian } { mathfontsizescale .code:n = \def\xepersian@@math@fontsize@scale{#1} } \keys_define:nn { xepersian } { fontsizescale .code:n = \def\xepersian@@fontsize@scale{#1} } \keys_define:nn { xepersian } { fontsize .code:n = \AtEndOfPackage{\xepersian@@fontsize@branch{#1}} } \keys_define:nn { xepersian } { latinfontsizescale .code:n = \def\xepersian@@latin@fontsize@scale{#1} } \keys_define:nn { xepersian } { baselineskipscale .code:n = \def\xepersian@@baselineskip@scale{#1} } \keys_define:nn { xepersian } { latinbaselineskipscale .code:n = \def\xepersian@@latin@baselineskip@scale{#1} } \keys_define:nn { xepersian } { computeautoilg .choice: , computeautoilg / on .code:n = \@xepersian@@computeautoilgtrue , computeautoilg / off .code:n = \@xepersian@@computeautoilgfalse , computeautoilg .default:n = on } \keys_define:nn { xepersian } { debugtextdigitfont .choice: , debugtextdigitfont / on .code:n = \AtEndOfPackage{% \bidi@AtEndPreamble{% \bidi@patchcmd\xepersian@@start@switch@textdigitfont\xepersian@textdigitfont{% \addfontfeature{Color=C71585} }{}{} } } , debugtextdigitfont / off .code:n = \relax , debugtextdigitfont .default:n = on } \keys_set:nn { xepersian } { banner = on , abjad-variant = two , fontsizescale = \@ne , latinfontsizescale = \@ne , mathfontsizescale = \@ne , baselineskipscale = \@ne , latinbaselineskipscale = \@ne } \ExplSyntaxOff \ProcessKeyOptions \edef\@xepersian@info{****************************************************^^J% * ^^J% * xepersian package (Persian for LaTeX, using XeTeX engine)^^J% * ^^J% * Description: The package supports Persian^^J% * typesetting, using fonts provided in the^^J% * distribution.^^J% * ^^J% * Copyright (c) 2008--2024 Vafa Khalighi^^J% * Copyright (c) 2018--2020 bidi-tex GitHub Organization^^J% * ^^J% * v\xepersian@version\space (Release \xepersian@releasename), \xepersiandate^^J% * ^^J% * License: LaTeX Project Public License, version^^J% * 1.3c or higher (your choice)^^J% * ^^J% * Location on CTAN: /macros/xetex/latex/xepersian^^J% * ^^J% * Issue tracker: https://github.com/xepersian/xepersian/issues^^J% * ^^J% * Discussions: https://github.com/xepersian/xepersian/discussions^^J% * ^^J% * Primary author of xepersian package: Vafa Khalighi.^^J% * ^^J% ****************************************************} \edef\xepersian@everyjob{\the\everyjob} \if@xepersian@banner \typeout{\@xepersian@info} \everyjob{\xepersian@everyjob\typeout{\@xepersian@info}} \fi \RequirePackage{fontspec} \RequirePackage{xepersian-persiancal} \RequirePackage{xepersian-mathdigitspec} \RequirePackage[% documentdirection=righttoleft,% tabledirection=righttoleft,% script=nonlatin,% footnotedirection=righttoleft,% footnoterule=automatic% ]{bidi} \newcommand*{\xepersianversion} {\ensuremath\xepersian@version} \newcommand*{\IfxepersianPackageVersionLater}[1]{% \ifdim\xepersian@version pt > #1 pt % \expandafter\@firstoftwo \else \expandafter\@secondoftwo \fi} \newcommand*{\IfxepersianPackageVersionBefore}[1]{% \ifdim\xepersian@version pt < #1 pt % \expandafter\@firstoftwo \else \expandafter\@secondoftwo \fi} \newcommand*{\IfxepersianPackageVersion}[1]{% \ifdim\xepersian@version pt = #1 pt % \expandafter\@firstoftwo \else \expandafter\@secondoftwo \fi} \def\prq{«} \def\plq{»} \def\xepersian@cmds@temp#1{% \begingroup\expandafter\expandafter\expandafter\endgroup \expandafter\ifx\csname xepersian@#1\endcsname\relax \begingroup \escapechar=-1 % \edef\x{\expandafter\meaning\csname#1\endcsname}% \def\y{#1}% \def\z##1->{}% \edef\y{\expandafter\z\meaning\y}% \expandafter\endgroup \ifx\x\y \expandafter\def\csname xepersian@#1\expandafter\endcsname \expandafter{% \csname#1\endcsname }% \fi \fi }% \xepersian@cmds@temp{shellescape} \newif\ifwritexviii \ifnum\xepersian@shellescape=1\relax \writexviiitrue \else \writexviiifalse \fi \newfontscript{Persian}{arab} \newfontlanguage{Persian}{FAR} \ExplSyntaxOn \keys_define:nn {fontspec-opentype} { Ligatures / PersianTeX .code:n = { \tl_set:Nn \l__fontspec_mapping_tl {persian-tex-text} }, Ligatures / PersianTeXOff .code:n = { \tl_clear:N \l__fontspec_mapping_tl }, Ligatures / PersianTeXReset .code:n = { \tl_clear:N \l__fontspec_mapping_tl }, } \keys_define:nn {fontspec-aat} { Ligatures / PersianTeX .code:n = { \tl_set:Nn \l__fontspec_mapping_tl { persian-tex-text } } } \keys_define:nn {fontspec-opentype} { Ligatures / PersianTeXNoNumbers .code:n = { \tl_set:Nn \l__fontspec_mapping_tl {persian-tex-text-nonumbers} }, Ligatures / PersianTeXNoNumbersOff .code:n = { \tl_clear:N \l__fontspec_mapping_tl }, Ligatures / PersianTeXNoNumbersReset .code:n = { \tl_clear:N \l__fontspec_mapping_tl }, } \keys_define:nn {fontspec-aat} { Ligatures / PersianTeXNoNumbers .code:n = { \tl_set:Nn \l__fontspec_mapping_tl { persian-tex-text-nonumbers } } } \DeclareDocumentCommand \settextfont { O{} m O{} } { \__xepersian_main_settextfont:nn {#1,#3} {#2} \ignorespaces } \cs_new:Nn \__xepersian_main_settextfont:nn { \fontspec_set_family:Nnn \l__fontspec_persianfont_family_tl {RawFeature={script=arab},Ligatures=PersianTeX,#1} {#2} \tl_set_eq:NN \rmdefault \l__fontspec_persianfont_family_tl \use:x { \exp_not:n { \DeclareRobustCommand \persianfont } { \exp_not:N \fontencoding { \g__fontspec_nfss_enc_tl } \exp_not:N \fontfamily { \l__fontspec_persianfont_family_tl } \exp_not:N \selectfont } } \str_if_eq:eeT {\familydefault} {\rmdefault} { \tl_set_eq:NN \encodingdefault \g__fontspec_nfss_enc_tl } \__xepersian_settextfont_hook:nn {#1} {#2} \normalfont } \cs_set_eq:NN \__xepersian_settextfont_hook:nn \use_none:nn \DeclareDocumentCommand \settextdigitfont { O{} m O{} } { \__xepersian_main_settextdigitfont:nn {#1,#3} {#2} \ignorespaces } \cs_new:Nn \__xepersian_main_settextdigitfont:nn { \fontspec_set_family:Nnn \l__fontspec_textdigitfont_family_tl {Ligatures=PersianTeX,#1} {#2} \use:x { \exp_not:n { \DeclareRobustCommand \xepersian@textdigitfont } { \exp_not:N \fontfamily { \l__fontspec_textdigitfont_family_tl } \exp_not:N \fontencoding { \g__fontspec_nfss_enc_tl } \exp_not:N \selectfont } } \__xepersian_settextdigitfont_hook:nn {#1} {#2} \XeTeXinterchartoks \e@alloc@intercharclass@top \bidi@digits@charclass = {\xepersian@@start@switch@textdigitfont} \XeTeXinterchartoks \bidi@digits@charclass \e@alloc@intercharclass@top = {\xepersian@@stop@switch@textdigitfont} \XeTeXinterchartoks \z@ \bidi@digits@charclass = {\xepersian@@start@switch@textdigitfont} \XeTeXinterchartoks \bidi@digits@charclass \z@ = {\xepersian@@stop@switch@textdigitfont} \XeTeXinterchartoks \bidi@digits@charclass \bidi@sepmark@charclass = {\xepersian@@stop@switch@textdigitfont} \XeTeXinterchartoks \bidi@sepmark@charclass \bidi@digits@charclass = {\DigitsDotDashInterCharToks\xepersian@@start@switch@textdigitfont} \if@bidi@csundef{xepersian@dualjoiner}{}{% \XeTeXinterchartoks \xepersian@dualjoiner \bidi@digits@charclass = {\xepersian@@start@switch@textdigitfont} \XeTeXinterchartoks \bidi@digits@charclass \xepersian@dualjoiner = {\xepersian@@stop@switch@textdigitfont} \XeTeXinterchartoks \xepersian@lam \bidi@digits@charclass = {\xepersian@@start@switch@textdigitfont} \XeTeXinterchartoks \bidi@digits@charclass \xepersian@lam = {\xepersian@@stop@switch@textdigitfont} \XeTeXinterchartoks \xepersian@alef \bidi@digits@charclass = {\xepersian@@start@switch@textdigitfont} \XeTeXinterchartoks \bidi@digits@charclass \xepersian@alef = {\xepersian@@stop@switch@textdigitfont} \XeTeXinterchartoks \xepersian@rightjoiner \bidi@digits@charclass = {\xepersian@@start@switch@textdigitfont} \XeTeXinterchartoks \bidi@digits@charclass \xepersian@rightjoiner = {\xepersian@@stop@switch@textdigitfont} } } \newcommand*{\xepersian@@start@switch@textdigitfont}{\ifx\f@family\ttdefault\else\if@nonlatin\if@@textdigitfont@on\let\xepersian@save@@f@family\f@family\xepersian@textdigitfont\else\fi\fi\fi} \newcommand*{\xepersian@@stop@switch@textdigitfont}{\ifx\f@family\ttdefault\else\if@nonlatin\if@@textdigitfont@on\let\f@family\xepersian@save@@f@family\selectfont\else\fi\fi\fi} \cs_set_eq:NN \__xepersian_settextdigitfont_hook:nn \use_none:nn \DeclareDocumentCommand \setdigitfont { O{} m O{} } { \__xepersian_main_settextdigitfont:nn {#1,#3} {#2} \__xepersian_main_setmathdigitfont:nn {#1,#3} {#2} \ignorespaces } \DeclareDocumentCommand \setlatintextfont { O{} m O{} } { \__xepersian_main_setlatintextfont:nn {#1,#3} {#2} \ignorespaces } \cs_new:Nn \__xepersian_main_setlatintextfont:nn { \fontspec_set_family:Nnn \l__fontspec_latinfont_family_tl {Ligatures=TeX,#1} {#2} \use:x { \exp_not:n { \DeclareRobustCommand \latinfont } { \exp_not:N \fontencoding { \g__fontspec_nfss_enc_tl } \exp_not:N \fontfamily { \l__fontspec_latinfont_family_tl } \exp_not:N \selectfont } } \str_if_eq:eeT {\familydefault} {\rmdefault} { \tl_set_eq:NN \encodingdefault \g__fontspec_nfss_enc_tl } \__xepersian_setlatintextfont_hook:nn {#1} {#2} \normalfont } \cs_set_eq:NN \__xepersian_setlatintextfont_hook:nn \use_none:nn \tl_set_eq:NN \setlatinsansfont \setsansfont \tl_set_eq:NN \setlatinmonofont \setmonofont \DeclareDocumentCommand \defpersianfont { m O{} m O{} } { \__xepersian_main_defpersianfont:NnnN #1 {#2,#4} {#3} \NewDocumentCommand } \DeclareDocumentCommand \redefpersianfont { m O{} m O{} } { \__xepersian_main_defpersianfont:NnnN #1 {#2,#4} {#3} \RenewDocumentCommand } \cs_new:Nn \__xepersian_main_defpersianfont:NnnN { \fontspec_set_family:cnn { l__fontspec_ \cs_to_str:N #1 _family_tl } {RawFeature={script=arab},Ligatures=PersianTeX,#2} {#3} \use:x { \exp_not:N #4 \exp_not:N #1 {} { \exp_not:N \fontfamily { \use:c {l__fontspec_ \cs_to_str:N #1 _family_tl } } \exp_not:N \fontencoding { \g__fontspec_nfss_enc_tl } \exp_not:N \selectfont } } } \DeclareDocumentCommand \deflatinfont { m O{} m O{} } { \__xepersian_main_deflatinfont:NnnN #1 {#2,#4} {#3} \NewDocumentCommand } \DeclareDocumentCommand \redeflatinfont { m O{} m O{} } { \__xepersian_main_deflatinfont:NnnN #1 {#2,#4} {#3} \RenewDocumentCommand } \cs_new:Nn \__xepersian_main_deflatinfont:NnnN { \fontspec_set_family:cnn { l__fontspec_ \cs_to_str:N #1 _family_tl } {Ligatures=TeX,#2} {#3} \use:x { \exp_not:N #4 \exp_not:N #1 {} { \exp_not:N \fontfamily { \use:c {l__fontspec_ \cs_to_str:N #1 _family_tl } } \exp_not:N \fontencoding { \g__fontspec_nfss_enc_tl } \exp_not:N \selectfont } } } \newcommand\persiansfdefault{} \newcommand\persianttdefault{} \newcommand\iranicdefault{} \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\iranicfamily {\not@math@alphabet\iranicfamily\mathiranic \fontfamily\iranicdefault\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{\textiranic}{\iranicfamily} \DeclareTextFontCommand{\textnavar}{\navarfamily} \DeclareTextFontCommand{\textpook}{\pookfamily} \DeclareTextFontCommand{\textsayeh}{\sayehfamily} \DeclareDocumentCommand \setpersiansansfont { O{} m O{} } { \__xepersian_main_setpersiansansfont:nn {#1,#3} {#2} \ignorespaces } \cs_new:Nn \__xepersian_main_setpersiansansfont:nn { \fontspec_set_family:Nnn \l__fontspec_persiansffamily_family_tl {RawFeature={script=arab},Ligatures=PersianTeX,#1} {#2} \tl_set_eq:NN \persiansfdefault \l__fontspec_persiansffamily_family_tl \use:x { \exp_not:n { \DeclareRobustCommand \persiansffamily } { \exp_not:N \fontencoding { \g__fontspec_nfss_enc_tl } \exp_not:N \fontfamily { \l__fontspec_persiansffamily_family_tl } \exp_not:N \selectfont } } \str_if_eq:eeT {\familydefault} {\persiansfdefault} { \tl_set_eq:NN \encodingdefault \g__fontspec_nfss_enc_tl } \__xepersian_setpersiansansfont_hook:nn {#1} {#2} \normalfont } \cs_set_eq:NN \__xepersian_setpersiansansfont_hook:nn \use_none:nn \DeclareDocumentCommand \setpersianmonofont { O{} m O{} } { \__xepersian_main_setpersianmonofont:nn {#1,#3} {#2} \ignorespaces } \cs_new:Nn \__xepersian_main_setpersianmonofont:nn { \fontspec_set_family:Nnn \l__fontspec_persianttfamily_family_tl {RawFeature={script=arab},Ligatures=PersianTeX,#1} {#2} \tl_set_eq:NN \persianttdefault \l__fontspec_persianttfamily_family_tl \use:x { \exp_not:n { \DeclareRobustCommand \persianttfamily } { \exp_not:N \fontencoding { \g__fontspec_nfss_enc_tl } \exp_not:N \fontfamily { \l__fontspec_persianttfamily_family_tl } \exp_not:N \selectfont } } \str_if_eq:eeT {\familydefault} {\persianttdefault} { \tl_set_eq:NN \encodingdefault \g__fontspec_nfss_enc_tl } \__xepersian_setpersianmonofont_hook:nn {#1} {#2} \normalfont } \cs_set_eq:NN \__xepersian_setpersianmonofont_hook:nn \use_none:nn \DeclareDocumentCommand \setnavarfont { O{} m O{} } { \__xepersian_main_setnavarfont:nn {#1,#3} {#2} \ignorespaces } \cs_new:Nn \__xepersian_main_setnavarfont:nn { \fontspec_set_family:Nnn \l__fontspec_navarfamily_family_tl {RawFeature={script=arab},Ligatures=PersianTeX,#1} {#2} \tl_set_eq:NN \navardefault \l__fontspec_navarfamily_family_tl \use:x { \exp_not:n { \DeclareRobustCommand \navarfamily } { \exp_not:N \fontencoding { \g__fontspec_nfss_enc_tl } \exp_not:N \fontfamily { \l__fontspec_navarfamily_family_tl } \exp_not:N \selectfont } } \str_if_eq:eeT {\familydefault} {\navardefault} { \tl_set_eq:NN \encodingdefault \g__fontspec_nfss_enc_tl } \__xepersian_setnavarfont_hook:nn {#1} {#2} \normalfont } \cs_set_eq:NN \__xepersian_setnavarfont_hook:nn \use_none:nn \DeclareDocumentCommand \setpookfont { O{} m O{} } { \__xepersian_main_setpookfont:nn {#1,#3} {#2} \ignorespaces } \cs_new:Nn \__xepersian_main_setpookfont:nn { \fontspec_set_family:Nnn \l__fontspec_pookfamily_family_tl {RawFeature={script=arab},Ligatures=PersianTeX,#1} {#2} \tl_set_eq:NN \pookdefault \l__fontspec_pookfamily_family_tl \use:x { \exp_not:n { \DeclareRobustCommand \pookfamily } { \exp_not:N \fontencoding { \g__fontspec_nfss_enc_tl } \exp_not:N \fontfamily { \l__fontspec_pookfamily_family_tl } \exp_not:N \selectfont } } \str_if_eq:eeT {\familydefault} {\pookdefault} { \tl_set_eq:NN \encodingdefault \g__fontspec_nfss_enc_tl } \__xepersian_setpookfont_hook:nn {#1} {#2} \normalfont } \cs_set_eq:NN \__xepersian_setpookfont_hook:nn \use_none:nn \DeclareDocumentCommand \setsayehfont { O{} m O{} } { \__xepersian_main_setsayehfont:nn {#1,#3} {#2} \ignorespaces } \cs_new:Nn \__xepersian_main_setsayehfont:nn { \fontspec_set_family:Nnn \l__fontspec_sayehfamily_family_tl {RawFeature={script=arab},Ligatures=PersianTeX,#1} {#2} \tl_set_eq:NN \sayehdefault \l__fontspec_sayehfamily_family_tl \use:x { \exp_not:n { \DeclareRobustCommand \sayehfamily } { \exp_not:N \fontencoding { \g__fontspec_nfss_enc_tl } \exp_not:N \fontfamily { \l__fontspec_sayehfamily_family_tl } \exp_not:N \selectfont } } \str_if_eq:eeT {\familydefault} {\sayehdefault} { \tl_set_eq:NN \encodingdefault \g__fontspec_nfss_enc_tl } \__xepersian_setsayehfont_hook:nn {#1} {#2} \normalfont } \cs_set_eq:NN \__xepersian_setsayehfont_hook:nn \use_none:nn \DeclareDocumentCommand \setiranicfont { O{} m O{} } { \__xepersian_main_setiranicfont:nn {#1,#3} {#2} \ignorespaces } \cs_new:Nn \__xepersian_main_setiranicfont:nn { \fontspec_set_family:Nnn \l__fontspec_iranicfamily_family_tl {RawFeature={script=arab},Ligatures=PersianTeX,#1} {#2} \tl_set_eq:NN \iranicdefault \l__fontspec_iranicfamily_family_tl \use:x { \exp_not:n { \DeclareRobustCommand \iranicfamily } { \exp_not:N \fontencoding { \g__fontspec_nfss_enc_tl } \exp_not:N \fontfamily { \l__fontspec_iranicfamily_family_tl } \exp_not:N \selectfont } } \str_if_eq:eeT {\familydefault} {\iranicdefault} { \tl_set_eq:NN \encodingdefault \g__fontspec_nfss_enc_tl } \__xepersian_setiranicfont_hook:nn {#1} {#2} \normalfont } \cs_set_eq:NN \__xepersian_setiranicfont_hook:nn \use_none:nn \ExplSyntaxOff \def\resetlatinfont{% \let\@xepersian@@fontsize@scale\xepersian@@fontsize@scale% \let\@xepersian@@baselineskip@scale\xepersian@@baselineskip@scale% \def\xepersian@@fontsize@scale{% \strip@pt\dimexpr 1pt * \dimexpr \xepersian@@latin@fontsize@scale pt\relax / \dimexpr \@xepersian@@fontsize@scale pt\relax\relax }% \def\xepersian@@baselineskip@scale{% \strip@pt\dimexpr 1pt * \dimexpr \xepersian@@latin@baselineskip@scale pt\relax / \dimexpr \@xepersian@@baselineskip@scale pt\relax\relax }% \@nonlatinfalse% \let\normalfont\latinfont% \let\reset@font\normalfont% \latinfont% \fontsize\f@size\f@baselineskip% \selectfont% \let\xepersian@@fontsize@scale\xepersian@@latin@fontsize@scale% \let\xepersian@@baselineskip@scale\xepersian@@latin@baselineskip@scale% } \def\setpersianfont{% \let\@xepersian@@fontsize@scale\xepersian@@fontsize@scale% \let\@xepersian@@baselineskip@scale\xepersian@@baselineskip@scale% \let\xepersian@@fontsize@scale\@ne% \let\xepersian@@baselineskip@scale\@ne% \@nonlatintrue% \let\normalfont\persianfont% \let\reset@font\normalfont% \persianfont% \fontsize\f@size\f@baselineskip% \selectfont% \let\xepersian@@fontsize@scale\@xepersian@@fontsize@scale% \let\xepersian@@baselineskip@scale\@xepersian@@baselineskip@scale% } \bidi@newrobustcmd*{\lr}[1]{\LRE{\resetlatinfont#1}} \bidi@newrobustcmd*{\rl}[1]{\RLE{\setpersianfont#1}} \def\latin{\LTR\LatinAlphs\@RTL@footnotefalse\resetlatinfont} \def\endlatin{\endLTR} \newenvironment{latin*}{\latin \everypar{% {\setbox\z@\lastbox \ifvoid\z@ \kern-\parindent \fi}% }% }{\endlatin\@endpetrue} \def\persian{\RTL\PersianAlphs\@RTL@footnotetrue\setpersianfont} \def\endpersian{\endRTL} \newenvironment{persian*}{\persian \everypar{% {\setbox\z@\lastbox \ifvoid\z@ \kern-\parindent \fi}% }% }{\endpersian\@endpetrue} \newenvironment{latinitems}{\begin{LTRitems}\LatinAlphs\@RTL@footnotefalse\resetlatinfont}{\end{LTRitems}} \newenvironment{persianitems}{\begin{RTLitems}\PersianAlphs\@RTL@footnotetrue\setpersianfont}{\end{RTLitems}} \let\originaltoday=\today \def\latintoday{\lr{\originaltoday}} \def\today{\rl{\persiantoday}} \def \@LTRmarginparreset {% \reset@font \resetlatinfont \normalsize \@minipagetrue \everypar{\@minipagefalse\everypar{}\beginL}% } \DeclareRobustCommand\Latincite{% \@ifnextchar [{\@tempswatrue\@Latincitex}{\@tempswafalse\@Latincitex[]}} \def\@Latincitex[#1]#2{\leavevmode \let\@citea\@empty \@cite{\lr{\@for\@citeb:=#2\do {\@citea\def\@citea{,\penalty\@m\ }% \edef\@citeb{\expandafter\@firstofone\@citeb\@empty}% \if@filesw\immediate\write\@auxout{\string\citation{\@citeb}}\fi \@ifundefined{b@\@citeb}{\hbox{\reset@font\bfseries ?}% \G@refundefinedtrue \@latex@warning {Citation `\@citeb' on page \thepage \space undefined}}% {\@cite@ofmt{\csname b@\@citeb\endcsname}}}}}{#1}} \renewcommand*{\bidi@font@@outputpage}{\if@RTLmain\setpersianfont\else\resetlatinfont\fi} \newcount\xepersian@tcl \newdimen\xepersian@ilg \newdimen\xepersian@strutilg \chardef\f@ur=4 \newcommand*{\xepersian@computeautoilg}{% compute the interline glue \xepersian@tcl=1536\xepersian@ilg\z@\xepersian@strutilg\z@ \loop \iffontchar\font\xepersian@tcl \ifdim\XeTeXglyphbounds\tw@ \the\XeTeXcharglyph\xepersian@tcl>\z@ \ifdim\XeTeXglyphbounds\tw@ \the\XeTeXcharglyph\xepersian@tcl>\xepersian@ilg \xepersian@ilg=\XeTeXglyphbounds\tw@ \the\XeTeXcharglyph\xepersian@tcl \fi \else \ifdim\XeTeXglyphbounds\tw@ \the\XeTeXcharglyph\xepersian@tcl<\z@ \ifdim-\XeTeXglyphbounds\tw@ \the\XeTeXcharglyph\xepersian@tcl>\xepersian@ilg \xepersian@ilg=-\XeTeXglyphbounds\tw@ \the\XeTeXcharglyph\xepersian@tcl \fi \fi \fi \ifdim\XeTeXglyphbounds\f@ur \the\XeTeXcharglyph\xepersian@tcl>\z@ \ifdim\XeTeXglyphbounds\f@ur \the\XeTeXcharglyph\xepersian@tcl>\xepersian@strutilg \xepersian@strutilg=\XeTeXglyphbounds\f@ur \the\XeTeXcharglyph\xepersian@tcl \fi \else \ifdim\XeTeXglyphbounds\f@ur \the\XeTeXcharglyph\xepersian@tcl<\z@ \ifdim-\XeTeXglyphbounds\f@ur \the\XeTeXcharglyph\xepersian@tcl>\xepersian@strutilg \xepersian@strutilg=-\XeTeXglyphbounds\f@ur \the\XeTeXcharglyph\xepersian@tcl \fi \fi \fi \fi \advance\xepersian@tcl\@ne \ifnum\xepersian@tcl<1792\repeat \advance\xepersian@strutilg\xepersian@ilg % \ifdim\xepersian@strutilg>\baselineskip % \PackageInfo{xepersian}{character with height+depth greater than current baselineskip found in font} % \PackageInfo{xepersian}{baselineskip changed to that height+depth!} % \linespread{\strip@pt\dimexpr 1pt * \xepersian@strutilg / \baselineskip\relax} % \selectfont % \fi } \newif\if@@textdigitfont@on \newcommand{\TextDigitFontOn}{\@@textdigitfont@ontrue} \newcommand{\TextDigitFontOff}{\@@textdigitfont@onfalse} \TextDigitFontOn \newcommand*\xepersian@setlength[4]{% \ifdim #2<\ifdim #2=\z@ \z@ \else \p@\fi \ifdim #3<\ifdim #3=\z@ \z@ \else \p@\fi \ifdim #4<\ifdim #4=\z@ \z@ \else \p@\fi \setlength{#1}{\p@ \@plus\p@ \@minus\p@}% \else \setlength{#1}{\p@ \@plus\p@ \@minus#4}% \fi \else \ifdim #4<\ifdim #4=\z@ \z@ \else \p@\fi \setlength{#1}{\p@ \@plus#3 \@minus\p@}% \else \setlength{#1}{\p@ \@plus#3 \@minus#4}% \fi \fi \else \ifdim #3<\ifdim #3=\z@ \z@ \else \p@\fi \ifdim #4<\ifdim #4=\z@ \z@ \else \p@\fi \setlength{#1}{#2 \@plus\p@ \@minus\p@}% \else \setlength{#1}{#2 \@plus\p@ \@minus#4}% \fi \else \ifdim #4<\ifdim #4=\z@ \z@ \else \p@\fi \setlength{#1}{#2 \@plus#3 \@minus\p@}% \else \setlength{#1}{#2 \@plus#3 \@minus#4}% \fi \fi \fi } \newcommand*{\setfontsize}[2][1.2\@tempdima]{% \@defaultunits\@tempdima#2pt\relax\@nnil \setlength{\@tempdimc}{\@tempdima}% \addtolength{\@tempdimc}{-10\p@}% \edef\@ptsize{\strip@pt\@tempdimc}% \@defaultunits\@tempdimb#1pt\relax\@nnil \setlength{\@tempdimc}{\dimexpr (100\@tempdimb / \@tempdima * \p@)}% \edef\@tempb{\the\@tempdimc}% \setlength{\@tempdimc}{\@tempdima}% \def\@tempa##1##2##3##4##5\@nnil{\def##1{##2.##3##4}}% \expandafter\@tempa\expandafter\@tempb\@tempb\@nnil% \xepersian@setlength{\abovedisplayskip}% {.8333\@tempdimb}{.1667\@tempdimb}{.5\@tempdimb}% \xepersian@setlength{\abovedisplayshortskip}{\z@}{.25\@tempdimb}{\z@}% \xepersian@setlength{\belowdisplayshortskip}% {.5\@tempdimb}{.25\@tempdimb}{.25\@tempdimb}% \setlength{\belowdisplayskip}{\abovedisplayskip}% \edef\normalsize{% \noexpand\@setfontsize\noexpand\normalsize {\the\@tempdima}{\the\@tempdimb}% \abovedisplayskip \the\abovedisplayskip \abovedisplayshortskip \the\abovedisplayshortskip \belowdisplayskip \the\belowdisplayskip \belowdisplayshortskip \the\belowdisplayshortskip \let\noexpand\@listi\noexpand\@listI }% \setlength{\@tempdima}{0.9125\@tempdimc}% \setlength{\@tempdimb}{\@tempb\@tempdima}% \xepersian@setlength{\abovedisplayskip}% {.8333\@tempdimb}{.1667\@tempdimb}{.5\@tempdimb}% \xepersian@setlength{\abovedisplayshortskip}{\z@}{.25\@tempdimb}{\z@}% \xepersian@setlength{\belowdisplayshortskip}% {.5\@tempdimb}{.25\@tempdimb}{.25\@tempdimb}% \setlength{\belowdisplayskip}{\abovedisplayskip}% \edef\small{% \noexpand\@setfontsize\noexpand\small {\the\@tempdima}{\the\@tempdimb}% \abovedisplayskip \the\abovedisplayskip \abovedisplayshortskip \the\abovedisplayshortskip \belowdisplayskip \the\belowdisplayskip \belowdisplayshortskip \the\belowdisplayshortskip \let\noexpand\@listi\noexpand\@listi@small }% \setlength{\@tempdima}{.83334\@tempdimc}% \setlength{\@tempdimb}{\@tempb\@tempdima}% \xepersian@setlength{\abovedisplayskip}% {.8333\@tempdimb}{.1667\@tempdimb}{.5\@tempdimb}% \xepersian@setlength{\abovedisplayshortskip}{\z@}{.25\@tempdimb}{\z@}% \xepersian@setlength{\belowdisplayshortskip}% {.5\@tempdimb}{.25\@tempdimb}{.25\@tempdimb}% \setlength{\belowdisplayskip}{\abovedisplayskip}% \edef\footnotesize{% \noexpand\@setfontsize\noexpand\footnotesize {\the\@tempdima}{\the\@tempdimb}% \abovedisplayskip \the\abovedisplayskip \abovedisplayshortskip \the\abovedisplayshortskip \belowdisplayskip \the\belowdisplayskip \belowdisplayshortskip \the\belowdisplayshortskip \let\noexpand\@listi\noexpand\@listi@footnotesize }% \setlength{\@tempdima}{.66667\@tempdimc}% \setlength{\@tempdimb}{\@tempb\@tempdima}% \edef\scriptsize{% \noexpand\@setfontsize\noexpand\scriptsize {\the\@tempdima}{\the\@tempdimb}% }% \setlength{\@tempdima}{.5\@tempdimc}% \setlength{\@tempdimb}{\@tempb\@tempdima}% \edef\tiny{% \noexpand\@setfontsize\noexpand\tiny {\the\@tempdima}{\the\@tempdimb}% }% \setlength{\@tempdima}{1.2\@tempdimc}% \setlength{\@tempdimb}{\@tempb\@tempdima}% \edef\large{% \noexpand\@setfontsize\noexpand\large {\the\@tempdima}{\the\@tempdimb}% }% \setlength{\@tempdima}{1.44\@tempdimc}% \setlength{\@tempdimb}{\@tempb\@tempdima}% \edef\Large{% \noexpand\@setfontsize\noexpand\Large {\the\@tempdima}{\the\@tempdimb}% }% \setlength{\@tempdima}{1.728\@tempdimc}% \setlength{\@tempdimb}{\@tempb\@tempdima}% \edef\LARGE{% \noexpand\@setfontsize\noexpand\LARGE {\the\@tempdima}{\the\@tempdimb}% }% \setlength{\@tempdima}{2.074\@tempdimc}% \setlength{\@tempdimb}{\@tempb\@tempdima}% \edef\huge{% \noexpand\@setfontsize\noexpand\huge {\the\@tempdima}{\the\@tempdimb}% }% \setlength{\@tempdima}{2.488\@tempdimc}% \setlength{\@tempdimb}{\@tempb\@tempdima}% \edef\Huge{% \noexpand\@setfontsize\noexpand\Huge {\the\@tempdima}{\the\@tempdimb}% }% \normalsize \setlength{\@tempdimb}{\f@baselineskip}% \xepersian@setlength{\parsep}% {.3333\@tempdimb}{.1667\@tempdimb}{.0833\@tempdimb}% \xepersian@setlength{\topsep}% {.6667\@tempdimb}{.1667\@tempdimb}{.3333\@tempdimb}% \@tempswafalse \begingroup \def\@list@extra{\aftergroup\@tempswatrue}% \csname @listi\endcsname \endgroup \edef\@listi{\leftmargin\leftmargini \topsep \the\topsep \parsep \the\parsep \itemsep \parsep \if@tempswa\noexpand\@list@extra\fi }% \let\@listI\@listi \xepersian@setlength{\parsep}% {.1667\@tempdimb}{.0833\@tempdimb}{.0833\@tempdimb}% \xepersian@setlength{\topsep}% {.3333\@tempdimb}{.1667\@tempdimb}{.1667\@tempdimb}% \@tempswafalse \begingroup \def\@list@extra{\aftergroup\@tempswatrue}% \csname @listi\endcsname \endgroup \edef\@listi@small{\leftmargin\leftmargini \topsep \the\topsep \parsep \the\parsep \itemsep \parsep \if@tempswa\noexpand\@list@extra\fi }% \xepersian@setlength{\parsep}% {.125\@tempdimb}{.0625\@tempdimb}{.0625\@tempdimb}% \xepersian@setlength{\topsep}% {.25\@tempdimb}{.125\@tempdimb}{.125\@tempdimb} \@tempswafalse \begingroup \def\@list@extra{\aftergroup\@tempswatrue}% \csname @listi\endcsname \endgroup \edef\@listi@footnotesize{\leftmargin\leftmargini \topsep \the\topsep \parsep \the\parsep \itemsep \parsep \if@tempswa\noexpand\@list@extra\fi }% \xepersian@setlength{\parsep}% {.1667\@tempdimb}{.0833\@tempdimb}{.0833\@tempdimb}% \xepersian@setlength{\topsep}% {.3333\@tempdimb}{.1667\@tempdimb}{.0833\@tempdimb}% \@tempswafalse \begingroup \def\@list@extra{\aftergroup\@tempswatrue}% \csname @listii\endcsname \endgroup \edef\@listii{\leftmargin\leftmarginii \labelwidth=\dimexpr \leftmargin-\labelsep \topsep \the\topsep \parsep \the\parsep \itemsep \parsep \if@tempswa\noexpand\@list@extra\fi }% \xepersian@setlength{\topsep}% {.1667\@tempdimb}{.0833\@tempdimb}{.0833\@tempdimb}% \setlength{\partopsep}{\z@ \@plus\z@ \@minus\p@}% \@tempswafalse \begingroup \def\@list@extra{\aftergroup\@tempswatrue}% \csname @listiii\endcsname \endgroup \edef\@listiii{\leftmargin\leftmarginiii \labelwidth=\dimexpr \leftmargin-\labelsep \topsep \the\topsep \parsep \z@ \partopsep \the\partopsep \itemsep \topsep \if@tempswa\noexpand\@list@extra\fi }% \@tempswafalse \begingroup \def\@list@extra{\aftergroup\@tempswatrue}% \csname @listiv\endcsname \endgroup \edef\@listiv{\leftmargin\leftmarginiv \labelwidth=\dimexpr \leftmargin-\labelsep\relax \if@tempswa\noexpand\@list@extra\fi }% \@tempswafalse \begingroup \def\@list@extra{\aftergroup\@tempswatrue}% \csname @listv\endcsname \endgroup \edef\@listv{\leftmargin\leftmarginv \labelwidth=\dimexpr \leftmargin-\labelsep\relax \if@tempswa\noexpand\@list@extra\fi }% \@tempswafalse \begingroup \def\@list@extra{\aftergroup\@tempswatrue}% \csname @listvi\endcsname \endgroup \edef\@listvi{\leftmargin\leftmarginvi \labelwidth=\dimexpr \leftmargin-\labelsep\relax \if@tempswa\noexpand\@list@extra\fi }% \@listi \setlength{\@tempdimb}{\f@baselineskip}% \setlength{\footnotesep}{.555\@tempdimb}% \xepersian@setlength{\skip\footins}% {.75\@tempdimb}{.3333\@tempdimb}{.1667\@tempdimb}% \xepersian@setlength{\floatsep}% {\@tempdimb}{.1667\@tempdimb}{.1667\@tempdimb}% \xepersian@setlength{\textfloatsep}% {1.6667\@tempdimb}{.1667\@tempdimb}{.3333\@tempdimb}% \setlength{\intextsep}{\floatsep}% \setlength{\dblfloatsep}{\floatsep}% \setlength{\dbltextfloatsep}{\textfloatsep}% \setlength{\@fptop}{\z@ \@plus 1fil}% \setlength{\@fpsep}{.6667\@tempdimb \@plus 2fil}% \setlength{\@fpbot}{\@fptop}% \setlength{\@dblfptop}{\@fptop}% \setlength{\@dblfpsep}{\@fpsep}% \setlength{\@dblfpbot}{\@fptop}% \xepersian@setlength{\partopsep}{.2\@tempdimb}{.1\@tempdimb}{.1\@tempdimb}% } \renewcommand*{\@bidi@logo@}{% \@bidi@logo@hb@xt@columnwidth {\hss\bfseries حروف‌چینی شده با \textsf{\XePersian}\quad\@bidi@logo{xepersian-logo.pdf}}} \renewcommand*{\@bidi@pdfcreator}{% The xepersian package, v\xepersian@version\space (Release \xepersian@releasename), \xepersiandate } \newcommand*{\@xepersian@pdfcustomproperties}{% This is the xepersian package, Version \xepersian@version\space (Release \xepersian@releasename), Released December 20, 2024. } \newcommand\twocolumnstableofcontents{% \if@bidi@csundef{multi@column@out}{% \PackageError{xepersian}{Oops! you should load multicol package before xepersian package for being able to use this command}{}}{% \begin{multicols}{2}[\section*{\contentsname}]% \small \@starttoc{toc}% \end{multicols}}} \bidi@newrobustcmd*{\XePersian}{\leavevmode$\smash{\hbox{X\lower.5ex \hbox{\kern-.125em\bidi@reflect@box{E}}Persian}}$} \AtBeginDocument{% \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\@Abjad#1{% \ifcase#1\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\Abjad#1{\expandafter\@Abjad\csname c@#1\endcsname} \let\Abjadnumeral\@Abjad \def\@harfi#1{\ifcase#1\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 م\or ن\or و\or ه\or ی\else\@ctrerr\fi} \def\harfi#1{\expandafter\@harfi\csname c@#1\endcsname} \let\harfinumeral\@harfi \newcommand{\adadi}[1]{% \expandafter\@adadi\csname c@#1\endcsname% } \newcommand{\@adadi}[1]{% \xepersian@numberstring{#1}\xepersian@yekanii{صفر}{}% } \let\adadinumeral\@adadi% \def\xepersian@numberoutofrange#1#2{% \PackageError{xepersian}{The number `#1' is too large % to be formatted using xepersian}{The largest possible % number is 999,999,999.}% } \def\xepersian@numberstring#1#2#3#4{% \ifnum\number#1<\@ne% #3% \else\ifnum\number#1<1000000000 % \expandafter\xepersian@adadi\expandafter{\number#1}#2% \else% \xepersian@numberoutofrange{#1}{#4}% \fi\fi% } \def\xepersian@adadi#1#2{% \expandafter\xepersian@@adadi% \ifcase% \ifnum#1<10 1% \else\ifnum#1<100 2% \else\ifnum#1<\@m 3% \else\ifnum#1<\@M 4% \else\ifnum#1<100000 5% \else\ifnum#1<1000000 6% \else\ifnum#1<10000000 7% \else\ifnum#1<100000000 8% \else9% \fi\fi\fi\fi\fi\fi\fi\fi % \or00000000#1% case 1: Add 8 leading zeros \or0000000#1% case 2: Add 7 leading zeros \or000000#1% case 3: Add 6 leading zeros \or00000#1% case 4: Add 5 leading zeros \or0000#1% case 5: Add 4 leading zeros \or000#1% case 6: Add 3 leading zeros \or00#1% case 7: Add 2 leading zeros \or0#1% case 8: Add 1 leading zero \or#1% case 9: Add no leading zeros \or% \@nil#2% \fi% } \def\xepersian@@adadi#1#2#3#4#5#6#7\or#8\@nil#9{% \ifnum#1#2#3>\z@ \xepersian@milyoongan#1#2#3% \ifnum#7>\z@\ifnum#4#5#6>\z@\ و \else\ و \fi\else\ifnum#4#5#6>\z@\ و \fi\fi% \fi% \ifnum#4#5#6>\z@% \xepersian@sadgan#4#5#6{#1#2#3}{#4#5}\xepersian@yekani% \ifnum#4#5#6>\@ne‌\fi% هزار% \ifnum#7>\z@\ و \fi% \fi% \xepersian@sadgan#7{#4#5#6}1#9% } \def\xepersian@milyoongan#1#2#3{% \ifnum#1#2#3=\@ne% \xepersian@sadgan#1#2#301\xepersian@yekaniii% ‌% میلیون% \else% \xepersian@sadgan#1#2#301\xepersian@yekanii% ‌% میلیون% \fi% } \def\xepersian@sadgan#1#2#3#4#5#6{% \ifnum#1>\z@% \ifnum#4#1>\@ne\xepersian@yekaniv#1\fi% صد% \ifnum#2#3>\z@\ و \fi% \fi% \ifnum#2#3<20% \ifnum#5#2#3>\@ne#6{#2#3}\fi% \else% \xepersian@dahgan#2% \ifnum#3>\z@\ و \xepersian@yekani#3\fi% #60% \fi% } \def\xepersian@yekani#1{% \ifcase#1\@empty\or یک\or دو\or سه\or چهار\or پنج\or شش% \or هفت\or هشت\or نه\or ده\or یازده\or دوازده\or سیزده% \or چهارده\or پانزده\or شانزده\or هفده% \or هجده\or نوزده\fi% } \def\xepersian@yekanii#1{% \ifcase#1\@empty\or یک\else\xepersian@yekani{#1}\fi% } \def\xepersian@yekaniii#1{% \ifcase#1\@empty\or یک\else\xepersian@yekani{#1}\fi% } \def\xepersian@yekaniv#1{% \ifcase#1\@empty\or\or دوی\or سی\or چهار\or پان\or شش% \or هفت\or هشت\or نه\fi% } \def\xepersian@dahgan#1{% \ifcase#1\or\or بیست\or سی\or چهل% \or پنجاه\or شصت\or هفتاد\or هشتاد% \or نود\fi% } \newcommand{\tartibi}[1]{% \expandafter\@tartibi\csname c@#1\endcsname% } \newcommand{\@tartibi}[1]{% \xepersian@numberstring@tartibi{#1}\xepersian@tartibi{صفرم}{م}% } \let\tartibinumeral\@tartibi% \def\xepersian@numberstring@tartibi#1#2#3#4{% \ifnum\number#1<\@ne% #3% \else\ifnum\number#1<1000000000 % \expandafter\xepersian@adadi@tartibi\expandafter{\number#1}#2% \else% \xepersian@numberoutofrange{#1}{#4}% \fi\fi% } \def\xepersian@adadi@tartibi#1#2{% \expandafter\xepersian@@adadi@tartibi% \ifcase% \ifnum#1<10 1% \else\ifnum#1<100 2% \else\ifnum#1<\@m 3% \else\ifnum#1<\@M 4% \else\ifnum#1<100000 5% \else\ifnum#1<1000000 6% \else\ifnum#1<10000000 7% \else\ifnum#1<100000000 8% \else9% \fi\fi\fi\fi\fi\fi\fi\fi % \or00000000#1% case 1: Add 8 leading zeros \or0000000#1% case 2: Add 7 leading zeros \or000000#1% case 3: Add 6 leading zeros \or00000#1% case 4: Add 5 leading zeros \or0000#1% case 5: Add 4 leading zeros \or000#1% case 6: Add 3 leading zeros \or00#1% case 7: Add 2 leading zeros \or0#1% case 8: Add 1 leading zero \or#1% case 9: Add no leading zeros \or% \@nil#2% \fi% } \def\xepersian@@adadi@tartibi#1#2#3#4#5#6#7\or#8\@nil#9{% \ifnum#1#2#3>\z@ \xepersian@milyoongan@tartibi#1#2#3% \ifnum#7>\z@\ifnum#4#5#6>\z@\ و \else\ و \fi\else\ifnum#4#5#6>\z@\ و \fi\fi% \fi% \ifnum#4#5#6>\z@% \xepersian@sadgan#4#5#6{#1#2#3}{#4#5}\xepersian@yekani% \ifnum#4#5#6>\@ne ‌\fi% هزار% \ifnum#7>\z@\ و \fi% \fi% \xepersian@sadgan@tartibi#7{#4#5#6}1#9% } \def\xepersian@milyoongan@tartibi#1#2#3{% \ifnum#1#2#3=\@ne% \xepersian@sadgan@tartibi#1#2#301\xepersian@yekaniii% ‌% میلیون% \else% \xepersian@sadgan#1#2#301\xepersian@yekanii% ‌% میلیون% \fi% } \def\xepersian@sadgan@tartibi#1#2#3#4#5#6{% \ifnum#1>\z@% \ifnum#4#1>\@ne\xepersian@yekaniv#1\fi% صد% \ifnum#2#3>\z@\ و \fi% \fi% \ifnum#2#3<20% \ifnum#5#2#3>\@ne\ifnum#1#2#3#4#5=10001 اول\else#6{#2#3}\fi\fi% \else% \ifnum#2#3=30% \xepersian@dahgan@tartibi#2% \else% \xepersian@dahgan#2% \fi% \ifnum#3>\z@\ و \xepersian@yekanv#3\fi% #60% \fi% } \def\xepersian@dahgan@tartibi#1{% \ifcase#1\or\or بیست\or سی‌ا\or چهل% \or پنجاه\or شصت\or هفتاد\or هشتاد% \or نود\fi% } \def\xepersian@tartibi#1{% \ifcase#1م\or یکم\or دوم\or سوم\or چهارم% \or پنجم\or ششم\or هفتم\or هشتم\or نهم% \or دهم\or یازدهم\or دوازدهم\or سیزدهم% \or چهاردهم\or پانزدهم\or شانزدهم% \or هفدهم\or هجدهم\or نوزدهم\fi% } \def\xepersian@yekanv#1{% \ifcase#1\@empty\or یک\or دو\or سو\or چهار\or پنج\or شش% \or هفت\or هشت\or نه\or ده\or یازده\or دوازده\or سیزده% \or چهارده\or پانزده\or شانزده\or هفده% \or هجده\or نوزده\fi% } \providecommand*{\xpg@warning}[1]{% \PackageWarning{XePersian}% {#1}} \if@bidi@csundef{@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#1{\expandafter\@abjad\csname c@#1\endcsname} \let\abjadnumeral\@abjad \def\abjad@zero{} \def\abj@num@i#1{% \ifcase#1\or آ\or ب\or ج\or د% \or ه\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\LatinAlphs{% \let\@alph\@latinalph% \let\@Alph\@latinAlph% } \def\thempfootnote{{\itshape\@latinalph\c@mpfootnote}} \renewcommand*{\bidi@@thebibliography@font@hook}{% \if@LTRbibitems \resetlatinfont \fi} \bidi@AfterEndPreamble{% \if@bidi@csundef{persianfont}{% \PackageError{xepersian}{You have not specified any font\MessageBreak for the main Persian text}{Use `\settextfont' to load a font.}% }{}} \@ifdefinitionfileloaded{loadingorder-xetex-bidi}{\input{loadingorder-xepersian.def}}{} \@ifdefinitionfileloaded{footnote-xetex-bidi}{\input{footnote-xepersian.def}}{} \@ifpackageloaded{appendix}{\input{appendix-xepersian.def}}{} \@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{beamerbasetranslator}{\input{beamerbasetranslator-xepersian.def}}{} \@ifpackageloaded{fancyref}{\input{fancyref-xepersian.def}}{} \@ifpackageloaded{bidituftesidenote}{\input{bidituftesidenote-xepersian.def}}{} \@ifpackageloaded{breqn}{\input{breqn-xepersian.def}}{} \@ifpackageloaded{enumerate}{\input{enumerate-xepersian.def}}{} \@ifpackageloaded{enumitem}{\input{enumitem-xepersian.def}}{} \@ifpackageloaded{framed}{\input{framed-xepersian.def}}{} \@ifpackageloaded{glossaries}{\input{glossaries-xepersian.def}}{} \@ifpackageloaded{hyperref}{\input{hyperref-xepersian.def}}{} \@ifpackageloaded{minitoc}{\input{minitoc-xepersian.def}}{} \@ifpackageloaded{natbib}{\input{natbib-xepersian.def}}{} \@ifpackageloaded{soul}{\input{soul-xepersian.def}}{} \@ifpackageloaded{tkz-linknodes}{\input{tkz-linknodes-xepersian.def}}{} \@ifpackageloaded{tocloft}{\@ifclassloaded{memoir}{}{\input{tocloft-xepersian.def}}}{} \@ifpackageloaded{url}{\input{url-xepersian.def}}{} \@ifpackageloaded{varioref}{\input{varioref-xepersian.def}}{} \@ifclassloaded{article}{\input{article-xepersian.def}}{} \@ifclassloaded{extarticle}{\input{extarticle-xepersian.def}}{} \@ifclassloaded{artikel1}{\input{artikel1-xepersian.def}}{} \@ifclassloaded{artikel2}{\input{artikel2-xepersian.def}}{} \@ifclassloaded{artikel3}{\input{artikel3-xepersian.def}}{} \@ifclassloaded{amsart}{\input{amsart-xepersian.def}}{} \@ifclassloaded{beamer}{\input{beamer-xepersian.def}}{} \@ifclassloaded{bidimoderncv}{\input{bidimoderncv-xepersian.def}}{} \@ifclassloaded{report}{\input{report-xepersian.def}}{} \@ifclassloaded{extreport}{\input{extreport-xepersian.def}}{} \@ifclassloaded{rapport1}{\input{rapport1-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{amsbook}{\input{amsbook-xepersian.def}}{} \@ifclassloaded{boek3}{\input{boek3-xepersian.def}}{} \@ifclassloaded{boek}{\input{boek-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{memoir}{\input{memoir-xepersian.def}}{} \@ifclassloaded{imsproc}{\input{imsproc-xepersian.def}}{} \newtoks\xepersian@toks \def\xepersian@tempa#1{% \long\def\xepersian@@sp@def##1##2{% \futurelet\xepersian@resa\xepersian@@sp@d##2\@nil\@nil#1\@nil\relax##1}% \long\def\xepersian@@sp@d{% \ifx\xepersian@resa\@sptoken \expandafter\xepersian@@sp@b \else \expandafter\xepersian@@sp@b\expandafter#1% \fi}% \long\def\xepersian@@sp@b#1##1 \@nil{\xepersian@@sp@c##1}% } \xepersian@tempa{ } \long\def\xepersian@@sp@c#1\@nil#2\relax#3{\xepersian@toks{#1}\edef#3{\the\xepersian@toks}} \def\xepersian@@fontsize@branch#1{% \@tempcnta\z@ \@for\xepersian@tmp:=#1\do{% \xepersian@@sp@def\xepersian@frag{\xepersian@tmp}% \ifcase\@tempcnta\relax% cnta == 0 \edef\xepersian@value{\xepersian@frag}% \setfontsize{\xepersian@frag}% \or% cnta == 1 \setfontsize[\xepersian@frag]{\xepersian@value}% \else\fi \advance\@tempcnta\@ne}% } \if@extrafootnotefeatures \input{extrafootnotefeatures-xetex-bidi.def}% \input{extrafootnotefeatures-xepersian.def}% \fi \bidi@patchcmd{\set@fontsize}{\@tempdimb#2pt}{% \@tempdimb\xepersian@@fontsize@scale\dimexpr#2pt\relax }{}{} \bidi@patchcmd{\set@fontsize}{\@tempskipa#3pt}{% \@tempskipa\xepersian@@baselineskip@scale\dimexpr#3pt\relax }{}{} \newcommand*{\xepersian@@update@math@fontsize}[1]{% \strip@pt\dimexpr\xepersian@@math@fontsize@scale \dimexpr 1pt * \dimexpr #1 pt\relax / \dimexpr \xepersian@@fontsize@scale pt\relax \relax\relax } \bidi@patchcmd{\getanddefine@fonts}{% \xdef\font@name{\csname \string#2/\tf@size\endcsname}% }{% \xdef\font@name{\csname \string#2/\xepersian@@update@math@fontsize\tf@size\endcsname}% }{}{} \bidi@patchcmd{\getanddefine@fonts}{% \xdef\font@name{\csname \string#2/\sf@size\endcsname}% }{% \xdef\font@name{\csname \string#2/\xepersian@@update@math@fontsize\sf@size\endcsname}% }{}{} \bidi@patchcmd{\getanddefine@fonts}{% \xdef\font@name{\csname \string#2/\ssf@size\endcsname}% }{% \xdef\font@name{\csname \string#2/\xepersian@@update@math@fontsize\ssf@size\endcsname}% }{}{} \if@xepersian@@computeautoilg \bidi@patchcmd{\set@fontsize}{% \baselineskip\f@baselineskip\relax }{% \baselineskip\f@baselineskip\relax \xepersian@computeautoilg \ifdim\xepersian@strutilg>\baselineskip \PackageInfo{xepersian}{character with height+depth greater than current baselineskip found in font}% \PackageInfo{xepersian}{baselineskip changed to that height+depth!}% \baselineskip\xepersian@strutilg \ifdim\footnotesep=.7\baselineskip \else \footnotesep.7\baselineskip \fi \fi }{}{} \fi \AtEndOfPackage{% \setlatintextfont[% Path,% BoldFont={lmroman10-bold},% BoldItalicFont={lmroman10-bolditalic},% ItalicFont={lmroman10-italic},% SmallCapsFont={lmromancaps10-regular},% SlantedFont={lmromanslant10-regular},% BoldSlantedFont={lmromanslant10-bold}% ]{lmroman10-regular} } \PersianAlphs % \end{macrocode} % \iffalse % %<*xepersian-magazine.cls> %\fi % \section{File \texttt{xepersian-magazine.cls}} % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} \ProvidesClass{xepersian-magazine}[2010/07/25 v0.2 Typesetting Persian magazines in XeLaTeX] \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{multicol} \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} \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]{ \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-mathdigitspec.sty> %\fi % \section{File \texttt{xepersian-mathdigitspec.sty}} % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{xepersian-mathdigitspec} [2022/05/20 v1.2.0 Unicode Persian math digits in XeLaTeX] \def\new@mathgroup{\alloc@8\mathgroup\chardef\@cclvi} \let\newfam\new@mathgroup \def\select@group#1#2#3#4{% \ifx\math@bgroup\bgroup\else\relax\expandafter\@firstofone\fi {% \ifmmode \ifnum\csname c@mv@\math@version\endcsname<\@cclvi \begingroup \escapechar\m@ne \getanddefine@fonts{\csname c@mv@\math@version\endcsname}#3% \globaldefs\@ne \math@fonts \endgroup \init@restore@version \xdef#1{\noexpand\use@mathgroup\noexpand#2% {\number\csname c@mv@\math@version\endcsname}}% \global\advance\csname c@mv@\math@version\endcsname\@ne \else \let#1\relax \@latex@error{Too many math alphabets used in version \math@version}% \@eha \fi \else \expandafter\non@alpherr\fi #1{#4}% }% } \def\document@select@group#1#2#3#4{% \ifx\math@bgroup\bgroup\else\relax\expandafter\@firstofone\fi {% \ifmmode \ifnum\csname c@mv@\math@version\endcsname<\@cclvi \begingroup \escapechar\m@ne \getanddefine@fonts{\csname c@mv@\math@version\endcsname}#3% \globaldefs\@ne \math@fonts \endgroup \expandafter\extract@alph@from@version \csname mv@\math@version\expandafter\endcsname \expandafter{\number\csname c@mv@\math@version\endcsname}% #1% \global\advance\csname c@mv@\math@version\endcsname\@ne \else \let#1\relax \@latex@error{Too many math alphabets used in version \math@version}% \@eha \fi \else \expandafter\non@alpherr\fi #1{#4}% }% } \ExplSyntaxOn \bool_set_false:N \g__fontspec_math_bool \tl_map_inline:nn { \new@mathgroup\cdp@list\cdp@elt\DeclareMathSizes \@DeclareMathSizes\newmathalphabet\newmathalphabet@@\newmathalphabet@@@ \DeclareMathVersion\define@mathalphabet\define@mathgroup\addtoversion \version@list\version@elt\alpha@list\alpha@elt \restore@mathversion\init@restore@version\dorestore@version\process@table \new@mathversion\DeclareSymbolFont\group@list\group@elt \new@symbolfont\SetSymbolFont\SetSymbolFont@\get@cdp \DeclareMathAlphabet\new@mathalphabet\SetMathAlphabet\SetMathAlphabet@ \DeclareMathAccent\set@mathaccent\DeclareMathSymbol\set@mathchar \set@mathsymbol\DeclareMathDelimiter\@xxDeclareMathDelimiter \@DeclareMathDelimiter\@xDeclareMathDelimiter\set@mathdelimiter \set@@mathdelimiter\DeclareMathRadical\mathchar@type \DeclareSymbolFontAlphabet\DeclareSymbolFontAlphabet@ } { \tl_remove_once:Nn \@preamblecmds {\do#1} } \ExplSyntaxOff \newcommand\xepersian@PackageInfo[1]{\PackageInfo{xepersian-mathdigitspec}{#1}} \newcommand\SetMathCode[4]{% \Umathcode#1="\mathchar@type#2 \csname sym#3\endcsname #4\relax} \newcommand\SetMathCharDef[4]{% \Umathchardef#1="\mathchar@type#2 \csname sym#3\endcsname #4\relax} \ExplSyntaxOn \cs_new_eq:NN \orig_mathbf:n \mathbf \cs_new_eq:NN \orig_mathit:n \mathit \cs_new_eq:NN \orig_mathrm:n \mathrm \cs_new_eq:NN \orig_mathsf:n \mathsf \cs_new_eq:NN \orig_mathtt:n \mathtt %\int_const:Nn \c_one_int { 1 } \NewDocumentCommand \new@mathbf { m } { \orig_mathbf:n { \int_step_inline:nnnn { `0 } { \c_one_int } { `9 } { \mathcode ##1 = \numexpr "100 * \symnew@mathbf@font@digits + ##1 \relax } #1 } } \NewDocumentCommand \new@mathit { m } { \orig_mathit:n { \int_step_inline:nnnn { `0 } { \c_one_int } { `9 } { \mathcode ##1 = \numexpr "100 * \symnew@mathit@font@digits + ##1 \relax } #1 } } \NewDocumentCommand \new@mathrm { m } { \orig_mathrm:n { \int_step_inline:nnnn { `0 } { \c_one_int } { `9 } { \mathcode ##1 = \numexpr "100 * \symnew@mathrm@font@digits + ##1 \relax } #1 } } \NewDocumentCommand \new@mathsf{ m } { \orig_mathsf:n { \int_step_inline:nnnn { `0 } { \c_one_int } { `9 } { \mathcode ##1 = \numexpr "100 * \symnew@mathsf@font@digits + ##1 \relax } #1 } } \NewDocumentCommand \new@mathtt{ m } { \orig_mathtt:n { \int_step_inline:nnnn { `0 } { \c_one_int } { `9 } { \mathcode ##1 = \numexpr "100 * \symnew@mathtt@font@digits + ##1 \relax } #1 } } \cs_new:Npn \__xepersian_mathdigitspec_error:nxx { \msg_error:nnxx {xepersian-mathdigitspec} } \cs_new:Nn \__xepersian_mathdigitspec_msg_new:nnnn { \msg_new:nnxx {#1} {#2} { \tl_trim_spaces:n {#3} } { \tl_trim_spaces:n {#4} } } \char_set_catcode_space:n {32} \__xepersian_mathdigitspec_msg_new:nnnn {xepersian-mathdigitspec} {char-not-exist} { The font "#1" does not contain U+#2. } { Select another font and rerun xelatex. } \char_set_catcode_ignore:n {32} %\__kernel_primitive:NN \iffontchar \tex_iffontchar:D \prg_new_conditional:Nnn \__xepersian_mathdigitspec_primitive_font_char_if_exist:n {p,TF,T,F} { \tex_iffontchar:D \l_fontspec_font "#1 \scan_stop: \prg_return_true: \else: \prg_return_false: \fi: } \clist_new:N \l_xepersian_mathdigitspec_char_clist \cs_new:Nn \__xepersian_mathdigitspec_char_set_not_exist_error:nn { \clist_set:Nn \l_xepersian_mathdigitspec_char_clist { #1 } \clist_map_inline:Nn \l_xepersian_mathdigitspec_char_clist { \__xepersian_mathdigitspec_primitive_font_char_if_exist:nF { ##1 }{ \__xepersian_mathdigitspec_error:nxx {char-not-exist} { #2 } { ##1 } } } } \cs_new:Nn \__xepersian_mathdigitspec_char_prepend_not_exist_error:nn { \clist_put_left:Nn \l_xepersian_mathdigitspec_char_clist { #1 } \clist_map_inline:Nn \l_xepersian_mathdigitspec_char_clist { \__xepersian_mathdigitspec_primitive_font_char_if_exist:nF { ##1 }{ \__xepersian_mathdigitspec_error:nxx {char-not-exist} { #2 } { ##1 } } } } \cs_new:Nn \__xepersian_mathdigitspec_char_append_not_exist_error:nn { \clist_put_right:Nn \l_xepersian_mathdigitspec_char_clist { #1 } \clist_map_inline:Nn \l_xepersian_mathdigitspec_char_clist { \__xepersian_mathdigitspec_primitive_font_char_if_exist:nF { ##1 }{ \__xepersian_mathdigitspec_error:nxx {char-not-exist} { #2 } { ##1 } } } } \cs_new:Nn \__xepersian_mathdigitspec_char_not_exist_error:n { \__xepersian_mathdigitspec_char_set_not_exist_error:nn { 06F0 , 06F1 , 06F2 , 06F3 , 06F4 , 06F5 , 06F6 , 06F7 , 06F8 , 06F9 , 066A , 066B } { #1 } } \DeclareDocumentCommand \setmathdigitfont { O{} m O{} } { \__xepersian_main_setmathdigitfont:nn {#1,#3} {#2} } \cs_new:Nn \__xepersian_main_setmathdigitfont:nn { \let\glb@currsize\relax \fontspec_set_family:Nnn \g__xepersian_mathdigitsfamily_tl {Ligatures=PersianTeX,#1} {#2} \__xepersian_setmathdigitfont_hook:nn {#1} {#2} \xepersian@PackageInfo{Defining the default Persian math digits font as '#2'} \DeclareSymbolFont{OPERATORS} {\g_fontspec_encoding_tl}{\g__xepersian_mathdigitsfamily_tl} {m}{n} \DeclareSymbolFont{new@mathbf@font@digits}{\g_fontspec_encoding_tl}{\g__xepersian_mathdigitsfamily_tl}{bx}{n} \DeclareSymbolFont{new@mathit@font@digits}{\g_fontspec_encoding_tl}{\g__xepersian_mathdigitsfamily_tl}{m}{it} \DeclareSymbolFont{new@mathrm@font@digits}{\g_fontspec_encoding_tl}{\g__xepersian_mathdigitsfamily_tl}{m}{n} \__xepersian_mathdigitspec_char_not_exist_error:n { #2 } \def\persianmathdigits{% \SetMathCode{`0}{\mathalpha}{OPERATORS}{`0} \SetMathCode{`1}{\mathalpha}{OPERATORS}{`1} \SetMathCode{`2}{\mathalpha}{OPERATORS}{`2} \SetMathCode{`3}{\mathalpha}{OPERATORS}{`3} \SetMathCode{`4}{\mathalpha}{OPERATORS}{`4} \SetMathCode{`5}{\mathalpha}{OPERATORS}{`5} \SetMathCode{`6}{\mathalpha}{OPERATORS}{`6} \SetMathCode{`7}{\mathalpha}{OPERATORS}{`7} \SetMathCode{`8}{\mathalpha}{OPERATORS}{`8} \SetMathCode{`9}{\mathalpha}{OPERATORS}{`9} \SetMathCode{`\%}{\mathbin}{OPERATORS}{`٪} \SetMathCharDef{\persiandecimalseparator}{\mathord}{OPERATORS}{"066B} \tl_set_eq:NN \mathbf \new@mathbf \tl_set_eq:NN \mathit \new@mathit \tl_set_eq:NN \mathrm \new@mathrm} } \cs_set_eq:NN \__xepersian_setmathdigitfont_hook:nn \use_none:nn \DeclareDocumentCommand \setmathsfdigitfont { O{} m O{} } { \__xepersian_main_setmathsfdigitfont:nn {#1,#3} {#2} } \cs_new:Nn \__xepersian_main_setmathsfdigitfont:nn { \fontspec_set_family:Nnn \g__xepersian_mathsfdigitfamily_tl {Ligatures=PersianTeX,#1} {#2} \__xepersian_setmathsfdigitfont_hook:nn {#1} {#2} \DeclareSymbolFont{new@mathsf@font@digits}{\g_fontspec_encoding_tl}{\g__xepersian_mathsfdigitfamily_tl}{m}{n} \__xepersian_mathdigitspec_char_not_exist_error:n { #2 } \def\persianmathsfdigits{\tl_set_eq:NN \mathsf \new@mathsf} } \cs_set_eq:NN \__xepersian_setmathsfdigitfont_hook:nn \use_none:nn \DeclareDocumentCommand \setmathttdigitfont { O{} m O{} } { \__xepersian_main_setmathttdigitfont:nn {#1,#3} {#2} } \cs_new:Nn \__xepersian_main_setmathttdigitfont:nn { \fontspec_set_family:Nnn \g__xepersian_mathttdigitfamily_tl {Ligatures=PersianTeX,#1} {#2} \__xepersian_setmathttdigitfont_hook:nn {#1} {#2} \DeclareSymbolFont{new@mathtt@font@digits}{\g_fontspec_encoding_tl}{\g__xepersian_mathttdigitfamily_tl}{m}{n} \__xepersian_mathdigitspec_char_not_exist_error:n { #2 } \def\persianmathttdigits{\tl_set_eq:NN \mathtt \new@mathtt} } \cs_set_eq:NN \__xepersian_setmathttdigitfont_hook:nn \use_none:nn \ExplSyntaxOff \mathchardef\decimalseparator@point="013A %{% % \catcode`\.=\active % \gdef.{\begingroup\obeyspaces\futurelet\@let@token\decimalseparator@pointcheck}} \bgroup \uccode`\~`\.% \uppercase{% \egroup \def~}{\begingroup\obeyspaces\futurelet\@let@token\decimalseparator@pointcheck} \def\decimalseparator@pointcheck{\decimalseparator@check\MathDecimalSeparator\decimalseparator@point} \def\decimalseparator@check#1#2{% \ifx\@let@token1\endgroup#1\else \ifx\@let@token2\endgroup#1\else \ifx\@let@token3\endgroup#1\else \ifx\@let@token4\endgroup#1\else \ifx\@let@token5\endgroup#1\else \ifx\@let@token6\endgroup#1\else \ifx\@let@token7\endgroup#1\else \ifx\@let@token8\endgroup#1\else \ifx\@let@token9\endgroup#1\else \ifx\@let@token0\endgroup#1\else \ifx\@let@token\dot\endgroup#1\else \ifx\@let@token\overline\endgroup#1\else \endgroup#2% \fi \fi \fi \fi \fi \fi \fi \fi \fi \fi \fi \fi} \mathcode`.="8000\relax \def\MathDecimalSeparator{\ifx\persiandecimalseparator\undefined .\else \persiandecimalseparator\fi} \def\DefaultMathDecimalSeparator{.} \def\DefaultInlineMathDigits{\def\SetInlineMathDigits{}} \def\DefaultDisplayMathDigits{\def\SetDisplayMathDigits{}} \def\DefaultMathDigits{% \DefaultInlineMathDigits% \DefaultDisplayMathDigits% } \def\PersianInlineMathDigits{\def\SetInlineMathDigits{% \ifx\persianmathdigits\undefined\else\persianmathdigits\fi% \ifx\persianmathsfdigits\undefined\else\persianmathsfdigits\fi% \ifx\persianmathttdigits\undefined\else\persianmathttdigits\fi}} \def\PersianDisplayMathDigits{\def\SetDisplayMathDigits{% \ifx\persianmathdigits\undefined\else\persianmathdigits\fi% \ifx\persianmathsfdigits\undefined\else\persianmathsfdigits\fi% \ifx\persianmathttdigits\undefined\else\persianmathttdigits\fi}} \def\PersianMathDigits{% \PersianInlineMathDigits% \PersianDisplayMathDigits% } \def\AutoInlineMathDigits{\def\SetInlineMathDigits{% \ifx\persianmathdigits\undefined\else\if@nonlatin\persianmathdigits\fi\fi% \ifx\persianmathsfdigits\undefined\else\if@nonlatin\persianmathsfdigits\fi\fi% \ifx\persianmathttdigits\undefined\else\if@nonlatin\persianmathttdigits\fi\fi}} \def\AutoDisplayMathDigits{\def\SetDisplayMathDigits{% \ifx\persianmathdigits\undefined\else\if@nonlatin\persianmathdigits\fi\fi% \ifx\persianmathsfdigits\undefined\else\if@nonlatin\persianmathsfdigits\fi\fi% \ifx\persianmathttdigits\undefined\else\if@nonlatin\persianmathttdigits\fi\fi}} \def\AutoMathDigits{% \AutoInlineMathDigits% \AutoDisplayMathDigits% } \AutoMathDigits \everymath\expandafter{\the\everymath\SetInlineMathDigits% \let\SetDisplayMathDigits\relax% } \everydisplay\expandafter{% \the\everydisplay\SetDisplayMathDigits% \let\SetInlineMathDigits\relax% } \ExplSyntaxOn \cs_new_eq:NN \orig_MathDecimalSeparator \MathDecimalSeparator \NewDocumentCommand \SwitchToDefaultMathDigits { } { \int_step_inline:nnnn { `0 } { \c_one_int } { `9 } { \SetMathCode{##1}{\mathalpha}{operators}{##1} } \SetMathCode{`\%}{\mathbin}{operators}{`\%} \tl_set_eq:NN \MathDecimalSeparator \DefaultMathDecimalSeparator \tl_set_eq:NN \mathbf \orig_mathbf:n \tl_set_eq:NN \mathit \orig_mathit:n \tl_set_eq:NN \mathrm \orig_mathrm:n \tl_set_eq:NN \mathsf \orig_mathsf:n \tl_set_eq:NN \mathtt \orig_mathtt:n } \NewDocumentCommand \SwitchToPersianMathDigits { } { \int_step_inline:nnnn { `0 } { \c_one_int } { `9 } { \SetMathCode{##1}{\mathalpha}{OPERATORS}{##1} } \SetMathCode{`\%}{\mathbin}{OPERATORS}{`٪} \tl_set_eq:NN \MathDecimalSeparator \orig_MathDecimalSeparator \tl_set_eq:NN \mathbf \new@mathbf \tl_set_eq:NN \mathit \new@mathit \tl_set_eq:NN \mathrm \new@mathrm \tl_set_eq:NN \mathsf \new@mathsf \tl_set_eq:NN \mathtt \new@mathtt } \ExplSyntaxOff % \end{macrocode} % \iffalse % %<*xepersian-multiplechoice.sty> %\fi % \section{File \texttt{xepersian-multiplechoice.sty}} % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{xepersian-multiplechoice}[2010/07/25 v0.2 Multiple Choice Questionnaire class for Persian in XeLaTeX] \RequirePackage{pifont} \RequirePackage{fullpage} \RequirePackage{ifthen} \RequirePackage{calc} \RequirePackage{verbatim} \RequirePackage{tabularx} \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} \newcolumntype{D}{>{\pbs\centering}X} \newcolumntype{Q}{>{\@headerfont}X} \renewcommand\tabularxcolumn[1]{m{#1}} \newcommand\makeform@nocorrection{% \addtocontents{frm}{\protect\end{tabularx}} \@starttoc{frm}} \newcommand\makeform@correction{% \addtocontents{frm}{\protect\end{tabularx}}} \newcommand\makemask@nocorrection{% \addtocontents{msk}{\protect\end{tabularx}} \@starttoc{msk}} \newcommand\makemask@correction{% \addtocontents{msk}{\protect\end{tabularx}}} \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{|Q||}% \gdef\@headerline{}% \whiledo{\not{\value{@choice}>\@choices}}{ \xdef\@arraydesc{\@arraydesc D|} \def\@appendheader{\g@addto@macro\@headerline} \@appendheader{&\protect\@headerfont} \edef\@the@choice{{\alph{@choice}}} \expandafter\@appendheader\@the@choice \stepcounter{@choice}}% \addtocontents{frm}{% \protect\begin{tabularx}{\protect\linewidth}{\@arraydesc} \protect\hline \@headerline\protect\\\protect\hline\protect\hline}% \addtocontents{msk}{% \protect\begin{tabularx}{\protect\linewidth}{\@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 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{list}{\@answernumberfont\alph{@choice})~}{\usecounter{@choice}}}{% %% \end{question} \end{list} \@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-persiancal.sty> %\fi % \section{File \texttt{xepersian-persiancal.sty}} % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{xepersian-persiancal}[2012/07/25 v0.2 provides Persian calendar] \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 \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 \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 \newcommand*{\persiantoday}{% \number\XePersian@d\space% \XePersian@persian@month{\XePersian@m}\space\number\XePersian@y% } \let\persianyear\XePersian@y \let\persianmonth\XePersian@m \let\persianday\XePersian@d \def\XePersian@persian@month#1{\ifcase#1\or فروردین\or اردیبهشت\or خرداد\or تیر\or مرداد\or شهریور\or مهر\or آبان\or آذر\or دی\or بهمن\or اسفند\fi} % \end{macrocode} % \iffalse % %\fi % % \Finale % % %\iffalse %<*magazine-sample.tex> \documentclass[12pt,twoside]{xepersian-magazine} \usepackage{graphicx} \usepackage{xltxtra} \usepackage{amsmath} \usepackage{xepersian} \settextfont[Scale=1]{XB Zar} \setlatintextfont[Scale=1]{Junicode} \setmathdigitfont{XB Zar} \pagestyle{fancy} \title{مجلهٔ زی‌پرشین} \author{وفا خلیقی} \edition{جلد اول} \customlogo{مجلهٔ زی‌پرشین} \customminilogo{مجلهٔ زی‌پرشین} \custommagazinename{مجلهٔ زی‌پرشین} \customwwwTxt{http://google.com} \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{me@somedomain.com\\[5pt] http://google.com}\\ \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} % %<*test-correction.tex> \documentclass{article} \usepackage[correction]{xepersian-multiplechoice} \usepackage{xepersian} \settextfont[Scale=1]{XB Zar} \setmathdigitfont[Scale=1]{XB Zar} \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-empty-form.tex> \documentclass{article} \usepackage{xepersian-multiplechoice} \usepackage{xepersian} \settextfont[Scale=1]{XB Zar} \setmathdigitfont[Scale=1]{XB Zar} \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-question-only.tex> \documentclass{article} \usepackage{xepersian-multiplechoice} \usepackage{xepersian} \settextfont[Scale=1]{XB Zar} \setmathdigitfont[Scale=1]{XB Zar} \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-solution-form.tex> \documentclass{article} \usepackage{xepersian-multiplechoice} \usepackage{xepersian} \settextfont[Scale=1]{XB Zar} \setmathdigitfont[Scale=1]{XB Zar} \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} % %<*xepersian-logo.tex> \documentclass{minimal} \usepackage{pstricks} \begin{document} \psset{xunit=.5pt,yunit=.5pt,runit=.5pt} \begin{pspicture}(644,645) { \newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688} \pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor] { \newpath \moveto(336.4,15.6) \curveto(336.4,7.6)(329.9,1.201)(322,1.201) \curveto(314,1.201)(307.6,7.701)(307.6,15.6) \curveto(307.6,23.5)(314.1,30)(322,30) \curveto(329.9,30)(336.4,23.6)(336.4,15.6) \closepath } } { \newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688} \pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor] { \newpath \moveto(368.4,18.8) \curveto(369.2,10.901)(363.5,3.8)(355.599,2.901) \curveto(347.7,2.1)(340.599,7.8)(339.7,15.701) \curveto(338.9,23.6)(344.599,30.701)(352.5,31.6) \curveto(360.5,32.5)(367.6,26.7)(368.4,18.8) \closepath } } { \newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688} \pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor] { \newpath \moveto(400,25.3) \curveto(401.7,17.5)(396.7,9.8)(388.9,8.2) \curveto(381.099,6.5)(373.4,11.5)(371.799,19.3) \curveto(370.099,27.1)(375.099,34.8)(382.9,36.401) \curveto(390.6,38.1)(398.3,33.1)(400,25.3) \closepath } } { \newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688} \pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor] { \newpath \moveto(430.7,35.1) \curveto(433.2,27.5)(429,19.401)(421.4,16.901) \curveto(413.799,14.401)(405.7,18.6)(403.2,26.201) \curveto(400.7,33.801)(404.9,41.901)(412.5,44.401) \curveto(420.1,46.901)(428.2,42.7)(430.7,35.1) \closepath } } { \newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688} \pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor] { \newpath \moveto(460.2,48.1) \curveto(463.4,40.8)(460.2,32.3)(452.9,29) \curveto(445.599,25.8)(437.099,29)(433.799,36.3) \curveto(430.599,43.6)(433.799,52.1)(441.099,55.3) \curveto(448.4,58.6)(456.9,55.3)(460.2,48.1) \closepath } } { \newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688} \pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor] { \newpath \moveto(488.2,64) \curveto(492.2,57.1)(489.8,48.3)(482.9,44.3) \curveto(476,40.3)(467.2,42.7)(463.2,49.6) \curveto(459.2,56.5)(461.599,65.3)(468.5,69.3) \curveto(475.401,73.3)(484.2,70.9)(488.2,64) \closepath } } { \newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688} \pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor] { \newpath \moveto(514.3,82.8) \curveto(519,76.401)(517.6,67.3)(511.1,62.6) \curveto(504.6,57.901)(495.6,59.3)(490.901,65.8) \curveto(486.201,72.3)(487.701,81.3)(494.1,86) \curveto(500.6,90.7)(509.6,89.3)(514.3,82.8) \closepath } } { \newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688} \pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor] { \newpath \moveto(538.4,104.2) \curveto(543.7,98.3)(543.299,89.099)(537.299,83.8) \curveto(531.4,78.5)(522.199,79)(516.9,84.901) \curveto(511.6,90.8)(512.1,100)(518,105.3) \curveto(523.9,110.7)(533.1,110.2)(538.4,104.2) \closepath } } { \newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688} \pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor] { \newpath \moveto(560.1,128.1) \curveto(566,122.8)(566.5,113.6)(561.201,107.701) \curveto(555.901,101.801)(546.701,101.301)(540.801,106.6) \curveto(534.902,111.901)(534.402,121.1)(539.701,127) \curveto(545,132.9)(554.2,133.4)(560.1,128.1) \closepath } } { \newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688} \pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor] { \newpath \moveto(579.2,154) \curveto(585.7,149.3)(587.099,140.3)(582.4,133.8) \curveto(577.7,127.3)(568.7,125.901)(562.2,130.6) \curveto(555.7,135.3)(554.3,144.3)(559,150.8) \curveto(563.7,157.3)(572.7,158.7)(579.2,154) \closepath } } { \newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688} \pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor] { \newpath \moveto(595.4,181.8) \curveto(602.299,177.8)(604.7,169)(600.7,162.1) \curveto(596.7,155.201)(587.9,152.8)(581,156.8) \curveto(574.1,160.8)(571.7,169.6)(575.7,176.5) \curveto(579.7,183.5)(588.5,185.8)(595.4,181.8) \closepath } } { \newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688} \pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor] { \newpath \moveto(608.7,211.2) \curveto(616,208)(619.3,199.4)(616,192.099) \curveto(612.8,184.799)(604.2,181.599)(596.9,184.799) \curveto(589.6,188)(586.3,196.6)(589.6,203.9) \curveto(592.9,211.2)(601.4,214.5)(608.7,211.2) \closepath } } { \newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688} \pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor] { \newpath \moveto(618.8,241.8) \curveto(626.401,239.3)(630.5,231.2)(628.1,223.6) \curveto(625.6,216)(617.5,211.901)(609.901,214.3) \curveto(602.3,216.8)(598.201,224.901)(600.6,232.5) \curveto(603.1,240.1)(611.2,244.3)(618.8,241.8) \closepath } } { \newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688} \pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor] { \newpath \moveto(625.7,273.3) \curveto(633.5,271.7)(638.5,264)(636.8,256.2) \curveto(635.2,248.4)(627.5,243.4)(619.7,245.099) \curveto(611.9,246.799)(606.9,254.4)(608.599,262.2) \curveto(610.2,270)(617.9,274.9)(625.7,273.3) \closepath } } { \newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688} \pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor] { \newpath \moveto(629.2,305.3) \curveto(637.099,304.5)(642.9,297.401)(642,289.401) \curveto(641.2,281.501)(634.1,275.701)(626.1,276.6) \curveto(618.201,277.401)(612.401,284.5)(613.3,292.5) \curveto(614.2,300.4)(621.3,306.1)(629.2,305.3) \closepath } } { \newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688} \pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor] { \newpath \moveto(629.4,337.5) \curveto(637.4,337.5)(643.9,331)(643.799,323.1) \curveto(643.799,315.1)(637.299,308.7)(629.4,308.7) \curveto(621.4,308.7)(615,315.2)(615,323.1) \curveto(615,331.1)(621.4,337.5)(629.4,337.5) \closepath } } { \newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688} \pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor] { \newpath \moveto(626.2,369.6) \curveto(634.099,370.4)(641.2,364.7)(642.099,356.8) \curveto(642.9,348.9)(637.2,341.8)(629.299,340.9) \curveto(621.4,340.1)(614.299,345.8)(613.499,353.8) \curveto(612.5,361.7)(618.3,368.8)(626.2,369.6) \closepath } } { \newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688} \pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor] { \newpath \moveto(619.7,401.1) \curveto(627.5,402.8)(635.2,397.8)(636.8,390) \curveto(638.5,382.2)(633.5,374.5)(625.7,372.9) \curveto(617.9,371.2)(610.2,376.2)(608.599,384) \curveto(606.9,391.8)(611.9,399.5)(619.7,401.1) \closepath } } { \newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688} \pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor] { \newpath \moveto(609.9,431.8) \curveto(617.5,434.3)(625.599,430.1)(628.099,422.5) \curveto(630.599,414.9)(626.4,406.8)(618.799,404.3) \curveto(611.199,401.8)(603.099,406)(600.599,413.6) \curveto(598.099,421.2)(602.3,429.4)(609.9,431.8) \closepath } } { \newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688} \pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor] { \newpath \moveto(596.9,461.4) \curveto(604.2,464.7)(612.7,461.4)(615.9,454.1) \curveto(619.2,446.8)(615.9,438.3)(608.599,435) \curveto(601.299,431.8)(592.799,435)(589.499,442.3) \curveto(586.4,449.6)(589.6,458.1)(596.9,461.4) \closepath } } { \newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688} \pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor] { \newpath \moveto(581,489.3) \curveto(587.9,493.3)(596.7,490.9)(600.7,484) \curveto(604.7,477.1)(602.3,468.3)(595.4,464.3) \curveto(588.5,460.3)(579.7,462.7)(575.7,469.6) \curveto(571.7,476.5)(574.1,485.3)(581,489.3) \closepath } } { \newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688} \pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor] { \newpath \moveto(562.2,515.5) \curveto(568.599,520.2)(577.7,518.8)(582.4,512.3) \curveto(587.099,505.9)(585.7,496.8)(579.2,492.1) \curveto(572.7,487.4)(563.7,488.9)(559,495.3) \curveto(554.3,501.8)(555.7,510.8)(562.2,515.5) \closepath } } { \newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688} \pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor] { \newpath \moveto(540.8,539.6) \curveto(546.7,544.9)(555.901,544.5)(561.2,538.5) \curveto(566.5,532.6)(566.099,523.5)(560.099,518.1) \curveto(554.2,512.8)(544.999,513.3)(539.7,519.2) \curveto(534.3,525.1)(534.8,534.2)(540.8,539.6) \closepath } } { \newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688} \pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor] { \newpath \moveto(516.9,561.3) \curveto(522.2,567.2)(531.4,567.7)(537.299,562.4) \curveto(543.199,557.1)(543.699,547.9)(538.4,542) \curveto(533.099,536.1)(523.9,535.6)(518,540.9) \curveto(512.1,546.2)(511.6,555.3)(516.9,561.3) \closepath } } { \newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688} \pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor] { \newpath \moveto(491,580.3) \curveto(495.7,586.8)(504.7,588.2)(511.2,583.5) \curveto(517.7,578.8)(519.099,569.8)(514.4,563.3) \curveto(509.7,556.9)(500.7,555.4)(494.2,560.1) \curveto(487.7,564.9)(486.3,573.9)(491,580.3) \closepath } } { \newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688} \pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor] { \newpath \moveto(463.1,596.6) \curveto(467.1,603.5)(475.901,605.9)(482.8,601.9) \curveto(489.7,597.9)(492.1,589.1)(488.1,582.2) \curveto(484.1,575.3)(475.3,572.9)(468.401,576.9) \curveto(461.5,580.9)(459.2,589.7)(463.1,596.6) \closepath } } { \newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688} \pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor] { \newpath \moveto(433.8,609.9) \curveto(437,617.2)(445.6,620.5)(452.901,617.2) \curveto(460.201,614)(463.501,605.4)(460.201,598.1) \curveto(457.001,590.8)(448.401,587.6)(441.1,590.8) \curveto(433.8,594)(430.5,602.6)(433.8,609.9) \closepath } } { \newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688} \pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor] { \newpath \moveto(403.2,620) \curveto(405.7,627.6)(413.8,631.7)(421.4,629.3) \curveto(429,626.8)(433.099,618.7)(430.7,611.1) \curveto(428.2,603.5)(420.099,599.4)(412.5,601.8) \curveto(404.9,604.3)(400.7,612.4)(403.2,620) \closepath } } { \newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688} \pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor] { \newpath \moveto(371.7,626.9) \curveto(373.3,634.7)(381,639.7)(388.8,638) \curveto(396.6,636.3)(401.6,628.7)(399.901,620.9) \curveto(398.201,613.1)(390.6,608.1)(382.8,609.8) \curveto(375,611.4)(370.1,619)(371.7,626.9) \closepath } } { \newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688} \pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor] { \newpath \moveto(339.7,630.4) \curveto(340.5,638.3)(347.6,644.1)(355.6,643.2) \curveto(363.5,642.4)(369.3,635.3)(368.5,627.3) \curveto(367.7,619.4)(360.5,613.6)(352.6,614.5) \curveto(344.6,615.4)(338.8,622.5)(339.7,630.4) \closepath } } { \newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688} \pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor] { \newpath \moveto(307.5,630.6) \curveto(307.5,638.6)(314,645)(321.9,645) \curveto(329.9,645)(336.299,638.5)(336.299,630.6) \curveto(336.299,622.6)(329.799,616.2)(321.9,616.2) \curveto(313.9,616.1)(307.5,622.6)(307.5,630.6) \closepath } } { \newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688} \pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor] { \newpath \moveto(275.4,627.4) \curveto(274.5,635.3)(280.3,642.4)(288.2,643.3) \curveto(296.1,644.1)(303.2,638.4)(304.1,630.5) \curveto(304.9,622.6)(299.2,615.5)(291.2,614.7) \curveto(283.3,613.7)(276.2,619.4)(275.4,627.4) \closepath } } { \newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688} \pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor] { \newpath \moveto(243.9,620.8) \curveto(242.2,628.7)(247.2,636.3)(255,638) \curveto(262.8,639.7)(270.5,634.7)(272.1,626.9) \curveto(273.8,619.1)(268.8,611.4)(261,609.8) \curveto(253.2,608.1)(245.5,613)(243.9,620.8) \closepath } } { \newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688} \pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor] { \newpath \moveto(213.2,611.1) \curveto(210.7,618.7)(214.9,626.8)(222.5,629.3) \curveto(230.1,631.8)(238.2,627.6)(240.7,620) \curveto(243.2,612.4)(239,604.3)(231.4,601.8) \curveto(223.8,599.3)(215.6,603.5)(213.2,611.1) \closepath } } { \newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688} \pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor] { \newpath \moveto(183.6,598.1) \curveto(180.3,605.4)(183.6,613.9)(190.9,617.2) \curveto(198.2,620.4)(206.7,617.2)(210,609.9) \curveto(213.2,602.6)(209.9,594.1)(202.7,590.9) \curveto(195.4,587.5)(186.9,590.8)(183.6,598.1) \closepath } } { \newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688} \pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor] { \newpath \moveto(155.7,582.2) \curveto(151.7,589.1)(154.1,597.9)(161,601.9) \curveto(167.9,605.9)(176.7,603.5)(180.7,596.6) \curveto(184.7,589.7)(182.3,580.9)(175.4,576.9) \curveto(168.5,572.9)(159.7,575.2)(155.7,582.2) \closepath } } { \newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688} \pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor] { \newpath \moveto(129.5,563.4) \curveto(124.8,569.8)(126.3,578.9)(132.7,583.6) \curveto(139.2,588.3)(148.2,586.9)(152.9,580.4) \curveto(157.6,574)(156.1,564.9)(149.7,560.2) \curveto(143.2,555.5)(134.2,556.9)(129.5,563.4) \closepath } } { \newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688} \pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor] { \newpath \moveto(105.4,541.9) \curveto(100,547.8)(100.6,557)(106.5,562.3) \curveto(112.4,567.6)(121.5,567.2)(126.9,561.2) \curveto(132.2,555.3)(131.7,546.1)(125.8,540.8) \curveto(119.9,535.5)(110.8,536)(105.4,541.9) \closepath } } { \newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688} \pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor] { \newpath \moveto(83.7,518.1) \curveto(77.7,523.4)(77.3,532.6)(82.6,538.5) \curveto(87.9,544.4)(97,544.9)(103,539.6) \curveto(108.9,534.3)(109.4,525.1)(104,519.2) \curveto(98.8,513.2)(89.7,512.8)(83.7,518.1) \closepath } } { \newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688} \pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor] { \newpath \moveto(64.7,492.1) \curveto(58.2,496.8)(56.8,505.8)(61.5,512.3) \curveto(66.2,518.8)(75.2,520.2)(81.7,515.5) \curveto(88.1,510.8)(89.6,501.8)(84.9,495.3) \curveto(80.1,488.9)(71.1,487.4)(64.7,492.1) \closepath } } { \newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688} \pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor] { \newpath \moveto(48.4,464.3) \curveto(41.5,468.3)(39.1,477.1)(43.1,484) \curveto(47.1,490.9)(55.9,493.3)(62.8,489.3) \curveto(69.7,485.3)(72.1,476.5)(68,469.6) \curveto(64.1,462.7)(55.3,460.3)(48.4,464.3) \closepath } } { \newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688} \pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor] { \newpath \moveto(35.1,435) \curveto(27.8,438.2)(24.5,446.8)(27.8,454.1) \curveto(31,461.4)(39.6,464.7)(46.9,461.4) \curveto(54.2,458.2)(57.4,449.6)(54.2,442.3) \curveto(51,435)(42.4,431.7)(35.1,435) \closepath } } { \newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688} \pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor] { \newpath \moveto(25,404.4) \curveto(17.4,406.8)(13.3,415)(15.8,422.6) \curveto(18.3,430.2)(26.4,434.3)(34,431.9) \curveto(41.6,429.4)(45.7,421.3)(43.2,413.7) \curveto(40.8,406.1)(32.6,401.9)(25,404.4) \closepath } } { \newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688} \pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor] { \newpath \moveto(18.1,372.9) \curveto(10.3,374.5)(5.4,382.2)(7,390) \curveto(8.6,397.8)(16.3,402.8)(24.1,401.1) \curveto(31.9,399.4)(36.9,391.8)(35.2,384) \curveto(33.6,376.2)(26,371.2)(18.1,372.9) \closepath } } { \newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688} \pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor] { \newpath \moveto(14.6,340.9) \curveto(6.7,341.7)(0.9,348.8)(1.8,356.8) \curveto(2.6,364.7)(9.7,370.5)(17.7,369.7) \curveto(25.6,368.9)(31.4,361.7)(30.5,353.8) \curveto(29.6,345.8)(22.5,340)(14.6,340.9) \closepath } } { \newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688} \pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor] { \newpath \moveto(14.4,308.6) \curveto(6.4,308.6)(0,315.1)(0,323) \curveto(0,331)(6.5,337.4)(14.5,337.4) \curveto(22.4,337.4)(28.9,330.9)(28.9,322.9) \curveto(28.9,315.1)(22.4,308.6)(14.4,308.6) \closepath } } { \newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688} \pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor] { \newpath \moveto(17.6,276.6) \curveto(9.7,275.701)(2.6,281.5)(1.7,289.401) \curveto(0.9,297.3)(6.6,304.401)(14.6,305.3) \curveto(22.5,306.1)(29.6,300.401)(30.4,292.401) \curveto(31.3,284.5)(25.6,277.4)(17.6,276.6) \closepath } } { \newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688} \pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor] { \newpath \moveto(24.1,245) \curveto(16.3,243.3)(8.6,248.3)(7,256.1) \curveto(5.3,263.901)(10.3,271.5)(18.1,273.201) \curveto(25.9,274.801)(33.6,269.901)(35.2,262.1) \curveto(36.9,254.4)(32,246.7)(24.1,245) \closepath } } { \newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688} \pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor] { \newpath \moveto(33.9,214.3) \curveto(26.3,211.8)(18.2,216)(15.7,223.6) \curveto(13.2,231.201)(17.4,239.3)(25,241.8) \curveto(32.6,244.3)(40.7,240.1)(43.2,232.5) \curveto(45.7,224.9)(41.5,216.8)(33.9,214.3) \closepath } } { \newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688} \pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor] { \newpath \moveto(46.9,184.8) \curveto(39.6,181.5)(31.1,184.8)(27.8,192.1) \curveto(24.5,199.401)(27.8,207.901)(35.1,211.201) \curveto(42.4,214.401)(50.9,211.1)(54.1,203.801) \curveto(57.5,196.6)(54.2,188.1)(46.9,184.8) \closepath } } { \newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688} \pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor] { \newpath \moveto(62.8,156.8) \curveto(55.9,152.8)(47.1,155.2)(43.1,162.1) \curveto(39.1,169)(41.5,177.8)(48.4,181.8) \curveto(55.3,185.8)(64.1,183.401)(68.1,176.5) \curveto(72.1,169.7)(69.8,160.8)(62.8,156.8) \closepath } } { \newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688} \pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor] { \newpath \moveto(81.6,130.7) \curveto(75.2,126)(66.1,127.4)(61.5,133.9) \curveto(56.8,140.299)(58.2,149.4)(64.7,154.099) \curveto(71.1,158.799)(80.2,157.299)(84.8,150.9) \curveto(89.5,144.4)(88.1,135.4)(81.6,130.7) \closepath } } { \newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688} \pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor] { \newpath \moveto(103.1,106.6) \curveto(97.2,101.2)(88,101.7)(82.7,107.7) \curveto(77.4,113.599)(77.8,122.7)(83.8,128.099) \curveto(89.7,133.4)(98.9,132.9)(104.2,126.999) \curveto(109.5,121.1)(109,111.9)(103.1,106.6) \closepath } } { \newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688} \pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor] { \newpath \moveto(126.9,84.9) \curveto(121.6,79)(112.4,78.5)(106.5,83.799) \curveto(100.6,89.098)(100.1,98.199)(105.4,104.199) \curveto(110.7,110.098)(119.9,110.598)(125.8,105.199) \curveto(131.8,100)(132.2,90.8)(126.9,84.9) \closepath } } { \newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688} \pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor] { \newpath \moveto(152.9,65.8) \curveto(148.2,59.3)(139.2,57.901)(132.7,62.6) \curveto(126.2,67.3)(124.8,76.3)(129.5,82.8) \curveto(134.2,89.2)(143.2,90.7)(149.7,86) \curveto(156.1,81.3)(157.6,72.3)(152.9,65.8) \closepath } } { \newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688} \pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor] { \newpath \moveto(180.7,49.6) \curveto(176.7,42.701)(167.9,40.3)(161,44.3) \curveto(154.1,48.3)(151.7,57.1)(155.7,64) \curveto(159.7,70.9)(168.5,73.2)(175.4,69.2) \curveto(182.3,65.3)(184.7,56.5)(180.7,49.6) \closepath } } { \newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688} \pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor] { \newpath \moveto(210,36.3) \curveto(206.8,29)(198.2,25.7)(190.9,29) \curveto(183.6,32.2)(180.3,40.8)(183.6,48.1) \curveto(186.8,55.401)(195.4,58.6)(202.7,55.401) \curveto(210,52.1)(213.3,43.6)(210,36.3) \closepath } } { \newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688} \pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor] { \newpath \moveto(240.6,26.2) \curveto(238.2,18.599)(230,14.5)(222.4,16.9) \curveto(214.8,19.4)(210.7,27.5)(213.1,35.099) \curveto(215.6,42.7)(223.7,46.799)(231.3,44.299) \curveto(238.9,41.9)(243.1,33.8)(240.6,26.2) \closepath } } { \newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688} \pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor] { \newpath \moveto(272.1,19.3) \curveto(270.5,11.5)(262.8,6.5)(255,8.2) \curveto(247.2,9.8)(242.2,17.5)(243.9,25.3) \curveto(245.6,33.1)(253.2,38.1)(261,36.401) \curveto(268.8,34.8)(273.8,27.1)(272.1,19.3) \closepath } } { \newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688} \pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor] { \newpath \moveto(304.1,15.8) \curveto(303.3,7.901)(296.2,2.1)(288.2,3) \curveto(280.3,3.8)(274.5,10.9)(275.3,18.9) \curveto(276.1,26.799)(283.3,32.599)(291.2,31.7) \curveto(299.2,30.8)(305,23.7)(304.1,15.8) \closepath } } { \newrgbcolor{curcolor}{0.60784316 0.50588238 0.34117648} \pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor] { \newpath \moveto(291.4,500.2) \curveto(301.1,484.1)(307,462.5)(307,439.8) \curveto(307,435.5)(306.8,431.2)(306.3,426.9) \curveto(314.6,418.4)(321.3,409.1)(326,401.8) \curveto(327.6,410.1)(328.4,418.8)(328.4,427.4) \curveto(328.4,463.9)(314.9,501.1)(293.6,519.1) \curveto(284,522)(276.8,520.1)(274.4,519.3) \curveto(280.9,514.7)(286.6,508.1)(291.4,500.2) \closepath \moveto(302.4,527.6) \curveto(319.6,526.4)(337.6,516.9)(351.3,499.5) \curveto(365,482.1)(374.5,457.9)(374.5,430.5) \curveto(374.5,400.5)(363.1,368.7)(333.6,336.2) \curveto(340,335.8)(346.1,333.4)(350.5,329.8) \curveto(351.6,330)(352.7,330.1)(353.8,330.1) \lineto(354.5,330.1) \curveto(383.3,356.7)(394.6,389.2)(394.6,420.6) \curveto(394.6,450)(384.6,478.3)(369.5,499.2) \curveto(354.5,520.1)(334.6,533.4)(315.1,533.3) \curveto(308.3,533.3)(295.201,530)(288.6,526.5) \curveto(289.1,526.4)(294.5,528.1)(302.4,527.6) \closepath \moveto(372.7,501.3) \curveto(388.2,479.8)(398.4,450.8)(398.5,420.6) \curveto(398.5,389.2)(387.4,356.4)(359.4,329.5) \curveto(365.4,328.2)(370.7,325)(373.9,320.8) \curveto(374.299,320.2)(374.7,319.6)(375,319) \curveto(407,346.7)(419.5,380.5)(419.5,413.6) \curveto(419.5,446.6)(406.9,478.8)(388.4,502.7) \curveto(370,526.6)(345.8,542)(323,541.9) \curveto(312.4,541.9)(301.9,538.6)(292.3,531.1) \curveto(299.7,535.1)(307.401,537)(315.1,537) \curveto(336.4,536.9)(357.2,522.7)(372.7,501.3) \closepath \moveto(282.7,533.4) \curveto(277,534)(271.1,533.9)(265.2,533) \curveto(270.2,533)(275,532.1)(279.6,530.4) \curveto(280.5,531.4)(281.5,532.5)(282.7,533.4) \closepath \moveto(258.7,497.6) \curveto(264.6,487.7)(268.1,475)(268.1,463) \curveto(268.1,459.9)(267.9,456.8)(267.4,453.9) \curveto(272.3,451.7)(277.8,448.9)(283.8,445.1) \curveto(284,447.5)(284.1,449.9)(284.1,452.4) \curveto(284.1,468)(279.8,484.7)(272.5,497.4) \curveto(265.2,510.2)(255.1,518.7)(243.7,518.7) \curveto(238.8,518.7)(233.6,517.1)(228.1,513.6) \curveto(230.3,514.3)(232.5,514.6)(234.6,514.6) \curveto(244.5,514.6)(252.9,507.5)(258.7,497.6) \closepath \moveto(274.7,498.6) \curveto(282.2,485.4)(286.6,468.4)(286.6,452.4) \curveto(286.6,449.4)(286.4,446.5)(286.1,443.6) \curveto(289.6,441.3)(293.3,438.6)(297.1,435.6) \curveto(299.6,433.6)(301.9,431.5)(304.1,429.3) \curveto(304.4,432.8)(304.6,436.4)(304.6,439.9) \curveto(304.6,462.1)(298.8,483.4)(289.3,499) \curveto(279.8,514.6)(266.9,524.5)(252.7,524.5) \curveto(247.3,524.5)(241.6,523.1)(235.8,519.9) \curveto(238.5,520.7)(241.2,521.1)(243.8,521.1) \curveto(256.5,521.1)(267.2,511.7)(274.7,498.6) \closepath \moveto(247.5,460.9) \curveto(251.3,459.7)(257.4,458.1)(265,454.9) \curveto(265.4,457.5)(265.6,460.2)(265.6,463) \curveto(265.6,474.5)(262.2,486.9)(256.6,496.4) \curveto(251,505.9)(243.2,512.2)(234.6,512.1) \curveto(229.7,512.1)(224.3,510.1)(218.6,505.1) \curveto(235.7,512.7)(255.7,492)(247.5,460.9) \closepath \moveto(273.9,519.8) \curveto(274.4,521.3)(275.6,524.8)(278,528.3) \curveto(273.9,529.7)(269.6,530.5)(265.1,530.5) \curveto(259.2,530.5)(253,529.2)(246.5,526.3) \curveto(248.6,526.7)(250.7,526.9)(252.7,526.9) \curveto(260.3,526.9)(267.4,524.3)(273.9,519.8) \closepath \moveto(428.7,500) \curveto(430.9,497.5)(432.599,495.4)(434.599,492.7) \curveto(435.499,495.7)(437.499,498.8)(437.499,501.7) \curveto(441.499,499.1)(448.099,497.9)(451.699,493.7) \lineto(451.899,493.7) \curveto(458.999,503.7)(476.699,494.6)(472.899,484.5) \lineto(471.699,482.3) \curveto(469.699,479.4)(467.199,478.3)(464.899,478.2) \curveto(461.798,478.3)(459.298,480.2)(459.298,483.7) \curveto(459.298,485.2)(459.798,486.5)(460.399,487.5) \curveto(461.098,488.4)(461.899,488.9)(462.598,488.9) \curveto(463.199,488.9)(463.798,488.7)(464.498,487.9) \curveto(465.298,487.1)(465.498,486.5)(465.498,486.1) \curveto(465.498,485.7)(465.298,485.2)(464.898,484.9) \curveto(464.498,484.6)(463.998,484.4)(463.797,484.4) \lineto(463.697,484.4) \curveto(463.096,484.2)(462.297,484.5)(461.997,483.9) \curveto(461.697,483.3)(461.897,482.5)(462.497,482.2) \lineto(462.497,482.2) \curveto(462.897,482)(463.297,481.9)(463.697,481.9) \curveto(465.596,482)(467.797,483.5)(467.897,486.1) \curveto(467.897,487.3)(467.296,488.5)(466.197,489.6) \curveto(465.096,490.7)(463.797,491.3)(462.497,491.3) \curveto(458.997,491.2)(456.697,487.6)(456.697,483.7) \curveto(456.697,481.3)(457.596,479.2)(459.197,477.8) \curveto(460.697,476.4)(462.697,475.7)(464.897,475.7) \lineto(464.897,475.7) \curveto(467.596,475.7)(470.497,477)(472.796,479.6) \curveto(484.496,464.8)(484.096,446.4)(479.897,438.1) \curveto(527.7,488.7)(462.8,525.4)(428.7,500) \closepath \moveto(422.2,266.6) \curveto(441,286.901)(460.2,314.6)(465.5,356.201) \curveto(466.4,363.401)(466.8,370.401)(466.8,377.401) \curveto(466.8,386.501)(466.1,395.401)(464.7,404.101) \lineto(464.7,401.101) \curveto(464.7,354.901)(443.599,311.801)(407.599,284.101) \lineto(407.599,282.902) \curveto(407.599,282.202)(407.599,281.502)(407.499,280.902) \curveto(412.299,276.601)(415.799,269.801)(415.799,261.702) \curveto(415.799,261.101)(415.799,260.502)(415.699,259.902) \curveto(417.9,262)(420,264.2)(422.2,266.6) \closepath \moveto(442.8,496) \curveto(441.7,496.6)(440.5,497)(439.3,497.6) \curveto(439,496.1)(438.6,495.6)(438.1,494.1) \curveto(437.6,492.8)(437.201,491.3)(436.901,490.1) \curveto(439.8,486.5)(441.701,483.8)(443.3,481.3) \curveto(444,480)(446.7,474.8)(449.8,468.9) \curveto(453.3,462.1)(457.3,454.3)(458.901,450.6) \curveto(459.1,450.1)(459.6,449.9)(460.001,449.9) \curveto(460.201,449.9)(460.301,449.9)(460.501,450) \curveto(461.101,450.3)(461.401,451)(461.101,451.6) \curveto(458.501,457.6)(450.402,473.1)(446.902,479.7) \curveto(447.002,484.2)(448.002,488.2)(449.601,491.4) \curveto(447.7,493.3)(445.3,494.8)(442.8,496) \closepath \moveto(412.1,505.1) \curveto(432.1,480.1)(446.5,447.4)(446.5,412) \curveto(446.5,376.4)(431.8,338.2)(393.9,302.9) \curveto(394.099,302.4)(394.2,302)(394.4,301.5) \curveto(399,299.8)(402.299,296.9)(404.4,293.8) \curveto(405.7,291.901)(406.5,289.901)(407,288.1) \curveto(443,314.8)(461.1,355.3)(461.1,401.201) \curveto(461.1,411.501)(460,421.901)(457.8,432.301) \curveto(449.3,457.501)(435.5,479.901)(419,498.101) \curveto(416.7,500.5)(414.4,502.8)(412.1,505.1) \closepath \moveto(468.7,321.6) \curveto(467.9,321.6)(467.099,321.6)(466.3,321.701) \curveto(463.8,314.401)(460.8,307.501)(457.5,301.201) \curveto(473.7,307.1)(489.7,314.001)(500.3,327.301) \curveto(520.2,352.201)(520.8,405.201)(472.901,407.401) \curveto(473.6,403.401)(474.1,399.401)(474.501,395.301) \lineto(474.501,395.301) \curveto(474.501,395.301)(475.101,390.601)(475.201,387.201) \curveto(476.701,384.301)(477.301,381.701)(477.301,379.301) \curveto(477.301,376.301)(476.301,373.501)(474.701,370.901) \lineto(474.701,366.701) \curveto(477.6,370.301)(479.801,374.401)(479.801,379.301) \curveto(479.801,382.401)(478.501,386.201)(476.402,389.801) \curveto(476.402,389.801)(476.301,390.101)(476.502,390.401) \curveto(481.202,396.101)(486.302,398.301)(494.002,398.001) \curveto(495.902,394.801)(496.002,387.401)(495.902,382.801) \curveto(486.301,379.201)(483.702,371.901)(483.801,364.601) \curveto(483.801,357.801)(485.701,350.701)(485.701,344.901) \curveto(485.701,341.301)(485.001,338.401)(483.001,336.401) \curveto(482.501,335.901)(482.501,335.101)(483.001,334.701) \curveto(483.201,334.501)(483.601,334.301)(483.901,334.301) \curveto(484.201,334.301)(484.501,334.401)(484.8,334.701) \curveto(487.5,337.401)(488.3,341.101)(488.3,344.901) \curveto(488.3,351.101)(486.401,358.201)(486.401,364.601) \curveto(486.501,371.801)(487.501,377.901)(497.1,381.201) \curveto(497.3,381.301)(498.701,381.301)(499.1,381.301) \curveto(505.6,381.101)(510.901,374.201)(510.901,374.201) \curveto(492.2,375.9)(515.8,321.6)(468.7,321.6) \closepath \moveto(200.6,450.7) \lineto(200.6,448.7) \lineto(200.6,448.5) \lineto(200.6,448.3) \curveto(200.6,448.2)(200.5,447.7)(200.3,446.9) \curveto(205.2,447.9)(210.7,448.4)(216.8,448.4) \curveto(249.8,448.4)(297.4,431.9)(320.5,377.2) \curveto(323.1,380.4)(325.6,383.6)(327.9,387) \curveto(327.799,387.1)(327.7,387.2)(327.599,387.3) \curveto(323.7,394.3)(310.9,416.4)(293.299,430.6) \curveto(283.399,438.6)(274.399,443.8)(266.799,447.3) \curveto(244.899,456.8)(221.599,459.5)(200.099,458.5) \curveto(200.6,456)(200.6,453.5)(200.6,450.7) \closepath \moveto(391.4,504.8) \curveto(410.299,480.3)(423.2,447.4)(423.2,413.5) \curveto(423.2,380)(410.5,345.4)(378.7,317.2) \curveto(382.3,316)(385.5,313.8)(388,311.4) \curveto(389.6,309.799)(391,308.099)(392.1,306.299) \curveto(428.8,340.799)(442.701,377.599)(442.701,411.899) \curveto(442.701,449.199)(426.201,483.599)(404.001,508.799) \curveto(397.901,515.699)(391.401,521.899)(384.701,527.199) \curveto(365.401,539.699)(345.301,546.699)(327.901,546.699) \curveto(320.501,546.699)(313.701,545.499)(307.401,542.999) \curveto(312.501,544.599)(317.8,545.399)(323.1,545.399) \curveto(347.6,545.5)(372.5,529.3)(391.4,504.8) \closepath \moveto(287.4,329.7) \curveto(289.7,330.4)(291.9,330.8)(294.1,330.8) \curveto(295,330.8)(295.9,330.7)(296.7,330.6) \curveto(298.3,332.3)(300.4,333.5)(302.5,334.4) \curveto(305.8,335.7)(309.5,336.4)(313.2,336.4) \curveto(316.7,336.3)(320.099,335.9)(323.099,334.3) \curveto(325.599,335.5)(328.299,336.1)(330.999,336.3) \curveto(359.999,368.6)(370.899,401.5)(370.899,430.6) \curveto(370.899,457.2)(361.699,480.6)(348.499,497.3) \curveto(337.699,511)(318.899,524)(301.599,524.2) \curveto(309.899,521.3)(319.799,519.9)(333.699,500.8) \curveto(345.598,484.3)(354.699,460.9)(354.699,438.2) \curveto(354.699,428.8)(353.098,419.2)(349.598,409.8) \curveto(339.699,383.7)(322.899,365.9)(305.898,348.7) \curveto(299.6,342.4)(293.4,336.2)(287.4,329.7) \closepath \moveto(343.5,419.6) \curveto(352.3,470.2)(320.7,503.9)(303.8,514.5) \curveto(302.5,515.3)(301.2,516)(299.9,516.7) \curveto(319.2,496.8)(330.8,461.9)(330.9,427.5) \curveto(330.9,417.8)(330,408.1)(328,398.8) \curveto(329.4,396.5)(330.6,394.5)(331.5,392.9) \curveto(335.3,399)(338.6,405.6)(341.3,412.8) \curveto(342.2,415)(342.9,417.3)(343.5,419.6) \closepath \moveto(259.7,291.3) \lineto(259.7,291.3) \lineto(259.7,291.3) \lineto(259.7,291.3) \closepath \moveto(396,240.9) \curveto(398.4,243.2)(399.1,244.5)(401.9,247.599) \lineto(403.799,250.4) \lineto(404.299,251.4) \curveto(406.4,255.099)(407.099,258.5)(407.099,261.7) \curveto(407.2,268.099)(403.599,273.4)(400.299,275.5) \lineto(397.199,277.5) \lineto(398.699,280.9) \lineto(398.699,281) \curveto(398.699,281.1)(398.799,281.2)(398.799,281.4) \curveto(398.9,281.799)(398.9,282.299)(398.9,282.9) \curveto(398.9,284.7)(398.4,287)(397.099,289) \curveto(395.7,291)(393.599,292.9)(389.4,294) \lineto(386.2,294.8) \lineto(386.2,298.1) \curveto(386.3,299.1)(384.9,302.6)(382.099,305.1) \curveto(379.299,307.8)(375.7,309.6)(372.099,309.6) \lineto(367.799,309.6) \lineto(367.799,314) \curveto(367.799,314)(367.699,314.6)(367.099,315.4) \curveto(366.499,316.2)(365.4,317.299)(363.999,318.2) \curveto(361.199,320)(357.299,321.4)(353.999,321.4) \curveto(352.799,321.4)(351.699,321.2)(350.699,320.9) \lineto(348.199,320.099) \lineto(346.399,321.9) \curveto(343.598,324.799)(337.598,327.5)(332.399,327.5) \curveto(329.699,327.5)(327.298,326.9)(325.399,325.5) \lineto(322.399,323.4) \lineto(319.8,326) \curveto(319.3,326.7)(316.5,327.7)(313.2,327.7) \curveto(310.599,327.7)(307.8,327.2)(305.8,326.4) \curveto(303.7,325.6)(302.7,324.4)(302.7,324.2) \lineto(301.1,320.099) \lineto(297,321.7) \curveto(296.3,322)(295.3,322.2)(294.1,322.2) \curveto(290.2,322.2)(285.1,320.2)(282.4,315.2) \lineto(281.2,313) \lineto(273.4,313) \curveto(268.4,306.4)(263.8,299.2)(259.8,291.3) \lineto(259.8,291.3) \lineto(259.8,291.3) \curveto(259.8,291.3)(258,288.8)(255.8,283.901) \curveto(266.3,301.001)(284,315.201)(311.6,315.3) \curveto(320.401,315.3)(330.1,313.901)(340.901,310.6) \curveto(374.8,300.5)(383.501,280.8)(383.501,262) \curveto(383.501,244.3)(376.001,227.3)(375.201,219.6) \curveto(375.1,218.6)(375.001,217.701)(375.001,216.8) \curveto(375.001,206.401)(381.601,201.6)(387.701,201.6) \curveto(391.701,201.6)(395.401,203.6)(397.301,207.5) \curveto(397.101,207.3)(396.902,207.2)(396.701,207) \curveto(395.1,205.9)(393.201,205.4)(391.201,205.4) \curveto(389.001,205.4)(386.501,206.099)(384.6,207.9) \curveto(382.6,209.7)(379.401,213.799)(380.701,220.599) \curveto(382,227.3)(388.6,233.7)(396,240.9) \closepath \moveto(214.3,227) \curveto(219.4,223.4)(225.2,220.3)(230.1,219.2) \curveto(223.6,228.599)(218.3,240.2)(215.7,254.3) \curveto(213.2,255)(210.9,255.5)(208.9,255.901) \curveto(208.8,256.001)(208.6,256.201)(208.5,256.3) \curveto(208.6,255.7)(208.6,255.1)(208.6,254.5) \curveto(208.6,250.2)(207,243.5)(201.1,239.5) \curveto(202.8,236.7)(208.1,231.4)(214.3,227) \closepath \moveto(261.2,156.2) \curveto(269.1,159.8)(269.7,169.599)(269.7,174) \curveto(269.7,175.7)(268.6,178.1)(266.6,180) \curveto(265.3,181.3)(263.6,182.4)(261.8,183) \curveto(260,183.2)(258.2,183.5)(256.5,183.9) \curveto(254.4,184.4)(252.5,184.599)(250.7,184.599) \curveto(242.7,184.599)(238.1,179.7)(233.1,174.999) \curveto(232.6,173.399)(232.2,171.399)(232.2,169.199) \curveto(232.2,165.098)(233.3,160.499)(236,156.999) \curveto(238.1,154.399)(241,152.299)(245.2,151.399) \curveto(248.8,150.999)(255.6,152.699)(261.2,155.899) \lineto(261.2,156.2) \closepath \moveto(234.1,155.6) \curveto(230.9,159.701)(229.7,164.8)(229.7,169.3) \curveto(229.7,170.3)(229.8,171.3)(229.9,172.2) \curveto(226.3,169.099)(222.2,166.5)(216.3,166) \curveto(213.3,165.8)(210.2,165.7)(207.1,165.7) \curveto(204.5,165.7)(201.9,165.7)(199.3,165.8) \curveto(196.7,165.8)(194.2,165.901)(191.7,165.901) \curveto(178.1,165.901)(166.8,164.401)(166.7,153.501) \curveto(166.8,148.501)(169.1,141.601)(174.5,132.101) \curveto(174.5,132.101)(175.3,130.801)(176.8,128.902) \curveto(175.4,132.301)(174.6,135.801)(174.6,139.402) \curveto(174.6,142.902)(175.4,146.402)(177.2,149.502) \curveto(178.7,152.102)(181.1,153.702)(183.8,154.502) \curveto(186.5,155.302)(189.4,155.502)(192.5,155.502) \curveto(196.5,155.502)(200.7,155.202)(204.7,155.202) \curveto(210.8,155.202)(216.2,156.002)(219.5,159.402) \lineto(219.5,159.402) \curveto(220.2,160.101)(221.4,160.101)(222.1,159.402) \curveto(222.8,158.702)(222.8,157.502)(222.1,156.801) \curveto(217.5,152.201)(211,151.501)(204.6,151.501) \curveto(200.4,151.501)(196.2,151.901)(192.4,151.801) \curveto(189.5,151.801)(186.8,151.601)(184.8,150.902) \curveto(182.7,150.202)(181.3,149.301)(180.3,147.601) \curveto(178.9,145.202)(178.2,142.402)(178.2,139.402) \curveto(178.2,134.402)(180.1,129.002)(183.2,124.702) \curveto(186.3,120.402)(190.4,117.502)(194.7,116.902) \curveto(195.6,116.801)(196.5,116.702)(197.2,116.702) \curveto(201.8,116.802)(204,118.502)(205.7,121.402) \curveto(207.4,124.301)(208.1,128.601)(208.7,132.702) \curveto(208.8,133.202)(209.1,133.702)(209.6,134.002) \curveto(220.6,140.802)(221.6,145.802)(224.9,149.102) \curveto(225.6,149.802)(226.8,149.802)(227.5,149.102) \curveto(228.2,148.403)(228.2,147.203)(227.5,146.502) \curveto(225.4,144.502)(223.2,138.202)(212.3,131.302) \curveto(211.7,127.302)(211,123.102)(209,119.502) \curveto(207.2,116.202)(204.1,113.602)(199.5,113.002) \curveto(203.2,112.102)(207.2,111.902)(211.5,112.602) \curveto(228.1,120.302)(238.5,140.002)(242.8,149.403) \curveto(239.1,150.8)(236.1,153)(234.1,155.6) \closepath \moveto(178.4,227) \curveto(182.2,223.2)(191.4,221.9)(195.9,226.3) \curveto(198,221.1)(212,186.6)(270.9,187.401) \curveto(264.4,189.401)(255.1,193.6)(245.2,202.201) \curveto(241,205.901)(236.9,210.1)(233.1,215.1) \curveto(226.3,215.401)(218.7,219.401)(212.1,224) \curveto(206,228.4)(200.9,233.2)(198.4,236.8) \curveto(195.7,236.1)(193.2,235.8)(191,235.8) \curveto(185.4,235.8)(181,237.8)(178.1,240.901) \curveto(175.2,244.001)(173.9,248.001)(173.9,251.8) \curveto(173.9,254)(174.3,256.1)(175.2,258) \curveto(171.3,255.5)(168.2,252.6)(166.7,250.6) \curveto(133.8,254.701)(116.2,252.3)(109.6,246.8) \curveto(104.4,236.3)(100,215.901)(133.4,206.2) \curveto(132.1,207.5)(132.3,208.8)(133.1,210) \curveto(129,211)(125.4,212.6)(122.4,214.7) \curveto(116.7,218.7)(113.4,224.599)(113.4,231.599) \curveto(113.4,232.099)(113.4,232.599)(113.5,233.099) \curveto(113.7,236.9)(115.5,239.7)(118.2,241.2) \curveto(120.9,242.7)(124.2,243.099)(127.8,243.099) \curveto(134.7,243.099)(143.1,241.599)(150.6,241.599) \curveto(158.5,241.599)(165,243.099)(168.6,248.7) \lineto(168.6,248.7) \curveto(169.2,249.599)(170.3,249.8)(171.2,249.2) \curveto(172.1,248.599)(172.3,247.5)(171.7,246.599) \curveto(167,239.4)(158.8,237.799)(150.6,237.799) \curveto(142.6,237.799)(134.2,239.299)(127.8,239.299) \curveto(124.5,239.299)(121.7,238.9)(120,237.9) \curveto(118.3,236.9)(117.4,235.7)(117.2,232.799) \lineto(117.2,231.499) \curveto(117.2,225.699)(119.7,221.099)(124.6,217.599) \curveto(129.3,214.299)(136.3,212.299)(145.2,212.2) \curveto(148.4,215.599)(149.9,219.099)(149.8,221.5) \curveto(149.8,222.1)(149.7,222.6)(149.6,223) \curveto(149.4,223.7)(149.6,224.4)(150.1,224.9) \curveto(151.3,226.099)(152.8,226.5)(154.2,226.799) \curveto(155.7,227.099)(157.3,227.4)(159,227.9) \curveto(162.4,228.9)(166.2,230.599)(170.1,235.7) \curveto(170.7,236.5)(171.9,236.7)(172.7,236.099) \curveto(173.5,235.499)(173.7,234.299)(173.1,233.499) \curveto(166.6,224.799)(159,224.099)(155.1,223.199) \curveto(154.4,223.098)(153.9,222.899)(153.5,222.699) \curveto(153.6,222.299)(153.6,221.899)(153.6,221.499) \curveto(153.6,217.499)(151.4,213.099)(147.3,209.099) \curveto(147.1,208.9)(146.8,208.7)(146.5,208.599) \curveto(146.5,207.9)(146.2,207.2)(145.4,206.4) \curveto(153.2,205.7)(163.5,203.299)(168.5,208.299) \curveto(173.4,213.3)(174.9,223.5)(178.4,227) \closepath \moveto(137.5,369.6) \curveto(138.8,371.1)(150.4,383.1)(157.7,388.3) \curveto(150.7,386.6)(139.4,380.6)(129.8,372.9) \curveto(131.7,371.5)(135.2,369.9)(137.5,369.6) \closepath \moveto(139.8,354.8) \curveto(144.9,360)(162.2,379.5)(161.1,383.3) \curveto(155.1,377.5)(150.2,373.2)(147.6,370.2) \curveto(143.7,365.7)(141,361.9)(139.8,354.8) \closepath \moveto(112.4,270.4) \curveto(112.4,281.4)(130.8,280)(133.9,291.9) \curveto(137.4,305.2)(123.1,305.799)(129.8,316.2) \curveto(120.1,322.7)(110.1,319.099)(110.1,327.2) \curveto(110.1,335.4)(128.6,339.3)(135.6,363.3) \curveto(135.6,363.3)(133.7,358.2)(128.3,353.7) \curveto(113.3,341.3)(96,340.4)(95.4,324) \curveto(94.7,306.2)(114.8,294.5)(107.6,287.3) \curveto(100.6,280.3)(108.9,273.9)(112.4,270.4) \closepath \moveto(191.5,437.6) \curveto(197.2,430.6)(211.2,411.6)(211.2,392.9) \curveto(211.2,385.5)(208.9,378)(202.9,371.7) \curveto(245.8,352.7)(214.3,317.599)(219.2,256.099) \curveto(223.3,232.4)(235.3,215.9)(247.7,204.999) \curveto(259.6,194.499)(270.3,187.999)(279.2,187.999) \curveto(279.4,187.999)(280.4,188.199)(280.6,188.299) \curveto(267.1,193.199)(254.7,205.299)(248.9,216.799) \curveto(246.1,222.4)(243.7,229.299)(242.6,235.099) \curveto(241.6,240.599)(241.5,243.299)(241.5,249.999) \curveto(241.5,277.999)(252,295.099)(252,295.099) \curveto(264.7,320.299)(282.8,337.599)(299.7,354.7) \curveto(306,361)(312.099,367.4)(317.7,374) \curveto(295.5,428.5)(248.9,444.7)(216.7,444.7) \curveto(210.1,444.7)(204.2,444)(199.2,442.9) \lineto(199.2,442.9) \curveto(198.9,442.8)(198.6,442.8)(198.3,442.9) \curveto(196.9,441.1)(194.8,439.1)(191.5,437.6) \closepath \moveto(351.3,167.9) \curveto(347.7,163.4)(341.1,158.9)(329.7,155.5) \curveto(316.8,151.7)(304.7,149.7)(294,149.7) \curveto(283.8,149.7)(274.7,151.5)(267,155) \curveto(266.1,154.3)(265.1,153.6)(264,153) \curveto(261.7,148.3)(258.3,145.3)(253.8,143.4) \curveto(294.6,128)(363.6,139.299)(381.7,155.2) \lineto(381.7,156.4) \curveto(381.7,159.099)(381.8,161.5)(382,163.7) \lineto(381,163.7) \curveto(368.4,163.7)(358.6,165.7)(351.3,167.9) \closepath \moveto(396,161.5) \curveto(399.4,161.5)(402.8,162.1)(405.9,163.2) \curveto(413.9,164.8)(421.4,168.099)(427.099,171) \curveto(409.599,165.8)(394.999,163.9)(382.9,163.7) \curveto(386.4,162.4)(390.7,161.5)(396,161.5) \closepath \moveto(414.5,154.1) \curveto(410.6,140.5)(433.7,139.6)(443.2,141.701) \curveto(441.5,142.701)(440.099,144.301)(439.3,146.801) \curveto(438.2,150.201)(439.401,153.402)(441.401,155.601) \curveto(435,158.9)(418.3,167.3)(414.5,154.1) \closepath \moveto(553,374.7) \curveto(550.8,446.1)(503.9,525.6)(428.7,533.7) \curveto(423.099,527.5)(418.2,521.4)(413.9,515.4) \curveto(417.799,511.7)(421.599,507.9)(425.299,503.8) \curveto(425.499,503.6)(425.699,503.3)(425.9,503.1) \curveto(426.5,503.6)(427.2,504.1)(427.799,504.6) \curveto(445.999,517.4)(483.099,519.7)(498.699,487.7) \curveto(514.098,456.1)(484.899,432.1)(484.899,432.1) \curveto(481.598,429.2)(475.699,426.3)(468.798,424.9) \curveto(469.998,420.5)(470.998,416.1)(471.899,411.6) \lineto(472.098,411.6) \curveto(491.598,413.1)(513.498,401.4)(517.498,373.2) \curveto(525.298,318)(470.098,296.3)(452.198,290.099) \curveto(449.597,288.9)(448.798,287.099)(448.798,287.099) \curveto(453.498,286.4)(457.598,282.7)(460.098,277.7) \curveto(461.298,275.2)(461.798,273)(461.798,271) \curveto(461.798,266.2)(458.698,262.6)(454.399,260.1) \curveto(450.098,257.6)(444.499,256.401)(440.499,256.401) \curveto(438.699,256.401)(437.099,256.701)(436.199,257.1) \curveto(435.699,257.3)(435.399,257.5)(435.299,257.701) \curveto(435.4,258.1)(435.499,258.6)(435.699,259.001) \curveto(439.199,266.801)(458.199,258.001)(454.799,275.301) \curveto(453.699,280.701)(450.699,283.101)(446.599,283.501) \curveto(431.499,261.501)(413.599,246.301)(401.7,234.801) \curveto(394.4,227.902)(388.8,223.301)(387.599,219.701) \curveto(387.2,218.501)(386.2,214.901)(388.499,212.501) \curveto(389.099,211.901)(389.999,211.101)(390.899,211.001) \curveto(396.999,210.001)(397.699,216.801)(397.699,216.801) \curveto(398.699,215.501)(399.299,214.001)(399.299,212.402) \curveto(399.299,212.002)(399.199,211.601)(399.199,211.202) \lineto(399.199,210.902) \curveto(398.199,204.002)(392.899,200.402)(387.399,200.402) \lineto(387.3,200.402) \curveto(383.901,200.402)(380.401,201.801)(377.7,204.502) \curveto(375,207.302)(373.3,211.402)(373.3,216.902) \curveto(373.3,217.801)(373.401,218.801)(373.5,219.801) \curveto(374.4,227.902)(381.8,244.701)(381.8,262.101) \curveto(381.8,280.501)(373.6,299.402)(340.1,309.501) \curveto(329.401,312.701)(319.8,314.101)(311.1,314.101) \curveto(279.5,314.101)(261.1,295.101)(251.8,274.702) \curveto(249.7,268.002)(247.8,259.402)(247.3,248.902) \curveto(247.1,244.502)(247.5,239.202)(248,235.301) \curveto(248.6,231.301)(251.1,222.902)(253.8,217.301) \curveto(259.6,205.701)(268.2,194.601)(279.7,189.801) \lineto(281.5,189.101) \curveto(287.4,190.402)(290.8,191.601)(297.2,193.902) \lineto(298.7,194.402) \curveto(308.9,198.101)(318.5,201.601)(327.8,201.601) \curveto(333.8,201.601)(339,200.301)(343.7,197.301) \curveto(344.3,197.001)(344.8,196.601)(345.3,196.201) \lineto(348.2,193.901) \lineto(348.2,193.901) \lineto(348.9,193.201) \curveto(352.5,189.401)(355.2,183.901)(354.799,178.1) \curveto(354.599,175.701)(353.9,172.901)(352.199,170.1) \curveto(359.199,168)(368.499,166.201)(380.499,166.201) \curveto(394.799,166.201)(413.099,168.801)(435.899,176.701) \lineto(435.999,176.701) \curveto(436.099,176.701)(436.099,176.801)(436.099,176.801) \curveto(474.299,176.801)(459.099,152.101)(454.9,157.001) \curveto(450.299,162.201)(439.4,154.801)(442.5,146.301) \curveto(447.2,133.101)(468.7,144.801)(471,153.501) \curveto(466.6,124.701)(421.8,137.001)(411.5,138.401) \curveto(399.4,140.1)(394.5,128.901)(396.2,118.6) \curveto(397.599,110.1)(392.3,102.3)(389.9,100) \curveto(407,96.7)(415.099,111.2)(421.799,115.8) \curveto(428.599,120.5)(453.199,118.2)(467.099,128.901) \curveto(481,139.5)(479.2,165.1)(479.2,168.1) \curveto(482.4,169.401)(493.2,173.8)(493.2,186.201) \curveto(493.2,197.001)(485.2,202.401)(477,201.401) \curveto(467.9,200.3)(465.2,189.1)(475.5,188.901) \curveto(473.2,191.201)(475.9,194.701)(479,193.001) \curveto(483.7,190.401)(478.4,182.601)(468.7,184.201) \curveto(465.3,184.801)(457.599,185.901)(450.3,186.901) \curveto(505.7,215.9)(556.1,275.2)(553,374.7) \closepath \moveto(435.5,254.8) \curveto(436.9,254.2)(438.7,254)(440.8,254) \curveto(445.401,254)(451.2,255.3)(456,258) \curveto(460.8,260.7)(464.7,265.1)(464.7,271) \curveto(464.7,273.4)(464.099,276)(462.7,278.8) \curveto(462,280.2)(461.3,281.3)(460.4,282.3) \curveto(465.2,278.6)(467.599,275)(468.599,271.8) \curveto(468.799,271)(468.999,270.2)(469.2,269.5) \curveto(469.3,268.7)(469.4,268)(469.4,267.3) \curveto(469.4,264.8)(468.799,262.6)(468.099,260.901) \curveto(464.7,251.5)(455.8,247.1)(445.9,247) \curveto(444.299,247)(442.599,247.1)(441,247.4) \curveto(438.3,248.9)(435.9,251.7)(435.4,255) \curveto(435.4,254.8)(435.4,254.8)(435.5,254.8) \closepath \moveto(436.1,245.8) \curveto(439.3,244.901)(442.6,244.5)(445.8,244.5) \lineto(445.901,244.5) \curveto(456.401,244.5)(466.401,249.4)(470.3,259.8) \curveto(470,250.5)(465.3,246.401)(458.901,243.1) \curveto(452.3,239.701)(444.001,237.6)(438.001,232.6) \curveto(433.201,228.6)(431.201,223.701)(431.201,218.8) \curveto(431.201,211.8)(435.1,204.8)(440.1,199) \curveto(405,220.5)(420.6,241.6)(436.1,245.8) \closepath \moveto(452.6,224.5) \curveto(439.8,220.2)(441.8,205.1)(443.201,199.1) \curveto(437.801,204.901)(433.701,212.1)(433.701,218.701) \curveto(433.701,222.901)(435.301,227.001)(439.6,230.6) \curveto(445,235.201)(453.1,237.3)(460,240.8) \curveto(466.9,244.3)(472.8,249.7)(472.8,260.401) \curveto(472.8,263.201)(472.401,266.3)(471.6,269.8) \curveto(470.701,275.8)(466.201,282.8)(453.8,289.401) \curveto(463.901,288.701)(482.7,284.201)(486,265.001) \curveto(489.7,243.8)(468.7,229.9)(452.6,224.5) \closepath \moveto(281.2,184.7) \curveto(276.6,183.599)(272,182.9)(267.3,182.8) \curveto(267.7,182.5)(268,182.2)(268.4,181.901) \curveto(270.7,179.6)(272.2,176.901)(272.3,174.1) \curveto(272.3,170.8)(272.1,164.1)(268.3,159) \curveto(270.5,156.8)(281.7,154.5)(281.7,154.5) \curveto(283.1,154.3)(284,154.4)(285,154.4) \curveto(288.3,154.4)(290.7,156.2)(292.5,159.099) \curveto(294.2,161.999)(295.1,165.999)(295.1,169.799) \curveto(295.1,170.799)(295,171.9)(294.9,172.9) \curveto(293.8,180.5)(289.1,184.9)(281.9,184.9) \curveto(281.6,184.7)(281.4,184.7)(281.2,184.7) \closepath \moveto(298.9,190.4) \curveto(295.1,189)(291.3,187.599)(287.4,186.4) \curveto(292.9,184.5)(296.6,179.599)(297.4,173) \curveto(297.5,171.9)(297.6,170.8)(297.6,169.6) \curveto(297.6,165.401)(296.6,161)(294.6,157.6) \curveto(293.7,156.1)(292.6,154.8)(291.3,153.8) \curveto(298.5,153.6)(305.7,154.3)(312.5,155.5) \lineto(312.5,155.5) \curveto(320.6,156.6)(325.2,166.3)(325.2,174.5) \curveto(325.2,175.6)(325.099,176.7)(324.9,177.7) \curveto(323.7,185.099)(316.599,193.3)(307.4,193.3) \curveto(304.7,192.5)(301.8,191.4)(298.9,190.4) \closepath \moveto(342.3,194) \curveto(337.901,196.9)(333.2,198)(328.3,198) \curveto(323.401,198)(318.2,196.9)(312.8,195.2) \curveto(320.8,192.7)(326.3,185.3)(327.5,178.3) \curveto(327.7,177.1)(327.8,175.901)(327.8,174.6) \curveto(327.8,168.701)(325.6,161.8)(321.3,157.5) \curveto(323.901,158.1)(326.3,158.8)(328.7,159.5) \curveto(337.9,162.2)(351.099,169)(351.8,178.4) \lineto(351.8,178.299) \curveto(351.8,178.699)(351.901,178.999)(351.901,179.4) \curveto(351.7,186.1)(346.1,191.3)(342.3,194) \closepath \moveto(124.6,372.3) \curveto(139.1,383.8)(159.7,393.3)(163.6,389.4) \curveto(167.5,385.5)(151.7,361.4)(135,344.7) \curveto(148.8,344.7)(163.4,347.4)(194.7,374.5) \curveto(198.5,380.2)(200,386.1)(200,392) \curveto(200.1,410.6)(184.6,429)(178.3,435.6) \curveto(170.3,436.8)(167.6,442.5)(167.5,442.8) \lineto(167.4,443.1) \lineto(167.3,443.4) \curveto(167.3,443.6)(166.4,448.1)(166.9,454.1) \curveto(145,449.2)(128.2,441.5)(121.7,436.1) \curveto(121.7,436.1)(123.6,433.7)(122.8,428.8) \curveto(126.4,427.3)(132.4,435.8)(140.9,432.2) \curveto(148.2,429)(154.9,422.4)(162.3,423.4) \lineto(163,420.3) \curveto(155,418)(147.7,426)(140.2,428.8) \curveto(132.4,431.8)(126.3,423.4)(122.1,425.9) \curveto(121.8,424.9)(121.3,423.7)(120.7,422.5) \curveto(121.3,418.1)(124.1,412.6)(128.3,409.3) \curveto(128.4,409.2)(128.5,409)(128.5,408.8) \curveto(128.5,408.6)(128.4,408.4)(128.3,408.3) \curveto(125.1,405.7)(106.6,392.3)(101.8,387.6) \curveto(102.1,387.4)(102.4,387.2)(102.8,387) \curveto(109.4,382.9)(117.4,378.9)(122.4,378.9) \lineto(123.3,378.9) \curveto(125.9,381)(147.7,395.5)(160.4,395.6) \curveto(164.4,395.6)(167.7,394)(168.7,389.9) \curveto(168.8,389.6)(168.6,389.2)(168.3,389.1) \curveto(168,389)(167.6,389.2)(167.5,389.5) \curveto(166.6,392.9)(164.1,394.2)(160.4,394.2) \curveto(148.2,394.3)(124.9,378.7)(124,377.7) \curveto(123.9,377.6)(123.8,377.5)(123.6,377.5) \curveto(123.2,377.5)(122.8,377.4)(122.4,377.4) \curveto(112.4,377.5)(94.5,390.6)(90.8,393.4) \curveto(93.6,385.4)(108,374.8)(124.6,372.3) \closepath \moveto(136,408.7) \curveto(126.6,410.2)(125.5,420.7)(125.5,420.7) \curveto(127.8,426.2)(141.1,427.3)(148.8,416.8) \curveto(148.8,416.8)(143.4,407.5)(136,408.7) \closepath \moveto(184.9,262.5) \curveto(180.7,260.4)(177.7,256.6)(177.7,251.9) \curveto(177.8,245.9)(181.7,239.599)(191.1,239.5) \curveto(193.1,239.5)(195.4,239.8)(198,240.5) \curveto(204.4,243.5)(206.2,250.2)(206.2,254.4) \curveto(206.2,255.2)(206.1,255.9)(206,256.4) \curveto(205.8,257.299)(205.6,258.2)(205.3,258.9) \curveto(198.4,263.9)(191.2,264.2)(184.9,262.5) \closepath \moveto(100.7,388.4) \curveto(105.3,392.9)(122.3,405.4)(126.8,408.8) \curveto(122.9,412.1)(120.4,416.5)(119.7,420.8) \curveto(119.4,420.2)(119,419.5)(118.5,418.9) \curveto(112.3,409.2)(98.6,401.4)(90.8,395) \curveto(91.5,394.5)(95.5,391.5)(100.6,388.2) \curveto(100.7,388.3)(100.7,388.4)(100.7,388.4) \closepath \moveto(208.7,392.9) \curveto(208.8,410.9)(194.2,430.5)(189,436.7) \curveto(188.5,436.6)(188.1,436.4)(187.6,436.3) \curveto(185.6,435.8)(183.7,435.6)(181.9,435.5) \curveto(189,427.6)(202.4,410.4)(202.5,392.1) \curveto(202.5,386)(201,379.9)(197.2,374) \curveto(198.3,373.6)(199.4,373.2)(200.4,372.8) \lineto(200.4,372.8) \curveto(206.5,378.7)(208.7,385.7)(208.7,392.9) \closepath \moveto(159.6,456.1) \curveto(157.3,460.5)(152.9,464.6)(140.5,471) \curveto(133.4,463.1)(132.9,454)(134.1,447) \curveto(141.3,450.6)(149.9,453.7)(159.6,456.1) \closepath \moveto(186.9,439.3) \curveto(196.7,441.7)(197.5,448.8)(197.5,448.8) \curveto(197.5,457.5)(198.9,461.8)(183.6,477.1) \curveto(165.7,466.7)(170.3,444.2)(170.3,444.2) \curveto(170.3,444.2)(174,436.1)(186.9,439.3) \closepath } } \end{pspicture} \end{document} % %\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{*} % \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} % \typeout{*} % \typeout{*************************************************************} % \endinput