\documentclass{article}
\usepackage{geometry}
\geometry{top=3cm, bottom=3cm, left=2cm, right=3cm}
\usepackage[linktocpage=true,colorlinks,citecolor=blue]{hyperref}
\usepackage{verbatim,tikz,longtable,booktabs,enumitem}
     \usepackage{amsmath,amsfonts,amssymb}
       \usepackage[american]{circuitikz}
     \usetikzlibrary{calc,fit}
     \usepackage{pgfplots}
     \usetikzlibrary{arrows.meta}
\usepackage[extrafootnotefeatures,perpagefootnote=on]{xepersian}
\settextfont[Scale=1.3]{Yas}
\setdigitfont{Yas}
\setlatintextfont[Scale=1.3]{Times New Roman}
\SepMark{-}
\title{
\vspace{-2cm}
{\small به نام خدا\\}
\vspace{1cm}
\textcolor{blue}{\textbf{جزوه شخصی آموزش رسم در 
\LaTeX}}\\
{\normalsize\textbf{(بسته
		\lr{Tikz})}}\\
\vspace{0.5cm}
\textit{
بهروز آدینه\\
\vspace{1cm}
وبلاگ:
\url{www.behroozadineh.blog.ir}
}}
\begin{document}
		\maketitle
	\tableofcontents
	\baselineskip=0.7cm
	\pagebreak
	\section{مقدمه}
	
	مواردی که در اینجا اشاره شده است، تنها بخش کوچکی از کارهایی است که می‌توان با بسته 
	\lr{tikz}
	انجام داد. این جزوه بیشتر برای افراد مبتدی نوشته شده است و استفاده شخصی دارد. برای فهم بهتر، کامل‌تر و حرفه‌ای‌تر می‌توانید به پی‌دی‌اف 
	\lr{pgfmanual}
	مراجعه کنید که بیش از 1000 صفحه آموزش به همراه شکل دارد. با جستجوی همین کلیدواژه می‌توانید آن را دانلود کنید. 
	
	\section{بسته‌های مورد نیاز}
	\subsection{Tikz}
	اصلی‌ترین بسته برای رسم است که به صورت 
	\verb|\usepackage{tikz}|
	فراخوانی می‌شود. 
	\subsection{محیط‌های ریاضی}
	از آنجایی که در اکثر (نه همه!) رسم‌ها از عبارات ریاضی استفاده می‌شود بهتر است ابتدا سه بسته اصلی را فراخوانی کنید. 
	\begin{latin}
		\begin{verbatim}
		     \usepackage{amsmath,amsfonts,amssymb}
		\end{verbatim}
	\end{latin}
\subsection{فلش‌ها}
برای رسم فلش‌ها%
\LTRfootnote{arrows}%
محیط مخصوص آن‌ها به صورت 
\verb|\usetikzlibrary{arrows.meta}|
فراخوانی می‌شود. این دستور حتما باید بعد از فراخوانی بسته 
\lr{tikz}
آورده شود، چون یکی از کتابخانه‌های آن می‌باشد. 
\subsection{رسم‌های فارسی}
برای اینکه بتوانید فارسی بنویسید بهتر است محیط‌های زیر را قبل از دستور 
\verb|\begin{document}|
بیاورید. 
\begin{latin}
	\begin{verbatim}
	\usepackage[extrafootnotefeatures,perpagefootnote=on,%
	mathfontsizescale=0.8,fontsize=14]{xepersian}
	\settextfont{IRXLotus}
	\setdigitfont{IRXLotus}
	\setlatintextfont[Scale=0.8]{Times New Roman}
	\end{verbatim}
\end{latin}
تغییرات لازم را با توجه به نیازهای خودتان می‌توانید در دستورات بالا انجام دهید. 
	\section{محیط کلی برای شکل کشیدن}
	ساده‌ترین محیط برای رسم در لاتک به صورت زیر است:
	
	\begin{latin}
		\begin{verbatim}
		\begin{tikzpicture}
		
		\end{tikzpicture}
		\end{verbatim}
	\end{latin}
البته من معمولا ترجیح می‌دهم که به صورت زیر استفاده کنم:
\begin{latin}
	\begin{verbatim}
	\scalebox{.8}{	\boldmath{
\begin{tikzpicture}

\end{tikzpicture}}}
	\end{verbatim}
\end{latin}
با این‌کار هم اندازه کل شکل رسم شده را می‌توان در 
\verb|\scalebox{}{}|
تغییر داد و هم عبارات ریاضی به صورت بلد%
\LTRfootnote{Bold}%
خواهند بود و خوانایی بهتری خواهند داشت. 

دقت کنید که در انتهای دستورات داخل محیط 
\lr{tikzpicture}
حتما باید از سیم‌کالن (;) استفاده شود. در غیر این صورت، لاتک خطا خواهد گرفت. 
\section{شکل‌های خاص}
\subsection{خط}

برای رسم خط راست تنها لازم است که از دستور 
\lr{draw}
استفاده کنید و ابتدا و انتهای خط را مشخص کنید. 
\begin{latin}
	\begin{verbatim}
	\draw (0,0) -- (1,1);
	\end{verbatim}
\end{latin}

علامت 
\lr{- -}
مشخص می‌کند که شما می‌خواهید بین دو نقطه مورد نظر یک خط راست رسم شود. اگر می‌خواهید از ادامه همین خط، خطی دیگر رسم کنیم، تنها لازم است که نقطه سوم را به آن اضافه کنید و اگر خطوط پشت سر هم زیادی دارید، همین کار را برای آن‌ها انجام دهید. به مثال زیر توجه کنید:
\begin{latin}
	\begin{verbatim}
	\draw (0,0) - - (3,3) - - (5,3) -- (5,5); 
	\end{verbatim}
\end{latin}
در این مثال چهارنقطه با خط بهم وصل می‌شوند. 

\subsubsection{انحنا دادن به خط}

برای اینکه یک خط با زاویه دلخواه ما انحنا بگیرد، تنها لازم است که به صورت زیر عمل کنیم. با تغییر عدد 45 می‌توان مقدار انحنا را تغییر داد. همچنین اگر بخواهیم انحنا به سمت راست باشد می‌توان کلمه 
\lr{left}
را به 
\lr{right}
تغییر داد. 
\begin{latin}
	\begin{verbatim*}
		\draw (0,0) to [bend right=45] (4,4);
	\end{verbatim*}
\end{latin}

\subsection{دایره}

برای رسم دایره می‌توان به صورت زیر عمل کرد:
\begin{latin}
	\begin{verbatim}
	\draw (0,0) circle (3cm);
	\end{verbatim}
