\documentclass[10pt]{report}

%% برای تنظیم حاشیه صفحات
\usepackage[top=3cm, bottom=2.5cm, left=2cm, right=2.5cm]{geometry}


%% برای رنگی کردن متن و استفاده از رنگ در متن این دو بسته مورد نیاز است.
\usepackage[usenames,dvipsnames]{color}
\usepackage[usenames,dvipsnames]{xcolor}

\usepackage{verbatim}

%% بسته ای برای وارد کردن کدهای برنامه نویسی (MATLAB، JAVA و ...( در متن
%% بارگذاری بسته listings باید قبل از hyperref باشد و گرنه با خطا مواجه خواهیم شد
\usepackage{listings}

%%==================== تنظیمات listing

%%  در این قسمت تمام ابزارهای مورد نیاز در نوشتن برنامه ها اورده شده 
%%  است. با استفاده از این ابزارهای می‌توان برنامه های مورد نیاز را در مستند جای داد.
\definecolor{listinggray}{gray}{.98}
%% انتخاب رنگ پشت زمینه 
\lstset{% general command to set parameter(s)
% زبان برنامه نویسی که به طور پیش فرض انتخاب می شود.
language=TEX,
%%   با این دستور استایل keyword ها را مشخص می کنیم. مثلا در این حالت گفته ایم که keyword ها را با رنگ آبی مشخص کند، و آن ها را bold‌کند. دقت کنید که keyword های زبان‌هایی که این بسته پشتیبانی می‌کند، 
%% در این بسته تعریف شده است. مثلا در JAVA کلمه main به صورت پیش فرض تعریف شده است و در صورت وجود آن در کد شما آن را Latex آبی رنگ می‌کند. 
keywordstyle=\color{blue}\bfseries,
%% استایل String را در متن مشخص می کند. مثلا در این جا گفته شده است که رشته ها را با رنگ قرمز و به صورت ایتالیک نمایش بده.
stringstyle=\ttfamily\color{red}, % typewriter type for strings
%% نحوه استایل comment را مشخص می کند. دقت کنید که رنگ انتخاب شده نوعی رنگ سبز است، برای این که این رنگ شناخته شود می بایست دو بسته color و xcolor به صورتی که فراخوانی شده است، فراخوانی شود. 
commentstyle=\color{LimeGreen},
lineskip = .5pt,
%% توسط breakline می توانید خاصیت شکسته شدن خطوط بلند را در محیط listings فعال و یا غیرفعال کنید.
%% activates or deactivates automatic line breaking of long lines.
breaklines=true,
%% باعث می شود که فاصله های بین رشته های نمایان شود.
%% lets blank spaces in strings appear  or as blank spaces
showstringspaces=true} 

%% البته شما می توانید این موارد پیش فرض را به ازای هر کد تغییر دهید. به عنوان مثال، ما یک کد در پوشه Code در شاخه فعلی قرار دادیم، می خواهیم آن را وارد متن کنیم، کافی است که خطوط زیر را در محل مناسبی که می خواهیم کد را قرار دهیم وارد کنیم. در این مثال یک فایل کد JAVA به نام myCode.java را می خواهیم وارد کنیم. 
%%\begin{latin}
%%\lstinputlisting[breaklines=true,numbers=left,language=Java, basicstyle=\ttfamily, numberstyle=\footnotesize, numbersep=10pt, captionpos=b, frame=single, breakatwhitespace=false]{Code/myCode.java}
%%\end{latin}


%%%%%%%%%%%%%%%



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

\usepackage{hyperref}
%% در این قسمت تنظیمات بسته hyperref را قرار می دهیم.
%% این تنظیمات شامل موارد زیر است.
\hypersetup{
%% موقعی که فایل پی دی اف خروجی را باز می کنید صفحه به صورت عریض و بزرگ باز می شود.
pdfmenubar=false, pdfstartview=FitH, 
%% در قسمت مراجع شماره صفحه ای که به آن مرجع ارجاع داده است را وارد می کند،
%% مواردی که برای فعال سازی این که شماره اشکال را به صورت ارجاعی نشان دهد
%pagebackref =true,hyperfigures=true,
%% به جای استفاده از مربع قرمز دور موارد ارجاعی از لینک های رنگی استفاده کند.
colorlinks=true,
%% رنگ برخی از لینک ها در زیر تعریف شده است. 
linkcolor=blue, anchorcolor=green, citecolor=magenta, urlcolor=cyan, filecolor=magenta, pdftoolbar=true
}

%زی‌پرشین (به انگلیسی: XePersian) یک بسته حروف‌چینی رایگان و متن‌باز برای نگارش مستندات پارسی/انگلیسی با زی‌لاتک است.
% در واقع، زی‌پرشین، کمک می‌کند تا به آسانی، مستندات را به پارسی، حروف‌چینی کرد. این بسته را وفا خلیقی نوشته است،
% و به طور منظم، آن را بروز‌رسانی کرده و باگ‌های آن را رفع می‌کند.
% نکته مهم این جا است که بسته Xepersian برای پشتیبانی از زبان فارسی آورده شده است، و 
% می بایست آخرین بسته ای باشد که شما وارد می کنید، دقت کنید: آخرین بسته
\usepackage{xepersian}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%



%%  با دستور زیر می توانید فونتی مخصوص عبارات فارسی تعیین کنید:
\settextfont[Scale=1.2]{XB Niloofar}
%% شما با دستور زیر بعد از فراخوانی بسته xepersian می توانید فونت انگلیسی را تعیین کنید
%% دقت کنید که عبارات انگلیسی شما باید در دستور \lr{} قرار گیرد تا xepersian بتواند بفمهد که این عبارات انگلیسی است
\setlatintextfont[Scale=1]{Times New Roman}

% % تعریف برای فونت اعداد و ارقام
%\setdigitfont[Scale=1.1]{XB Zar}

%% توسط دستورات defpersianfont و deflatinfont به ترتیب می توان یکسری فونت فارسی و انگلیسی دیگر تعریف کرد که در جاهای دیگر متن بتوان از آن استفاده کرد. برای استفاده کافی است که عبارتی که می خواهیم فونت آن عوض شود را به صورت زیر به عنوان نمونه بنویسیم.
%% \versionfont{این یک مثال است. }


\defpersianfont\myFafont[Scale=.8]{XM Traffic}
\deflatinfont\myEnfont[Scale=.9]{Adobe Arabic}


%%  با استفاده از این دستور می‌توان فونت و فارسی و یا انگلیسی بودن اعداد در فرمول‌ها را به حالت اولیه (یعنی پیش‌فرض لاتک) برگرداند.
\DefaultMathsDigits



\begin{document}
%% تنظیم فاصله بین خطوط با دستور \baselineskip
\baselineskip = .95 cm

\chapter{فونت}
\section{اندازه فونت‌ها}
این قسمت نوشتار از  
\url{http://www.parsilatex.com/forum/SMF/index.php?topic=1349.0}
برگرفته شده است. 


در کل سه اندازه  استاندارد برای فن نوشتار‌های رسمی وجود دارد :
\begin{itemize}
\item
اندازه $10pt$ که اندازه کوچک نامیده شده (که فونت‌اندازه پیشفرض تک می‌باشد.)
\item
 اندازه $11pt$ که اندازه متوسط نامیده می‌شود. 
\item
 اندازه $12pt$ که اندازه بزرگ محصوب می‌شود.
\end{itemize}
اگر تاکنون با \lr{word} کار کرده اید، حتما فونت ها را با معیاری به نام اندازه می شناسید. این معیار اندازه با معیار اندازه بر حسب $pt$ متفاوت است. البته این تفاوت برای همه فونت ها یکسان نیست، لذا کار کمی پیچیده می شود. اما اگر در ادامه نیز همراهی کنید، فکر کنم به خوبی می توانید موضوع را متوجه شوید. 

اول باید دقت کنید که برای مثال فونتی مثل فونت \lr{B Nazanin} (و اکثر فونت‌های فارسی) از فونت‌هایی است که نسبت $10:12$ داره (البته همه این طور نیستند فونت \lr{XB Zar} نسبتش $10:10$ و فونت \lr{ Adobe Arabic} نسبتش $10:14$). 

نسبت $10:12$ یعنی اینکه اندازه $12$ این فونت معادل اندازه  $10pt$ استاندارد \lr{PostScript} می‌باشد، که در واقع کوچکترین سایز استاندارد نوشتارهای بلند رسمی است.

همان طور که گفته شد ما معمولا تا حالا (قبل از آمدن به دنیای لاتک) با فونت هایی سروکار داشتیم که نسبت $10:12$ دارند.  اکنون فرض کنید از شما خواسته شده است که متن خود را با فونت با اندازه ۱۴ بنویسید، ولی مشکل شما این است که نمی دانید که اندازه ۱۴ را چگونه برحسب $pt$ بیان کنید. در ادامه سعی می کنیم این مشکل را حل کنیم. 

در فونت‌های $10:12$ که ما معولا از آن استفاده می کنیم (یک نسبت تناسب ساده!):
\begin{itemize}
\item
اندازه ۱۲ همان $10pt$ است
\item
اندازه ۱۳ همان $11pt$ است  (در واقع  $13.2$ معادل $11pt$  است)
\item
اندازه ۱۴ همان $ 12pt$ است (در واقع  $ 14.4$ معادل $12pt$ است)
\end{itemize}
اگر می‌خواهید اندازه پایه‌ی نوشته‌های عادی 14 شود (یعنی متن عادی به اندازه 14 شود و اندازه نوشته‌ها به نسبت آن تغییر کنند) از آنجا که اندازه ۱4 همان 12pt است باید دو کار زیر را انجام دهیم:
\begin{description}
\item[عمل اول:]
 اگر دارید فایل استایل می نویسید، در دستور  \lr{loadClass} عدد  $12pt$ را بگذارید.
\begin{latin}
\begin{lstlisting}
 \LoadClass[12pt]{.....}
\end{lstlisting}
\end{latin}
و هم می توانید این مورد را در قسمت اختیاری \lr{documentclass} بنویسید. مانند:
\begin{latin}
\begin{lstlisting}
\documentclass[12pt]{......}
\end{lstlisting}
\end{latin}
با این کار شما اندازه فونت پایه را $12pt$ گذاشتید. 

\item[عمل دوم:]
به هنگام بارگزاری کردن فونت‌ها  (به بخش بعدی مراجعه کنید)، مثلا اگر فونت شما از نوع $10:12$ باید از پارامتر  $Scale=1.2$ در دستور انتخاب فونت استفاده کنید. معنای این حرف یعنی این که اندازه فونت من بر حسب $pt$ برابر با $1.2$ اندازه فونت پایه است. همان طور که در قسمت قبل دیدید ما مثلا اندازه فونت پایه را $12pt$ قرار دادیم، پس اندازه فونت ما می شود، $1.2\times 14.4 = 12$ . 
\end{description}
اکنون فرض کنید شما می خواهید فونتی را که اندازه اش در \lr{word} برابر با ۱۴ بوده را این جا مقداردهی کنید. فرض کنید این فونت، فونت \lr{B Nazanin} باشد. اولا این فونت از دسته فونت های $10:12$ است، و با یک نسبت و تناسب ساده، اندازه فونت ۱۴ آن برابر با $11.66$. پس اندازه فونتی که باید به لاتک بدهیم برابر با $11.66pt$  است. اکنون اگر فونت پایه شما مثلا $10pt$ باشد، آن گاه ضریب نسبت برابر با $1.166$ خواهد بود. اگر $12pt$ باشد، باز با یک نسبت تناسب ساده ضریب نسبت شما برابر با $.97$ خواهد بود. 

برای فهم بیشتر این مطلب، روند معکوس روند یاد شده را طی می کنیم. در مثال زیر سعی کنید اندازه فونت \lr{word}ی را حساب کنید:
\begin{latin}
\begin{lstlisting}
\documentclass[11pt]{report}

\settextfont[Scale=1.3]{B Nazanin}

\begin{document}
................................
................................
\end{document}

\end{lstlisting}
\end{latin} 
اولا ضریب تناسب برابر با $1.3$ است، و اندازه فونت پایه $11pt$ لذا اندازه فونت با بر حسب $pt$ برابر با $1.3\times 11 = 14.3pt$ خواهد بود. در ضمن این فونت از دسته فونت های $10:12$ است، لذا با یک نسبت تناسب ساده اندازه فونت برابر با:
\begin{equation}
\textbf{\lr{Font Size}}=\frac{12\times 14.3}{10}=17.16
\end{equation}


\section{فونت های با پشتیبانی فارسی و انگلیسی}


\section{تعریف فونت‌های پایه}
در \lr{xepersian} شما می توانید سه دسته فونت کلی تعریف کنید. این سه دسته عبارت اند از:
\begin{itemize}
\item
فونت مخصوص عبارات فارسی که با دستور \lr{settextfont} تعیین می شود، به عنوان مثال:
\begin{latin}
\begin{lstlisting}
\settextfont[Scale=1.3]{B Nazanin}
\end{lstlisting}
\end{latin} 
\item
فونت برای عبارات انگلیسی. اولا دقت کنید که برای این که \lr{xepersian} بتواند بفهمد که کلمه شما انگلیسی است، شما باید کلمه و یا عبارت خود را درون دستور \lr{lr} قرار دهید، مثلا:
\begin{verbatim}
 \lr{English Words}
\end{verbatim}
و توسط دستور \lr{setlatintextfont} نیز یک فونت انگلیسی تعریف کنید. مانند آن چه که در ادامه آمده است. 
\begin{latin}
\begin{lstlisting}
\setlatintextfont[Scale=1]{Times New Roman}
\end{lstlisting}
\end{latin} 
\item
در ضمن شما می توانید یک فونت هم برای اعداد و ارقام در فرمول های ریاضی تعریف کنید. به صورت زیر:
\begin{latin}
\begin{lstlisting}
\setdigitfont[Scale=1.1]{XB Zar}
\end{lstlisting}
\end{latin} 
در ضمن دقت کنید که به صورت پیش فرض اعداد و ارقام به صورت فارسی در فرمول ها در لاتک نوشته می شود، اگر بخواهد اعداد و ارقام به صورت انگلیسی در فرمول ها ظاهر شوند، کافی است دستور زیر را بنویسید:
\begin{latin}
\begin{lstlisting}
\DefaultMathsDigits
\end{lstlisting}
\end{latin} 
\end{itemize}


\section{فونت فارسی و انگلیسی}

 در نرم افزار \lr{word} وقتی شما از یک فونت به عنوان نمونه \lr{B Nazanin} استفاده می کنید، \lr{word} در هنگام مواجه با کلمات انگلیسی، این کلمات را به یک فونت پیش فرض تبدیل می کند.چرا که اغلب فونت هایی که ما با آن ها کار می کنیم، تنها می توانند زبان فارسی و یا انگلیسی را پشتیبانی کنند. مثلا \lr{B Nazanin} فقط برای پشتیبانی از زبان فارسی است و نه برای انگلیسی. اما در \lr{LATEX} این گونه نیست. برای حل این مشکل دو راه حل دارید:
\begin{enumerate}
\item
 از فونت های سری \lr{XB} مثل \lr{XB Niloofar} .و... استفاده کنید. برای این موضوع به قسمت قلم‌ها و حروف سایت پارسی لاتک مراجعه کنید در ضمن در مرکز دانلود سایت این فونت ها قرار داده شده است. فونت های سری \lr{XB}، \lr{XM}، \lr{XW} هم می توانند زبان فارسی را پشتیبانی کنند و هم زبان انگلیسی را.  در این صورت دیگر نیازی نیست که کلمات انگلیسی خود را درون دستور \lr{lr} قرار دهید. 
\item
 در کل اگر از فونت هایی مثل سری \lr{XB} که هم فارسی و هم انگلیسی را پشتیبانی می کنند استفاده نکنید، می بایست عبارات انگلیسی در متن فارسی را در داخل یک \lr{} قرار دهید تا فهمیده شود که این عبارت باید با فونت انگلیسی نوشته شود. 
\end{enumerate}
 در کل به نظر من راه حل دوم بهتر است. 


\subsection{فونت های دیگر}
توسط دستورات \lr{defpersianfont} و \lr{deflatinfont} به ترتیب می توان یکسری فونت فارسی و انگلیسی دیگر تعریف کرد که در جاهای دیگر متن بتوان از آن استفاده کرد. مثلا در ادامه ما دو فونت تعریف کرده ایم:
\begin{latin}
\begin{lstlisting}
\defpersianfont\myFafont[Scale=.8]{XM Traffic}
\deflatinfont\myEnfont[Scale=.9]{Adobe Arabic}
\end{lstlisting}
\end{latin} 
هرگاه خواستیم یک عبارت از متن ما به صورت فونت های یادشده نوشته شود کافی است به صورت زیر عمل کنیم:
\begin{verbatim}
\myFafont{.................}
\end{verbatim}
که به جای نقطه چین کافی است عبارتی را که می خواهیم به صورت آن فونت در آید را قرار دهیم. 



\end{document}
















