tikz-qtree

O pakiecie

Pakiet tikz-qtree umożliwia rysowanie drzew z wykorzystaniem TikZ oraz składni z pakietu qtree. Opis pakietu qtree na Pakietomacie znajdziecie tutaj.

Podstawowe polecenia

Aby skorzystać z pakietu tikz-qtree dodajemy w preambule dokumentu następujące polecenia:

\usepackage{tikz}
\usepackage{tikz-qtree}

Drzewa składamy wykorzystując polecenia pakietu qtree. Drzewo zawarte jest wewnątrz polecenia

\Tree [ ]

Korzeń drzewa oznaczamy kropką i oddzielamy od liści spacjami. Najprostsze drzewo z dwoma liśćmi wygenerujemy następującym poleceniem (uwaga na spacje):

\Tree [ .A a b ]

Drzewo umieszczamy wewnątrz otoczenia tikzpicture.

\begin{tikzpicture}
\Tree [ .A a b ]
\end{tikzpicture}

Pakiet tikz-qtree umożliwia nam łatwe edytowanie wyglądu takiego drzewa.

Do polecenia otwierającego otoczenie tikzpicture możemy dodać opcję w nawiasach kwadratowych, która będzie określała kierunek, w którym ‚rośnie’ drzewo.

    • \begin{tikzpicture}[grow=up]— do góry
    • \begin{tikzpicture}[grow=left]— w lewo
    • \begin{tikzpicture}[grow=right] — w prawo

tikzqtree1

Po poleceniu otwierającym otoczenie tikzpicture możemy określić

  • odległość (w pionie) dzielącą poszczególne poziomy drzewa: level distance
  • odległość (w poziomie) dzielącą elementy na danym poziomie drzewa: sibling distance

Komendy te umieszczamy w ramach polecenia tikzset:

\tikzset{level distance=60pt,sibling distance=18pt}

Przetestuj

\documentclass{article}
\usepackage{tikz}
\usepackage{tikz-qtree}
%%%%%%
\begin{document}
\begin{tikzpicture}
\Tree [ .A a b ]
\end{tikzpicture}
%%%%%%%
\begin{tikzpicture}
\tikzset{level distance=60pt,sibling distance=18pt}
\Tree [ .A a b ]
\end{tikzpicture}
%%%%%%%
\begin{tikzpicture}
\tikzset{level distance=20pt,sibling distance=40pt}
\Tree [ .A a b ]
\end{tikzpicture}
%%%%%%%
\end{document}

Rezultat

tikzqtree2

Kompilacja

  • pdflatex

Pobierz

(Przygotował: Paweł Łupkowski)

pakietomatbachotex

qobitree

O pakiecie

Pakiet umożliwia robienie prostych grafów (drzew). Jest prosty i efektowny w działaniu.

Podstawowe polecenia

Deklarowanie użycia qobitree jest nieco inne od standardowych pakietów i wymaga więcej zabiegów niż dodanie polecenia \usepackage{}. Aby skorzystać z pakietu qobitree należy ze strony CTAN pobrać  paczkę z plikami projektu i skopiować z niej plik qobitree.tex do katalogu w którym chcemy skompilować nasz plik z drzewem. Uzycie qobitree.tex należy następnie zadeklarować w preambule dokumentu poleceniem:

\input{qobitree}

Przy budowaniu drzewa wykorzystujemy polecenia \leaf oraz \branch. Kolejne polecenia \leaf umieszczają na stosie swoje parametry, a polecenia \branch zdejmują ze stosu wskazaną pierwszym argumentem liczbę obiektów i łączą je ukośnymi liniami; graf jest budowany w odwrotnej kolejności.

Polecenie \tree generuje drzewo.

Przykłady:

\leaf{abc}
\leaf{def}
\branch{2}{ghi}
\tree

qobitree1

 

\leaf{a}
\leaf{b}
\leaf{c}
\branch{3}{$\alpha$}

qobitree2

\leaf{abc}
\leaf{def}
\leaf{ghi}
\leaf{jkl}
\leaf{mno}
\branch{2}{$\alpha$}
\branch{3}{$\gamma$}

qobitree3

Przetestuj

OPEN

Pobierz

(przygotował: Włodzimierz Macewicz, redakcja: PŁ)

forest

O pakiecie

Pakiet forest pozwala na rysowanie prostych schematów o strukturze drzewa. Pakiet ten jest bardzo rozbudowany – poniżej zostały opisane tylko podstawowe opcje. Aby rozpocząć pracę do preambuły dokumentu dodajemy polecenie:

\usepackage{forest}

Polecenia

Drzewa budujemy przy pomocy otoczenia forest. Struktura drzewa jest tworzona przy pomocy nawiasów kwadratowych – każdy element drzewa otoczony jest parą takich nawiasów. Poprzez ich odpowiednie zagnieżdżanie otrzymujemy strukturę drzewiastą.

Najprostsze drzewo binarne będzie miało postać:

\begin{forest}
[A [B] [C] ]
\end{forest}

Należy pamiętać o tym, aby całe drzewo umieszczać w nawiasach kwadratowych (zaznaczone powyżej pogrubieniem).

Aby dodać kolejne rozgałęzienia do elementów B i C umieszczamy węzły wewnątrz nawiasów kwadratowych, które te elementy ograniczają:

\begin{forest}
 [A [B [D] [E]] [C [F] [G] ] ]
