يهدف المقال إلى توضيح الأساسيات والوظائف الأساسية لحزمة TikZ وتقديم أمثلة عملية توضح كيفية استخدامها في LaTeX

ماهو TikZ ؟

TikZ عبارة عن حزمة (Package) لعمل رسومات في Latex

  • يتم تثبيت TikZ افتراضيًا عند تثبيت LATEX على الجهاز (MikTeX و TeXLive و MacTeX)
  • لاستخدام TikZ ،ما عليك سوى إضافة الأمر التالي إلى مقدمة المستند (preamble) كما يلي
\usepackage{tikz}
  • الكود كامل:
\documentclass{article} 
	\usepackage{tikz} 
\begin{document} 
	\begin{tikzpicture} 
		instructions ... 
	\end{tikzpicture} 
\end{document}

مفاهيم أساسية

  • لرسم خط بين نقطتين

نستخدم الأمر draw\ بالطريقة التالية

\begin{tikzpicture}
	\draw (0,0) -- (2,1);
\end{tikzpicture}

خط

سيتم رسم خط بين نقطتتين حداثياتهما (0,1) و (2,1)
  • لرسم سهم ، ما عليك سوى إضافة خيار إلى draw\ على النحو التالي :

\begin{tikzpicture} 
	\draw[->] (0,1) -- (1,1);
	\draw[<->] (0,-1) -- (1,-1);
	\draw (1,1) -- (2,1);
	\draw[-|] (0,0) -- (1,0);
\end{tikzpicture}

سهم

  • لرسم عدة خطوط متتالية بربطها ببعضها البعض:

\begin{tikzpicture} 
	\draw (0,0) -- (2,1) -- (2, 0) -- (4, 2);  
\end{tikzpicture}

خطوط

  • يمكن تغيير لون الخط باستخدام الخيار color ولون التعبئة باستخدام الخيار fill كما يلي :

\begin{tikzpicture}
	\draw[color=black,fill=green] (0,0) -- (1,2) -- (2,1)  -- cycle;
\end{tikzpicture}

لون-لون خلفية

  • يمكن تحديد سمك الخط على سبيل المثال

\begin{tikzpicture}
	\draw[ultra thick] (0,0) -- (1,1); 
\end{tikzpicture}

سمك الخط

  • أنواع السمك المتاحة :
ultra thin , very thin , thin (السمك الافتراضي) , semithick , thick , very thick , ultra thick

بعض الأشكال الهندسية

المستطيل rectangle

  • لرسم مستطيل نستعمل rectangle تم نحدد النقطة السفلى على اليسار و النقطة العلوية على اليمين كما في المثال :
\begin{tikzpicture} 
	\draw[fill=green!30] (0,0) rectangle (2,1);
\end{tikzpicture}

مستطيل

الدائرة Cercle

  • نحدد إحداتيات مركز الدائرة ثم الكلمة cercle و شعاع الدائرة كما في المثال :
\begin{tikzpicture}
	\draw[color=violet] (0,0) circle (2cm);
\end{tikzpicture}

الدائرة

الإهليج ellipse

  • لإنشاء إهليج ، عليك توفير نقطة مركزية (1،2) ، وشعاع كل نصف قطر: أفقي ورأسي (1.3 و 1 على التوالي). كما يلي :
\begin{tikzpicture}
	\draw[dashed] (1,2) ellipse (1.3cm and 1cm);
\end{tikzpicture}

إهليج

القوس arc

  • لإنشاء قوس لبد من تحديد الشعاع وزاوية البداية و الزواية النهائية كما يلي :

\begin{tikzpicture}
	\draw (0,0) arc [radius = 3cm, start angle = 0, end angle = 80];
\end{tikzpicture}

قوس

شلجم parabol

  • لإنشاء نصف شلجم نقوم بتحديد نقطتين أصل الشلجم و طرفه كما في المثال :

\begin{tikzpicture}
  \draw (0,0) parabola (3,4);
\end{tikzpicture}

نصف شلجم

