> 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/oshibki-latex/01-h-float-specifier-changed-to-ht.md).

# Спецификатор плавающего объекта !h' изменён на !ht'

Это происходит, когда у LaTeX возникают проблемы с размещением вашего плавающего объекта (например, изображения или какого-либо рисунка) в позиции, которую вы указали в [спецификаторе плавающего объекта](/latex/ru/risunki-i-tablicy/02-positioning-images-and-tables.md) то есть **`ht`** в **`\begin{figure}[ht]`** . LaTeX старается размещать рисунки так, чтобы они соответствовали потоку текста, чтобы избежать больших пробелов и слипшихся абзацев. Параметр спецификатора размещения позволяет нам лучше контролировать, где будет размещён рисунок. Доступные нам различные варианты размещения перечислены ниже:

| Спецификатор | Разрешение                                                                                                                                                         |
| ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| h            | Разместить плавающий объект *здесь*, то есть *примерно* в том же месте, где он находится в исходном тексте (однако не *точно* в этом месте)                        |
| t            | Разместить в *верхней части* страницы.                                                                                                                             |
| b            | Разместить в *нижняя часть* страницы.                                                                                                                              |
| p            | Поместить на специальную *страницу* только для плавающих объектов.                                                                                                 |
| !            | Переопределяет внутренние параметры, которые LaTeX использует для определения «хороших» позиций плавающих объектов.                                                |
| H            | Размещает плавающий объект точно в том месте, где он указан в коде LaTeX. Требует пакет *float* (*\usepackage{float}*). Это в некоторой степени эквивалентно *h!*. |

Хотя LaTeX сделает всё возможное, чтобы следовать указанному нами размещению, не всегда может оказаться возможным его соблюсти. Когда LaTeX испытывает трудности с размещением нашего плавающего объекта в нужном месте, он может переопределить спецификатор размещения в пользу нового спецификатора, который не нарушает поток текста. Когда это происходит, появится сообщение об ошибке, как показано ниже.

```latex
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{graphicx}

\begin{document}

\section{Introduction}
\vspace{10cm}

\begin{figure}[h]
    \centering
    \includegraphics{image.PNG}
\end{figure}

\end{document}
```

Это сгенерирует сообщение об ошибке, которое выглядит так

main.tex, строка 12

спецификатор плавающего объекта \`h' изменён на \`ht'.

Спецификатор плавающего объекта **`h`** сам по себе обычно является слишком строгой командой для LaTeX. Чтобы исправить эту ошибку, лучше ослабить это требование до **`ht`** то есть разместить плавающий объект либо *здесь* или в *верхней части* внизу страницы. Это требование можно ослабить ещё больше до **`htbp`** или **`!htbp`** если необходимо. Если вы хотите отменить эту замену и разместить рисунок в определённом месте на странице, ниже перечислены несколько полезных способов сделать это.

**Использование пакета float:**

Если мы подключим **`float`** пакет в преамбуле, то вместо использования **`h`** для указания *здесь* в нашем варианте спецификатора плавающего объекта мы можем использовать более мощный **`H`**, который гарантирует, что рисунок останется на месте.

```latex
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{graphicx}
\usepackage{float}

\begin{document}

\section{Introduction}

\begin{figure}[H]
    \centering
    \includegraphics{image.PNG}
\end{figure}

\end{document}
```

**Использование пакета placeins:**

Используя **`placeins`** пакет, мы можем использовать **`\FloatBarrier`** команду. Везде, где мы поместим **`\FloatBarrier`** команду, будет установлен барьер, через который рисунки не могут пройти. Это означает, что если мы поместим **`\FloatBarrier`** команду по обе стороны от нашего рисунка, он будет зафиксирован на месте

```latex
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{graphicx}
\usepackage{placeins}

\begin{document}

\section{Introduction}

\FloatBarrier
\begin{figure}
    \centering
    \includegraphics{image.PNG}
\end{figure}

\FloatBarrier
\end{document}
```

**Настройка параметров:**

Чтобы указать LaTeX размещать рисунки внутри текста, а не в конце главы (что является поведением по умолчанию), мы настраиваем параметры «размещения плавающих объектов» в преамбуле нашего документа. Вот несколько полезных значений.

```latex
\renewcommand\topfraction{.9}
\renewcommand\textfraction{0.35}
\renewcommand\floatpagefraction{0.8}
```


---

# 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/oshibki-latex/01-h-float-specifier-changed-to-ht.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.