\end{latin}
مرکز دایره در
$ (0,0) $
و شعاع آن در 
$ (3cm) $
مشخص می‌شود. با این دستور، دایره‌ای به شعاع 3 سانتی‌متر به مرکز 
$ (0,0) $
رسم می‌شود. واحد شعاع را می‌توان میلی‌متر (\lr{mm}) نیز انتخاب نمود. 

دقت کنید که اگر برای شعاع واحدی نگذارید، خود لاتک به صورت پیش‌فرض سانتی‌متر در نظر می‌گیرد. 

\subsection{چهارضلعی}

برای رسم چهارضلعی به صورت زیر عمل می‌کنیم:
\begin{latin}
	\begin{verbatim}
	\draw (0,0) rectangle (3,2);
	\end{verbatim}
\end{latin}
در این حالت شما نقطه ابتدای چهارضلعی، یعنی گوشه سمت چپ آن (در این مثال
$ (0,0) $)
و نقطه انتهایی، گوشه سمت راست بالای آن (در این مثال 
$ (3,2) $)
را تعیین می‌کنید و یک چهارضلعی رسم می‌کنید. اگر طول و عرض شما برابر باشد یک مریع و در غیر این صورت یک مستطیل خواهید داشت. 

\subsubsection{گوشه‌های گرد}
برای اینکه گوشه‌های مستطیل (یا مربع) گرد باشد، می‌توان در آپشن دستور 
\lr{draw}
از دستور 
\lr{rounded corners}
را استفاده نمود. 
\begin{latin}
	\begin{verbatim}
	\draw[rounded corners] (0,0) rectangle (3,2);
	\end{verbatim}
\end{latin}

\subsection{بیضی}

با دستور زیر می‌توانید یک بیضی رسم کنید. 

\begin{latin}
	\begin{verbatim}
\draw (0,0) ellipse (2 and 1);
	\end{verbatim}
\end{latin}
در این دستور ابتدای مرکز بیضی، در اینجا 
$ (0,0) $،
و سپس به ترتیب شعاع بزرگتر و کوچکتر، در اینجا به ترتیب 
$ 2 $
و
$ 1 $،
مشخص شده است. 

\section{فلش‌ها}

برای رسم فلش‌ها باز هم از دستور 
\lr{draw}
استفاده می‌کنیم. 
 \begin{latin}
 	\begin{verbatim}
\draw[->] (0,0) -- (1,1);
 	\end{verbatim}
 \end{latin}

در این مثال می‌خواهم بین دو نقطه مورد نظر فلش رسم شود. 
\lr{->}
نشان می‌دهد که می‌خواهم پیکان فلش در انتهای آن و جهتش به سمت بیرون باشد. در صورت تغییر محل و جهت فلش در 
\lr{->}،
محل و جهت پیکان فلش نیز تغییر می‌کند. در این حالت نیازی به فراخوانی بسته ذکر شده نیست. 

\subsection{پیکان فلش}
در این مرحله می‌خواهیم فلش‌هایی با پیکان‌های زیباتر رسم کنید. دقت شود که برای رسم صحیح فلش‌ها، بسته مربوط به آن‌ها،
یعنی 
\lr{arrows.meta}،
حتما باید به شکلی که قبلا گفته شد فراخوانی شود. برای نوع پیکان فلش 
\lr{-Stealth}
را انتخاب کرده‌ام. 
\begin{latin}
	\begin{verbatim}
	\draw[-Stealth] (0,0) -- (1,1);
	\end{verbatim}
\end{latin}

با تغییر محل 
\lr{-}
می‌توان محل قرارگیری پیکان را تغییر داد. همچنین، انواع مختلفی برای پیکان‌های فلش وجود دارد که می‌توانید در اینترنت جستجو کنید. مانند؛
\lr{stealth}،
\lr{Latex}.

\subsubsection{رنگ پیکان}

می‌توان رنگ پیکان (جدا از رنگ خطی که فلش با آن رسم می‌شود) را به دلخواه انتخاب نمود.
\begin{latin}
	\begin{verbatim}
	\draw[-{Latex[red]}] (0,0) -- (1,1);
	\end{verbatim}
\end{latin}
به نحوه نوشتن دستور خوب توجه کنید. حتما باید نوع پیکان در داخل 
\lr{{}}
قرار گیرد تا بتوان از آپشن‌های آن مثل رنگ استفاده نمود. با این دستور، نوک فلش یا همان پیکان آن قرمز خواهد شد. 
\subsubsection{طول و عرض پیکان}

به همان روش قبلی و با آپشن 
\lr{length}
در نوع پیکان، می‌توان طول و عرض پیکان را تغییر داد. 

\begin{latin}
	\begin{verbatim}
	\draw[-{Latex[red,length=4mm,width=5mm]}] (0,0) -- (1,1);
	\end{verbatim}
\end{latin}

در مثال بالا، علاوه بر رنگ پیکان، طول و عرض آن به ترتیب 4 و 5 میلی‌متر (بزرگ‌تر از اندازه نرمال که حدود 3 میلی‌متر است) قرار داده شده است. واحدهای اندازه را علاوه بر میلی‌متر می‌توان 
\lr{cm}
و
\lr{pt}
قرار داد. 
\section{آپشن‌های دستور
\lr{draw}}
\subsection{اندازه خطوط}
در دستور 
\verb|\draw|
می‌توان از آپشن‌های آن استفاده نمود و اندازه خطوط رسم شده را تغییر داد. مثلا به صورت زیر:
\begin{latin}
	\begin{verbatim}
	\draw[very thick]
	\end{verbatim}
\end{latin}

در این حالت اندازه خطوط رسم شده خیلی ضخیم در نظر گرفته می‌شود. حالت‌های 
\lr{thick}،
\lr{thin}
و
\lr{very thin}
هم قابل استفاده هستند. علاوه بر این اگر بخواهیم ضخامت را خودمان تعیین کنیم، دو راه داریم. اول اینکه، می‌توانیم بعد از فراخوانی بسته 
\lr{tikz}
و قبل از محیط 
\lr{docuemnt}
به صورت زیر عمل کنیم:
\begin{latin}
	\begin{verbatim}
	 \tikzset{
	ultra thick/.style= {line width=3pt}
	}
	\end{verbatim}
\end{latin}
با این تعریف از این به بعد می‌توانیم از آپشن 
\lr{ultra thick}
هم در دستور 
\lr{draw}
استفاده کنیم. 

