> 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/04-picture-environment.md).

# Рисование диаграмм непосредственно в LaTeX

## Введение

Встроенный в LaTeX `picture` окружение можно использовать для создания диаграмм/рисунков — вам не *нуждаются* нужно загружать какие-либо внешние пакеты, чтобы использовать его, но такие пакеты, как [`pict2e`](https://ctan.org/pkg/pict2e?lang=en) и [`picture`](https://ctan.org/pkg/picture) были написаны для расширения или улучшения его возможностей.

Эта статья дает краткое введение в `picture` окружение, и все примеры используют [`pict2e` пакет](https://ctan.org/pkg/pict2e?lang=en). Более подробная документация и ряд полезных примеров легко доступны в следующих источниках:

* [неофициальное справочное руководство по LaTeX2e](https://latexref.xyz/picture.html)
* [Не столь короткое введение в LaTeX2ε](https://tobi.oetiker.ch/lshort/lshort.pdf) (см. главу 5)
* [Wikibooks](https://en.wikibooks.org/wiki/LaTeX/Picture)
* [вопросы с тегом `picture-mode` на tex.stackexchange](https://tex.stackexchange.com/questions/tagged/picture-mode)
* [`pict2e` документация пакета](https://mirror.ox.ac.uk/sites/ctan.org/macros/latex/contrib/pict2e/pict2e.pdf)

По сравнению с мощными и сложными графическими инструментами, такими как [TikZ/PGF](https://en.wikipedia.org/wiki/PGF/TikZ), [MetaPost](https://tug.org/metapost.html), [PSTricks](https://ctan.org/topic/pstricks?lang=en) или [Asymptote](https://ctan.org/pkg/asymptote?lang=en) окружения `picture` окружение может показаться довольно ограниченным, но время от времени его может быть достаточно для ваших задач.

## Создание нового рисунка

Создание нового рисунка обычно включает следующие шаги:

1. определить размер единиц рисования, которые вы хотите использовать;
2. объявить `picture` окружение, которое определяет размер рисунка;
3. нарисовать отдельные графические компоненты с помощью `\put`, `\multiput` или `\qbezier` команд.

### Определите размер единиц рисования

Чтобы создать рисунок, обычно начинают с задания *единиц рисования* с помощью команды `\unitlength`, которую следует использовать вне `picture` окружения. Например, если вы напишете

```latex
\setlength{\unitlength}{1cm}
```

единицы рисования будут интерпретироваться как кратные 1 см. Единица по умолчанию — 1pt.

### Определите размер вашего рисунка

Общий вид `picture` окружения выглядит следующим образом

```latex
\begin{picture}(width, height)(Xoffset, Yoffset)
 ...
\end{picture}
```

где

* `ширина` и `высота` являются значениями в единицах `\unitlength`, которые определяют размер рисунка. LaTeX использует эти значения, чтобы создать коробку, размеры которой
  * ширина коробки (рисунка) = `ширина` × `\unitlength`
  * высота коробки (рисунка) = `высота` × `\unitlength`
* `(Xoffset, Yoffset)` — это необязательная координата, которая задает начало координат (нижний левый угол) рисунка, выраженное как *смещение* относительно местоположения по умолчанию. `Xoffset` и `Yoffset` также выражаются в единицах, определяемых текущим значением `\unitlength`.

Обратите внимание, что `Xoffset` и `Yoffset` не влияют на объем пространства, которое резервирует LaTeX; то есть на размеры коробки.

#### Понимание размеров рисунка

Мы создадим два рисунка, оба с использованием `\setlength{\unitlength}{1cm}` и каждый с `ширина` и `высота` размером 3 единицы.

В первом рисунке используется начало координат по умолчанию `(0,0)`:

```latex
\begin{picture}(3,3)
...
\end{picture}
```

во втором рисунке начало координат смещается на `(1,1)`:

```latex
\begin{picture}(3,3)(1,1)
...
\end{picture}
```

### Рисование графики

Графика создается с помощью последовательности `\put`, `\multiput`, или `\qbezier` команд, которые создают отдельные «компоненты» (или «объекты»), из которых строится рисунок или иллюстрация:

* `\put(x, y){*component*}` рисует `*component*` в позиции `(x, y)`.
* `\multiput(x, y)(dx, dy){n}{*component*}` рисует `*component*` `n` раз: начиная с позиции `(x, y)` и многократно сдвигая на `(dx, dy)` чтобы перерисовать `*component*`.
* `\qbezier[n](x<sub>1</sub>, y<sub>1</sub>)(x, y)(x<sub>2</sub>, y<sub>2</sub>)`: рисует [квадратичную кривую Безье](https://en.wikipedia.org/wiki/B%C3%A9zier_curve#Quadratic_B%C3%A9zier_curves) где:
  * `n` необязательное целое число, которое определяет количество точек, используемых для построения кривой
  * `(x<sub>1</sub>, y<sub>1</sub>)` — начальная точка кривой
  * `(x<sub>2</sub>, y<sub>2</sub>)` — конечная точка кривой
  * `(x, y)` обозначает контрольную точку (квадратичной) кривой Безье

Один `*component*` является графическим элементом, обычно создаваемым с помощью графических примитивов, таких как `\line`, `\oval`, `\circle`, `\vector` и т. д. — см. [неофициальное справочное руководство по LaTeX2e](https://latexref.xyz/picture.html) или [Не столь короткое введение в LaTeX2ε](https://tobi.oetiker.ch/lshort/lshort.pdf) (главу 5) для подробностей о доступных примитивах.

**Примечание**: Это [`pict2e` пакет](https://mirror.ox.ac.uk/sites/ctan.org/macros/latex/contrib/pict2e/pict2e.pdf) расширяет исходное `picture` окружение, предоставляя несколько команд для рисования кривых Безье: `\bezier`, `\qbezier`, `\cbezier` и `\qbeziermax`.

### Понимание смещения и начала координат

В следующих примерах `\put` команда используется для рисования цветных точек, которые обозначают ключевые координаты (позиции) на графике. В обоих примерах используется команда LaTeX `\fbox` для рисования рамки вокруг коробки, созданной LaTeX для размещения нашего рисунка, показывая *ограничивающую рамку* графики.

**Пример 1: использование начала координат по умолчанию**

```latex
\documentclass{article}
\usepackage[pdftex]{pict2e}
\usepackage[dvipsnames]{xcolor}
\begin{document}
\setlength{\unitlength}{1cm}
\setlength{\fboxsep}{0pt}

Это мой рисунок\fbox{%
\begin{picture}(3,3)
\put(0,0){{\color{blue}\circle*{0.25}}\hbox{\kern3pt \texttt{(0,0)}}}
\put(3,3){{\color{red}\circle*{0.25}}\hbox{\kern3pt \texttt{(3,3)}}}
\end{picture}}
\end{document}
```

[Откройте этот пример в Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=understanding+picture+dimensions+example+1\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5Bpdftex%5D%7Bpict2e%7D%0A%5Cusepackage%5Bdvipsnames%5D%7Bxcolor%7D%0A%5Cbegin%7Bdocument%7D%0A%5Csetlength%7B%5Cunitlength%7D%7B1cm%7D%0A%5Csetlength%7B%5Cfboxsep%7D%7B0pt%7D%0A%0AThis+is+my+picture%5Cfbox%7B%25%0A%5Cbegin%7Bpicture%7D%283%2C3%29%0A%5Cput%280%2C0%29%7B%7B%5Ccolor%7Bblue%7D%5Ccircle%2A%7B0.25%7D%7D%5Chbox%7B%5Ckern3pt+%5Ctexttt%7B%280%2C0%29%7D%7D%7D%0A%5Cput%283%2C3%29%7B%7B%5Ccolor%7Bred%7D%5Ccircle%2A%7B0.25%7D%7D%5Chbox%7B%5Ckern3pt+%5Ctexttt%7B%283%2C3%29%7D%7D%7D%0A%5Cend%7Bpicture%7D%7D%0A%5Cend%7Bdocument%7D)

Этот пример выдаёт следующий результат:

![размеры окружения LaTeX picture](/files/26b71efef416f9462b50078b01e5186ace0b6faf)

Это `\fbox` команда рисует рамку вокруг ограничивающей рамки графики, показывая пространство (область), зарезервированное LaTeX:

* ширина рисунка = `ширина` × `\unitlength` = 3 × 1см = 3см.
* высота рисунка = `высота` × `\unitlength` = 3 × 1см = 3см.

Первый пример показывает, что начало координат, `(0,0)`, находится в точке, где `\begin{picture}` команда была выполнена, сразу после текста «Это мой рисунок». Кроме того, правый верхний угол находится в позиции `(3,3)`, `(ширина, высота)` значения, переданные `\begin{picture}(3,3)`.

**Пример 2: Сдвиг начала координат на (1,1)**

```latex
\documentclass{article}
\usepackage[pdftex]{pict2e}
\usepackage[dvipsnames]{xcolor}
\begin{document}
\setlength{\unitlength}{1cm}
\setlength{\fboxsep}{0pt}

Это мой рисунок\fbox{%
\begin{picture}(3,3)(1,1)
\put(0,0){{\color{blue}\circle*{0.25}}\hbox{\kern3pt\texttt{(0,0)}}}
\put(1,1){{\color{orange}\circle*{0.25}}\hbox{\kern3pt\texttt{(1,1)}}}
\put(3,3){{\color{red}\circle*{0.25}}\hbox{\kern3pt\texttt{(3,3)}}}
\put(4,4){{\color{black}\circle*{0.25}}\hbox{\kern3pt\texttt{(4,4)}}}
\end{picture}}
\end{document}
```

[Откройте этот пример в Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=understanding+picture+dimensions+example+2\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5Bpdftex%5D%7Bpict2e%7D%0A%5Cusepackage%5Bdvipsnames%5D%7Bxcolor%7D%0A%5Cbegin%7Bdocument%7D%0A%5Csetlength%7B%5Cunitlength%7D%7B1cm%7D%0A%5Csetlength%7B%5Cfboxsep%7D%7B0pt%7D%0A%0AThis+is+my+picture%5Cfbox%7B%25%0A%5Cbegin%7Bpicture%7D%283%2C3%29%281%2C1%29%0A%5Cput%280%2C0%29%7B%7B%5Ccolor%7Bblue%7D%5Ccircle%2A%7B0.25%7D%7D%5Chbox%7B%5Ckern3pt%5Ctexttt%7B%280%2C0%29%7D%7D%7D%0A%5Cput%281%2C1%29%7B%7B%5Ccolor%7Borange%7D%5Ccircle%2A%7B0.25%7D%7D%5Chbox%7B%5Ckern3pt%5Ctexttt%7B%281%2C1%29%7D%7D%7D%0A%5Cput%283%2C3%29%7B%7B%5Ccolor%7Bred%7D%5Ccircle%2A%7B0.25%7D%7D%5Chbox%7B%5Ckern3pt%5Ctexttt%7B%283%2C3%29%7D%7D%7D%0A%5Cput%284%2C4%29%7B%7B%5Ccolor%7Bblack%7D%5Ccircle%2A%7B0.25%7D%7D%5Chbox%7B%5Ckern3pt%5Ctexttt%7B%284%2C4%29%7D%7D%7D%0A%5Cend%7Bpicture%7D%7D%0A%5Cend%7Bdocument%7D)

Этот пример выдаёт следующий результат:

![размеры окружения LaTeX picture](/files/701fafc169ce0ff1b3ece18b06d3c101dfd0057c)

Второй пример показывает эффекты сдвига начала координат и выделяет несколько ключевых моментов:

* рамка, созданная `\fbox` показывает, что ограничивающая рамка графики, ширина и высота коробки, созданной LaTeX, — *не изменяются* при сдвиге начала координат: она по-прежнему определяется `(ширина, высота)` значения, переданные `\begin{picture}(3,3)(1,1)`
  * ширина рисунка = `ширина` × `\unitlength` = 3 × 1см = 3см
  * высота рисунка = `высота` × `\unitlength` = 3 × 1см = 3см
* графические элементы не ограничиваются (не обрезаются) областью (размерами ограничивающей рамки), созданной LaTeX. Например, синяя точка и `(0,0)` координата рисуются за пределами линии границы, созданной `\fbox`, которая обозначает ограничивающую рамку.
  * Пользователь должен следить за тем, чтобы графические элементы оставались внутри ограничивающей рамки и не перекрывали окружающий текст.
* начало координат, `(0,0)`, *больше не* расположено сразу после текста «Это мой рисунок», в точке, где `\begin{picture}` команда была выполнена: теперь начало координат сдвинуто на 1 единицу влево и на 1 единицу вниз
* правый верхний угол теперь находится в позиции `(4,4)`

## Примеры окружения picture

### Примеры из неофициального справочного руководства по LaTeX2e

Это [неофициальное справочное руководство по LaTeX2e](https://latexref.xyz/picture.html) содержит ряд `picture` примеров окружения, некоторые из которых воспроизведены здесь вместе со ссылками, которые открывают их в Overleaf, позволяя редактировать и исследовать код.

#### Пример 1: команда \vector

```latex
\documentclass{article}
\usepackage[pdftex]{pict2e}
\begin{document}
\setlength{\unitlength}{1cm}
\begin{picture}(6,6)      % размер поля рисунка будет 6см в ширину и 6см в высоту
  \put(0,0){\vector(2,1){4}}  % на каждые 2 вправо этот вектор поднимается на 1
    \put(2,1){\makebox(0,0)[l]{\ first leg}}
  \put(4,2){\vector(1,2){2}}
    \put(5,4){\makebox(0,0)[l]{\ second leg}}
  \put(0,0){\vector(1,1){6}}
    \put(3,3){\makebox(0,0)[r]{sum\ }}
\end{picture}
\end{document}
```

[Откройте этот пример в Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=picture+environment+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5Bpdftex%5D%7Bpict2e%7D%0A%5Cbegin%7Bdocument%7D%0A%5Csetlength%7B%5Cunitlength%7D%7B1cm%7D%0A%5Cbegin%7Bpicture%7D%286%2C6%29++++++%25+picture+box+will+be+6cm+wide+by+6cm+tall%0A++%5Cput%280%2C0%29%7B%5Cvector%282%2C1%29%7B4%7D%7D++%25+for+every+2+over+this+vector+goes+1+up%0A++++%5Cput%282%2C1%29%7B%5Cmakebox%280%2C0%29%5Bl%5D%7B%5C+first+leg%7D%7D%0A++%5Cput%284%2C2%29%7B%5Cvector%281%2C2%29%7B2%7D%7D%0A++++%5Cput%285%2C4%29%7B%5Cmakebox%280%2C0%29%5Bl%5D%7B%5C+second+leg%7D%7D++%0A++%5Cput%280%2C0%29%7B%5Cvector%281%2C1%29%7B6%7D%7D%0A++++%5Cput%283%2C3%29%7B%5Cmakebox%280%2C0%29%5Br%5D%7Bsum%5C+%7D%7D++%0A%5Cend%7Bpicture%7D%0A%5Cend%7Bdocument%7D)

Этот пример выдаёт следующий результат:

![пример окружения picture](/files/ae6cc5489465eb4dec27ceae6917cd14268b551c)

#### Пример 2: команды \qbezier, \line, \vector, \thinlines и \thicklines

Обратите внимание, как `\qbezier` команда *не* используется внутри `\put{...}` тогда как другие примитивные команды, такие как `\line`, `\vector` *вошли* используется внутри `\put{...}`.

```latex
\documentclass{article}
\usepackage[pdftex]{pict2e}
\begin{document}
\setlength{\unitlength}{1cm}
\begin{picture}(8,4)
  \thinlines % Начать с тонких линий
  \put(0,0){\vector(1,0){8}}  % ось x
  \put(0,0){\vector(0,1){4}}  % ось y
  \put(2,0){\line(0,1){3}}    % левая сторона
  \put(4,0){\line(0,1){3.5}}  % правая сторона
  \thicklines % Использовать более толстые линии для команд \qbezier
  \qbezier(2,3)(2.5,2.9)(3,3.25)
  \qbezier(3,3.25)(3.5,3.6)(4,3.5)
  \thinlines % Вернуться к использованию тонких линий
  \put(2,3){\line(4,1){2}}
  \put(4.5,2.5){\framebox{Трапецеидальное правило}}
\end{picture}
\end{document}
```

[Откройте этот пример в Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=qbezier+picture+environment+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5Bpdftex%5D%7Bpict2e%7D%0A%5Cbegin%7Bdocument%7D%0A%5Csetlength%7B%5Cunitlength%7D%7B1cm%7D%0A%5Cbegin%7Bpicture%7D%288%2C4%29%0A++%5Cthinlines+%25+Start+with+thin+lines%0A++%5Cput%280%2C0%29%7B%5Cvector%281%2C0%29%7B8%7D%7D++%25+x+axis%0A++%5Cput%280%2C0%29%7B%5Cvector%280%2C1%29%7B4%7D%7D++%25+y+axis%0A++%5Cput%282%2C0%29%7B%5Cline%280%2C1%29%7B3%7D%7D++++%25+left+side%0A++%5Cput%284%2C0%29%7B%5Cline%280%2C1%29%7B3.5%7D%7D++%25+right+side%0A++%5Cthicklines+%25+Use+thicker+lines+for+the+%5Cqbezier+commands%0A++%5Cqbezier%282%2C3%29%282.5%2C2.9%29%283%2C3.25%29%0A++%5Cqbezier%283%2C3.25%29%283.5%2C3.6%29%284%2C3.5%29%0A++%5Cthinlines+%25+Back+to+using+thin+lines%0A++%5Cput%282%2C3%29%7B%5Cline%284%2C1%29%7B2%7D%7D%0A++%5Cput%284.5%2C2.5%29%7B%5Cframebox%7BTrapezoidal+Rule%7D%7D%0A%5Cend%7Bpicture%7D%0A%5Cend%7Bdocument%7D)

Этот пример выдаёт следующий результат:

![Пример окружения LaTeX picture](/files/cce630fbc05272a8d7dd11a2d92a9ce48eec3e91)

#### Пример 3: команды \multiput и \linethickness

```latex
\documentclass{article}
\usepackage[pdftex]{pict2e}
\begin{document}
\setlength{\unitlength}{1cm}
\thicklines
\begin{picture}(10,10)
  \linethickness{0.05mm}
  \multiput(0,0)(1,0){10}{\line(0,1){10}}
  \multiput(0,0)(0,1){10}{\line(1,0){10}}
  \linethickness{0.5mm}
  \multiput(0,0)(5,0){3}{\line(0,1){10}}
  \multiput(0,0)(0,5){3}{\line(1,0){10}}
\end{picture}
\end{document}
```

[Откройте этот пример в Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=multiput+command+picture+environment+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5Bpdftex%5D%7Bpict2e%7D%0A%5Cbegin%7Bdocument%7D%0A%5Csetlength%7B%5Cunitlength%7D%7B1cm%7D%0A%5Cthicklines%0A%5Cbegin%7Bpicture%7D%2810%2C10%29%0A++%5Clinethickness%7B0.05mm%7D%0A++%5Cmultiput%280%2C0%29%281%2C0%29%7B10%7D%7B%5Cline%280%2C1%29%7B10%7D%7D+%0A++%5Cmultiput%280%2C0%29%280%2C1%29%7B10%7D%7B%5Cline%281%2C0%29%7B10%7D%7D%0A++%5Clinethickness%7B0.5mm%7D%0A++%5Cmultiput%280%2C0%29%285%2C0%29%7B3%7D%7B%5Cline%280%2C1%29%7B10%7D%7D%0A++%5Cmultiput%280%2C0%29%280%2C5%29%7B3%7D%7B%5Cline%281%2C0%29%7B10%7D%7D%0A%5Cend%7Bpicture%7D%0A%5Cend%7Bdocument%7D)

Этот пример выдаёт следующий результат:

![пример окружения LaTeX picture с \multiput](/files/b40277c7aa0b0ce9a00666f949d32b719d61b80f)

### Другие примеры

#### Базовая кривая Безье

Следующий пример использует `\qbezier` команду для рисования кривой Безье:

```latex
\qbezier(1,1)(5,5)(9,0.5)
```

Обратите внимание на следующее:

* окружения `\qbezier` команда не используется внутри `\put` команда
* начальная точка кривой Безье — `(1,1)`
* конечная точка кривой Безье — `(9,0.5)`
* контрольная точка кривой Безье — `(5,5)`
* мы не используем необязательное целое число, которое определяет количество точек, используемых для построения кривой Безье

```latex
\documentclass{article}
\usepackage[pdftex]{pict2e}
\begin{document}
\setlength{\unitlength}{0.8cm}
\begin{picture}(10,5)
\thicklines
\qbezier(1,1)(5,5)(9,0.5)
\put(2,1){{Кривая Безье}}
\end{picture}
\end{document}
```

[Откройте этот пример в Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=multiput+command+picture+environment+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5Bpdftex%5D%7Bpict2e%7D%0A%5Cbegin%7Bdocument%7D%0A%5Csetlength%7B%5Cunitlength%7D%7B0.8cm%7D%0A%5Cbegin%7Bpicture%7D%2810%2C5%29%0A%5Cthicklines%0A%5Cqbezier%281%2C1%29%285%2C5%29%289%2C0.5%29%0A%5Cput%282%2C1%29%7B%7BB%C3%A9zier+curve%7D%7D%0A%5Cend%7Bpicture%7D%0A%5Cend%7Bdocument%7D)

Этот пример выдаёт следующий результат:

![Рисование кривой Безье с помощью LaTeX](/files/0fc62973292383a42b166b9a0f78b5069b00e193)

#### Овалы, линии и окружности

Следующий пример демонстрирует `\line`, `\circle` и `\oval` команды — обратите внимание, как они *вошли* все используются внутри `\put{...}` команду:

```latex
\documentclass{article}
\usepackage[pdftex]{pict2e}
\begin{document}
\setlength{\unitlength}{1cm}
\thicklines
\begin{picture}(10,6)
\put(2,2.2){\line(1,0){6}}
\put(2,2.2){\circle{2}}
\put(6,2.2){\oval(4,2)[r]}
\end{picture}
\end{document}
```

[Откройте этот пример в Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=picture+environment+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5Bpdftex%5D%7Bpict2e%7D%0A%5Cbegin%7Bdocument%7D%0A%5Csetlength%7B%5Cunitlength%7D%7B1cm%7D%0A%5Cthicklines%0A%5Cbegin%7Bpicture%7D%2810%2C6%29%0A%5Cput%282%2C2.2%29%7B%5Cline%281%2C0%29%7B6%7D%7D%0A%5Cput%282%2C2.2%29%7B%5Ccircle%7B2%7D%7D%0A%5Cput%286%2C2.2%29%7B%5Coval%284%2C2%29%5Br%5D%7D%0A%5Cend%7Bpicture%7D%0A%5Cend%7Bdocument%7D)

Этот пример выдаёт следующий результат:

![пример окружения LaTeX picture](/files/a7764cd6f223a89f0438eb018ed4b994a37e4e86)

Ниже приведено описание команд:

* `\put(2,2.2){\line(1,0){6}}`: рисует линию `6` длиной в единицы, используя «вектор направления» `(1,0)`
* `\put(6,2.2){\oval(4,2)[r]}`: рисует овал с центром в точке `(4,2)`. Параметр `[r]` необязателен, вы можете использовать `r`, `l`, `t` и `b` чтобы показать правую, левую, верхнюю или нижнюю часть овала.
* `\put(2,2.2){\circle{2}}`: рисует окружность с центром в точке `(2,2.2)` и диаметром `2`.

#### Комбинирование линий, окружностей и текста

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

```latex
\documentclass{article}
\usepackage[pdftex]{pict2e}
\begin{document}
\setlength{\unitlength}{0.8cm}
\begin{picture}(12,4)
\thicklines
\put(8,3.3){{\footnotesize $3$-симплекс}}
\put(9,3){\circle*{0.1}}
\put(8.3,2.9){$a_2$}
\put(8,1){\circle*{0.1}}
\put(7.7,0.5){$a_0$}
\put(10,1){\circle*{0.1}}
\put(9.7,0.5){$a_1$}
\put(11,1.66){\circle*{0.1}}
\put(11.1,1.5){$a_3$}
\put(9,3){\line(3,-2){2}}
\put(10,1){\line(3,2){1}}
\put(8,1){\line(1,0){2}}
\put(8,1){\line(1,2){1}}
\put(10,1){\line(-1,2){1}}
\end{picture}
\end{document}
```

[Откройте этот пример в Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=understanding+picture+dimensions+example+1\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5Bpdftex%5D%7Bpict2e%7D%0A%5Cbegin%7Bdocument%7D%0A%5Csetlength%7B%5Cunitlength%7D%7B0.8cm%7D%0A%5Cbegin%7Bpicture%7D%2812%2C4%29%0A%5Cthicklines%0A%5Cput%288%2C3.3%29%7B%7B%5Cfootnotesize+%243%24-simplex%7D%7D%0A%5Cput%289%2C3%29%7B%5Ccircle%2A%7B0.1%7D%7D%0A%5Cput%288.3%2C2.9%29%7B%24a_2%24%7D%0A%5Cput%288%2C1%29%7B%5Ccircle%2A%7B0.1%7D%7D%0A%5Cput%287.7%2C0.5%29%7B%24a_0%24%7D%0A%5Cput%2810%2C1%29%7B%5Ccircle%2A%7B0.1%7D%7D%0A%5Cput%289.7%2C0.5%29%7B%24a_1%24%7D%0A%5Cput%2811%2C1.66%29%7B%5Ccircle%2A%7B0.1%7D%7D%0A%5Cput%2811.1%2C1.5%29%7B%24a_3%24%7D%0A%5Cput%289%2C3%29%7B%5Cline%283%2C-2%29%7B2%7D%7D%0A%5Cput%2810%2C1%29%7B%5Cline%283%2C2%29%7B1%7D%7D%0A%5Cput%288%2C1%29%7B%5Cline%281%2C0%29%7B2%7D%7D%0A%5Cput%288%2C1%29%7B%5Cline%281%2C2%29%7B1%7D%7D%0A%5Cput%2810%2C1%29%7B%5Cline%28-1%2C2%29%7B1%7D%7D%0A%5Cend%7Bpicture%7D%0A%5Cend%7Bdocument%7D)

Этот пример выдаёт следующий результат:

![пример окружения LaTeX picture](/files/a968bc01c2a7bd6e707a6ffa6dacd3376b2f90e7)

Вот краткое описание некоторых используемых команд:

* `\thicklines`: это увеличивает толщину линий. Команда `\thinlines` действует противоположным образом.
* `\put(8,3.3){{\footnotesize $3$-симплекс}}`: текст «3-simplex» вставляется в точке `(8,3.3)`, размер шрифта устанавливается в `\footnotesize`. Та же команда используется для подписи каждой точки.
* `\put(9,3){\circle*{0.1}}`: это рисует заполненную окружность с центром в `(9,3)` с небольшим диаметром `0.1` (единица рисования), так что ее можно использовать как точку.
* `\put(10,1){\line(3,2){1}}`: создает прямую линию, начинающуюся в `(10,1)` и направленную в сторону `(3,2)` с длиной 1 (единица рисования).

#### Использование стрелок

Стрелки также можно использовать внутри `picture` окружения, вот второй пример:

```latex
\documentclass{article}
\usepackage[pdftex]{pict2e}
\begin{document}
\setlength{\unitlength}{0.20mm}
\begin{picture}(400,250)
\put(75,10){\line(1,0){130}}
\put(75,50){\line(1,0){130}}
\put(75,200){\line(1,0){130}}
\put(120,200){\vector(0,-1){150}}
\put(190,200){\vector(0,-1){190}}
\put(97,120){$\alpha$}
\put(170,120){$\beta$}
\put(220,195){верхнее состояние}
\put(220,45){нижнее состояние 1}
\put(220,5){нижнее состояние 2}
\end{picture}
\end{document}
```

[Откройте этот пример в Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Example+of+arrows+in+LaTeX+picture+environment\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5Bpdftex%5D%7Bpict2e%7D%0A%5Cbegin%7Bdocument%7D%0A%5Csetlength%7B%5Cunitlength%7D%7B0.20mm%7D%0A%5Cbegin%7Bpicture%7D%28400%2C250%29%0A%5Cput%2875%2C10%29%7B%5Cline%281%2C0%29%7B130%7D%7D%0A%5Cput%2875%2C50%29%7B%5Cline%281%2C0%29%7B130%7D%7D%0A%5Cput%2875%2C200%29%7B%5Cline%281%2C0%29%7B130%7D%7D%0A%5Cput%28120%2C200%29%7B%5Cvector%280%2C-1%29%7B150%7D%7D%0A%5Cput%28190%2C200%29%7B%5Cvector%280%2C-1%29%7B190%7D%7D%0A%5Cput%2897%2C120%29%7B%24%5Calpha%24%7D%0A%5Cput%28170%2C120%29%7B%24%5Cbeta%24%7D%0A%5Cput%28220%2C195%29%7Bupper+state%7D%0A%5Cput%28220%2C45%29%7Blower+state+1%7D%0A%5Cput%28220%2C5%29%7Blower+state+2%7D%0A%5Cend%7Bpicture%7D%0A%5Cend%7Bdocument%7D)

Этот пример выдаёт следующий результат:

![Пример стрелок в окружении LaTeX picture](/files/d7f2a75658b2480619167b1c1538dcd9fa45e6d7)

Это `\vector` команда использует тот же синтаксис, что и `\line`:

* `\put(120,200){\vector(0,-1){150}}`: рисует вектор, начальная точка которого `(120,200)`, длина которого `150` и направление рисования которого `(0,-1)`.

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

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

* [неофициальное справочное руководство по LaTeX2e](https://latexref.xyz/picture.html)
* [Не столь короткое введение в LaTeX2ε](https://tobi.oetiker.ch/lshort/lshort.pdf) (см. главу 5)
* [Wikibooks](https://en.wikibooks.org/wiki/LaTeX/Picture)
* [вопросы с тегом `picture-mode` на tex.stackexchange](https://tex.stackexchange.com/questions/tagged/picture-mode)
* [`pict2e` документация пакета](https://mirror.ox.ac.uk/sites/ctan.org/macros/latex/contrib/pict2e/pict2e.pdf)
* [Пакет TikZ](/latex/ru/risunki-i-tablicy/05-tikz-package.md)
* [Пакет Pgfplots](/latex/ru/specializirovannye/08-pgfplots-package.md)
* [Размещение изображений и таблиц](/latex/ru/risunki-i-tablicy/02-positioning-images-and-tables.md)
* [Списки таблиц и рисунков](/latex/ru/risunki-i-tablicy/03-lists-of-tables-and-figures.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/risunki-i-tablicy/04-picture-environment.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.
