Przejdź do treści

Węzły, strzałki i diagramy w TikZ

Umieść każdą ramkę za pomocą \node[draw] (name) {text};, ustaw kolejne biblioteką positioning (right=of name) i połącz je poleceniem \draw[->] (a) -- (b);.

Węzły

Węzeł to fragment tekstu w danym punkcie, opcjonalnie z ramką. draw nadaje mu obrys, fill tło, a circle lub ellipse okrągły kształt (rectangle jest domyślny). Nazwa w nawiasach okrągłych pozwala później odwołać się do węzła.

Węzły z kształtami, wypełnieniami i rozmiarami

LaTeXPreambuła: \usepackage{tikz}Otwórz w edytorze (otwiera się w nowej karcie)
\begin{tikzpicture}
  \node[draw] (a) at (0,0) {plain box};
  \node[draw, rounded corners, fill=blue!10] (b) at (3,0) {rounded};
  \node[draw, circle, fill=yellow!40] (c) at (5.5,0) {44};
  \node[draw, ellipse] (d) at (8,0) {ellipse};
  \node[draw, minimum width=2.5cm, minimum height=1cm] at (1,-1.6) {fixed size};
  \node[draw, text width=2.6cm, align=center] at (5,-1.6) {text that wraps onto two lines};
\end{tikzpicture}

Strzałki między węzłami

\draw[->] (a) -- (b); rysuje strzałkę od węzła a do węzła b. Linia zaczyna się i kończy na krawędziach węzłów, a nie w ich środkach. -| i |- rysują połączenia pod kątem prostym.

Mały schemat blokowy z biblioteką positioning

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{positioning, arrows.meta}
\begin{document}
\begin{tikzpicture}[
    node distance=1.2cm and 1.6cm,
    box/.style={draw, rounded corners, fill=blue!8, minimum width=2.2cm, minimum height=0.8cm},
    >={Stealth},
  ]
  \node[box] (in) {Read data};
  \node[box, right=of in] (clean) {Clean};
  \node[box, right=of clean] (fit) {Fit model};
  \node[draw, circle, below=of clean] (ok) {OK?};
  \draw[->] (in) -- (clean);
  \draw[->] (clean) -- (fit);
  \draw[->] (fit) |- (ok);
  \draw[->] (ok) -| node[pos=0.75, left] {no} (in);
\end{tikzpicture}
\end{document}

right=of in umieszcza węzeł na prawo od in, w odległości node distance. Pozostałe kierunki to left, above, below oraz przekątne, takie jak above right. right=2cm of in ustawia odległość dla jednego węzła.

Etykiety na strzałkach i węzłach

node zapisany w środku ścieżki stanowi jej etykietę. above, below, left, right ustawiają stronę, a midway, near start, near end lub pos=0.3 położenie wzdłuż ścieżki. label=below:text dodaje etykietę do węzła.

Diagram stanów z zakrzywionymi, opisanymi krawędziami

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{positioning, arrows.meta}
\begin{document}
\begin{tikzpicture}[state/.style={draw, circle, minimum size=1cm}, >={Stealth}, node distance=2.4cm]
  \node[state, label=below:start] (s0) {$q_0$};
  \node[state, right=of s0] (s1) {$q_1$};
  \node[state, right=of s1, fill=green!15] (s2) {$q_2$};
  \draw[->] (s0) to[bend left] node[above] {$a$} (s1);
  \draw[->] (s1) to[bend left] node[below] {$b$} (s0);
  \draw[->] (s1) -- node[above] {$a$} (s2);
\end{tikzpicture}
\end{document}

Kotwice

Każdy węzeł ma na krawędzi kotwice: north, south, east, west oraz narożniki, takie jak north east. (box.north) to punkt na środku górnej krawędzi box.

Strzałki z kotwic węzła

LaTeXPreambuła: \usepackage{tikz}Otwórz w edytorze (otwiera się w nowej karcie)
\begin{tikzpicture}
  \node[draw, minimum width=3cm, minimum height=1cm] (box) {Server};
  \draw[->] (box.north) -- ++(0,0.7) node[above] {north};
  \draw[->] (box.east) -- ++(1,0) node[right] {east};
  \draw[->] (box.south west) -- ++(-0.6,-0.6) node[below left] {south west};
  \node[anchor=west] at (box.south east) {\small (anchor=west)};
