# Рисунки и иллюстрации (/docs/reference/elements/image)

Иллюстрации (чертежи, графики, схемы, диаграммы, фотоснимки) используются для пояснения излагаемого
текста. В шаблоне `modern-g7-32` все изображения автоматически центрируются, нумеруются и получают
правильно оформленные подписи.

## Быстрый старт

Для вставки изображения используйте стандартную функцию `image()`, обёрнутую в макрос `#figure`.
Это позволит добавить подпись и автоматически включить рисунок в нумерацию.

<TypstRender
  code={`
#figure(
image("scheme.png", width: 80%),
caption: [Схема архитектуры системы]
) <architecture>

Как показано на рисунке @architecture, система состоит из...
`}
  image="image-example-simple.png"
  assets={["scheme.png"]}
/>

## Автоматизация и логика шаблона

Шаблон берёт на себя выполнение технических требований раздела [6.5](#6.5.1):

1. **Выравнивание**: Все изображения автоматически выравниваются по центру страницы.
2. **Нумерация**: Рисунки нумеруются сквозной нумерацией арабскими цифрами ([6.5.4](#6.5.4)).
   В [приложениях](../appendixes.mdx) нумерация заменяется на буквенно-цифровую (Рисунок А.1)
   согласно [6.5.5](#6.5.5).
3. **Подписи (Caption)**:
   * Перед номером всегда ставится слово «Рисунок».
   * Разделитель между номером и названием — длинное тире (« — »), как требует [6.5.7](#6.5.7).
   * Точка в конце подписи не ставится.
4. **Ссылки**: При использовании `@label` в тексте автоматически подставляется слово «рисунок»
   и его номер.

## Параметры функций

### image

Встроенная функция Typst для загрузки файла изображения.

<TypeTable
  type={{
  path: {
    description: "Путь к файлу изображения (png, jpg, svg, pdf)",
    type: "string",
  },
  width: {
    description: "Ширина изображения (например, 80% или 12cm)",
    type: "length | ratio | auto",
    default: "auto"
  },
  alt: {
    description: "Текстовое описание для доступности",
    type: "string",
  }
}}
/>

### figure

Контейнер для элементов с подписями. `figure` — это общая конструкция Typst: внутри может быть
изображение, таблица, листинг кода, формула, диаграмма или любой другой контент. В `modern-g7-32`
оформление ссылки и подписи зависит от `kind`: для `image` это «рисунок», для `table` — «таблица»,
для `raw` — «листинг».

<TypeTable
  type={{
  body: {
    description: "Само изображение (функция image)",
    type: "content",
  },
  caption: {
    description: "Текст подписи под рисунком",
    type: "content",
  },
  kind: {
    description: "Тип элемента (для изображений определяется автоматически)",
    type: "string | auto",
    default: "image"
  }
}}
/>

## Продвинутое использование

### Ссылки в тексте

Согласно [6.5.1](#6.5.1), на все иллюстрации в отчёте должны быть даны ссылки. Используйте формат
`@label` для создания активных ссылок. В тексте такая ссылка может превратиться в ссылку на
рисунок, таблицу, листинг, формулу или другой объект — Typst смотрит на элемент, к которому
прикреплена метка.

### Перетаскивание файлов

В [Typst App](https://typst.app/) можно перетащить изображение в дерево файлов проекта, затем
вставить его через относительный путь: `image("assets/scheme.png")`. В VS Code с
[Tinymist](https://marketplace.visualstudio.com/items?itemName=myriad-dreamin.tinymist) работает та
же схема: положите файл рядом с `main.typ` или в папку `assets`, а в коде укажите этот путь.

После перетаскивания проверьте регистр букв в имени файла. `Scheme.png` и `scheme.png` для Typst
разные пути, особенно при сборке на Linux.

### Группировка рисунков

Если нужно расположить несколько рисунков рядом, используйте стандартные средства Typst (например,
сетку `grid` внутри `#figure`), но помните, что по ГОСТ [6.5.3](#6.5.3) рекомендуется избегать
избыточности и слишком сложных композиций.

### Рисунки в приложениях

При переходе в режим `#show: appendixes`, счётчик рисунков обнуляется для каждого нового
приложения. Название будет выглядеть как `Рисунок А.1`, `Рисунок Б.1` и так далее.

## Требования ГОСТ 7.32-2017

### Размещение

<GostQuote page={13} id="6.5.1">
  6.5.1 Иллюстрации (чертежи, графики, схемы, компьютерные распечатки, диаграммы, фотоснимки) следует располагать в отчете непосредственно после текста отчета, где они упоминаются впервые, или на следующей странице (по возможности ближе к соответствующим частям текста отчета). На все иллюстрации в отчете должны быть даны ссылки. При ссылке необходимо писать слово «рисунок» и его номер, например: «в соответствии с рисунком 2» и т. д.
</GostQuote>

<GostQuote page={13} id="6.5.2">
  6.5.2 Чертежи, графики, диаграммы, схемы, помещаемые в отчете, должны соответствовать требованиям стандартов Единой системы конструкторской документации (ЕСКД).
</GostQuote>

<GostQuote page={13} id="6.5.3">
  6.5.3 Количество иллюстраций должно быть достаточным для пояснения излагаемого текста отчета. Не рекомендуется в отчете о НИР приводить объемные рисунки.
</GostQuote>

### Нумерация

<GostQuote page={13} id="6.5.4">
  6.5.4 Иллюстрации, за исключением иллюстраций, приведенных в приложениях, следует нумеровать
  арабскими цифрами сквозной нумерацией. Если рисунок один, то он обозначается: Рисунок 1.
</GostQuote>

<GostQuote page={13} id="6.5.5">
  6.5.5 Иллюстрации каждого приложения обозначают отдельной нумерацией арабскими цифрами с добавлением
  перед цифрой обозначения приложения: Рисунок А.3.
</GostQuote>

<GostQuote page={13} id="6.5.6">
  6.5.6 Допускается нумеровать иллюстрации в пределах раздела отчета. В этом случае номер иллюстрации состоит из номера раздела и порядкового номера иллюстрации, разделенных точкой: Рисунок 2.1.
</GostQuote>

### Оформление подписи

<GostQuote page={13} id="6.5.7">
  6.5.7 Иллюстрации при необходимости могут иметь наименование и пояснительные данные (подрисуночный текст). Слово «Рисунок», его номер и через тире наименование помещают после пояснительных данных и располагают в центре под рисунком без точки в конце.
</GostQuote>

<GostQuote page={13} id="6.5.8">
  6.5.8 Если наименование рисунка состоит из нескольких строк, то его следует записывать через один
  межстрочный интервал. Наименование рисунка приводят с прописной буквы без точки в конце. Перенос слов в наименовании графического материала не допускается.
</GostQuote>
