انتقل إلى المحتوى

العُقد والأسهم والمخططات في TikZ

ضع كل مربع باستخدام \node[draw] (name) {text};، وحدد مواضع المربعات التالية بمكتبة positioning (right=of name)، وصِل بينها باستخدام \draw[->] (a) -- (b);.

العُقد

العقدة قطعة نص عند نقطة، مع إطار اختياري. يمنحها draw حدودًا، وfill خلفية، وcircle أو ellipse شكلًا مستديرًا (rectangle هو الافتراضي). ويتيح لك اسم بين قوسين الإشارة إلى العقدة لاحقًا.

عُقد بأشكال وتعبئات وأحجام

\begin{tikzpicture}
  \node[draw] (a) at (0,0) {plain box};
  \node[draw, rounded corners, fill=blue!10] (b) at (3,0) {rounded};
  \node[draw, circle, fill=yellow!40] (c) at (5.5,0) {44};
  \node[draw, ellipse] (d) at (8,0) {ellipse};
  \node[draw, minimum width=2.5cm, minimum height=1cm] at (1,-1.6) {fixed size};
  \node[draw, text width=2.6cm, align=center] at (5,-1.6) {text that wraps onto two lines};
\end{tikzpicture}

الأسهم بين العُقد

يرسم \draw[->] (a) -- (b); سهمًا من العقدة a إلى العقدة b. يبدأ الخط وينتهي عند حدود العقدتين، لا عند مركزيهما. ويرسم -| و|- وصلات بزوايا قائمة.

مخطط انسيابي صغير بمكتبة positioning

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{positioning, arrows.meta}
\begin{document}
\begin{tikzpicture}[
    node distance=1.2cm and 1.6cm,
    box/.style={draw, rounded corners, fill=blue!8, minimum width=2.2cm, minimum height=0.8cm},
    >={Stealth},
  ]
  \node[box] (in) {Read data};
  \node[box, right=of in] (clean) {Clean};
  \node[box, right=of clean] (fit) {Fit model};
  \node[draw, circle, below=of clean] (ok) {OK?};
  \draw[->] (in) -- (clean);
  \draw[->] (clean) -- (fit);
  \draw[->] (fit) |- (ok);
  \draw[->] (ok) -| node[pos=0.75, left] {no} (in);
\end{tikzpicture}
\end{document}

يضع right=of in العقدة إلى يمين in، بمسافة node distance بينهما. والاتجاهات الأخرى هي left وabove وbelow والاتجاهات القطرية مثل above right. ويحدد right=2cm of in المسافة لعقدة واحدة.

التسميات على الأسهم والعُقد

العقدة node المكتوبة في منتصف مسار تسمّيه. يحدد above وbelow وleft وright الجهة، ويحدد midway وnear start وnear end أو pos=0.3 الموضع على امتداد المسار. ويضيف label=below:text تسمية إلى عقدة.

مخطط حالات بحواف منحنية ومسمّاة

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{positioning, arrows.meta}
\begin{document}
\begin{tikzpicture}[state/.style={draw, circle, minimum size=1cm}, >={Stealth}, node distance=2.4cm]
  \node[state, label=below:start] (s0) {$q_0$};
  \node[state, right=of s0] (s1) {$q_1$};
  \node[state, right=of s1, fill=green!15] (s2) {$q_2$};
  \draw[->] (s0) to[bend left] node[above] {$a$} (s1);
  \draw[->] (s1) to[bend left] node[below] {$b$} (s0);
  \draw[->] (s1) -- node[above] {$a$} (s2);
\end{tikzpicture}
\end{document}

نقاط الارتكاز

لكل عقدة نقاط ارتكاز على حدودها: north وsouth وeast وwest والزوايا مثل north east. و(box.north) هي النقطة في منتصف أعلى box.

أسهم من نقاط ارتكاز عقدة

\begin{tikzpicture}
  \node[draw, minimum width=3cm, minimum height=1cm] (box) {Server};
  \draw[->] (box.north) -- ++(0,0.7) node[above] {north};
  \draw[->] (box.east) -- ++(1,0) node[right] {east};
  \draw[->] (box.south west) -- ++(-0.6,-0.6) node[below left] {south west};
  \node[anchor=west] at (box.south east) {\small (anchor=west)};
