Per favore usa i tag [ [tt]code[/tt] ] [ [tt]/code[/tt] ] per racchiudere il codice: permette una migliore leggibilità. Esiste anche un bottoncino: è a destra del fumetto nella barra degli strumenti.
A meno che tu non voglia impazzire nel posizionare a mano le cose occorre fare un passo indietro e tornare ai classici alberi. I problemi, mi pare di capire sono: sovrapposizioni e allineamento.
Un esempio in cui c’è sovrapposizione è: `
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[every node/.append style={draw}]
\node (a) {Testo estremamente lungo AAA}
child {node (b) {Testo estremamente lungo BBB}}
child {node (c) {Testo estremamente lungo CCC}
child {node (d) {Testo estremamente lungo DDD}
child {node (e) {Testo estremamente lungo EEE}}
child {node (f) {Testo estremamente lungo FFF}}}
};
\draw(d)–(b);
\end{tikzpicture}
\end{document}
` Facciamo in modo che in ogni nodo il testo non ecceda i 2cm: di conseguenza il testo viene allineato a sinistra e sillabato; inoltre i nodi non sono più larghi in modo spropositato, sebbene siano ancora sovrapposti. L’opzione chiave è [tt]text width=2cm[/tt], da inserirsi `\begin{tikzpicture}[every node/.append style={draw},text width=2cm]` oppure `\begin{tikzpicture}[every node/.append style={draw,text width=2cm]}` (in questo caso è indifferente).
Per non far sovrapporre i nodi è necessario far capire a TikZ che fra i vari livelli dell’albero ci deve essere una certa distanza verticale ed orizzontale. Con [tt]level distance=…[/tt] si caratterizza la distanza verticale mentre quella orizzontale con [tt]level 1/.style={sibling distance=…}[/tt]: [tt]level 1[/tt] indica il livello (in questo caso fra nodo radice e i suoi immediati figli) mentre [tt]sibling distance[/tt] la distanza fra nodi “fratelli”. Ecco un esempio: `
\begin{tikzpicture}[every node/.append style={draw},text width=2cm,
level distance=20mm,
level 1/.style={sibling distance=40mm},
level 2/.style={sibling distance=35mm},
level 3/.style={sibling distance=30mm}
]
` A questo punto l’albero è perfettamente visibile senza nodi sovrapposti, ma l’allineamento del testo è a sinistra (di default dopo aver specificato la lunghezza massima del testo). Come cambiarlo? La chiave necessaria è [tt]align[/tt] (cerca sul manuale tutti i possibili valori). Ecco quindi, in definitiva, il codice per avere un albero completamente visibile con allineamento centrale del testo: `
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[every node/.append style={draw},text width=2cm,
align=center,
level distance=20mm,
level 1/.style={sibling distance=40mm},
level 2/.style={sibling distance=35mm},
level 3/.style={sibling distance=30mm}
]
\node (a) {Testo estremamente lungo AAA}
child {node (b) {Testo estremamente lungo BBB}}
child {node (c) {Testo estremamente lungo CCC}
child {node (d) {Testo estremamente lungo DDD}
child {node (e) {Testo estremamente lungo EEE}}
child {node (f) {Testo estremamente lungo FFF}}}
};
\draw(d)–(b);
\end{tikzpicture}
\end{document}
` Il risultato grafico:
[attachment=542]Immagine_2012-12-04.jpg[/attachment]
PS: se il tuo manuale ha solo 500 pagine hai una distribuzione vecchia e quindi una versione vecchia di PGF/TikZ.
Ciao
Claudio