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

# Малювання діаграм безпосередньо в LaTeX

## Вступ

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

Ця стаття дає стислий вступ до `picture` середовища, і всі приклади використовують [`pict2e` accents](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}
```

одиниці побудови інтерпретуватимуться як кратні 1cm. Стандартна одиниця — 1pt.

### Визначте розмір вашого рисунка

Загальна форма `picture` середовища має такий вигляд

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

де

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

Зверніть увагу, що `Xoffset` та `Yoffset` не впливають на кількість простору, яку резервує LaTeX; тобто на розміри коробки.

#### Розуміння розмірів рисунка

Ми створимо два рисунки, обидва з використанням `\setlength{\unitlength}{1cm}` і кожен із `width` та `висота` розміром 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` accents](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/abe7a84868f51cb53f1c7b45689d54437504e391)

Функція `\fbox` команда малює рамку навколо обмежувальної рамки графіки, показуючи простір (область), зарезервований LaTeX:

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

Перший приклад показує, що початок координат, `(0,0)`, розташований у точці, де `\begin{picture}` команда була виконана, одразу після тексту «This is my picture». Крім того, верхній правий кут знаходиться в позиції `(3,3)`, а `(width,height)` значень, переданих до `\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/787073ab4780752a5f92901cf707f070ff7cec58)

Другий приклад показує наслідки зсуву початку координат і підкреслює деякі ключові моменти:

* рамка, створена `\fbox` показує, що обмежувальна рамка графіки, ширина й висота коробки, створеної LaTeX, є *незмінними* при зсуві початку координат: вони все ще визначаються `(width,height)` значень, переданих до `\begin{picture}(3,3)(1,1)`
  * ширина рисунка = `width` × `\unitlength` = 3 × 1cm = 3cm
  * висота рисунка = `висота` × `\unitlength` = 3 × 1cm = 3cm
* графічні елементи не обмежуються (не обрізаються) областю (розмірами обмежувальної рамки), створеною LaTeX. Наприклад, синя крапка та `(0,0)` координата намальовані за межами лінії кордону, створеної `\fbox`, яка вказує на обмежувальну рамку.
  * Користувач повинен подбати, щоб графічні елементи залишалися всередині обмежувальної рамки й не накладалися на навколишній текст.
* початок координат, `(0,0)`, є *більше не* розташований одразу після тексту «This is my picture», у точці, де `\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)      % picture box will be 6cm wide by 6cm tall
  \put(0,0){\vector(2,1){4}}  % for every 2 over this vector goes 1 up
    \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/542d51a33822f1d4cc9559bc77a3d70105dcfe41)

#### Приклад 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/b8b44530d659c25b392d3e25f70b0f622d44c8ad)

#### Приклад 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/9de14b9ec8c529d6de511331e2e46243f357671d)

### Інші приклади

#### Проста крива Безьє

У наступному прикладі використовується `\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/5aade3154ccd5652934ffa188848e178a45ad1b6)

#### Овали, лінії та кола

Наведений нижче приклад демонструє `\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/76b57489ba9790f0e86ec29010dfcd2ca2ffb5da)

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

* `\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$-simplex}}
\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/c1775316e579c495d920f6e7a4cc7eb798d705bd)

Ось короткий опис деяких використаних команд:

* `\thicklines`: це збільшує товщину ліній. Команда `\thinlines` має протилежний ефект.
* `\put(8,3.3){{\footnotesize $3$-simplex}}`: текст «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){upper state}
\put(220,45){lower state 1}
\put(220,5){lower state 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/0d44d7aca3a361f009f8ba3fc312c8d9b9e4dc83)

Функція `\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/uk/risunki-ta-tablici/05-tikz-package.md)
* [Пакет Pgfplots](/latex/uk/specializovani/08-pgfplots-package.md)
* [Розміщення зображень і таблиць](/latex/uk/risunki-ta-tablici/02-positioning-images-and-tables.md)
* [Списки таблиць і рисунків](/latex/uk/risunki-ta-tablici/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/uk/risunki-ta-tablici/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.
