> 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/ru/risunki-i-tablicy/05-tikz-package.md).

# Пакет TikZ

## Введение

[Ti*к*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]{Точка пересечения};
\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/d620e1b765f170a0760fd4d519cd3d02b05f34e7)

В этом примере нарисованы две линии и одна точка. Чтобы добавить линию, используется команда `\draw[gray, thick]` задаёт графический элемент, чьи *цвет* равно `серый` и с `толстой` линией. Линия на самом деле определяется двумя своими конечными точками, `(-1,2)` и `(2,-4)`, соединёнными `--`.

Это *точкой* на самом деле является `окружностью` , нарисованной с помощью `\filldraw[black]`, эта команда не только рисует окружность, но и заполняет её чёрным цветом. В этой команде указываются центральная точка `(0,0)` и радиус `(2pt)` . Рядом с точкой находится `узел`, который на самом деле является рамкой, содержащей текст `точка пересечения`, и закреплённой у `запада` точки.

Важно обратить внимание на точку с запятой `;` , используемую в конце каждой `команды` команды.

Примечание:  `среда tikzfigure` может быть заключена внутри среды figure или аналогичной. См. [Вставка изображений](/latex/ru/drugie-temy/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/8f745b3f887a943bbe25caca14c26f373543ba57)

В этом примере есть три базовые команды:

* **`\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/cc92fc299bf933c0d6a5534878d7616092684181)

* **`\filldraw[color=red!60, fill=red!5, very thick](-1,0) circle (1.5);`**: Эта команда использовалась в предыдущем разделе для рисования *точкой*, но в этом случае внутри квадратных скобок есть несколько дополнительных параметров. Они объясняются ниже:
  * **`color=red!60`**: Цвет кольца вокруг окружности установлен на 60% красного (светлее, чем «чистый» красный). См. [справочное руководство](#reference-guide) для списка стандартных цветов, доступных в LaTeX; также см. [Использование цветов в LaTeX](/latex/ru/formatirovanie/13-using-colors-in-latex.md) чтобы узнать, как создавать собственные цвета.
  * **`fill=red!5`**: Окружность заполнена ещё более светлым оттенком красного.
  * **`very thick`**: Этот параметр задаёт толщину линии. См. [справочное руководство](#reference-guide) полный список значений.
* **`\fill[blue!50] (2.5,0) ellipse (1.5 and 0.5);`**: Чтобы создать эллипс, укажите центральную точку `(2.5,0)`, а также два радиуса: горизонтальный и вертикальный (`1.5` и `0.5` соответственно). Также обратите внимание на команду `fill` вместо `команды` или 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/14112c25e6f4c1f374bea111a3b0dddf1cead6b9)

* **`\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},
]
%Узлы
\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};

%Линии
\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/4037022cf953aa2164447c8a738b1184112b920a)

По сути, в этой фигуре есть три команды: определение узла, объявление узла и линии, соединяющие два узла.

* **`roundnode/.style={circle, draw=green!60, fill=green!5, very thick, minimum size=7mm}`**: Передаётся как параметр в `tikzpicture` среду. Он определяет узел, на который будет ссылаться `roundnode`: этот узел будет кругом, внешнее кольцо которого будет нарисовано цветом `green!60` и будет заполнено с использованием `green!5`. Толщина линии будет `very thick` и его `минимальный размер` равно `7mm`. Строка ниже определяет второй узел прямоугольной формы под названием `squarednode`, с использованием похожих параметров.
* **`\node[squarednode] (maintopic) {2};`**: Это создаст `squarednode`, как было определено в предыдущей команде. Этот узел будет иметь идентификатор `maintopic` и будет содержать число `2`. Если оставить внутри фигурных скобок пустое место, текст отображаться не будет.
* **`[above=of maintopic]`**: Обратите внимание, что у всех узлов, кроме первого, есть дополнительный параметр, определяющий их положение относительно других узлов. Например, `[above=of maintopic]` означает, что этот узел должен появиться над узлом с именем `maintopic`. Чтобы эта система позиционирования работала, нужно добавить `\usetikzlibrary{positioning}` в преамбулу. Без `библиотеки` позиционирования можно использовать синтаксис `above of=maintopic` вместо него, но синтаксис `библиотеки` более гибкий и мощный: его можно расширить и написать `above=**3cm** of maintopic` то есть управлять фактическим расстоянием от `maintopic`.
* **`\draw[->] (uppercircle.south) -- (maintopic.north);`**: Будет нарисована прямая линия в виде стрелки. Синтаксис уже был объяснён в [разделе базовых элементов](#basic-elements-points-lines-and-paths) . Единственное отличие — это способ, которым мы задаём конечные точки линии: с помощью ссылки на узел (поэтому мы и дали им имена) и положения относительно узла.

## Справочное руководство

Возможные параметры цвета и толщины в `tikz` пакета:

| параметр | значения                                                                | picture                                                              |
| -------- | ----------------------------------------------------------------------- | -------------------------------------------------------------------- |
| цвет     | белый, чёрный, красный, зелёный, синий, циан, пурпурный, жёлтый         | ![BasicColours.png](/files/7542abaf65c75c1f7e7ee29d65e1b08dd2445609) |
| толщина  | сверхтонкий, очень тонкий, тонкий, толстый, очень толстый, сверхтолстый | ![Thickness.png](/files/bce7fc2c56d24db8b0c455a5be1ec65eaa22763b)    |

В вашей дистрибуции LaTeX могут быть доступны и другие цвета. См. [Использование цветов в LaTeX](/latex/ru/formatirovanie/13-using-colors-in-latex.md)

## Дополнительное чтение

Для получения дополнительной информации см.:

* [Использование цветов в LaTeX](/latex/ru/formatirovanie/13-using-colors-in-latex.md)
* [Пакет Pgfplots](/latex/ru/specializirovannye/08-pgfplots-package.md)
* [Вставка изображений](/latex/ru/drugie-temy/27-inserting-images.md)
* [Списки таблиц и рисунков](/latex/ru/risunki-i-tablicy/03-lists-of-tables-and-figures.md)
* [Размещение изображений и таблиц](/latex/ru/risunki-i-tablicy/02-positioning-images-and-tables.md)
* [Рисование диаграмм непосредственно в LaTeX](/latex/ru/risunki-i-tablicy/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/ru/risunki-i-tablicy/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.
