% define the document type...
\documentclass [
	a4paper, % type of the paper...
	12pt, % set the size of the main font in the document...
	oneside % sides of the paper...
] {report} % for longer reports containing several chapters, small books, thesis...

% this is for prime in mathematic formulas...
\newcommand* {\everymodeprime} {
	\ensuremath {\prime}
}

% this part is for code styling inside document...
\usepackage {fancyvrb}
\DefineVerbatimEnvironment {code} {Verbatim} {fontsize = \small}
\DefineVerbatimEnvironment {example} {Verbatim} {fontsize = \small}

% make the meta information for the pdf file...
\usepackage [
	pdfauthor = {Soroush Kazemi},
	pdftitle = {MSc Project Thesis},
	pdfsubject = {MSc Project Thesis},
	pdfkeywords = {MSc Project},
	breaklinks = true
] {hyperref}

% mathematic package...
\usepackage {amsmath}
\usepackage{sectsty}

% define color for table...
\usepackage [table] {xcolor}
\definecolor {gray} {rgb} {.4, .4, .4}

% to import images...
\usepackage {graphicx}

% \usepackage {etoolbox}

% make all the images centre in horizontal alignment...
\makeatletter
\g@addto@macro\@floatboxreset\centering
\makeatother

% package for changing headings style...
\usepackage {fancyhdr}

% setting the margins of page...
\usepackage [
	top = 3cm,
	right = 3cm,
	bottom = 2.5cm,
	left = 2.5cm
] {geometry}                 

% multiline comments...
\usepackage {comment}

% force figure placement in text...
\usepackage {float}

% add multi-row property to tables...
\usepackage {multirow}

% remove ugly borders around clickable hyperlinks...
\hypersetup {hidelinks}

% add references in table of contents...
\usepackage [
	nottoc,
	notlot,
	notlof
] {tocbibind}

% pushes the footnote to the bottom of the page...
\usepackage [bottom] {footmisc}

% بسته ای برای رنگی کردن لینک ها و فعال سازی لینک ها در یک نوشتار، بسته hyperref باید جزو آخرین بسته‌هایی باشد که فراخوانی می‌شود. 
\usepackage{hyperref}

% بسته‌ای برای وارد کردن واژه نامه در متن، این بسته باید بعد از hyperref حتما صدا زده شود. 
\usepackage[xindy,acronym,nonumberlist=true]{glossaries} 


% import the xepersian package...
\usepackage {xepersian}

% root directory for images...
\graphicspath {{images/}}

% make the normal pages header...
\pagestyle {fancy}
% page number at the left side of header...
\lhead {\thepage}
% chapter title at the right side of header...
\rhead {\leftmark}

% override the references section title name...
\renewcommand\bibname {فهرست مراجع}

% set the default font family and font size...
\settextfont [Scale = 1.1] {XB Niloofar}
\setdigitfont [Scale = 1.1] {XB Niloofar} 
\setlatintextfont [Scale = 1.05] {Times New Roman}
\sectionfont{\large}
 

% define line height...
\linespread {1.35}