راه دیگر این است که در خود دستور 
\lr{draw}
ضخامت خط را به صورت زیر تعریف کنیم:
\begin{latin}
	\begin{verbatim}
		\draw[line width=3pt]
	\end{verbatim}
\end{latin}
دقت شود که ضخامت خط برای آپشن 
\lr{very thick}
مقدار 
$ 2pt $
است. 
\subsection{خط‌چین و نقطه‌چین کردن خطوط}

اگر بخواهیم خطوط رسم شده به ترتیب به صورت خط‌چین یا نقطه‌چین باشند، تنها لازم است که در دستور 
\lr{draw}
از گزینه‌های 
\lr{dashed}
یا
\lr{dotted}
 استفاده کنیم. 
 
 \begin{latin}
 	\begin{verbatim}
 	\draw[dashed] (0,0) rectangle (3,2);
 	\end{verbatim}
 \end{latin}

در مثال بالا یک مستطیل به گونه‌ای رسم شده است که اضلاع آن خط‌چین باشند. 

\subsection{پر کردن (رنگی کردن)}

وقتی می‌خواهید داخل یک شکل را رنگ خاصی بزنید، می‌توانید از آپشن 
\lr{fill}
استفاده کنید. 
\begin{latin}
	\begin{verbatim}
			\draw[line width=3pt,fill=blue!50!red] (0,0) circle (3cm);
	\end{verbatim}
\end{latin}
در بالا یک دایره به شعاع 3 سانتی‌متر و مرکز 
$ (0,0) $
رسم می‌شود که ضخامت خط آن 
$ 3pt $
و داخل آن به رنگ ترکیب 50 درصد آبی و 50 درصد قرمز (بنفش) است. 
\subsection{اضافه کردن متن}
راه‌های زیادی برای نوشتن متن در شکل‌ها وجود دارد. یکی از راه‌ها اضافه کردنه دستور 
\lr{node}
به خود دستور 
\lr{draw}
است. 
\begin{latin}
	\begin{verbatim}
\draw[very thick] (0,0) circle (3cm) node [xshift=-1cm, yshift=1cm] {Primary};
	\end{verbatim}
\end{latin}
در بالا من دستور مورد نظر را به انتهای دستور قبلی اضافه کردم. با تغییر مقدار 
\lr{xshift}
و 
\lr{yshift}
می‌توان محل قرارگیری متن را تغییر داد. همان‌طور که از نام آن‌ها مشخص است، 
\lr{xshift}
برای تغییر محل در راستای محور 
$ x $
(افقی) و 
\lr{yshift}
برای تغییر محل نوشته در راستای محور 
$ y $
(عمودی) است. متن مورد نظر هم (چه فارسی و چه انگلیسی) در داخل 
\{\}
نوشته می‌شود. 

روش دیگر برای تعیین محل قرار گیری متن استفاده از دستورات 
\lr{align}
و 
\lr{pos}
است. گزینه‌هایی که می‌توانید در مقابل 
\lr{align}
استفاده کنید شامل 
\lr{center}،
\lr{above}
و 
\lr{below}
است. در روبروی دستور 
\lr{pos}
می‌توان محل%
\LTRfootnote{position}%
قرارگیری متن از مرکز (مثلا دایره یا مستطیل) را با عدد مشخص کرد. به مثال زیر توجه کنید:

\begin{latin}
	\begin{verbatim}
\draw (5,7) rectangle (9,8) node[align=center,pos=0.5]{Distributed Control};
	\end{verbatim}
\end{latin}
در دستور بالا می‌خواهم متن دقیقا در وسط مستطیل رسم شده قرار بگیرد. 

یک راه دیگر برای تعیین محل قرارگیری متن استفاده از 
\lr{anchor}
است. با قرار دادن جهت مورد نظر، مثلا
\lr{east}, \lr{north east}
و غیره می‌توانید محل قرارگیری متن نسبت به شکل خود را مشخص کنید. دقت کنید که این کار مشابه این است که شما از دستوراتی مثل 
\lr{right}, \lr{left}, \lr{below}
و غیره استفاده کنید. به مثال زیر توجه کنید:
\begin{latin}
	\begin{verbatim}
\draw[-Latex] (0,0) -- (3,0)  node[anchor=west] {behrooz};
\draw[-Latex] (0,1) -- (3,1)  node[right] {behrooz adineh};
	\end{verbatim}
\end{latin}

دو دستور بالا دقیقا یکی هستند. در هر دو دستور متن نوشته شده جلوی فلش قرار خواهد گرفت. 

\subsubsection{رنگ متن}
در همان دستور قبلی می‌توانید با اضافه کردن دستور 
\lr{color}
رنگ متن را تغییر دهید. 
\begin{latin}
	\begin{verbatim}
	\draw[very thick] (0,0) circle (3cm) node [xshift=-1cm, yshift=1cm,color=red] {Primary};
	\end{verbatim}
\end{latin}
\subsubsection{اندازه متن}
با اضافه کردن دستور 
\lr{scale}
به صورت زیر می‌توانید اندازه متن را تغییر دهید. 
\begin{latin}
	\begin{verbatim}
	\draw[very thick] (0,0) circle (3cm) node [xshift=-1cm, yshift=1cm,scale=3] {Primary};
	\end{verbatim}
\end{latin}

\subsubsection{چرخاندن متن}

برای چرخاندن متن از دستور 
\lr{rotate}
استفاده می‌شود. در مقابل این دستور هر چند درجه که بخواهیم متن بچرخد را درج می‌کنیم.

\begin{latin}
	\begin{verbatim}
	\draw[very thick] (0,0) circle (3cm) node [xshift=-1cm, yshift=1cm,rotate=90] {Primary};
	\end{verbatim}
\end{latin}

\subsubsection{بولد یا ایتالیک کردن متن}

برای اینکه متنی که با دستور 
\lr{node}
نوشته شده است را بتوان ایتالیک یا بولد کرد، می‌توان از آپشن 
\lr{font}
بهره جست. به این صورت که برای ایتالیک و بولد کردن متن در جلوی این دستور به ترتیب از 
\verb|\itshape|
و
\verb|\bfseries|
استفاده نمود. 

\begin{latin}
	\begin{verbatim}
\draw (0,0) node [font=\itshape] {Italic} rectangle (3, 2)  node [font=\bfseries] {Bold};
	\end{verbatim}
\end{latin}

در مثال بالا، یک مستطیل رسم شده است که برروی راس پایینی آن کلمه‌ای به صورت ایتالیک و روی راس بالایی آن کلمه‌ای به صورت بولد نوشته شده است. علاوه بر موارد ذکر شده، می‌توانید اندازه فونت را نیز با دستوراتی مثل، 
\verb|\small|،
\verb|HUGE|
و غیره تغییر دهید. 

