اذهب إلى المحتوى
  • 0

كيف أرسُم خطاطة لـ Automata على LaTeX؟

Badraoui

السؤال

أريد إدراج الخطاطة التالية، والتي تتعلق بـ Automata على برنامج LaTeX على الشكل:

D5APE.thumb.png.a245d2bf1d736a0939e78eb0

بعد أخذ المساعدة والبحث هنا وهناك، توصلت إلى الكود المبين اسفله بمساعدة TexMaker:

\documentclass[a4paper,twoside,11pt]{article}
\usepackage{tikz}
\usetikzlibrary{automata,positioning}

\begin{document}

\begin{tikzpicture}[shorten >=1pt,node distance=2.5cm,on grid,auto]
   \node[state,initial] (0) {$q_0$};
   \node[state] (1) [right=of 0] {$q_1$};
   \node[state, accepting] (2) [right=of 1] {$q_2$};
   \node[state, accepting] (3) [right=of 2] {$q_3$};
   \node[state] (4) [right=of 3] {$q_4$};
   \path[->]
    (0) edge [bend left]    node {$a$} (2)
    (0) edge [loop below]   node {$b$} (0)
    (0) edge                node {$c$} (1)
    (1) edge                node {$a$} (2)
    (1) edge [bend left]    node {$b$} (4)
    (1) edge [loop below]   node {$c$} (1)
    (2) edge [bend right]   node {$a$} (0)
    (2) edge [loop below]   node {$b$} (2)
    (2) edge                node {$c$} (3)
    (3) edge [bend right]   node {$a$} (0)
    (3) edge                node {$b$} (4)
    (3) edge [loop below]   node {$c$} (3)
    (4) edge [loop below]   node {$a$, $b$, $c$} (4);
\end{tikzpicture}

\end{document}

المشكل أن الخطوط الرابطة بين مختلف المراحل في Automata لا تظهر بشكل صحيح، هل من مثال مشابه أو حل للمشكل؟

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

المشكل الأساسي في الكود المُدرج في كودك هو في المنعطف bend، حيث أنك لم تُعطه زاوية مما يجعل الرابط يصطدم بحلقات أخرى، لذا الحل الوحيد لتفادي ذلك هو إعطاء قيمة لزاوية الانعطاف blend، بهذا الشكل:

edge [bend left=60]   node {$a$} (0)

ليكون الكود الكامل لـ Automat الخاص بك على الشكل التالي، مع مراعاة  زوايا الانعطاف :

\documentclass[a4paper,twoside,11pt]{article}
\usepackage{tikz}
\usetikzlibrary{automata,positioning}

\begin{document}

\begin{tikzpicture}[shorten >=1pt,node distance=2.5cm,on grid,auto]
   \node[state,initial] (0) {$q_0$};
   \node[state] (1) [right=of 0] {$q_1$};
   \node[state, accepting] (2) [right=of 1] {$q_2$};
   \node[state, accepting] (3) [right=of 2] {$q_3$};
   \node[state] (4) [right=of 3] {$q_4$};
   \path[->]
    (0) edge [bend left]    node {$a$} (2)
    (0) edge [loop below]   node {$b$} (0)
    (0) edge                node {$c$} (1)
    (1) edge                node {$a$} (2)
    (1) edge [bend left]    node {$b$} (4)
    (1) edge [loop below]   node {$c$} (1)
    (2) edge [bend left=60]   node {$a$} (0)
    (2) edge [loop below]   node {$b$} (2)
    (2) edge                node {$c$} (3)
    (3) edge [bend left=60]   node {$a$} (0)
    (3) edge                node {$b$} (4)
    (3) edge [loop below]   node {$c$} (3)
    (4) edge [loop below]   node {$a$, $b$, $c$} (4);
\end{tikzpicture}

\end{document}

لا تنس استدعاء مكتبة tikz للتمكّن من رسم الخطاطة:

\usepackage{tikz}

المكتبة مُدرجة في أول الكود.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...