> 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/voprosy-i-otvety/83-what-does-pdfendlink-ended-up-in-different-nesting-level-than-pdfstartlink-mean.md).

# Что означает «\pdfendlink ended up in different nesting level than \pdfstartlink»?

## Некоторые сведения об этой ошибке (предупреждении)

Как следует из их названий, `\pdfstartlink` и `\pdfendlink` команды используются для создания гиперссылок внутри PDF-файлов, создаваемых TeX/LaTeX, — например, ссылок на разные страницы в PDF-файле или ссылок на веб-сайты. Эти команды являются так называемыми *примитивов*: низкоуровневыми командами, встроенными в движки TeX, — это не макросы. В результате большинство пользователей не сталкивается с ними напрямую, а использует их косвенно через макросы (команды), предоставляемые пакетами, такими как `hyperref`.

На момент написания (декабрь 2022 года) `\pdfstartlink` и `\pdfendlink` поддерживаются лишь двумя движками TeX: pdfTeX и LuaTeX (а также LuaHBTeX). Исторически и pdfTeX, и LuaTeX выдавали *ошибку* сообщение следующего вида

```latex
\pdfendlink оказался на другом уровне вложенности, чем \pdfstartlink
```

в ответ на низкоуровневые проблемы, связанные с глубиной вложенности боксов. Обратите внимание, что текст этого сообщения исходит из глубин программного обеспечения движка TeX; он не создаётся ни одним пакетом LaTeX и, разумеется, не Overleaf.

Начиная с TeX Live 2021, pdfTeX и LuaTeX разошлись в обработке основной проблемы (вложенности боксов) и теперь ведут себя по-разному:

* pdfTeX теперь выдает это сообщение как **предупреждение**, оно больше не вызывает ошибку, и компиляция *не* прерывается;
* LuaTeX (LuaHBTeX) продолжает рассматривать эту проблему как **фатальную ошибку**, из-за чего компиляция прерывается — формулировка этого сообщения об ошибке немного отличается от приведённой выше.

Читатели, желающие подробнее изучить первопричину этой ошибки, могут:

* открыть этот проект Overleaf

  который успешно компилируется с pdfLaTeX, но вызывает ошибку в LuaLaTeX;
* ознакомиться с [подробным техническим обсуждением на GitHub](https://github.com/latex3/latex2e/issues/94), которое велось ведущими экспертами по TeX и LaTeX.

## Что вызывает это на практическом уровне?

На уровне пользователя это предупреждение (или ошибка) может возникать при использовании `hyperref` пакета, если гиперссылка — например, ссылка на цитату, URL или перекрёстная ссылка — переносится через две страницы или два столбца в многоколонном документе; то есть ссылка начинается ближе к концу одной страницы (или столбца) и заканчивается на следующей странице (или в следующем столбце).

Как уже обсуждалось, pdfTeX (pdfLaTeX) с TeX Live 2021 или более поздней версии больше не выдает ошибку, но на момент написания (декабрь 2022 года) LuaLaTeX продолжает это делать. Если вы используете LuaLaTeX, временным обходным решением во время работы над документом будет отключить гиперссылки, написав

```latex
\hypersetup{draft}
```

непосредственно перед

```latex
\begin{document}
```

Хотя это не позволяет гиперссылкам отображаться в документе, это позволяет избежать ошибки во время подготовки текста, и когда вы будете готовы скомпилировать итоговый документ, вы сможете закомментировать или удалить `\hypersetup{draft}`. Если вам не повезло и вы всё же столкнётесь с этой проблемой на этапе финальной компиляции, снова включите `черновик` и затем просмотрите свой PDF, чтобы найти возможного виновника (ссылки на цитаты, перекрёстные ссылки, плавающие объекты в верхней части страниц...), чтобы вы могли, *надеюсь*..., найти способ отредактировать/переформулировать текст, чтобы избежать проблемы.

## Дополнительная информация

Если вы сталкиваетесь с этой проблемой как с фатальной ошибкой, может потребоваться некоторая детективная работа, чтобы установить точную причину. На tex.stackexchange есть несколько обсуждений, но обратите внимание, что некоторые из этих страниц были созданы до того, как pdfTeX понизил эту ошибку до предупреждения:

* <https://tex.stackexchange.com/questions/1522/pdfendlink-ended-up-in-different-nesting-level-than-pdfstartlink>
* <https://tex.stackexchange.com/questions/63819/mysterious-error-pdfendlink-ended-up-in-different-nesting-level-than-pdfstart>
* <https://tex.stackexchange.com/questions/249579/pdfendlink-ended-up-in-different-nesting-level-than-pdfstartlink-error-with/>


---

# 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/voprosy-i-otvety/83-what-does-pdfendlink-ended-up-in-different-nesting-level-than-pdfstartlink-mean.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.