\end{tikzpicture}

anchor=west w węźle umieszcza go tak, że jego zachodnia kotwica leży w podanym punkcie.

Groty strzałek

OpcjaGrotW Scissor LaTeX
->, <-, <->domyślny grot TikZDziała
-stealth, -latexklasyczne groty stealth i LaTeXDziała
-{Stealth}, -{Latex} (arrows.meta)nowsze grotyDziała
|-|kreska na każdym końcuDziała
>={Stealth} w rysunkugrot używany przez ->Działa
opcje grotów, takie jak -{Stealth[length=3mm]}rozmiary i kształty grotuCzęściowo: grot jest rysowany w domyślnym rozmiarze

Rozmiary grotów są bliskie TikZ, ale nie identyczne.

Czego brakuje

Te funkcje kompilują się w instalacji TeX, ale nie tutaj. Większość z nich jest zgłaszana w karcie Problemy.

FunkcjaCo dzieje się w Scissor LaTeXCo napisać zamiast tego
\matrix (i matrix of nodes)Cały rysunek staje się przerywaną ramką z komunikatemUmieść węzły za pomocą at (x,y) lub positioning
\picCały rysunek staje się przerywaną ramką z komunikatemPowtórz rysunek w scope z shift
dekoracje (decorate, decoration=...)Pomijane z komunikatem; ścieżka jest rysowana bez nichZwykła lub przerywana ścieżka
kształty węzłów z shapes.geometric (diamond, trapezium ...)Rysowane jako prostokąt, z komunikatemrectangle, circle lub ellipse
linie doublePomijane z komunikatemDwa węzły lub dwie ścieżki
to[loop above] (pętla na jednym węźle)Pętla nie jest rysowana i nie ma komunikatu; jej etykieta leży na węźlearc lub krzywa .. controls .. od krawędzi węzła
pin=Tekst przypinki jest widoczny, ale bez liniilabel=
pos= na ścieżce -| lub |-Etykieta jest umieszczana tylko wzdłuż drugiego odcinka, więc pos=0.25 trafia blisko narożnikaOpisz drugi odcinek z pos=0.75 albo podziel ścieżkę na dwie
tikz-cd, circuitikz, forestRysunek jest pomijany z komunikatemProsty TikZ lub obraz

\matrix staje się symbolem zastępczym

LaTeXPreambuła: \usepackage{tikz}Otwórz w edytorze (otwiera się w nowej karcie)
\begin{tikzpicture}
  \matrix[draw] {
    \node {a}; & \node {b}; \\
    \node {c}; & \node {d}; \\
  };
\end{tikzpicture}

Karta Problemy: \matrix in a picture is not supported yet

Węzeł w kształcie rombu jest rysowany jako prostokąt

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{shapes.geometric}
\begin{document}
\begin{tikzpicture}
  \node[draw, diamond] at (0,0) {Yes?};
  \node[draw, ellipse] at (2.5,0) {ellipse works};
\end{tikzpicture}
\end{document}

Karta Problemy: TikZ node option 'diamond' is not supported yet

Dokumentacja TikZ (w pakiecie PGF) opisuje węzły, bibliotekę positioning i groty strzałek: ctan.org/pkg/pgf. Kształty i ścieżki opisuje strona rysunków w TikZ.

Zobacz też Podstawy TikZ, TikZ i Rysunki i obrazy.

Pytania i odpowiedzi

Jak narysować schemat blokowy w LaTeX?

Użyj węzłów TikZ z draw jako ramek, biblioteki positioning (right=of a, below=of b) do ich rozmieszczenia i \draw[->] (a) -- (b); do strzałek.

Jak umieścić tekst na strzałce w TikZ?

Wpisz węzeł w środek ścieżki: \draw[->] (a) -- node[above] {text} (b);.

Czy tikz-cd działa w Scissor LaTeX?

Jeszcze nie. Diagram tikzcd jest pomijany z komunikatem. Zamiast tego rysuj proste diagramy z węzłów i strzałek.

Każdy przykład na tej stronie jest składany przez Scissor LaTeX podczas budowania witryny. Ostatnia aktualizacja: 2026-11-07.