3

I'm a completely newbie with LaTeX and TikZ and I'd like to improve the following graph:

\begin{tikzpicture}
\begin{scope}[every node/.style={thick,draw,circle,minimum size=2em,inner sep=1}] % nodos
    \node [label={[green]right:0}] (1) at (3,5){1};
    \node [label={[green]right:$T_1$}](2) at (3,3.5){2};
    \node [label={[green]right:$T_1+T_2$}](3) at (3,2){3};
    \node [label={[green]left:$\sum_{i=1}^3T_i$}](4) at (1.5,0.5){4};
    \node [label={[green]right:$\sum_{i=1}^3T_i$}](5) at (4.5,0.5){5};
    \node [label={[green]left:$\sum_{i=1}^4T_i$}](6) at (0,-1){6};
    \node [label={[green]center:$\sum_{i=1}^3T_i+\max\{T_4,T_5\}$}] (7) at (3,-1){7};

    \node [label={[green]left:$\sum_{i=1}^4T_i+T_6$}](8) at (1.5,-2.5){8};
    \node [label={[green]right:$\sum_{i=1}^3T_i+T_5$}] (9) at (6,-1){9};
    \node [label={[green]center:$\sum_{i=1}^3T_i+\max\Big\{T_4+T_6+T_8,\max\big\{T_4,T_5\big\}+T_7,T_5+T_9\Big\}$}](10) at (4.5,-3.5){10};
\end{scope}
\begin{scope}[every edge/.style={draw,thick}] % arcos
\draw[->] (1) edge node[left] {$T_1$} (2);
\draw[->] (2) edge node[left] {$T_2$} (3);
\draw[->] (3) edge node[left] {$T_3$} (4);
\draw[->] (3) edge node[right] {$T_3$} (5);
\draw[->] (4) edge node[left] {$T_4$} (6);
\draw[->] (4) edge node[right] {$T_4$} (7);
\draw[->] (5) edge node[left] {$T_5$} (7);
\draw[->] (5) edge node[right] {$T_5$} (9);
\draw[->] (6) edge node[left] {$T_6$} (8);
\draw[->] (7) edge node[left] {$T_7$}(10);
\draw[->] (8) edge node[below] {$T_8$} (10);
\draw[->] (9) edge node[right] {$T_9$} (10);
\end{scope}
\end{tikzpicture}

Comments :

  • The green node labels are too big. It would be nice to make them considerably smaller.
  • I don't want the labels to be over the nodes.
  • Maybe those long labels can be multi-line labels?

Thank you very much in advance.

enter image description here

2 Answers 2

3

Slightly different from your image:

enter image description here

obtained by slightly more concise code with relative positioning:

\documentclass[tikz,margin=3mm]{standalone}
\usetikzlibrary{arrows.meta, positioning, quotes}

\usepackage{mathtools}% for multi line equation in label

\begin{document}
    \begin{tikzpicture}[thick, auto,
     node distance = 10mm and 15mm,
every label/.style = {font=\footnotesize, text=teal},
state/.style = {draw,circle,minimum size=2em},
                        ]
\node (n1) [state,label=right:0]          {1};
\node (n2) [state,label=right:$T_1$,
            below=of n1]            {2};
\node (n3) [state,label=right:$T_1+T_2$,
            below=of n2]            {3};
\node (n4) [state,label=left:{$\sum\limits_{i=1}^3T_i$},
            below  left=of n3]      {4};
\node (n5) [state,label=right:{$\sum\limits_{i=1}^3T_i$},
            below right=of n3]      {5};
\node (n6) [state,label=left:{$\sum\limits_{i=1}^4T_i$},
            below left=of n4]       {6};
\node (n7) [state,label=right:{$\sum\limits_{i=1}^3T_i+\max\{T_4,T_5\}$},
            below right=of n4]      {7};
\node (n8) [state,label=left:{$\sum\limits_{i=1}^4T_i+T_6$},
            below right=of n6]      {8};
\node (n9) [state,label=right:{$\sum\limits_{i=1}^3T_i+T_5$},
            below right=of n5]      {9};
\node (n10)[state,label={[yshift=-1em]right:{$\begin{multlined}
                        \sum_{i=1}^3T_i+\max\Big\{T_4+T_6 +\\
                        T_8,\max\big\{T_4,T_5\big\}+T_7,T_5 +T_9\Big\}
                                              \end{multlined}$}},
            below right=of n8]      {10};
\draw[-Straight Barb]
    (n1) edge ["$T_1$"] (n2)
    (n2) edge ["$T_2$"] (n3)
    (n3) edge ["$T_3$"] (n4)
    (n3) edge ["$T_3$"] (n5)
    (n4) edge ["$T_4$"] (n6)
    (n4) edge ["$T_4$"] (n7)
    (n5) edge ["$T_5$"] (n7)
    (n5) edge ["$T_5$"] (n9)
    (n6) edge ["$T_6$"] (n8)
    (n7) edge ["$T_7$"] (n10)
    (n8) edge ["$T_8$"] (n10)
    (n9) edge ["$T_9$"](n10);
    \end{tikzpicture}
\end{document}
6
  • This is absolutely awesome. However, I can't compile it. The (n10) node declaration gives me an error and also \draw[-Straight Barb].
    – Pierrot
    Commented Mar 21, 2017 at 16:55
  • I found out that the problem is the multi-line labels. I'll look into it.
    – Pierrot
    Commented Mar 21, 2017 at 17:15
  • Curious. The problem was the space between [yshift=-1em] and right. [yshift=-1em] right gives me a compilation error while [yshift=-1em]right works fine :). Thank you very, very much! Amazing solution!
    – Pierrot
    Commented Mar 21, 2017 at 17:34
  • I haven't this problem (with recent MikTeX). Maybe is your LaTeX installation to old. Try to update it. Anyway, I will remove this space.
    – Zarko
    Commented Mar 21, 2017 at 17:58
  • @Pierrot You might then consider accepting his answer by ticking the checkmark.
    – c.p.
    Commented Mar 22, 2017 at 6:01
2

You can add \scriptsize or \small to your node's label, e.g.

{\scriptsize $T_9$} 

As for the second issue, you can use degrees instead of center. Direct it below with 270 or -90 degrees and tweak the distance as the one you wish:

\node [label={[green,label distance=-3.6cm]-90:\scriptsize$\sum_{i=1}^3T_i+\max\Big\{T_4+T_6+T_8,\max\big\{T_4,T_5\big\}+T_7,T_5+T_9\Big\}$}](10) at (4.5,-3.5){10};

enter image description here

0

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .