> 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/podrobnye-stati/26-how-to-draw-vector-graphics-using-tikz-in-latex.md).

# Как рисовать векторную графику с помощью TikZ в LaTeX

**Автор: Cody Herring (май 2013)**

### Процедурная графика в LaTeX: основы

Традиционно графика представляется в виде растровых изображений с глубиной цвета от 1 бита (чёрно-белое) до 24 бит (true color). Это позволяет просто отображать графику на традиционном (прямоугольном) экране компьютера. Однако бывает трудно и утомительно создавать растровые изображения, которые точно отображают то, что должно быть показано в документе или на бумаге.

Процедурная графика помогает в этом, позволяя использовать более чётко определённую и легко понятную систему, такую как Scalable Vector Graphics (SVG). Определяя векторы, линии и формы вместо отдельных пикселей, можно легко создавать изображения разных размеров, соотношений сторон, плотности пикселей, качеств печати и многого другого. В этом руководстве даётся краткое введение в процедурную графику с использованием Portable Graphics Format и TikZ:

* **Формат портируемой графики** (PGF) — это базовый набор инструментов, позволяющий создавать простые графики и рисунки;
* **TikZ** — это расширение PGF, которое позволяет использовать множество заранее подготовленных фигур.

Подробную документацию по TikZ и PGF можно найти в [Руководстве PGF](http://mirrors.ctan.org/graphics/pgf/base/doc/pgfmanual.pdf).

### Использование PGF и TikZ

Чтобы использовать пакет TikZ, его нужно подключить:

```latex
\usepackage{tikz}
```

Чтобы рисовать изображения,  `tikzpicture` необходимо использовать окружение:

```latex
\begin{tikzpicture}
команды вставляются здесь
\end{tikzpicture}
```

### Базовое рисование

TikZ позволяет рисовать множество разных форм и путей. Ниже будут показаны некоторые базовые приёмы рисования. Эти приёмы можно комбинировать для создания более сложных рисунков.

#### Прямые линии

Прямую линию от одной точки до другой можно нарисовать с помощью `\draw` команды в системе координат X/Y (горизонтальная/вертикальная), например так:

```latex
\begin{tikzpicture}
\draw (5,0) -- (-5, 0);
\end{tikzpicture}
```

Несколько `\draw` вызовов также можно объединять в цепочку. Это рисует набор осей от -5 до +5 по оси X и от -2 до +2 по оси Y.

```latex
\begin{tikzpicture}
\draw   (5,0) -- (-5, 0)
        (0,2) -- (0,-2);
\end{tikzpicture}
```

![TikZFigure 1.png](/files/5a911b3c009727acdc8976290808cfe1543d4c4a)

К этим линиям можно применить стили, добавив дополнительные параметры. Вот та же диаграмма, но с зелёными пунктирными очень толстыми линиями, повернутыми на 15 градусов против часовой стрелки:

```latex
\begin{tikzpicture}
\draw[green, dotted, ultra thick, rotate=15]
        (5,0) -- (-5, 0)
        (0,2) -- (0,-2);
\end{tikzpicture}
```

![TiKZFigure 2.png](/files/b1e2f8459ace1afa62350131e9dc1e86bb640eb5)

#### Изменение размера диаграммы

Иногда размер диаграммы по умолчанию слишком большой или слишком маленький. Использование `scale` параметра при объявлении `tikzpicture` окружения позволяет задавать разные размеры, сохраняя те же пропорции:

```latex
\begin{tikzpicture}[scale=0.3]
\draw   (5,0) -- (-5, 0)
        (0,2) -- (0,-2);
\end{tikzpicture}
```

Следующее изображение показывает результат до и после применения `[scale=0.3]`:

![TiKZFigure 3.png](/files/8ef3e5f6634350e5a09bc53d0d081d8572fc8f3f)

#### Добавление наконечников стрелок

Стрелки могут быть полезны для графиков и диаграмм, и их легко добавить в рисунок TikZ. Можно использовать ранее показанные стили, а также несколько разных наконечников стрелок.

```latex
\begin{tikzpicture}
\draw[->](0,0) -- (5,0);
\end{tikzpicture}

\begin{tikzpicture}
\draw[<<->>](0,0) -- (5,0);
\end{tikzpicture}

\begin{tikzpicture}
\draw[<<->>, ultra thick, blue](0,0) -- (5,0);
\end{tikzpicture}

\begin{tikzpicture}
\draw[|->>, thick, red](0,0) -- (5,0);
\end{tikzpicture}
```

![TiKZFigure 4.png](/files/3554162b53a55dce4ba72982235db32246657e42)

### Рисование кривых

Самый простой способ нарисовать кривую в TikZ — указать начальную и конечную точки, а также желаемый угол выхода из начальной точки и входа в конечную точку.

```latex
\begin{tikzpicture}
\draw[ultra thick]
(0,0) to [out=75,in=135](3,4);
\end{tikzpicture}
```

![TiKZFigure 5.png](/files/ecb41a40ceaf84c28ea0552094afca9fa555ec8f)

Гораздо более сложные диаграммы также можно создавать с помощью цепочек вызовов. PGF будет пытаться рисовать максимально плавные линии, используя заданные направления.

```latex
\begin{tikzpicture}
\draw[ultra thick]
(0,0)
to [out=90,in=180] (2,2)
to [out=270,in=0](0,0)
to [out=0,in=90](2,-2)
to [out=180,in=270](0,0)
to [out=270,in=0](-2,-2)
to [out=90,in=180](0,0)
to [out=180,in=270](-2,2)
to [out=0,in=90](0,0);
\end{tikzpicture}
```

![TIkZFigure 6.png](/files/180c1f4562a269103096845b946537eb5379c881)

### Заключение

У векторной графики нет предела возможностям, а её ценность в том, что она позволяет создавать масштабируемые, легко редактируемые диаграммы и изображения, — это большая находка для пользователей LaTeX, ищущих простой способ использовать графику. Этот пост лишь слегка затрагивает то, что возможно, но должен стать хорошим введением в возможности векторной графики и окружения TikZ/PGF.

Дополнительные ресурсы:

* [Краткое введение в TikZ](http://cremeronline.com/LaTeX/minimaltikz.pdf);
* [Документация CTAN по TikZ и PGF](http://mirrors.ctan.org/graphics/pgf/base/doc/pgfmanual.pdf);
* [Страница wiki Learn от Overleaf](/latex/ru/risunki-i-tablicy/05-tikz-package.md).


---

# 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/podrobnye-stati/26-how-to-draw-vector-graphics-using-tikz-in-latex.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.
