%% !TEX root=GUATThesis-main.tex
%% !TEX TS-program = XeLaTeX
%بسته های برای تایپ متون ریاضی و محیط های شماره دار
\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{amssymb}
\usepackage{amsfonts}
\usepackage{mathtools}
\usepackage{upgreek} %%برای ایستاده نمایش دادن شکل ایستاده نمادهای یونانی
\usepackage[shortlabels]{enumitem}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% بسته‌ای برای تنطیم حاشیه‌های بالا، پایین، چپ و راست صفحه
\usepackage[top=45mm, bottom=45mm, left=40mm, right=40mm]{geometry}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% بسته ای برای رسم انواع مختلف نمودارها
\usepackage{tikz}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% بسته‌‌ای برای ظاهر شدن شکل‌ها و تصاویر متن
\usepackage{graphicx}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% بسته‌ای برای رسم کادر
\usepackage{framed}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%برای ایجاد فرورفتگی در ابتدای پاراگراف‌ها
\usepackage{indentfirst}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%بسته ای برای مدیریت و طراحی ساختار فهرست مطالب، فهرست جداول، فهرست شکل ها و ...
\usepackage{tocloft}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% برای مدیریت بر ساختار عناوین، هدر و ... مربوط به فصل، بخش و ...
\usepackage{emptypage}
\usepackage{titlesec}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% مورد استفاده در تعاریف با استفاده از newcommand
\usepackage{xspace}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%برای حروف چینی محیط شعر پارسی
\usepackage{bidipoem}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% بسته‌ و دستوراتی برای ایجاد لینک‌های رنگی با امکان جهش
\usepackage[colorlinks=true,linkcolor=Blue,urlcolor=Blue,citecolor=Blue]{hyperref}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%بسته های مربوط به ایجاد الگوریتم
\usepackage{algorithm,algcompatible}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%بسته هایی برای مدیریت کپشن در محیط های شناور مانند شکل و جدول و ...
\usepackage[textfont={small},labelfont={rm,small},format=hang,labelsep=quad,justification={centering},aboveskip=1pt,belowskip=1pt]{caption}
\usepackage{subcaption}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% بسته‌ای برای ظاهر شدن نمایه و مراجع در فهرست
\usepackage[nottoc,notlof,notlot]{tocbibind}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage{cite}
\usepackage{appendix}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% بسته مورد نیاز برای نوشتن کدهای برنامه نویسی در نوشتار و رنگ
\usepackage{listings}
\usepackage{color}
\definecolor{Blue}{rgb}{0,0,.55}
%%تنظیمات مورد نظر خروجی بسته listings
\lstset{
	tabsize=6,%4
	rulecolor=,
	language=matlab,
	basicstyle=\normalfont,%\scriptsize,
	aboveskip={1.5\baselineskip},
	columns=fixed,
	showstringspaces=false,
	extendedchars=true,
	breaklines=true,
	prebreak = \raisebox{0ex}[0ex][0ex]{\ensuremath{\hookleftarrow}},
	showtabs=false,
	showspaces=false,
	showstringspaces=false,
	identifierstyle=\ttfamily,
	keywordstyle=\color[rgb]{0,0,1},
	commentstyle=\color[rgb]{0.133,0.545,0.133},
	stringstyle=\color[rgb]{0.627,0.126,0.941},
	numbers=left,
numbersep=6pt,
	numberstyle=\footnotesize,%\normalfont,%\tiny,
	frame=l,
tabsize=1
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%برای ضخیم کردن خط افقی در جدول
\usepackage{array}
\makeatletter
\newcommand{\thickhline}{%
	\noalign {\ifnum 0=`}\fi \hrule height 1.5pt
	\futurelet \reserved@a \@xhline
}
\makeatother
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% دستورات مربوط به ایجاد نمایه
%\usepackage{makeidx}
%\makeindex
%در پایان نامه دانشگاه، فهرست نمایه در نظر گرفته نشده است. ولیکن در صورت تمایل به داشتن فهرست نمایه، لینک زیر بسیار مفید است:
%http://qa.parsilatex.com/2758/%D9%86%D8%AD%D9%88%D9%87-%DB%8C-%D8%A7
%D8%B6%D8%A7%D9%81%D9%87-%DA%A9%D8%B1%D8%AF%D9%86-%D9%86%D9
%85%D8%A7%DB%8C%D9%87-%D8%A8%D9%87-%D9%BE%D8%A7%DB%8C%D8%A7
%D9%86-%D9%86%D8%A7%D9%85%D9%87-%D8%A8%D9%87-%DA%86%D9%87-%D8
%B4%DA%A9%D9%84%DB%8C-%D8%A7%D8%B3%D8%AA%D8%9F
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% فراخوانی بسته زی‌پرشین و تعریف قلم فارسی و انگلیسی
\usepackage[extrafootnotefeatures]{xepersian}
\settextfont[Scale=0.93]{Yas}
\setlatintextfont[Scale=0.91]{Times New Roman}
% تعریف قلم‌های فارسی و انگلیسی اضافی برای استفاده در بعضی از قسمت‌های متن
\defpersianfont\nastaliq[Scale=1]{IranNastaliq}
\defpersianfont\ftitr{XB Titre}
% برای نوشتن انگلیسی اعداد در فرمولها
\DefaultMathsDigits
% برای شکستن فرمولهای داخل محیط align
\allowdisplaybreaks
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%جهت داشتن زیرنویس به صورت شماره گذاری شده، صفحه به صفحه
\paragraphfootnotes
\usepackage{perpage}
\MakePerPage{footnote}
\setlength{\footmarkwidth}{0pt}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\SepMark{-}
% تعریف و نحوه ظاهر شدن عنوان قضیه‌ها، تعریف‌ها، مثال‌ها و ...
\newtheorem{theorem}{قضیه}[section]
\newtheorem{lemma}[theorem]{لم}
\newtheorem{proposition}[theorem]{گزاره}
\newtheorem{corollary}[theorem]{نتیجه}
\newtheorem{hokm}[theorem]{حکم}
\theoremstyle{definition}
\newtheorem{remark}[theorem]{ملاحظه}
\newtheorem{example}[theorem]{مثال}
\newtheorem{definition}[theorem]{تعریف}
\newtheorem{problem}[theorem]{مسأله}
\newtheorem{taz}{تذکر}
\newtheorem{nok}{نکته}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%بکارگیری چند تعریف ساده
\newcommand{\rr}{\mathbb{R}}
\newcommand{\kk}{\mathcal{K}}
\renewcommand{\vec}{\mathrm{vec}}
\newcommand{\mkk}{\mathcal{K}_1(A,r_0)}
\newcommand{\seq}[1]{\langle#1\rangle}
\newcommand{\mkkk}[1]{\mathcal{K}_{#1}(A,r_0)}
\newcommand{\mkkkk}[2]{\mathcal{K}_{#1}(A,#2)}
\DeclareMathOperator{\tr}{trace}
\DeclareMathOperator{\Log}{Log}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%دستوری برای تغییر نام کلمه «اثبات» به «برهان» و نام گذاری مراجع
\renewcommand\proofname{\upshape\textbf{برهان}}
\renewcommand{\bibname}{فهرست منابع}
%تعریف عبارت دانشگاه تحصیلات تکمیلی صنعتی و فناوری پیشرفته
\newcommand{\danesh}{دانشگاه تحصیلات تکمیلی صنعتی و فناوری پیشرفته\xspace}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%برای مدیریت فاصله ها، مثل فاصله خطوط
\renewcommand{\baselinestretch}{1.35}
% فولدر شامل تصاویر را برای تک شناسایی می کند.
\graphicspath{{images/}}
% دستوری برای تعریف واژه‌نامه انگلیسی به فارسی
\newcommand\persiangloss[2]{#1\dotfill\lr{#2}\\}
% دستوری برای تعریف واژه‌نامه فارسی به انگلیسی
\newcommand\englishgloss[2]{#2\dotfill\lr{#1}\\}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% ترتیبی کردن شماره فصل‌ها در فهرست مطالب در صورت استفاده از بسته hyperref
\makeatletter
\newcommand*{\@thechapapp}{\@tartibi\c@chapter}
\bidi@appto\appendix{\gdef\@thechapapp{\@harfi\c@chapter}}
\bidi@patchcmd{\Hy@org@chapter}{%
	\addcontentsline{toc}{chapter}%
	{\protect\numberline{\thechapter}#1}%
}{%
\addcontentsline{toc}{chapter}%
{\protect\numberline{\@chapapp~\@thechapapp:}#1}%
}{\typeout{We succeded in redefining \string\@chapter}}
{\typeout{We failed in redefining \string\@chapter}}
\makeatletter
% اضافه کردن خط تیره بعد از شماره‌ها در متن
%\def\@seccntformat#1{\csname the#1\endcsname\@SepMark\quad}
% اضافه کردن خط تیره بعد از شماره‌ها در فهرست مطالب
\renewcommand{\cftsecaftersnum}{\@SepMark}
\renewcommand{\cftsubsecaftersnum}{\@SepMark}
\renewcommand{\cftsubsubsecaftersnum}{\@SepMark}
\makeatother
% زیاد کردن عمق شماره‌گذاری‌ها در متن و فهرست مطالب
\setcounter{secnumdepth}{4}
\setcounter{tocdepth}{4}
% زیاد کردن فاصله بین شماره‌ها و عنوان‌ها در فهرست مطالب
\setlength\cftchapnumwidth{5.2em}
\setlength\cftsecnumwidth{3.5em}
\setlength\cftsubsecnumwidth{4.5em}
\setlength\cftsubsubsecnumwidth{5.5em}
% زیاد کردن تورفتگی شماره‌ها و عنوان‌ها در فهرست مطالب
\setlength\cftsecindent{0em}
\setlength\cftsubsecindent{2.2em}
\setlength\cftsubsubsecindent{2.2em}
% زیاد کردن فاصله بین شماره‌ها و عنوان‌ها در لیست تصاویر و جدول ها
\makeatletter
\renewcommand*\l@figure{\@dottedtocline{1}{1.5em}{2.8em}}
\renewcommand*\l@table{\@dottedtocline{1}{1.5em}{2.8em}}
\makeatother

 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%دستوراتی برای وسط چین شدن عبارات فهرست مطالب، فهرست جداول، فهرست شکلها
\renewcommand{\contentsname}{\hfill فهرست مطالب \hfill\hfill}
\renewcommand{\listtablename}{\hfill فهرست جداول \hfill}
\renewcommand{\listfigurename}{\hfill فهرست تصاویر \hfill}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% تعیین اندازه عبارات "فهرست مطالب"، "فهرست تصاویر" و "فهرست جداول"
\renewcommand{\cfttoctitlefont}{\fontsize{15pt}{15pt}\selectfont\bfseries} %% فهرست مطالب
\renewcommand{\cftaftertoctitle}{}

 \renewcommand{\cftloftitlefont}{\fontsize{15pt}{15pt}\selectfont\bfseries} %% فهرست اشکال
\renewcommand{\cftafterloftitle}{}

 \renewcommand{\cftlottitlefont}{\fontsize{15pt}{15pt}\selectfont\bfseries} %% فهرست جداول
\renewcommand{\cftafterlottitle}{}
%فهرست الگوریتم ها
\renewcommand{\listalgorithmname}{\vspace{-2.7cm}\fontsize{15}{16}\selectfont\bfseries\centering فهرست الگوریتم‌ها}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% کوچک یا بزرگ کردن فاصله قبل یا بعد عبارات "فهرست مطالب"، "فهرست تصاویر" و "فهرست جداول"
%قبل
\setlength{\cftbeforetoctitleskip}{-.65cm} %% فهرست مطالب
\setlength{\cftbeforelottitleskip}{-.65cm} %% فهرست جداول
\setlength{\cftbeforeloftitleskip}{-.65cm} %% فهرست اشکال
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%بعد
%\setlength\cftaftertoctitleskip{10mm} %% فهرست مطالب
%\setlength\cftafterlottitleskip{10mm} %% فهرست جداول
%\setlength\cftafterloftitleskip{10mm} %% فهرست اشکال
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%کاهش فاصله بین مراجع در قسمت فهرست مراحع
\let\OLDthebibliography\thebibliography
\renewcommand\thebibliography[1]{
\OLDthebibliography{#1}
\setlength{\parskip}{0pt}
\setlength{\itemsep}{0pt plus 0.3ex}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% در قسمت ضمیمه استفاده می شود.
\let\oldaddcontentsline\addcontentsline
\newcommand{\hidefromtoc}{\renewcommand{\addcontentsline}[3]{}} % <- Stop writing content to ToC/LoF/LoT/LoA
\newcommand{\writetotoc}{\let\addcontentsline\oldaddcontentsline} % <-- Restore writing content to ToC/LoF/LoT/LoA}