> For the complete documentation index, see [llms.txt](https://overleaf-pro.ayaka.space/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://overleaf-pro.ayaka.space/latex/uk/risunki-ta-tablici/05-tikz-package.md).

# Пакет TikZ

## Вступ

[Ti*k*Z](https://en.wikipedia.org/wiki/PGF/TikZ) ймовірно, є найскладнішим і найпотужнішим інструментом для створення графічних елементів у LaTeX. Починаючи з простого прикладу, ця стаття знайомить із деякими базовими поняттями: малюванням ліній, точок, кривих, кіл, прямокутників тощо.

Спочатку підключіть `tikz` пакет, додавши рядок `\usepackage{tikz}` у преамбулі вашого документа, а потім намалюйте графіку за допомогою `tikzpicture` середовищі.

```latex
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\draw[gray, thick] (-1,2) -- (2,-4);
\draw[gray, thick] (-1,-1) -- (2,2);
\filldraw[black] (0,0) circle (2pt) node[anchor=west]{Intersection point};
\end{tikzpicture}
\end{document}
```

[Відкрити цей приклад в Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=First+TikZ+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Btikz%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Btikzpicture%7D%0A%5Cdraw%5Bgray%2C+thick%5D+%28-1%2C2%29+--+%282%2C-4%29%3B%0A%5Cdraw%5Bgray%2C+thick%5D+%28-1%2C-1%29+--+%282%2C2%29%3B%0A%5Cfilldraw%5Bblack%5D+%280%2C0%29+circle+%282pt%29+node%5Banchor%3Dwest%5D%7BIntersection+point%7D%3B%0A%5Cend%7Btikzpicture%7D%0A%5Cend%7Bdocument%7D)

Цей приклад дає такий результат:

![OLV2tikz1.png](/files/3ef2d138b2188deedd3b42bb045b93f8f7046fd3)

У цьому прикладі намальовано дві лінії та одну точку. Щоб додати лінію, команда `\draw[gray, thick]` визначає графічний елемент, колір якого *колір* є `сірий` і з `товстим` штрихом. Лінія фактично визначається двома кінцевими точками, `(-1,2)` та `(2,-4)`з’єднаними за допомогою `--`.

Функція *точка* фактично є `коло` намальоване за допомогою `\filldraw[black]`ця команда не лише намалює коло, а й заповнить його чорним кольором. У цій команді центральну точку `(0,0)` і радіус `(2pt)` задано. Поруч із точкою є `вузол`, який фактично є рамкою, що містить текст `точка перетину`, і закріплена на `західній стороні` точки.

Важливо зауважити крапку з комою `;` яку ставлять наприкінці кожної `команди draw` команду.

Примітка: `tikzfigure` середовище може бути вкладене в середовище figure або подібне середовище. Див. [Вставлення зображень](/latex/uk/inshi-temi/27-inserting-images.md) статтю для докладнішої інформації з цієї теми.

## Базові елементи: точки, лінії та шляхи

У цьому розділі ми наведемо кілька прикладів, що показують, як створювати деякі базові графічні елементи, які можна комбінувати для побудови складніших фігур.

```latex
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}

\draw (-2,0) -- (2,0);
\filldraw [gray] (0,0) circle (2pt);
\draw (-2,-2) .. controls (0,0) .. (2,-2);
\draw (-2,2) .. controls (-1,0) and (1,0) .. (2,2);

\end{tikzpicture}
\end{document}
```

[Відкрити цей приклад в Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Second+TikZ+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Btikz%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Btikzpicture%7D%0A%0A%5Cdraw+%28-2%2C0%29+--+%282%2C0%29%3B%0A%5Cfilldraw+%5Bgray%5D+%280%2C0%29+circle+%282pt%29%3B%0A%5Cdraw+%28-2%2C-2%29+..+controls+%280%2C0%29+..+%282%2C-2%29%3B%0A%5Cdraw+%28-2%2C2%29+..+controls+%28-1%2C0%29+and+%281%2C0%29+..+%282%2C2%29%3B%0A%0A%5Cend%7Btikzpicture%7D%0A%5Cend%7Bdocument%7D)

Цей приклад дає такий результат:

![OLV2tikz2.png](/files/8bbe9a6a404f7f35bd724ba3db1487c88f1f0254)

У цьому прикладі є три базові команди:

* **`\draw (-2,0) -- (2,0);`**: Це визначає лінію, кінцеві точки якої є `(-2,0)` та `(2,0)`.
* **`\filldraw [gray] (0,0) circle (2pt);`**: Точка створюється як дуже маленьке `сірий` `коло` з центром у `(0,0)` і радіус якої дорівнює `(2pt)`. `\filldraw` команда використовується для малювання елементів і заповнення їх певним кольором. Див. наступний розділ для інших прикладів.
* **`\draw (-2,2) .. controls (-1,0) and (1,0) .. (2,2);`**: Малює [криву Безьє](https://en.wikipedia.org/wiki/B%C3%A9zier_curve). Її визначають 4 точки: `(-2,2)` та `(2,2)` є її кінцевими точками, `(-1,0)` та `(1,0)` є [*керувальні точки*](https://en.wikipedia.org/wiki/Control_point_\(mathematics\)) які визначають «наскільки вона вигнута». Можна уявляти ці дві точки як «точки-притягувачі».

## Базові геометричні фігури: кола, еліпси та багатокутники

Геометричні фігури можна будувати з простіших елементів, тож почнімо з кіл, еліпсів і дуг.

```latex
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\filldraw[color=red!60, fill=red!5, very thick](-1,0) circle (1.5);
\fill[blue!50] (2.5,0) ellipse (1.5 and 0.5);
\draw[ultra thick, ->] (6.5,0) arc (0:220:1);
\end{tikzpicture}
\end{document}
```

[Відкрити цей приклад в Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Third+TikZ+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Btikz%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Btikzpicture%7D%0A%5Cfilldraw%5Bcolor%3Dred%2160%2C+fill%3Dred%215%2C+very+thick%5D%28-1%2C0%29+circle+%281.5%29%3B%0A%5Cfill%5Bblue%2150%5D+%282.5%2C0%29+ellipse+%281.5+and+0.5%29%3B%0A%5Cdraw%5Bultra+thick%2C+-%3E%5D+%286.5%2C0%29+arc+%280%3A220%3A1%29%3B%0A%5Cend%7Btikzpicture%7D%0A%5Cend%7Bdocument%7D)

Цей приклад дає такий результат:

![TikzEx3.png](/files/6cf675604b348038c0eb06801a71f76ed23fbd5f)

* **`\filldraw[color=red!60, fill=red!5, very thick](-1,0) circle (1.5);`**: Цю команду було використано в попередньому розділі для малювання *точка*, але в цьому випадку в дужках є деякі додаткові параметри. Нижче вони пояснені:
  * **`color=red!60`**: Колір обвідки навколо кола встановлено на 60% червоного (світліший за «чистий» червоний). Див. [довідковий посібник](#reference-guide) для списку стандартних кольорів, доступних у LaTeX; також див. [Використання кольорів у LaTeX](/latex/uk/formatuvannya/13-using-colors-in-latex.md) щоб дізнатися, як створювати власні кольори.
  * **`fill=red!5`**: Коло заповнено ще світлішим відтінком червоного.
  * **`дуже товстий`**: Цей параметр визначає товщину штриха. Див. [довідковий посібник](#reference-guide) повний список значень.
* **`\fill[blue!50] (2.5,0) ellipse (1.5 and 0.5);`**: Щоб створити еліпс, задайте центральну точку `(2.5,0)`, і два радіуси: горизонтальний і вертикальний (`1.5` та `0.5` відповідно). Також зверніть увагу на команду `fill` замість `команди draw` або filldraw, оскільки в цьому випадку немає потреби керувати зовнішнім і внутрішнім кольорами.
* **`\draw[ultra thick, ->] (6.5,0) arc (0:220:1);`**: Ця команда намалює дугу, що починається в `(6.5,0)`. Додатковий параметр `->` вказує, що дуга матиме стрілку на кінці. Окрім початкової точки, потрібно вказати ще три значення: початковий і кінцевий кути та радіус; тут ці три значення параметрів подано у форматі `(0:220:1)`.

Окрім криволінійних геометричних фігур, можна також створювати елементи, що використовують прямі лінії, за подібним синтаксисом:

```latex
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\draw[blue, very thick] (0,0) rectangle (3,2);
\draw[orange, ultra thick] (4,0) -- (6,0) -- (5.7,2) -- cycle;
\end{tikzpicture}
\end{document}
```

[Відкрити цей приклад в Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Fourth+TikZ+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Btikz%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Btikzpicture%7D%0A%5Cdraw%5Bblue%2C+very+thick%5D+%280%2C0%29+rectangle+%283%2C2%29%3B%0A%5Cdraw%5Borange%2C+ultra+thick%5D+%284%2C0%29+--+%286%2C0%29+--+%285.7%2C2%29+--+cycle%3B%0A%5Cend%7Btikzpicture%7D%0A%5Cend%7Bdocument%7D)

Цей приклад дає такий результат:

![OLV2tikz4.png](/files/7137394964a6a253b006d200be46d26cdff3bc9e)

* **`\draw[blue, very thick] (0,0) rectangle (3,2);`**: Прямокутники створюються спеціальною командою `rectangle`. Потрібно вказати дві точки: перша — це місце, де «олівець» починає малювати прямокутник, а друга — це протилежна кутова точка по діагоналі.
* **`\draw[orange, ultra thick] (4,0) -- (6,0) -- (5.7,2) -- cycle;`**: Щоб намалювати багатокутник, ми будуємо *замкнений* шлях із прямих ліній: лінія від `(4,0)` на `(6,0)` і лінія від `(6,0)` на `(5.7,2)`. `cycle` команда означає, що початкова й кінцева точки мають збігатися, щоб утворити «замкнений» шлях (фігуру), що приводить до побудови останнього відрізка.

## Діаграми

Вузли, мабуть, є найуніверсальнішими елементами в TikZ. Ми вже використали один вузол у вступі — щоб додати текст до фігури. Наступний приклад використовує вузли для створення діаграми.

```latex
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{positioning}
\begin{document}
\begin{tikzpicture}[
roundnode/.style={circle, draw=green!60, fill=green!5, very thick, minimum size=7mm},
squarednode/.style={rectangle, draw=red!60, fill=red!5, very thick, minimum size=5mm},
]
%Nodes
\node[squarednode]      (maintopic)                              {2};
\node[roundnode]        (uppercircle)       [above=of maintopic] {1};
\node[squarednode]      (rightsquare)       [right=of maintopic] {3};
\node[roundnode]        (lowercircle)       [below=of maintopic] {4};

%Lines
\draw[->] (uppercircle.south) -- (maintopic.north);
\draw[->] (maintopic.east) -- (rightsquare.west);
\draw[->] (rightsquare.south) .. controls +(down:7mm) and +(right:7mm) .. (lowercircle.east);
\end{tikzpicture}
\end{document}
```

[Відкрити цей приклад в Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=More+advanced+TikZ+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Btikz%7D%0A%5Cusetikzlibrary%7Bpositioning%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Btikzpicture%7D%5B%0Aroundnode%2F.style%3D%7Bcircle%2C+draw%3Dgreen%2160%2C+fill%3Dgreen%215%2C+very+thick%2C+minimum+size%3D7mm%7D%2C%0Asquarednode%2F.style%3D%7Brectangle%2C+draw%3Dred%2160%2C+fill%3Dred%215%2C+very+thick%2C+minimum+size%3D5mm%7D%2C%0A%5D%0A%25Nodes%0A%5Cnode%5Bsquarednode%5D++++++%28maintopic%29++++++++++++++++++++++++++++++%7B2%7D%3B%0A%5Cnode%5Broundnode%5D++++++++%28uppercircle%29+++++++%5Babove%3Dof+maintopic%5D+%7B1%7D%3B%0A%5Cnode%5Bsquarednode%5D++++++%28rightsquare%29+++++++%5Bright%3Dof+maintopic%5D+%7B3%7D%3B%0A%5Cnode%5Broundnode%5D++++++++%28lowercircle%29+++++++%5Bbelow%3Dof+maintopic%5D+%7B4%7D%3B%0A%0A%25Lines%0A%5Cdraw%5B-%3E%5D+%28uppercircle.south%29+--+%28maintopic.north%29%3B%0A%5Cdraw%5B-%3E%5D+%28maintopic.east%29+--+%28rightsquare.west%29%3B%0A%5Cdraw%5B-%3E%5D+%28rightsquare.south%29+..+controls+%2B%28down%3A7mm%29+and+%2B%28right%3A7mm%29+..+%28lowercircle.east%29%3B%0A%5Cend%7Btikzpicture%7D%0A%5Cend%7Bdocument%7D)

Цей приклад дає такий результат:

![OLV2tikz5.png](/files/e55a1f6ce798164c208fe2f02bdd75dbcdfa897b)

По суті, у цій фігурі є три команди: визначення вузла, оголошення вузла та лінії, що з’єднують два вузли.

* **`roundnode/.style={circle, draw=green!60, fill=green!5, very thick, minimum size=7mm}`**: Передається як параметр до `tikzpicture` середовища. Воно визначає вузол, на який посилатимуться як на `roundnode`: цей вузол буде колом, зовнішнє кільце якого буде намальоване кольором `green!60` і буде заповнене за допомогою `green!5`. Контур буде `дуже товстий` а його `мінімальний розмір` є `7mm`. Рядок нижче визначає другий вузол прямокутної форми під назвою `squarednode`, використовуючи подібні параметри.
* **`\node[squarednode] (maintopic) {2};`**: Це створить `squarednode`, як це визначено в попередній команді. Цей вузол матиме ідентифікатор `maintopic` і міститиме число `2`. Якщо залишити порожній простір усередині фігурних дужок, текст не відображатиметься.
* **`[above=of maintopic]`**: Зверніть увагу, що всі вузли, крім першого, мають додатковий параметр, який визначає їхнє розташування відносно інших вузлів. Наприклад, `[above=of maintopic]` означає, що цей вузол має з’явитися над вузлом на ім’я `maintopic`. Щоб ця система позиціювання працювала, потрібно додати `\usetikzlibrary{positioning}` до преамбули. Без `positioning` бібліотеки, можна використовувати синтаксис `above of=maintopic` замість цього, але `positioning` синтаксис є більш гнучким і потужним: його можна розширити, щоб записувати `above=**3cm** of maintopic` тобто керувати фактичною відстанню від `maintopic`.
* **`\draw[->] (uppercircle.south) -- (maintopic.north);`**: Буде намальовано пряму лінію у вигляді стрілки. Цей синтаксис уже пояснено в [базових елементів](#basic-elements-points-lines-and-paths) розділі. Єдина відмінність полягає в способі запису кінцевих точок лінії: через посилання на вузол (саме тому ми їх назвали) і позицію відносно вузла.

## Довідник

Можливі параметри кольору та товщини в `tikz` пакета:

| параметр | значення                                                                            | picture                                                              |
| -------- | ----------------------------------------------------------------------------------- | -------------------------------------------------------------------- |
| color    | білий, чорний, червоний, зелений, синій, блакитний, пурпуровий, жовтий              | ![BasicColours.png](/files/4e3e7f336c19ac2a5a7d841eb050ff00b5c12310) |
| товщина  | надзвичайно тонкий, дуже тонкий, тонкий, товстий, дуже товстий, надзвичайно товстий | ![Thickness.png](/files/83c96887e92cf23fcd7548af5f6dff05c66fbc12)    |

У вашому дистрибутиві LaTeX можуть бути доступні й інші кольори. Див. [Використання кольорів у LaTeX](/latex/uk/formatuvannya/13-using-colors-in-latex.md)

## Додаткове читання

Докладніше див.:

* [Використання кольорів у LaTeX](/latex/uk/formatuvannya/13-using-colors-in-latex.md)
* [пакет Pgfplots](/latex/uk/specializovani/08-pgfplots-package.md)
* [Вставлення зображень](/latex/uk/inshi-temi/27-inserting-images.md)
* [Списки таблиць і рисунків](/latex/uk/risunki-ta-tablici/03-lists-of-tables-and-figures.md)
* [Розміщення зображень і таблиць](/latex/uk/risunki-ta-tablici/02-positioning-images-and-tables.md)
* [Малювання діаграм безпосередньо в LaTeX](/latex/uk/risunki-ta-tablici/04-picture-environment.md)
* [Посібник із пакетів TikZ і PGF](http://mirrors.ctan.org/graphics/pgf/base/doc/pgfmanual.pdf)
* [Приклади TikZ і PGF на TeXample.net](http://www.texample.net/tikz/examples/all/)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://overleaf-pro.ayaka.space/latex/uk/risunki-ta-tablici/05-tikz-package.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
