يهدف المقال إلى توضيح الأساسيات والوظائف الأساسية لحزمة 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\ بالطريقة التالية
سيتم رسم خط بين نقطتتين حداثياتهما (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}-
لرسم عدة خطوط متتالية بربطها ببعضها البعض:
-
يمكن تغيير لون الخط باستخدام الخيار color ولون التعبئة باستخدام الخيار fill كما يلي :
\begin{tikzpicture}
\draw[color=black,fill=green] (0,0) -- (1,2) -- (2,1) -- cycle;
\end{tikzpicture}-
يمكن تحديد سمك الخط على سبيل المثال
- أنواع السمك المتاحة :
ultra thin , very thin , thin (السمك الافتراضي) , semithick , thick , very thick , ultra thick
بعض الأشكال الهندسية
المستطيل rectangle
-
لرسم مستطيل نستعمل rectangle تم نحدد النقطة السفلى على اليسار و النقطة العلوية على اليمين كما في المثال :
الدائرة Cercle
-
نحدد إحداتيات مركز الدائرة ثم الكلمة cercle و شعاع الدائرة كما في المثال :
الإهليج ellipse
-
لإنشاء إهليج ، عليك توفير نقطة مركزية (1،2) ، وشعاع كل نصف قطر: أفقي ورأسي (1.3 و 1 على التوالي). كما يلي :
القوس 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,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 كما يلي :
- إدا قمنا مثلا بكتابة scale=2 فإننا نقوم بتكبير الشكل مرتين
- إدا قمنا مثلا بكتابة scale=0.5 فإننا نقوم بتصغير الشكل مرتين
- إدا كان الخيار scale يساوي قيمة أكبر من العدد 1 فإننا نقوم بتكبير الشكل
- إدا كان الخيار scale يساوي قيمة أصغر من العدد 1 فإننا نقوم بتصغير الشكل
العقد nodes
-
أمثلة كيفية استعمال الخيارات
\begin{tikzpicture}
\node [draw] (n1) at (0,4) {1};
\end{tikzpicture} \node [draw, circle] (n2) at (0,3) {2}; \node [draw, rounded corners=3pt, text = blue,fill=red!30,ultra thick] (n3) at (0,2) {3};-
الإتجاهات المتاحة :
-
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} \node [below right] (n3) at (0,2) {node};
\draw[fill=red,color=red] (0,2) circle (0.1cm); \node [below left] (n3) at (0,2) {node};
\draw[fill=red,color=red] (0,2) circle (0.1cm);- يمكن إنشاء عقد والربط فيما بينها كما يلي
\begin{tikzpicture}
\node[draw] (Q) at (0,0) {Quran};
\node[draw] (S) at (4,0) {Suna};
\draw (Q) -- (S);
\end{tikzpicture} - مثال أخر
\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}