4

I'd like to try and include this graph in a Beamer presented, and would like to draw it using TikZ instead of including a PDF (for a number of reasons). I honestly have no idea how to get started and when I tried to look at the tkz-graph library all of the documentation was in French. I'm not necessarily single minded on using that package but if nothing else I'd appreciate some hints on how to even approach this. I also tried to base a solution off of this example: texample.net sample graph but couldn't get it to compile at all. I know there's not MWE but I honestly have no real idea how to approach this.

I just saw a response but I attempted something along the following lines:

\documentclass[10pt,tikz]{standalone}
\usepackage[sfdefault]{FiraSans}
\usetikzlibrary{arrows,shapes,positioning}
\begin{document}
\begin{tikzpicture}[
    thick,
    >=stealth',
    shorten >=1pt,
    auto,
    every node/.style={
        rectangle,
        rounded corners,
        draw}
]
\node (1) {Aristotle};
\node (2) [right = of 1] {Chrisyppus};
\node (3) [below right = of 1] {Leibniz};
\node (4) [below left = of 1] {Boole};
\node (5) [below = of 4] {Frege};
\node (6) [right = of 5] {Tarski};
\node (7) [below right = of 3] {Post};
\node (8) [below = of 6] {McCarthy};
\node (9) [left = of 8] {Minski};
\node (10) [right = of 8] {Kowalski};
\node (11) [below = of 7] {Colmerauer};
\node (12) [below left = of 8] {McDermott};
\node (13) [right = 0.25cm of 12] {Reiter};
\node (14) [below right = of 8] {Moore};
\node (15) [below = 2cm of 8] {Gelfond};
\node (16) [below = of 11] {Prolog};
\node (17) [below = of 16] {Clark};
\node (18) [below = of 15] {A-Prolog};
\path[->]
    (1) edge (3)
    (2) edge (3)
    (4) edge (5)
    (5) edge (6)
    (6) edge (8)
    (6) edge (9)
    (3) edge (10)
    (6) edge (10)
    (7) edge (10)
    (7) edge (11)
    (8) edge (12)
    (8) edge (13)
    (8) edge (14)
    (8) edge (15)
    (8) edge (14)
    (14) edge (15)
    (11) edge (16)
    (10) edge (16)
    (16) edge (17)
    (17) edge (15)
    (15) edge (18)
    ;
\end{tikzpicture}
\end{document}

This gives something similar to but more complex than the accepted answer. I'm curious if there is any guidance on how to do positioning to properly align the nodes with respect to each other (or if there is an "auto positioning" library for nodes).

Desired Graph

  • 6
    Reading the 10-pages Tutorial: A Petri-Net for Hagen in the manual (pages 47 to 57) is a good start. – AndréC Aug 22 '18 at 6:18
  • Welcome to TeX.SX! The short answer is that, yes, this is possible but I have to warn you that questions of the form "Please draw this for me" that show no effort on the part of OP, often don't get answered. You will get more help if you post some code showing what you have tried and give a minimal working example. A quick search on TeX.SX for drawing functions (with tikz or pstricks) will give you an idea of where to start from. – Andrew Aug 22 '18 at 11:54
3

As a starting point, you could use:

\documentclass{standalone}
\usepackage{tikz}

\usetikzlibrary{positioning}

\begin{document}\small

\begin{tikzpicture}[node distance=20mm,every node/.style={rectangle,minimum height=10mm,text width=17mm,align=center,rounded corners=1mm,fill=green!50!black,draw=black}]

\node at (0,0)           (ko) {Kowalski};
\node[above of=ko,node distance=40mm]
                         (le) {Leibniz};
\node[above of=le,xshift=10mm] (ar) {Aristotle};
\node[left of=ar]        (ch) {Chrisyppus};

\node[right of=ko]       (co) {Colmerauer};
\node[above of=co]       (po) {Post};

\node[left of=ko]        (mc) {McCarthy};
\node[above of=mc]       (ta) {Tarski};
\node[left of=mc]        (mi) {Minski};
\node[left of=ta,node distance=30mm]  
                         (fr) {Frege};
\node[above of=fr]       (bo) {Boole};

\node[below of=co,xshift=-5mm,fill=blue!75!cyan] 
                         (pr) {Prolog};
\node[below of=pr]       (cl) {Clark};

\node[below of=mc,xshift=12mm] 
                         (mo) {Moore};
\node[below of=mc,xshift=-12mm]
                         (re) {Reiter};
\node[left of=re]
                         (do) {McDermott Doyle};
\node[below of=mc,node distance=40mm]
                         (ge) {Gelfond Lifschitz};
\node[below of=ge,fill=blue!75!cyan]
                         (ap) {A-Prolog};

\foreach \x/\y in {ar/le,ch/le,le/ko,po/ko,po/co,bo/fr,fr/ta,ta/mi,ta/mc,ta/ko,mc/do,mc/re,mc/mo,mc/ge,mo/ge,ko/pr,co/pr,pr/cl,pr/ge,cl/ge,ge/ap}
    \draw[-stealth,shorten >=1mm] (\x) -- (\y);

\end{tikzpicture}

\end{document}

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.