\subsubsection{شکستن متن}

اگر می‌خواهید متنی را در دو یا چند خط بنویسید، ابتدا باید 
\lr{textwidth}
را مشخص کنید و سپس با 
\verb|\\|
آن را بشکنید. 

\begin{latin}
	\begin{verbatim}
	\draw (0,0) rectangle (3,2) node [pos=0.6,text width=3cm] {salam \\va\\aleyk};
	\end{verbatim}
\end{latin}

در مثال بالا، سه کلمه 
\lr{salam}،
\lr{va}
و
\lr{aleyk}
زیر هم و در سه خط و در داخل یک مستطیل نوشته شده‌اند. با تغییر مقدار 
\lr{textwidth}
می‌توانید عرض نوشته را تغییر دهید. 

\subsubsection{نحوه قرار گرفتن متن‌ها زیر هم}

برای اینکه بتوانید چینش متن‌ها زیر هم را تغییر دهید باید از آپشن 
\lr{align}
در دستور  
\lr{node}
استفاده کنید. 

\begin{latin}
	\begin{verbatim}
	\draw (0,0) rectangle (3,2) node [pos=0.6,text width=3cm,align=center] {salam \\va\\aleyk};
	\end{verbatim}
\end{latin}

در دستور بالا نوشته‌ها در وسط و زیر هم قرار می‌گیرند. دیگر گزینه‌هایی که می‌توانید استفاده کنید، 
\lr{left}
و 
\lr{right}
هستند. 
\section{دستور 
\lr{node}}
از این دستور برای نوشتن یک متن یا کشیدن نقاط استفاده می‌شود. ساده‌ترین راه استفاده از آن برای نوشتن یک متن در جایی خاص به صورت زیر است:

\begin{latin}
	\begin{verbatim}
  		\node at (0,2)  (a) {Second}; 
	\end{verbatim}
\end{latin}
با این دستور من در محل 
$ (0,2) $
کلمه 
\lr{Second}
را نوشته‌ام و نام آن محل را 
\lr{a}
قرار داده‌ام. دقت کنید که این ساده‌ترین حالت است و اگر هرکدام از موارد بالا حذف شود، دستور کار نمی‌کند. 

\subsection{رسم شکل با دستور 
\lr{node}}

گاهی برای راحتی کار می‌توان از دستور 
\lr{node}
برای رسم شکل و نوشته داخل آن استفاده نمود. 

\begin{latin}
	\begin{verbatim}
	\node (a) at (0,0) [shape=circle,draw] {Beh};
	\end{verbatim}
\end{latin}

در دستور بالا من یک نقطه%
\LTRfootnote{node}
در محل 
$ (0,0) $
در نظر می‌گیرم و اسم آن را 
\lr{a}
می‌گذارم. دقت کنید که نام‌گذاری نقطه‌ها ضروری است. سپس می‌خواهم در همین نقطه و به مرکز آن یک دایره رسم کنم که در داخل آن کلمه 
\lr{Beh}
را نوشته باشد. با استفاده از دستورات 
\lr{shape=circle,draw}
یک دایره به شعاعی که کلمه مورد نظر در آن قرار گیرد رسم می‌شود. اگر کلمه را بلندتر یا کوتاه‌تر انتخاب کنید، شعاع دایره خود به خود تغییر می‌کند تا آن کلمه کاملا در دایره قرار بگیرد. 
\section{رسم دیاگرام}


\section{سایه‌ زدن}

یکی از کارهایی که باعث زیبایی شکل‌ها می‌شود، سایه زدن%
\LTRfootnote{shading}%
 و یا پراکندگی رنگ‌ها در آن‌ها است. این کار با دستور 
\lr{shade}
یا 
\lr{shadedraw}
امکان‌پذیر است. (بخش 
2-14
 در پی‌دی‌اف 
\lr{pgfmanual}
مثال‌های قشنگی دارد.)

\begin{latin}
	\begin{verbatim}
	\shadedraw[left color=gray,right color=green, draw=green!50!black,rounded corners]
	(0,0) rectangle(3,2);
	\end{verbatim}
\end{latin}



\section{برخی نکات جالب و کمی حرفه‌ای‌تر}
\subsection{رنگ کردن بخش مشترک دو شکل خصوصا دایره}

برای اینکه بتوان بخش مشترک دو شکل (خصوصا دایره) را رنگی متفاوت از دو دایره زد، می‌توان از دستور 
\lr{clip}
استفاده نمود. فرض کنید دو دایره داریم، یکی قرمز و دیگری آبی و می‌خواهیم بخش مشترک آن‌ها به رنگ زرد باشد. ابتدا دو دایره را با خصوصیات مد نظر رسم می‌کنیم. سپس دستورات مربوط به بخش میانی (مشترک) دو دایره را در محیط 
\lr{scope}
به صورت زیر می‌نویسیم. 
\begin{latin}
	\begin{verbatim}
		\draw[fill=red] (0,0) circle (2cm) ;
\draw[fill=blue] (2,0) circle (2cm) ;
\begin{scope} 
\clip (0,0) circle (2cm);
\fill[yellow] (2,0) circle (2cm);
\end{scope}
	\end{verbatim}
\end{latin}
در این مثال ابتدا با دستور 
\lr{clip}
دایره اول رسم شده است و سپس دایره دوم با رنگ زرد پر شده است. با این دستورات، شما دو دایره به رنگ‌های قرمز و آبی دارید که قسمت مشترک آن‌ها به رنگ زرد است. 

جالب‌تر اینکه اگر دو خط اول دستورات بالا را حذف کنید، فقط بخش مشترک دو دایره و به رنگ زرد وجود خواهد داشت. 

\subsection{قرار دادن درست شکل‌های رسم شده در جدول}