- **شلجم كامل
\begin{tikzpicture}
	\draw (0,0) parabola (3,5);
	\draw (0,0) parabola (-3,5);
\end{tikzpicture}

شلجم

شبكة gride

  • لرسم شبكة نكتب الأمر grid كما يلي :
  • رسم الشبكة يبدأ بالنقطة التي توجد في أقصى اليسار في الأسفل انتهاءا بالنقطة التي توجد في أقصى أعلى اليمين
\begin{tikzpicture}
  \draw[step=1cm, gray, very thin] (1,2) grid (6, 6);
  \draw (1,2) node {.};
  \draw (6,6) node {.};
\end{tikzpicture}

شبكة

تكبير/تصغير الأشكال في TikZ

  • لتكبير أو تصغير شكل نقوم بإضافة الخيار scale كما يلي :
\begin{tikzpicture}[scale=2]
	\draw[fill=green!30] (0,0) rectangle (1,1);
\end{tikzpicture} 

شبكة

  • إدا قمنا مثلا بكتابة scale=2 فإننا نقوم بتكبير الشكل مرتين
  • إدا قمنا مثلا بكتابة scale=0.5 فإننا نقوم بتصغير الشكل مرتين
  • إدا كان الخيار scale يساوي قيمة أكبر من العدد 1 فإننا نقوم بتكبير الشكل
  • إدا كان الخيار scale يساوي قيمة أصغر من العدد 1 فإننا نقوم بتصغير الشكل

العقد nodes

عقدة

  • أمثلة كيفية استعمال الخيارات

\begin{tikzpicture}
		\node [draw] (n1) at (0,4) {1};
\end{tikzpicture}  

n1

	\node [draw, circle] (n2) at (0,3) {2};

n2

	\node [draw, rounded corners=3pt, text = blue,fill=red!30,ultra thick] (n3) at (0,2) {3};

n3

  • الإتجاهات المتاحة :

  • above

  • below

  • right

  • left

  • above left

  • above right

  • below left

  • below right

\begin{tikzpicture}
    \node [above left] (n3) at (0,2) {node};
    \draw[fill=red,color=red] (0,2) circle (0.1cm);
\end{tikzpicture} 

n4

\node [below right] (n3) at (0,2) {node};
\draw[fill=red,color=red] (0,2) circle (0.1cm);

n5

 \node [below left] (n3) at (0,2) {node};
\draw[fill=red,color=red] (0,2) circle (0.1cm);

n6

  • يمكن إنشاء عقد والربط فيما بينها كما يلي
\begin{tikzpicture}
  \node[draw] (Q) at (0,0) {Quran};
  \node[draw] (S) at (4,0) {Suna};
  \draw (Q) -- (S);
\end{tikzpicture} 

qs

  • مثال أخر
\begin{tikzpicture}
	\tikzstyle{membre}= [rectangle,draw,thick,dotted]
	\tikzstyle{operation}=[->,>=latex]
	\tikzstyle{etiquette}=[midway,fill=black!20]
	\node[membre] (g) at (-1.25,4.5) {$3x+1$};
	\node[below=-5pt] at (0,4.5) {$=$};
	\node[membre] (d) at (1,4.5) {$7$};
	\node[membre] (gg) at (-1,2.5) {$3x$};
	\node [below=-5pt] at (0,2.5) {$=$};
	\node[membre] (dd) at (1,2.5) {$6$};
	\node[membre] (ggg) at (-1,0.5) {$x$};
	\node [below=-5pt] (equal) at (0,0.5) {$=$};
	\node[membre] (ddd) at (1,0.5) {$2$};
	\node[membre] (answer) at (0,-1) {$S=\{2\}$};
	\draw[operation] (g)--(gg) node[etiquette]{$-1$};
	\draw[operation] (d)--(dd) node[etiquette] {$-1$};
	\draw[operation] (gg)--(ggg) node[etiquette]{$\div3$};
	\draw[operation] (dd)--(ddd) node[etiquette] {$\div3$};
	\draw[operation] (equal)--(answer);
\end{tikzpicture}

ex