\newglossarystyle{myFaToEn}{%
	\renewenvironment{theglossary}{}{}
	\renewcommand*{\glsgroupskip}{\vskip 10mm}
	\renewcommand*{\glsgroupheading}[1]{\subsection*{\glsgetgrouptitle{##1}}}
	\renewcommand*{\glossentry}[2]{\noindent\glsentryname{##1}\dotfill\space \glsentrytext{##1}
		
	}
}

%% % تعریف استایل برای واژه نامه انگلیسی به فارسی، در این استایل واژه‌های فارسی در سمت راست و واژه‌های انگلیسی در سمت چپ خواهند آمد. از حالت گروه ‌بندی استفاده می‌کنیم، 
%% % یعنی واژه‌ها در گروه‌هایی به ترتیب حروف الفبا مرتب می‌شوند، مثلا:
%% % E
%%% Economy ............................... اقتصاد
%% % F
%% % Failure................................... اشکال
%% %N
%% % Network ................................. شبکه

\newglossarystyle{myEntoFa}{%
	%%% این دستور در حقیقت عملیات گروه‌بندی را انجام می‌دهد. بدین صورت که واژه‌ها در بخش‌های جداگانه گروه‌بندی می‌شوند، 
	%%% عنوان بخش همان نام حرفی است که هر واژه در آن گروه با آن شروع شده است. 
	\renewenvironment{theglossary}{}{}
	\renewcommand*{\glsgroupskip}{\vskip 10mm}
	\renewcommand*{\glsgroupheading}[1]{\begin{LTR} \subsection*{\glsgetgrouptitle{##1}} \end{LTR}}
	%%% در این دستور نحوه نمایش واژه‌ها می‌آید. در این جا واژه فارسی در سمت راست و واژه انگلیسی در سمت چپ قرار داده شده است، و بین آن با نقطه پر می‌شود. 
	\renewcommand*{\glossentry}[2]{\noindent\glsentrytext{##1}\dotfill\space \glsentryname{##1}
		
	}
}

%%% تعیین استایل برای فهرست اختصارات
\newglossarystyle{myAbbrlist}{%
	%%% این دستور در حقیقت عملیات گروه‌بندی را انجام می‌دهد. بدین صورت که اختصارات‌ در بخش‌های جداگانه گروه‌بندی می‌شوند، 
	%%% عنوان بخش همان نام حرفی است که هر اختصار در آن گروه با آن شروع شده است. 
	\renewenvironment{theglossary}{}{}
	\renewcommand*{\glsgroupskip}{\vskip 10mm}
	\renewcommand*{\glsgroupheading}[1]{\begin{LTR} \subsection*{\glsgetgrouptitle{##1}} \end{LTR}}
	%%% در این دستور نحوه نمایش اختصارات می‌آید. در این جا حالت کوچک اختصار در سمت چپ و حالت بزرگ در سمت راست قرار داده شده است، و بین آن با نقطه پر می‌شود. 
	\renewcommand*{\glossentry}[2]{\noindent\glsentrytext{##1}\dotfill\space \Glsentrylong{##1}
		
	}
	%%% تغییر نام محیط abbreviation به فهرست اختصارات
	\renewcommand*{\acronymname}{\rl{فهرست اختصارات}}
}

%%% برای اجرا xindy بر روی فایل .tex و تولید واژه‌نامه‌ها و فهرست اختصارات و فهرست نمادها یکسری  فایل تعریف شده است.‌ Latex داده های مربوط به واژه نامه و .. را در این 
%%%  فایل‌ها نگهداری می‌کند. مهم‌ترین option‌ این قسمت این است که 
%%% عنوان واژه‌نامه‌ها و یا فهرست اختصارات و یا فهرست نمادها را می‌توانید در این‌جا مشخص کنید. 
%%% در این جا عباراتی مثل glg، gls، glo و ... پسوند فایل‌هایی است که برای xindy بکار می‌روند. 
\newglossary[glg]{english}{gls}{glo}{واژه‌نامه انگلیسی به فارسی}
\newglossary[blg]{persian}{bls}{blo}{واژه‌نامه فارسی به انگلیسی}
\makeglossaries
\glsdisablehyper
%%% تعاریف مربوط به تولید واژه نامه و فهرست اختصارات و فهرست نمادها
%%%  در این فایل یکسری دستورات عمومی برای وارد کردن واژه‌نامه آمده است.
%%%  به دلیل این‌که قرار است این دستورات پایه‌ای را بازنویسی کنیم در این‌جا تعریف می‌کنیم. 
\let\oldgls\gls
\let\oldglspl\glspl

\makeatletter

\renewrobustcmd*{\gls}{\@ifstar\@msgls\@mgls}
\newcommand*{\@mgls}[1] {\ifthenelse{\equal{\glsentrytype{#1}}{english}}{\oldgls{#1}\glsuseri{f-#1}}{\lr{\oldgls{#1}}}}
\newcommand*{\@msgls}[1]{\ifthenelse{\equal{\glsentrytype{#1}}{english}}{\glstext{#1}\glsuseri{f-#1}}{\lr{\glsentryname{#1}}}}

\renewrobustcmd*{\glspl}{\@ifstar\@msglspl\@mglspl}
\newcommand*{\@mglspl}[1] {\ifthenelse{\equal{\glsentrytype{#1}}{english}}{\oldglspl{#1}\glsuseri{f-#1}}{\oldglspl{#1}}}
\newcommand*{\@msglspl}[1]{\ifthenelse{\equal{\glsentrytype{#1}}{english}}{\glsplural{#1}\glsuseri{f-#1}}{\glsentryplural{#1}}}

\makeatother

\newcommand{\newword}[4]{
	\newglossaryentry{#1}     {type={english},name={\lr{#2}},plural={#4},text={#3},description={}}
	\newglossaryentry{f-#1} {type={persian},name={#3},text={\lr{#2}},description={}}
}

%%% بر طبق این دستور، در اولین باری که واژه مورد نظر از واژه‌نامه وارد شود، پاورقی زده می‌شود. 
\defglsentryfmt[english]{\glsgenentryfmt\ifglsused{\glslabel}{}{\LTRfootnote{\glsentryname{\glslabel}}}}

%%% بر طبق این دستور، در اولین باری که واژه مورد نظر از فهرست اختصارات وارد شود، پاورقی زده می‌شود. 
\defglsentryfmt[acronym]{\glsentryname{\glslabel}\ifglsused{\glslabel}{}{\LTRfootnote{\glsentrydesc{\glslabel}}}}


%%%%%% ============================================================================================================

%%============================ دستور برای قرار دادن فهرست اختصارات 
\newcommand{\printabbreviation}{
	\cleardoublepage
	\phantomsection
	\baselineskip=.75cm
	%% با این دستور عنوان فهرست اختصارات به فهرست مطالب اضافه می‌شود. 
	\addcontentsline{toc}{chapter}{فهرست اختصارات}
	\setglossarystyle{myAbbrlist}
	\begin{LTR}
		\Oldprintglossary[type=acronym]	
	\end{LTR}
	\clearpage
}%

\newcommand{\printacronyms}{\printabbreviation}
%%% در این جا محیط هر دو واژه نامه را باز تعریف کرده ایم، تا اولا مشکل قرار دادن صفحه اضافی را حل کنیم، ثانیا عنوان واژه نامه ها را با دستور addcontentlist وارد فهرست مطالب کرده ایم.
\let\Oldprintglossary\printglossary
\renewcommand{\printglossary}{
	\let\appendix\relax
	%% تنظیم کننده فاصله بین خطوط در این قسمت
	\clearpage
	\phantomsection
	%% این دستور موجب این می‌شود که واژه‌نامه‌ها در  حالت دو ستونی نوشته شود. 
	\twocolumn{}
	%% با این دستور عنوان واژه‌نامه به فهرست مطالب اضافه می‌شود. 
	%%\addcontentsline{toc}{chapter}{واژه نامه انگلیسی به فارسی}
	%%\setglossarystyle{myEntoFa}
	%%\Oldprintglossary[type=english]
	
	%%\clearpage
	%%\phantomsection
	%% با این دستور عنوان واژه‌نامه به فهرست مطالب اضافه می‌شود. 
	\addcontentsline{toc}{chapter}{واژه نامه}
	\setglossarystyle{myFaToEn}
	\Oldprintglossary[type=persian]
	\onecolumn{}
}%
%%%%%% ============================================================================================================
%%%%%% ============================================================================================================
%%% نحوه تعریف واژگان 

\newword{Logistics}{Logistics}{لجستیک}{لجستیک} 
\newword{Objective Fuzzy}{Objective Fuzzy}{هدف فازي}{هدف فازي}  
\newword{Action}{Action}{کنش}{کنش‌ها}
\newword{Optimization}{Optimization}{بهینه‌سازی}{بهینه‌سازی}
\newword{theory set Fuzzy}{theory set Fuzzy}{هدف}{هدف}
\newword{Theory}{Theory}{نظریه}{نظریه}
\newword{point Accessible}{point Accessible}{نقطه قابل دستیابی}{نقطه قابل دستیابی}
\newword{Normality}{Normality}{نرمال بودن}{نرمال بودن}
\newword{Max-Min}{Max-Min}{مینیمم-ماکزیمم}{مینیمم-ماکزیمم}
\newword{two valued logic}{two valued logic}{منطق دو ارزشی}{منطق دو ارزشی}
\newword{Multivalued logic}{Multivalued logic}{منطق چند ارزشی}{منطق چند ارزشی}
\newword{Logic Classic}{Logic Classic}{منطق کلاسیک}{منطق کلاسیک}
\newword{Source}{Source}{منابع}{منابع}
\newword{Fuzzy Logic}{Fuzzy Logic}{نظریه فازی}{نظریه فازی}
\newword{Criteria}{Criteria}{معیار}{معیار}
\newword{Utility}{Utility}{مطلوبیت}{مطلوبیت}
\newword{environment Fuzzy}{environment Fuzzy}{محیط فازي}{محیط فازي}
\newword{RelationShip Management}{RelationShip Management}{مدیریت روابط}{مدیریت روابط}
\newword{sustainable management}{sustainable management}{مدیریت پایدار}{مدیریت پایدار}
\newword{Green Supply Chain Management}{Green Supply Chain Management}{مدیریت زنجیره تامین سبز}{مدیریت زنجیره تامین سبز}
\newword{Sustainable Supply Chain Management}{Sustainable Supply Chain Management}{مدیریت زنجیره تأمین پایدار}{مدیریت زنجیره تأمین پایدار} 
\newword{Constraint}{Constraint}{محدودیت (قید)}{محدودیت (قید)}
\newword{set Fuzzy}{set Fuzzy}{مجموعه فازي}{مجموعه فازي}
\newword{Set}{Set}{مجموعه}{مجموعه}
\newword{variable Decision}{variable Decision}{متغیر تصمیم}{متغیر تصمیم}
\newword{variable Basic}{variable Basic}{متغیر اساسی}{متغیر اساسی}
\newword{Variable}{Variable}{متغیر}{متغیر}
\newword{Vagueness}{Vagueness}{مبهم}{مبهم}
\newword{alternatives Decision}{alternatives Decision}{گزینه هاي تصمیم}{گزینه هاي تصمیم}
\newword{Minimize}{Minimize}{کمینه کردن (مینیمم سازي)}{کمینه کردن (مینیمم سازي)}
\newword{Fuzziness}{Fuzziness}{فازي بودن}{فازي بودن}
\newword{Hamming cube}{Hamming cube}{فاصله همینگ}{فاصله همینگ}
\newword{fuzzy Flexible}{fuzzy Flexible}{فازي انعطاف پذیر}{فازي انعطاف پذیر}
\newword{Operator}{Operator}{عملگر}{عملگر}
\newword{Uncertainty}{Uncertainty}{عدم قطعیت}{عدم قطعیت}
\newword{number Fuzzy}{number Fuzzy}{عدد فازي}{عدد فازي}
\newword{Number}{Number}{عدد}{عدد}
\newword{Condition}{Condition}{شرایط}{شرایط}
\newword{Attribute}{Attribute}{شاخص}{شاخص}
\newword{Make}{Make}{ساخت}{ساخت}
\newword{Supply Chain}{Supply Chain}{زنجیره تأمین}{زنجیره تأمین}
\newword{Ranking}{Ranking}{رتبه بندي}{رتبه بندي}
\newword{relation Fuzzy}{relation Fuzzy}{رابطه فازي}{رابطه فازي}
\newword{solution Satisfying}{solution Satisfying}{جواب مطلوب (جواب رضایت بخش)}{جواب مطلوب (جواب رضایت بخش)}
\newword{solution Optimal}{solution Optimal}{جواب بهینه}{جواب بهینه}
\newword{Solution}{Solution}{جواب}{جواب}
\newword{Table}{Table}{جدول}{جدول}
\newword{Sustainable development}{Sustainable development}{توسعه پایدار}{توسعه پایدار}
\newword{Constant}{Constant}{ثابت}{ثابت}
\newword{Empty}{Empty}{تهی}{تهی}
\newword{Contradiction}{Contradiction}{تناقض}{تناقض}
\newword{Confluence}{Confluence}{تلاقی}{تلاقی}
\newword{Division}{Division}{تقسیم}{تقسیم}
\newword{Deliver}{Deliver}{تحویل}{تحویل}
\newword{Decision Maker (DM)}{Decision Maker (DM)}{تصمیم گیرنده}{تصمیم گیرنده}
\newword{Decision Fuzzy}{Decision Fuzzy}{تصمیم فازي، تابع دستیابی فازي}{تصمیم فازي، تابع دستیابی فازي}
\newword{Multiple Objective Decision Making (MODM)}{Multiple Objective Decision Making (MODM)}{تصمیم گیری چندهدفه}{تصمیم گیری چندهدفه}
\newword{Multiple Criteria Decision Making (MCDM)}{Multiple Criteria Decision Making (MCDM)}{تصمیم گیری چندمعیاره}{تصمیم گیری چندمعیاره}
\newword{Multiple Attribute Decision Making (MADM)}{Multiple Attribute Decision Making (MADM)}{تصمیم گیری چند شاخصه}{تصمیم گیری چند شاخصه}
\newword{Decision-making}{Decision-making}{تصمیم گیری}{تصمیم گیری}
\newword{Decision Optimal}{Decision Optimal}{تصمیم بهینه}{تصمیم بهینه}
\newword{research Operation}{research Operation}{تحقیق در عملیات}{تحقیق در عملیات}
\newword{function Objective}{function Objective}{تابع هدف}{تابع هدف}
\newword{function Characteristic}{function Characteristic}{تابع مشخصه}{تابع مشخصه}
\newword{function membership Triangular}{function membership Triangular}{تابع عضویت مثلثی}{تابع عضویت مثلثی}
\newword{function membership Trapezoid}{function membership Trapezoid}{تابع عضویت ذوزنقه اي}{تابع عضویت ذوزنقه اي}
\newword{function Membership}{function Membership}{تابع عضویت}{تابع عضویت}
\newword{function Ranking}{function Ranking}{تابع رتبه بندي}{تابع رتبه بندي}
\newword{Function}{Function}{تابع}{تابع}
\newword{supplier}{supplier}{تامین کننده}{تامین کننده}
\newword{Support}{Support}{پشتیبان (تکیه گاه)}{پشتیبان (تکیه گاه)}
\newword{Sustainability}{Sustainability}{پایداری}{پایداری}
\newword{Dissertation}{Dissertation}{پایان نامه}{پایان نامه}
\newword{Unbounded}{Unbounded}{بی کران (نامحدود)}{بی کران (نامحدود)}
\newword{Plan}{Plan}{برنامه}{برنامه}
\newword{Maximize}{Maximize}{بیشینه کردن (ماکزیمم سازي)}{بیشینه کردن (ماکزیمم سازي)}
\newword{Optimal}{Optimal}{بهینه}{بهینه}
\newword{Return}{Return}{بازگشت}{بازگشت}
\newword{programming Linear Fuzzy Symmetric}{programming Linear Fuzzy Symmetric}{برنامه ریزي خطی فازي متقارن}{برنامه ریزي خطی فازي متقارن}
\newword{(FFLP (Programming Linear Fuzzy Flexible}{(FFLP (Programming Linear Fuzzy Flexible}{برنامه ریزي خطی فازي انعطاف پذیر}{برنامه ریزي خطی فازي انعطاف پذیر}
\newword{Fuzzy Linear programming (FLP)}{Fuzzy Linear programming (FLP)}{برنامه ریزي خطی فازي}{برنامه ریزي خطی فازي}
\newword{(FNLP (Programming Linear Numbers Fuzzy}{(FNLP (Programming Linear Numbers Fuzzy}{برنامه ریزي خطی با اعداد فازي}{برنامه ریزي خطی با اعداد فازي}
\newword{Linear programming (LP)}{Linear programming (LP)}{برنامه ریزي خطی}{برنامه ریزي خطی}
\newword{programming Objective Multiple}{programming Objective Multiple}{برنامه ریزي چند هدفه}{برنامه ریزي چند هدفه}
\newword{Programming}{Programming}{برنامه ریزي}{برنامه ریزي}
\newword{Interval}{Interval}{بازه (فاصله)}{بازه (فاصله)}
\newword{priority Preemptive}{priority Preemptive}{اولویت از پیش تعیین شده}{اولویت از پیش تعیین شده}
\newword{Priority}{Priority}{اولویت}{اولویت}
\newword{Flexible}{Flexible}{انعطاف پذیر}{انعطاف پذیر}
\newword{Algorithm}{Algorithm}{روش}{روش}
\newword{Shared Value}{Shared Value}{ارزش مشترک}{ارزش مشترک}
\newword{Height}{Height}{ارتفاع}{ارتفاع}
\newword{Union}{Union}{اجتماع}{اجتماع}
\newword{Proof}{Proof}{اثبات}{اثبات} 
 

%%%%%% ============================================================================================================

%%% نحوه تعریف اختصارات 
\newacronym{SSCM}{SSCM}{Sustainable Supply Chain Management}
\newacronym{روابط}{روابط}{RELATIONSHIP MANAGEMENT}
\newacronym{دو ارزشی}{دو ارزشی}{two valued logic} 
\newacronym{چند ارزشی}{چند ارزشی}{Multivalued logic}  
\newacronym{نظریه فازی}{نظریه فازی}{Fuzzy Logic}   
\newacronym{ممداني}{ممداني}{Mamdani}   
\newacronym{DFT}{DFT}{Discrete Fourier Transform}

\newacronym{CDMA}{CDMA}{Code Division Multiplexing Access}

\newacronym{BAN}{BAN}{Body Area Network}  

\begin{document}
	% the cover page... 
	\newpage 
\pagenumbering{arabic}
\setcounter{page}{1}
برای وارد کردن یک واژه از دستور \lr{glspl} باید استفاده نمود. مثل واژه  \glspl{environment Fuzzy}اگر در فای آن نگاه کنید، مشاهده می‌کنید که برای وارد کردن واژه  \glspl{environment Fuzzy} از دستور \lr{glspl}  \lr{glspl} استفاده شده است. در ضمن  در اولین استفاده از این واژه، معادل انگلیسی آن نیز پاورقی خورده است.  و اکنون واژه \glspl{environment Fuzzy}  را تعریف می‌کنیم. 

از اختصارات، اختصارات \gls*{BAN} و \gls{CDMA} را وارد می‌کنیم. برای بار اول پاورقی می‌خورد. اما برای بار دوم پاورقی زده نمی‌شود. دقت کنید که کلمه اول یعنی چون از \lr{gls*} استفاده شده است، بار اول به حساب نمی آید. اکنون واژه \glspl{Logistics}  را تعریف می‌کنیم. 

 \glspl{Proof}
 
  \glspl{Algorithm}
  
   \glspl{Support} 
   
 \gls{Proof}
 
  \gls{Algorithm}
  
   \gls{Support} 
   
از اختصارات، اختصارات \gls*{Logistics} و \gls{CDMA} را وارد می‌کنیم. برای بار اول پاورقی می‌خورد. اما برای بار دوم پاورقی زده نمی‌شود. دقت کنید که کلمه اول یعنی چون از \lr{gls*} استفاده شده است، بار اول به حساب نمی آید. 

از اختصارات، اختصارات \gls{BAN} و \gls{environment Fuzzy} را وارد می‌کنیم. 
از اختصارات، اختصارات \gls{BAN} و \gls{CDMA} را وارد می‌کنیم. 
از اختصارات، اختصارات \gls{BAN} و \gls{CDMA} را وارد می‌کنیم. 
از اختصارات، اختصارات \gls{DFT} و \gls{DFT} را وارد می‌کنیم. 

تا واژه و یا اختصاری را در متن با دستورات \lr{gls}‌ و \lr{glspl} وارد نکنید، واژه نه در متن ظاهر شده و نه در واژه‌نامه‌ها وارد می‌شود. 

\glsuseri{environment Fuzzy}


\printglossary
\printabbreviation
	% begin the arabic page numbering from now on...
	\pagenumbering {arabic}
	
	% the report body...
	 
	 

\end{document}