قبلا گفته شده بود که با دستور 
\verb|	\renewcommand*{\arraystretch}{1.6}|
می‌توان فاصله نوشته‌های جدول از خط بالایی آن را تنظیم نمود. اما وقتی از محیط 
\verb|tikzpicture|
در یک خانه جدول استفاده می‌کنیم باز هم همین مشکل وجود دارد. برای حل آن می‌توان دستور زیر را بعد از 
\verb|begin{document}|
تعریف نمود. دقت کنید که باید کتابخانه 
\verb|\usetikzlibrary{fit}|
فراخوانی شود. 
\begin{latin}
	\begin{verbatim}
	\newcommand\addvmargin[1]{%
	\node[fit=(current bounding box),inner ysep=#1,inner xsep=0]{};
	}
	\end{verbatim}
\end{latin}

حال برای اینکه شکل‌ها به درستی قرار گیرند، باید محیط 
\lr{tikz}
به صورت زیر استفاده شود:
\begin{latin}
	\begin{verbatim}
	\begin{tikzpicture}[baseline=0]

	\addvmargin{1mm}
	\end{tikzpicture} 
	\end{verbatim}
\end{latin}

حال می‌توان هر شکل دلخواه را در خانه‌های جدول رسم نمود. 
\section{رسم شکل‌های مربوط به رشته برق}

برای اینکه بتوانید شکل‌هایی مثل؛ منبع ولتاژ و جریان، سلف، خازن، مقاومت و دیگر ادوات الکترونیکی را رسم کنید، ابتدا باید بسته‌های مربوط به آن‌ها را فراخوانی کنید. ابتدا بسته 
\lr{circuitikz}
را فراخوانی کنید. بهتر است آپشن 
\lr{american}
آن را نیز استفاده کنید تا تمام نمادها براساس استانداردهای آمریکا باشد. با فراخوانی بسته بصورت 
\verb|\usepackage[american]{circuittikz}|
می‌توانید بیشتر شکل‌های مربوط به الکترونیک را رسم کنید. اما برای اینکه به صورت حرفه‌ای‌تر بتوانید از ادوات مختلف مثل وسائل سوئیچینگ مختلف بهره ببرید، توصیه می‌کنم که حتما پی‌دی‌اف 
\lr{circuitikzmanual}
را دانلود کنید تا با دستورات اولیه شکل‌ها آشنا شوید. 

در مثال زیر یک مقاومت با مقدار 1 اهم رسم شده است. 
\begin{latin}
	\begin{verbatim}
			\draw(0,0)to[R,l=$1$]  (2,0) ;
	\end{verbatim}
\end{latin}

با استفاده از این دستور در محیط 
\lr{tikzpicture}
براحتی یک مقاومت خواهید داشت. اما راه دیگر این است که به جای محیط 
\lr{tikzpicture}
از محیط 
\lr{circuitikz}
به صورت زیر استفاده کنید که باز هم همان خروجی را خواهد داشت. 

\begin{latin}
	\begin{verbatim}
\begin{circuitikz}
\draw(0,0)to[R,l=$1$]  (2,0) ;
\end{circuitikz}
	\end{verbatim}
\end{latin}

\subsection{برخی نمادهای پرکاربرد}
\newcommand\addvmargin[1]{%
	\node[fit=(current bounding box),inner ysep=#1,inner xsep=0]{};
}

در اینجا برخی شکل‌هایی که کاربرد بیشتری دارند و تابحال از آن‌ها استفاده کرد‌ه‌ام را در جدول 
\ref{t}
رسم می‌کنم. برای اطلاعات دقیق‌تر و بیشتر به پی‌دی‌اف 
\lr{circuitikzmanual}
مراجعه کنید. 
\begin{center}	
	\renewcommand*{\arraystretch}{1.6}
	\begin{longtable}[H]{|c|c|c|}
		\caption{نمادهای پر کاربرد}
		\label{t}\\	
		\hline
	1 &	شکل & توضیحات \\
		\hline
		2& 
		\begin{tikzpicture}[baseline=0]
		\draw   (0,0) to [L, a=$ L $] (2,0);
		        \addvmargin{1mm}
		\end{tikzpicture} & 
		سلفی که مقدار آن در زیر آن نوشته شده است. \\
		\hline
		3 &
		\begin{tikzpicture}[baseline=0]
		\draw   (0,0) to [L,l=$ L $] (2,0);
		\addvmargin{1mm}
		\end{tikzpicture} & 
		سلفی که مقدار آن در بالای آن نوشته شده است. \\
		\hline
		4 &
		\begin{tikzpicture}[baseline=0]
		\draw   (0,0) to [C,l=$ 1 \mu \text{F}$] (2,0);
		\addvmargin{1mm}
		\end{tikzpicture} & 
		خازن معمولی با نوشتن مقدارش در بالای شکل رسم شده است.  \\
		\hline
		5 &
		\begin{tikzpicture}[baseline=0]
		\draw   (0,0) to [pC,a=$ 1 \mu \text{F}$] (2,0);
		\addvmargin{1mm}
		\end{tikzpicture} & 
		خازن قطبی با نوشتن مقدارش در پایین شکل رسم شده است.  \\
		\hline
			6 &
		\begin{tikzpicture}[baseline=0]
		\draw   (2,0) to [pC,l=$ 1 \mu \text{F}$] (0,0);
		\addvmargin{1mm}
		\end{tikzpicture} & 
		خازن قطبی با نوشتن مقدارش در پایین شکل رسم شده است.  \\
		\hline
			7&
		\begin{tikzpicture}[baseline=0]
		\draw   (0,0.5) node [ground] {};
		\addvmargin{1mm}
		\end{tikzpicture} & 
		یکی از انواع اتصال به زمین  \\
		\hline
			8&
		\begin{tikzpicture}[baseline=0]
		\draw   (0,1) to [battery1] (0,0) node [xshift=0.75cm,yshift=0.5cm] {$ V_{dc} $};
		\addvmargin{1mm}
		\end{tikzpicture} & 
		یکی از انواع باطری‌ها  \\
		\hline
	\end{longtable}
\end{center}

\subsubsection{برخی نکات}

\begin{enumerate}[{label=\arabic*-}]
	\item 
	برای اینکه بتوان مقادیر شکل‌ها در بالا و پایین آن‌ها بنویسیم چند راه وجود دارد. می‌توان مقدار آن‌ها را در جلوی عبارات 
	\lr{l}
	و
	\lr{a}
	به ترتیب برای بالا و پایین نوشت. 
	\item 
	برخی شکل‌ها متقارن نیستند و ممکن است بخواهید آن را بچرخانید. در این صورت ساده‌ترین راه جابه‌جا کردن نقطه ابتدا و انتهای رسم با یکدیگر است. به شکل‌های 5 و 6 در جدول \ref{t} دقت کنید. 
\end{enumerate}

\section{رسم بلوک دیاگرام‌های کنترلی}

در این حالت، چندین بلوک مستطیلی (می‌تواند هر شکل دیگری هم باشد اما مستطیل مرسوم است) بهمراه چند جمع‌کننده در شکل وجود دارد که توسط فلش (بردار) به هم وصل شده‌اند. 

بهترین کار برای بلوک‌های مستطیلی شکل این است که همان اول آن‌ها را تعریف کنیم. این کار باعث ساده‌تر شدن رسم بلوک‌ها می‌شود. به عنوان مثال بلوکی را قبل از اینکه وارد محیط رسم شویم تعریف می‌کنیم:

\begin{latin}
\begin{verbatim}
	\tikzstyle{block} = [draw, fill=white, rectangle, minimum height=3em, minimum width=6em, 
	very thick]
\end{verbatim}
\end{latin}

با دستور 
\lr{tikzstyle}
می‌توان هر چیز دلخواهی را در مورد 
\lr{tikz}
تعریف کرد. در دستور بالا، شکلی می‌خواهیم رسم کنیم که اسمش را 
\lr{block}
گذاشته‌ایم،

 رنگ درونش سفید است 
\lr{fill=white}،

به صورت مستطیل رسم می‌شود
\lr{rectangle}،

حداقل ارتفاع آن را 
\lr{3em}
در نظر گرفتیم که با تغییر عدد آن ارتفاع شکل تغییر خواهد کرد 
\lr{minimum height=3em}،

حداقل عرض آن را 
\lr{6em}
در نظر گرفتیم 
\lr{minimum width=6em}

و خطوط مستطیل رسم شده را بسیار ضخیم 
\lr{very thick}
در نظر گرفتیم. 

حال می‌توانید هرکجا که خواستید یک بلوک مستطیلی شکل رسم کنید. در دستور زیر یک بلوک مستطیلی شکل با مشخصات بالا رسم می‌کنیم. اسمش را 
\lr{controller}
می‌گذاریم. در داخل آن هم عبارت ریاضی 
$ K_1 $
را می‌نویسیم. دقت کنید که این عبارت باید در داخل محیط 
\lr{tikz}
نوشته شود. 
\begin{latin}
	\begin{verbatim}
	     	    \node [block] (controller) {$ K_1 $};
	\end{verbatim}
\end{latin}

حال می‌خواهیم بلوک کنترلی زیر را رسم کنیم. 

\begin{figure}[h!]
	\centering
	\tikzstyle{block} = [draw, fill=white, rectangle, 
	minimum height=3em, minimum width=6em, very thick]
	\tikzstyle{sum} = [draw, fill=white, circle, node distance=1cm, very thick]
	\tikzstyle{input} = [coordinate]
	\tikzstyle{output} = [coordinate]
	{\boldmath
	\begin{tikzpicture}[auto, node distance=2cm,>=latex,very thick]
	\node [input, name=input] {};
	\node [sum, right of=input] (sum) {};
	\node [block, right of=sum,node distance=3cm] (controller) {$ G_v(s) $};
	\node [block, right of=controller, node distance=4cm] (system) {$ G_s(s) $};
	\draw [->] (sum) -- (controller);
	\draw [->] (controller) -- node[name=u] {} (system);
	\node [block, below of=u, node distance=2cm] (measurements) {$ H_f $};
	\node [output, right of=system] (output) {};
	\draw [->] (input) -- node [above] {$r$} (sum);
	\draw [->] (system) -- node [name=y,above] {$y$}(output);
	\draw [->] (y) |- (measurements);
	\draw [->] (measurements) -| node[pos=0.95] {$-$} node [near end] {$y_m$} (sum);    	   
	\end{tikzpicture}}
	\caption{یک بلوک کنترلی ساده}	
	\label{fig1}
\end{figure}

مرحله اول تعریف بلوک، جمع‌کننده، نقطه ابتدا و انتهای مسیر است. در زیر کدهای مربوط به این موارد آورده شده است. این‌ها قبل از محیط 
\lr{tikz}
آورده می‌شوند. 
\begin{latin}
	\begin{verbatim}
	\tikzstyle{block} = [draw, fill=white, rectangle, minimum height=3em, minimum width=6em, 
	very thick]
	\tikzstyle{sum} = [draw, fill=white, circle, node distance=1cm, very thick]
	\tikzstyle{input} = [coordinate]
	\tikzstyle{output} = [coordinate]
	\end{verbatim}
\end{latin}

طبق توضیحاتی که قبلا در مورد تعریف بلوک آورده شده است، می‌توان تعریف بلوک و جمع‌کننده (%
\lr{sum})
را تغییر داد. توصیه می‌کنم که به تعریف ورودی (%
\lr{input})
و خروجی (%
\lr{output})
دست نزنید. خب حالا باید شروع به رسم شکل‌های مورد نظر در محیط 
\lr{tikz}
کنیم. برای اینکه مجبور نباشیم، ضخامت و نوع فلش‌ها و همچنین حداقل فاصل بین بلوک‌ها را مدام در رسم شکل‌ها بیاوریم، همان ابتدا و با استفاده از آپشن‌های خود دستور رسم 
\lr{tikz}
این‌ها را تعریف می‌کنیم. پس محیط رسم ما به صورت زیر تعریف خواهد شد. 
\begin{latin}
	\begin{verbatim}
		\begin{tikzpicture}[auto, node distance=2cm,>=latex,very thick]
		
	\end{tikzpicture}
	\end{verbatim}
\end{latin}

با این کار من نوع فلش را 
\lr{latex}،
ضخامت آن را 
\lr{very thick}
و حداقل فاصله بین بلوک‌ها را 2 سانتی‌متر در نظر گرفتم. 

خب حالا باید از ابتدای مسیر بلوک‌ها و فلش‌های بین آن‌ها را رسم کنیم. نقطه ابتدا را رسم می‌کنیم. با این کار هیچ شکلی در خروجی رسم نخواهد شد، چونکه نقطه ابتدایی فقط یک تعریف ساده داشت و ما فقط می‌خواهیم به لاتک بفهمانیم که اینجا نقطه ابتدایی است. در ادامه جمع‌کننده را در سمت راست ورودی رسم می‌کنیم. این دو دستور را با هم در زیر می‌بینید. 

دقت کنید که از این به بعد تمام دستورات در داخل محیط 
\lr{tikz}
که در بالا تعریف شد، پشت سر هم قرار می‌گیرند. 
\begin{latin}
	\begin{verbatim}
	\node [input, name=input] {};
	\node [sum, right of=input] (sum) {};
	\end{verbatim}
\end{latin}

حال شما یک دایره تو خالی خواهید داشت. در ادامه می‌خواهم دو بلوک سمت راست جمع‌کننده را نیز رسم کنم. دستورات زیر این کار را انجام می‌دهند. 
\begin{latin}
	\begin{verbatim}
	\node [block, right of=sum] (controller) {$ G_v(s) $};
	\node [block, right of=controller, node distance=4cm] (system) {$ G_s(s) $};
	\end{verbatim}
\end{latin}

در دستور اول یک بلوک در سمت راست جمع‌کننده رسم شده است که اسمش را 
\lr{controller}
گذاشته‌ایم و در داخل آن عبارت ریاضی 
$ G_v(s) $
را نوشته‌ایم. در دستور دوم، یک بلوک در سمت راست بلوک 
\lr{controller}
رسم شده است که اسمش را 
\lr{system}

گذاشته‌ایم و در داخل آن عبارت ریاضی
$ G_s(s) $
را نوشته‌ایم. در دستور دوم برای اینکه فاصله دو بلوک را تنظیم کنیم از دستور 
\lr{node distance=}
استفاده کرده‌ایم. درواقع، با این کار، فاصله مراکز دو بلوک از هم 4 سانتی‌متر خواهد بود. برای تمام بلوک‌ها می‌توان این کار را انجام داد. 

حال فلش‌های بین جمع‌کننده و دو بلوک را رسم می‌کنیم. 
\begin{latin}
	\begin{verbatim}
	\draw [->] (sum) -- (controller);
	\draw [->] (controller) -- node[name=u] {} (system);
	\end{verbatim}
\end{latin}

با دستور اول یک فلش بین جمع‌کننده و بلوک 
\lr{controller}
رسم می‌شود. دستور دوم علاوه بر این که فلشی بین دو بلوک 
\lr{controller}
و 
\lr{system}
رسم می‌کند، نام این فلش را هم 
\lr{u}
می‌گذارد. دقت کنید که مانند تمام دستورات 
\lr{node}
که قبلا در همین جزوه گفته شد، می‌توانید ویژگی‌های زیادی به این دستور اضافه کنید. مثلا بالای همین فلش حرف 
$ u $
را بنویسید که دستور آن به صورت زیر خواهد بود:
\begin{latin}
	\begin{verbatim}
		\draw [->] (controller) -- node[name=u,above] {$ u $} (system);
	\end{verbatim}
\end{latin}

دستور دوم به ما این امکان را می‌دهد که بتوانیم بلوک زیری (آخرین بلوک باقی‌مانده) را دقیقا زیر این فلش رسم کنیم تا رسم ما زیباتر شود. 
\begin{latin}
	\begin{verbatim}
	 \node [block, below of=u, node distance=2cm] (measurements) {$ H_f $};
	\end{verbatim}
\end{latin}
در دستور بالا، بلوکی دقیقا زیر فلش 
\lr{u}،
با دستور 
\lr{below of=}
به نام 
\lr{measurements}
و با فاصله 2 سانتی‌متر از آن رسم کرده‌ایم و در داخل آن عبارت ریاضی 
$ H_f $
را نوشته‌ایم. تا اینجا باید شکل زیر را داشته باشید:
\begin{figure}[h!]
	\centering
	\tikzstyle{block} = [draw, fill=white, rectangle, 
	minimum height=3em, minimum width=6em, very thick]
	\tikzstyle{sum} = [draw, fill=white, circle, node distance=1cm, very thick]
	\tikzstyle{input} = [coordinate]
	\tikzstyle{output} = [coordinate]
	{\boldmath
		\begin{tikzpicture}[auto, node distance=2cm,>=latex,very thick]
		\node [input, name=input] {};
		\node [sum, right of=input] (sum) {};
		\node [block, right of=sum,node distance=3cm] (controller) {$ G_v(s) $};
		\node [block, right of=controller, node distance=4cm] (system) {$ G_s(s) $};
		\draw [->] (sum) -- (controller);
		\draw [->] (controller) -- node[name=u] {} (system);
		\node [block, below of=u, node distance=2cm] (measurements) {$ H_f $};  	   
		\end{tikzpicture}}
	\caption{یک بلوک کنترلی ساده}	
	\label{fig2}
\end{figure}

در ادامه می‌خواهیم ابتدا نقطه انتهایی بلوک کنترلی را مشخص کنیم، سپس فلش ابتدایی را رسم کنیم و در انتها فلش انتهایی را نیز به شکل اضافه کنیم. 
\begin{latin}
	\begin{verbatim}
	\node [output, right of=system] (output) {};
	\draw [->] (input) -- node [above] {$r$} (sum);
	\draw [->] (system) -- node [name=y,above] {$y$}(output);
	\end{verbatim}
\end{latin}

در دستور اول مشخص کردیم که خروجی در سمت راست بلوک 
\lr{system}
قرار دارد. در دستور دوم از ورودی (%
\lr{input})
یک فلش به جمع‌کننده (%
\lr{sum})
رسم‌ کرده‌ایم که روی آن حرف 
$ r $
نوشته شده است. در دستور سوم، از بلوک 
\lr{system}
فلشی به سمت خروجی (%
\lr{output})
رسم شده است که بالای آن نوشته شده 
$ y $
و اسمش نیز 
\lr{y}
است. 

در ادامه دو فلش آخر را رسم می‌کنیم. 
\begin{latin}
	\begin{verbatim}
	\draw [->] (y) |- (measurements);
	\draw [->] (measurements) -| node[pos=0.95] {$-$} node [near end] {$y_m$} (sum);  
	\end{verbatim}
\end{latin}

مشابه این دستورات را قبلا در این جزوه توضیح داده‌ایم. 

حال با کنار هم قرار دادن تمام دستورات شکل نهایی را می‌توانید رسم کنید. 

گاهی می‌خواهید از انتها به جمع‌کننده ابتدایی به صورتی وصل کنید که بلوکی بین آن‌ها نباشد. فرض کنید شکل قبل را می‌خواهیم رسم کنیم با این تفاوت که بلوک 
\lr{measurements}
وجود نداشته باشد. در این حالت می‌توان یک نقطه در زیر هر کدام از بلوک‌های اصلی تعریف کرد و سپس از انتها به این نقطه و در ادامه به جمع‌کننده اول وصل کنیم. به دستورات زیر توجه کنید. 
\begin{latin}
	\begin{verbatim}
	\node [coordinate, below of=controller](none){};
	\draw [->] (y) |- (none) -| node[pos=0.95] {$-$} node [near end] {} (sum);  
	\end{verbatim}
\end{latin}

در دستور اول، ابتدا یک نقطه در محلی زیر بلوک 
\lr{controller}
تعریف کرده‌ایم و اسم آن را 
\lr{none}
گذاشته‌ایم. در دستور دوم، ابتدا از خروجی (%
\lr{y})
به نقطه تعریف شده وصل کرده‌ایم و سپس از این نقطه به جمع‌کننده اول وصل کرده‌ایم. شکل حاصل به صورت زیر خواهد بود: 
\begin{figure}[h!]
	\centering
	\tikzstyle{block} = [draw, fill=white, rectangle, 
	minimum height=3em, minimum width=6em, very thick]
	\tikzstyle{sum} = [draw, fill=white, circle, node distance=1cm, very thick]
	\tikzstyle{input} = [coordinate]
	\tikzstyle{output} = [coordinate]
	{\boldmath
		\begin{tikzpicture}[auto, node distance=2cm,>=latex,very thick]
		\node [input, name=input] {};
		\node [sum, right of=input] (sum) {};
		\node [block, right of=sum,node distance=3cm] (controller) {$ G_v(s) $};
		\node [block, right of=controller, node distance=4cm] (system) {$ G_s(s) $};
		\draw [->] (sum) -- (controller);
		\draw [->] (controller) -- node[name=u] {} (system);
		\node [output, right of=system] (output) {};
		\draw [->] (input) -- node [above] {$r$} (sum);
		\draw [->] (system) -- node [name=y,above] {$y$}(output);
		 	   \node [coordinate, below of=controller](none){};
		 	   \draw [->] (y) |- (none) -| node[pos=0.95] {$-$} node [near end] {} (sum);  
		\end{tikzpicture}}
	\caption{یک بلوک کنترلی ساده}	
	\label{fig3}
\end{figure}

گاهی لازم است که یک فلش بدون شروع از جایی به محلی وارد شود. مثلا فرض کنید می‌خواهیم فلشی را به جمع‌کننده بالا وارد کنیم و در ابتدای فلش عبارت ریاضی 
$ v_i $
را نوشته باشیم. دستور زیر این کار را انجام می‌دهد. 

\begin{latin}
	\begin{verbatim}
	\draw [<-] (sum) -- ++ (90:1cm) node [above] {$ v_i $};
	\end{verbatim}
\end{latin}
با دستور بالا شما در زاویه 90 درجه فلشی به طول 1 سانتی‌متر را رسم می‌کنید که به جمع‌کننده وارد می‌شود و در ابتدای آن هم 
$ v_i $
نوشته شده است. به شکل زیر دقت کنید و کد مربوط به آن را مطالعه کنید. 
\begin{figure}[h!]
	\centering
	\tikzstyle{block} = [draw, fill=white, rectangle, 
	minimum height=3em, minimum width=6em, very thick]
	\tikzstyle{sum} = [draw, fill=white, circle, node distance=1cm, very thick]
	\tikzstyle{input} = [coordinate]
	\tikzstyle{output} = [coordinate]
	{\boldmath
		\begin{tikzpicture}[auto, node distance=2cm,>=latex,very thick]
		\node [input, name=input] {};
		\node [sum, right of=input] (sum) {};
		\node [block, right of=sum,node distance=3cm] (controller) {$ G_v(s) $};
		\node [block, right of=controller, node distance=4cm] (system) {$ G_s(s) $};
		\draw [->] (sum) -- (controller);
		\draw [->] (controller) -- node[name=u] {} (system);
		\node [output, right of=system] (output) {};
		\draw [->] (input) -- node [above] {$r$} (sum);
		\draw [->] (system) -- node [name=y,above] {$y$}(output);
		\node [coordinate, below of=controller](none){};
		\draw [->] (y) |- (none) -| node[pos=0.95] {$-$} node [near end] {} (sum);  
			\draw [<-] (sum) -- ++ (90:1cm) node [above] {$ v_i $};
		\end{tikzpicture}}
	\caption{یک بلوک کنترلی ساده}	
	\label{fig4}
\end{figure}

گاهی هم لازم است که از جایی غیر از انتهای مسیر مسیری به سمت یک جمع‌کننده یا بلوک دیگر رسم شود. فرض کنید در همین شکل‌های رسم شده بخواهیم از بین دو بلوک 
\lr{controller}
و 
\lr{system}
فلشی به جمع‌کننده اول وارد شود. در اینجا هم مطابق با آنچه قبلا برای رسم از خروجی به جمع‌کننده گفتیم عمل می‌کنیم. تنها مساله این است که گاهی فاصله ابتدای فلش از دو بلوک مناسب نیست. برای این‌کار تنها لازم است به صورت زیر عمل کنیم. 

\begin{latin}
	\begin{verbatim}
		\node [coordinate, above of=controller](none1){};
	\draw [->] ([xshift=-0.2cm]u.south) |- (none1) -| (sum);
	\end{verbatim}
\end{latin}

در دستور اول ابتدا یک نقطه در بالای بلوک 
\lr{controller}
تعریف می‌کنیم. حال می‌خواهیم ابتدا از میان دو بلوک 
\lr{controller}
و 
\lr{system}
فلشی را به سمت نقطه تعریف شده و سپس جمع‌کننده بکشیم. برای تعیین محل دقیق شروع فلش به صورت اشاره شده می‌توانیم عمل کنیم. با تغییر مقدار 
$ -2 $
می‌توانیم فاصله از انتهای فلش بین دو بلوک را تعیین کنیم. به شکل زیر و کد مربوط به آن دقت کنید.

\begin{figure}[h!]
	\centering
	\tikzstyle{block} = [draw, fill=white, rectangle, 
	minimum height=3em, minimum width=6em, very thick]
	\tikzstyle{sum} = [draw, fill=white, circle, node distance=1cm, very thick]
	\tikzstyle{input} = [coordinate]
	\tikzstyle{output} = [coordinate]
	{\boldmath
		\begin{tikzpicture}[auto, node distance=2cm,>=latex,very thick]
		\node [input, name=input] {};
		\node [sum, right of=input] (sum) {};
		\node [block, right of=sum,node distance=3cm] (controller) {$ G_v(s) $};
		\node [block, right of=controller, node distance=4cm] (system) {$ G_s(s) $};
		\draw [->] (sum) -- (controller);
		\draw [->] (controller) -- node[name=u] {} (system);
		\node [output, right of=system] (output) {};
		\draw [->] (input) -- node [above] {$r$} (sum);
		\draw [->] (system) -- node [name=y,above] {$y$}(output);
		\node [coordinate, below of=controller](none){};
		\draw [->] (y) |- (none) -| node[pos=0.95] {$-$} node [near end] {} (sum);  
				\node [coordinate, above of=controller](none1){};
\draw [->] ([xshift=-0.2cm]u.south) |- (none1) -| (sum);
		\end{tikzpicture}}
	\caption{یک بلوک کنترلی ساده}	
	\label{fig5}
\end{figure}

\end{document}