\end{tikzpicture}

يضع anchor=west على عقدة تلك العقدة بحيث تقع نقطة ارتكازها الغربية عند النقطة المعطاة.

رؤوس الأسهم

الخيارالرأسفي Scissor LaTeX
->، <-، <->رأس TikZ الافتراضييعمل
-stealth، -latexرأسا stealth وLaTeX الكلاسيكيانيعمل
-{Stealth}، -{Latex} (arrows.meta)الرؤوس الأحدثيعمل
|-|شرطة عند كل طرفيعمل
>={Stealth} على الصورةالرأس الذي يستخدمه ->يعمل
خيارات رؤوس الأسهم مثل -{Stealth[length=3mm]}أحجام الرأس وأشكالهجزئيًا: يُرسم الرأس بحجمه الافتراضي

أحجام الرؤوس قريبة من TikZ، لكنها ليست مطابقة.

ما ليس مدعومًا

تُصرَّف هذه الميزات في تثبيت TeX لكن ليس هنا. ويُبلَّغ عن معظمها في تبويب «المشكلات».

الميزةما يحدث في Scissor LaTeXما تكتبه بدلًا منها
\matrix (وmatrix of nodes)تصبح الصورة كلها مربعًا متقطع الإطار مع رسالةضع العُقد باستخدام at (x,y) أو positioning
\picتصبح الصورة كلها مربعًا متقطع الإطار مع رسالةكرّر الرسم داخل scope مع shift
الزخارف (decorate، decoration=...)تُتجاهل مع رسالة؛ ويُرسم المسار بسيطًامسار بسيط أو متقطع
أشكال العُقد من shapes.geometric (diamond، trapezium ...)تُرسم مستطيلًا، مع رسالةrectangle أو circle أو ellipse
الخطوط المزدوجة doubleتُتجاهل مع رسالةعقدتان أو مساران
to[loop above] (حلقة على عقدة واحدة)لا تُرسم حلقة ولا تظهر رسالة؛ وتقع تسميتها على العقدةقوس arc أو منحنى .. controls .. من حدود العقدة
pin=يظهر نص الدبوس، من دون خط الدبوسlabel=
pos= على مسار -| أو |-توضع التسمية على امتداد الضلع الثاني فقط، فيقع pos=0.25 قرب الزاويةسمِّ الضلع الثاني باستخدام pos=0.75، أو قسّم المسار إلى اثنين
tikz-cd، circuitikz، forestتُترك الصورة، مع رسالةTikZ بسيط، أو صورة

يصبح \matrix عنصرًا نائبًا

\begin{tikzpicture}
  \matrix[draw] {
    \node {a}; & \node {b}; \\
    \node {c}; & \node {d}; \\
  };
\end{tikzpicture}

تبويب المشكلات: \matrix in a picture is not supported yet

تُرسم عقدة diamond مستطيلًا

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{shapes.geometric}
\begin{document}
\begin{tikzpicture}
  \node[draw, diamond] at (0,0) {Yes?};
  \node[draw, ellipse] at (2.5,0) {ellipse works};
\end{tikzpicture}
\end{document}

تبويب المشكلات: TikZ node option 'diamond' is not supported yet

يغطي دليل TikZ (ضمن حزمة PGF) العُقد ومكتبة positioning ورؤوس الأسهم: ctan.org/pkg/pgf. وللأشكال والمسارات، راجع الرسم باستخدام TikZ.

راجع أيضًا أساسيات TikZ وTikZ والأشكال والصور.

أسئلة وأجوبة

كيف أرسم مخططًا انسيابيًا في LaTeX؟

استخدم عُقد TikZ مع draw للمربعات، ومكتبة positioning (right=of a، below=of b) لوضعها، و\draw[->] (a) -- (b); للأسهم.

كيف أضع نصًا على سهم في TikZ؟

اكتب عقدة في منتصف المسار: \draw[->] (a) -- node[above] {text} (b);.

هل يعمل tikz-cd في Scissor LaTeX؟

ليس بعد. يُترك مخطط tikzcd مع رسالة. ارسم بدلًا من ذلك مخططات بسيطة بالعُقد والأسهم.

كل مثال في هذه الصفحة ينضّده Scissor LaTeX عند بناء الموقع. آخر تحديث: 2026-11-07.