> 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/ar/alaselh-walajwbh/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 ended up in different nesting level than \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/ar/alaselh-walajwbh/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.