\end{forest}

draw

Pakiet pozwala na tworzenie drzew o dowolnej liczbie rozgałęzień – nie musimy ograniczać się wyłącznie do drzew binarnych.

\documentclass{article}
 \usepackage{forest}
 \begin{document}
 \begin{forest}
 [A
 [B
 [D]
 [E]]
 [C
 [F]
 [G]
 [H
 [I] ] ]
 ]
 \end{forest}
 \end{document}

forest

Wewnątrz otoczenia forest możemy używać podstawowych poleceń formatujących tekst – pogrubienia, kursywy czy podkreślenia.

Nie możemy używać poleceń łamiących linie tekstu, dlatego pakiet ten nadaje się raczej do budowania drzew o węzłach w postaci krótkich ciągów znaków.

 

Podstawowe opcje

Wyrównanie węzła do pierwszego/ostatniego węzła – po przecinku używamy opcji calign:

[<dowolny węzeł>, calign=<first,last>]

Wyrównanie do pierwszego/ostatniego węzła dla całego drzewa:

[<korzeń drzewa>, for tree={calign=<fisrt/last>}]

Jeżeli chcemy, aby wszystkie liście w naszym drzewie znajdowały się na tym samym poziomie (bez względu na długość gałęzi, na której się znajdują) musimy użyć opcji tier. Elementy, które mają znajdować się na tym samym poziomie musimy oznaczyć etykietą tier z takim samym argumentem (w przykładzie poniżej jest to etykieta „word”).

\documentclass{article}
\usepackage{forest}
\begin{document}
\begin{forest} 
[VP
[DP[John,tier=word]]
[V'
[V[sent,tier=word]]
[DP[Mary,tier=word]]
[DP[D[a,tier=word]][NP[letter,tier=word]]]
]
]
\end{forest}
\end{document}

tier2

Dowolny węzeł naszego drzewa możemy otoczyć okręgiem/elipsą/prostokątem poprzez dodanie odpowiedniego argumentu po przecinku:

[A, <circle/ellipse/rectangle>, draw]
\documentclass{article}
\usepackage{forest}
 \begin{document}
 \begin{forest}
 [AAA, circle, draw [BBB, ellipse, draw] [CCC, rectangle, draw]]
 \end{forest}
 \end{document}

tier

 

Kompilacja

  • pdflatex

 

Pobierz

OPEN

(przygotowała: Katarzyna Paluszkiewicz)

 

 

 

qtree

O pakiecie

qtree jest bardzo wygodnym pakietem do rysowania drzew. Co istotne, umożliwia on skład wielowierszowy na poszczególnych węzłach.

Polecenia

Drzewo zawarte jest wewnątrz polecenia \Tree [ ]. Korzeń drzewa oznaczamy kropką i oddzielamy od liści spacjami. Najprostsze drzewo z dwoma liśćmi wygenerujemy następującym poleceniem (uwaga na spacje):

 \Tree [ .A a b ]

Drzewa możemy w sobie zagnieżdżać, jak w poniższym przykładzie:

\Tree [.A [ a b ] .B C ]

qtree1

info

Jeśli chcesz umieścić na węźle więcej niż jeden wiersz, użyj następującej składni:

\Tree [ .{wiersz 1\\wiersz 2\\wiersz 3} a b ]

Węzeł jest ujęty w nawiasy klamrowe, a poszczególne wiersze oddzielone są znakiem \\

Opcje

  • Aby zmodyfikować rozmiar i wygląd utworzonego drzewa możemy użyć modyfikatora !qsetw{wartość}, który określa długość gałęzi. Jego działanie można prześledzić na poniższych przykładach:
\Tree [.A [ a b ] .B !\qsetw{4cm} C ]
\Tree [.A [ a b ] .B !\qsetw{0.5cm} C ]

qtree2

  • Aby przeskalować całe drzewo można wykorzystać polecenie \scalebox{wartość}{twoje drzewo}
  • Kolejnym poleceniem, na które warto zwrócić uwagę jest !{\qbalance}, które wyrównuje wszystkie gałęzie w drzewie. Jego działanie można prześledzić na poniższych przykładach:
\Tree [.X leaf_1 [.Y leaf_2 [.Z leaf_3 last ] ] ]

Tree [.X leaf_1 [.Y leaf_2 [.Z leaf_3 last !{\qbalance} ] ] ]

qtree3

Przetestuj

\documentclass{article}
\usepackage{qtree}
\begin{document}
\Tree [.A [ a b ] .B C ]
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\vspace{1cm}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\Tree [.A [ a b ] .B !\qsetw{4cm} C ]
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\vspace{1cm}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\Tree [.A [ a b ] .B !\qsetw{0.5cm} C ]
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\vspace{1cm}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\Tree [.A [ a !\qsetw{6cm} b ] .B !\qsetw{1cm} C ]
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\vspace{1cm}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\Tree [.A [ a !\qsetw{6cm} b ] .B !\qsetw{9cm} C ]
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\vspace{1cm}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\Tree [.X leaf_1 [.Y leaf_2 [.Z leaf_3 last ] ] ]
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\vspace{1cm}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\Tree [.X leaf_1 [.Y leaf_2 [.Z leaf_3 last !{\qbalance} ] ] ]
\end{document}

Wynik [PDF]

Kompilacja

  • latex
  • pdflatex

Pobierz

OPEN

(przygotował: Paweł Łupkowski)