> 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/asasyat-latex/04-lists.md).

# القوائم

## ثلاث طرق لإدراج القوائم في Overleaf

يوفر Overleaf 3 طرق لإنشاء القوائم باستخدام LaTeX:

1. استخدم **إدراج قائمة نقطية** (![Image of the menu icon for insert a bulleted list in Overleaf](/files/b9ef2e4a10fa94c90e425c8feeed4503849e6965)) أو **إدراج قائمة مرقمة** (![Image of the menu icon for insert a numbered list in Overleaf](/files/bac1de61edf9b3e65c93958a6555ab8cc53042eb)) في شريط أدوات المحرر لإدراج القوائم في **المحرر المرئي** أو **محرر الكود**.
2. [الصق قائمة منسقة في **المحرر المرئي**](/latex/ar/qaadh-almarfh/075-how-to-paste-formatted-content-into-overleaf.md#pasteformattedlist).
3. اكتب كود LaTeX الخاص بك باستخدام **محرر الكود**.

تم تصميم الخيارين 1 و2 لتوليد كود LaTeX اللازم لتنسيق القوائم تلقائيًا. ومع ذلك، بالنسبة لمن يرغبون في كتابة كود LaTeX الخاص بهم، قد يكون الخيار 3 هو الخيار المفضل. فهو يوفّر أكبر قدر من المرونة وهو المحور الرئيسي لهذه المقالة.

## مقدمة

تقدم هذه المقالة مقدمةً إلى تنسيق الأنواع المختلفة من القوائم وتخصيصها في LaTeX:

* موقع `itemize` بيئة لإنشاء قائمة نقطية (غير مرتبة)
* موقع `enumerate` بيئة لإنشاء قائمة مرقمة (مرتبة)
* موقع `الوصف` بيئة لإنشاء قائمة وصفية

يُعد تنسيق القوائم موضوعًا واسعًا لأن قوائم LaTeX *شديدة* قابلة للتهيئة، مما يتيح إنشاء تنوع هائل من أنواع وبُنى القوائم. سنستعرض ونوضح بعض الطرق التي يمكنك استخدامها لـ [تهيئة قوائمك وتخصيصها](#customizing-lists).

## أمثلة على القوائم الأساسية

### بيئة itemize للقوائم النقطية (غير المرتبة)

تُنتج القوائم غير المرتبة (النقطية) بواسطة `itemize` بيئة، حيث يبدأ كل عنصر في القائمة باستخدام `\item` الأمر، الذي يولّد أيضًا رمز النقطة.

```latex
القوائم سهلة الإنشاء:
\begin{itemize}
  \item تبدأ عناصر القائمة بالأمر \verb|\item|.
  \item تُشار العناصر الفردية بنقطة سوداء، تُسمى نقطة تعداد.
  \item قد يكون النص داخل العناصر بأي طول.
\end{itemize}
```

[افتح هذا المثال في Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Basic+unordered+list+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cbegin%7Bdocument%7D%0ALists+are+easy+to+create%3A%0A%5Cbegin%7Bitemize%7D%0A++%5Citem+List+entries+start+with+the+%5Cverb%7C%5Citem%7C+command.%0A++%5Citem+Individual+entries+are+indicated+with+a+black+dot%2C+a+so-called+bullet.%0A++%5Citem+The+text+in+the+entries+may+be+of+any+length.%0A%5Cend%7Bitemize%7D%0A%5Cend%7Bdocument%7D)

ينتج هذا المثال المخرجات التالية:

![List1bOLV2.png](/files/b311c60e7d8b26a1eeb21a2c9f41ec86a1680816)

### بيئة enumerate للقوائم المرقمة (المرتبة)

للقوائم المرقمة (المرتبة) الصياغة نفسها ولكنها تستخدم `enumerate` بيئة: يجب أن يسبق كل عنصر تسلسل التحكم `\item`, الذي سيولّد تلقائيًا أرقامًا لتسمية العنصر. تبدأ هذه الأرقام من 1 في كل استخدام لـ `enumerate` بيئة—لاحظ أن هذا السلوك الافتراضي في ترقيم LaTeX يمكن تغييره/التحكم فيه عبر [`enumitem` الحزمة](https://ctan.org/pkg/enumitem).

```latex
القوائم المرقمة (المرتبة) سهلة الإنشاء:
\begin{enumerate}
  \item تُرقّم العناصر تلقائيًا.
  \item تبدأ الأرقام من 1 مع كل استخدام لبيئة \texttt{enumerate}.
  \item عنصر آخر في القائمة
\end{enumerate}
```

[افتح هذا المثال في Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Basic+ordered+list+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cbegin%7Bdocument%7D%0ANumbered+%28ordered%29+lists+are+easy+to+create%3A%0A%5Cbegin%7Benumerate%7D%0A++%5Citem+Items+are+numbered+automatically.%0A++%5Citem+The+numbers+start+at+1+with+each+use+of+the+%5Ctexttt%7Benumerate%7D+environment.%0A++%5Citem+Another+entry+in+the+list%0A%5Cend%7Benumerate%7D%0A%5Cend%7Bdocument%7D)

ينتج هذا المثال المخرجات التالية:

![List2OLV2.png](/files/34919dcde6c70873cbd3f1c4daae9a1a537807d5)

### بيئة الوصف

يوضح المثال التالي `الوصف` بيئة. يُوضَع الوسم (الاختياري) لكل عنصر بين أقواس مربعة بعد `\item` الأمر:

```latex
\item[label text] يوضع نص الوصف هنا...
```

نستخدم أيضًا حزمة `blindtext` لتوليد بعض النص الإنجليزي الوهمي في العنصر الثالث. وللحصول على الإنجليزية نحتاج إلى استخدام حزمة `babel` مع خيار اللغة `[english]`:

```latex
\usepackage[english]{babel}
```

إليك المثال:

```latex
\documentclass{article}
\usepackage[english]{babel} % للحصول على نص إنجليزي باستخدام حزمة blindtext
\usepackage{blindtext}
\begin{document}

\begin{description}
   \item هذا عنصر \textit{من دون} وسم.
   \item[Something short] وصف قصير من سطر واحد.
   \item[Something long] وصف أطول بكثير. \blindtext[1]
\end{description}
\end{document}
```

[افتح هذا المثال في Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Basic+description+list+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5Benglish%5D%7Bbabel%7D+%25+To+obtain+English+text+with+the+blindtext+package%0A%5Cusepackage%7Bblindtext%7D%0A%5Cbegin%7Bdocument%7D%0A%0A%5Cbegin%7Bdescription%7D%0A+++%5Citem+This+is+an+entry+%5Ctextit%7Bwithout%7D+a+label.%0A+++%5Citem%5BSomething+short%5D+A+short+one-line+description.%0A+++%5Citem%5BSomething+long%5D+A+much+longer+description.+%5Cblindtext%5B1%5D%0A%5Cend%7Bdescription%7D%0A%5Cend%7Bdocument%7D)

ينتج هذا المثال المخرجات التالية:

![Descriptionlist2.png](/files/ea99c1ba14e40de70205f88b2c5e87e078e6af16)

## تغيير وسم العناصر الفردية

كما هو موضح في `الوصف` مثال البيئة، فإن `\item` الأمر يقبل معلمة اختيارية بين أقواس مربعة. يمكنك استخدام هذه الميزة داخل `itemize` و `enumerate` البيئات لتغيير الوسم الافتراضي للعناصر الفردية في قائمتك:

```latex
\item[label text] يوضع نص العنصر هنا...
```

ال `label text` سيُستخدم لإنتاج الوسم الخاص بهذا العنصر.

```latex
غيّر الوسوم باستخدام \verb|\item[label text]| في بيئة \texttt{itemize}
\begin{itemize}
  \item هذه هي أول نقطة لدي
  \item نقطة أخرى أريد الإشارة إليها
  \item[!] نقطة للتعبير عن شيء!
  \item[$\blacksquare$] اجعل النقطة واضحة تمامًا.
  \item[NOTE] هذا العنصر لا يحتوي على نقطة
  \item[] وسم فارغ؟
\end{itemize}

\vspace{10pt}

غيّر الوسوم باستخدام \verb|\item[label text]| في بيئة \texttt{enumerate}
\begin{enumerate}
  \item هذه هي أول نقطة لدي
  \item نقطة أخرى أريد الإشارة إليها
  \item[!] نقطة للتعبير عن شيء!
  \item[$\blacksquare$] اجعل النقطة واضحة تمامًا.
  \item[NOTE] هذا العنصر لا يحتوي على نقطة
  \item[] وسم فارغ؟
\end{enumerate}
```

[افتح هذا المثال في Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Changing+list+labels\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bamssymb%7D%25+to+access+%24%5Cblacksquare%24%0A%5Cbegin%7Bdocument%7D%0AChange+the+labels+using+%5Cverb%7C%5Citem%5Blabel+text%5D%7C+in+an+%5Ctexttt%7Bitemize%7D+environment%0A%5Cbegin%7Bitemize%7D%0A++%5Citem+This+is+my+first+point%0A++%5Citem+Another+point+I+want+to+make+%0A++%5Citem%5B%21%5D+A+point+to+exclaim+something%21%0A++%5Citem%5B%24%5Cblacksquare%24%5D+Make+the+point+fair+and+square.%0A++%5Citem%5BNOTE%5D+This+entry+has+no+bullet%0A++%5Citem%5B%5D+A+blank+label%3F%0A%5Cend%7Bitemize%7D%0A%0A%5Cvspace%7B10pt%7D%0A%0AChange+the+labels+using+%5Cverb%7C%5Citem%5Blabel+text%5D%7C+in+an+%5Ctexttt%7Benumerate%7D+environment%0A%5Cbegin%7Benumerate%7D%0A++%5Citem+This+is+my+first+point%0A++%5Citem+Another+point+I+want+to+make+%0A++%5Citem%5B%21%5D+A+point+to+exclaim+something%21%0A++%5Citem%5B%24%5Cblacksquare%24%5D+Make+the+point+fair+and+square.%0A++%5Citem%5BNOTE%5D+This+entry+has+no+bullet%0A++%5Citem%5B%5D+A+blank+label%3F%0A%5Cend%7Benumerate%7D%0A%5Cend%7Bdocument%7D)

ينتج هذا المثال المخرجات التالية:

![ChangeBullets.png](/files/dd9d714fceb11058e8f3996a3acc3cf41d91ec20)

## القوائم المتداخلة

في LaTeX يمكنك إدراج قائمة داخل قائمة أخرى. يمكن تضمين أنواع القوائم المذكورة أعلاه داخل بعضها البعض، إما بشكل مختلط أو من النوع نفسه، حتى عمق 4 مستويات.

```latex
\begin{enumerate}
   \item تتكوّن الوسوم من أرقام متسلسلة
   \begin{itemize}
     \item تُشار العناصر الفردية بنقطة سوداء، تُسمى نقطة تعداد
     \item قد يكون النص داخل العناصر بأي طول
     \begin{description}
     \item[Note:] أود وصف شيء هنا
     \item[Caveat!] وأعطِ تحذيرًا هنا
     \end{description}
   \end{itemize}
   \item تبدأ الأرقام من 1 مع كل استخدام لبيئة \texttt{enumerate}
\end{enumerate}
```

[افتح هذا المثال في Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Basic+nested+list+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Benumerate%7D%0A+++%5Citem+The+labels+consists+of+sequential+numbers%0A+++%5Cbegin%7Bitemize%7D%0A+++++%5Citem+The+individual+entries+are+indicated+with+a+black+dot%2C+a+so-called+bullet%0A+++++%5Citem+The+text+in+the+entries+may+be+of+any+length%0A+++++%5Cbegin%7Bdescription%7D%0A+++++%5Citem%5BNote%3A%5D+I+would+like+to+describe+something+here%0A+++++%5Citem%5BCaveat%21%5D+And+give+a+warning+here%0A+++++%5Cend%7Bdescription%7D%0A+++%5Cend%7Bitemize%7D%0A+++%5Citem+The+numbers+starts+at+1+with+each+use+of+the+%5Ctexttt%7Benumerate%7D+environment%0A%5Cend%7Benumerate%7D%0A%5Cend%7Bdocument%7D)

ينتج هذا المثال المخرجات التالية:

![List3bOLV2.png](/files/a58af7263c7dac8ec393fad1b17e0398693171fa)

### القوائم المتداخلة: نمط الوسم

يتغير نمط الوسم لعناصر القائمة المتداخلة وفقًا لعمقها في القائمة. بالنسبة لـ `itemize` القوائم يتغير نوع النقطة؛ وبالنسبة لـ `enumerate` القوائم يتغير تنسيق الأرقام مع زيادة عمق العنصر. ويقتصر كلاهما على عمق 4 مستويات.

#### القوائم المتداخلة enumerate: تنسيق الأرقام

```latex
\begin{enumerate}
   \item العنصر في المستوى الأول
   \item العنصر في المستوى الأول
   \begin{enumerate}
     \item العنصر في المستوى الثاني
     \item العنصر في المستوى الثاني
     \begin{enumerate}
       \item العنصر في المستوى الثالث
       \item العنصر في المستوى الثالث
       \begin{enumerate}
         \item العنصر في المستوى الرابع
         \item العنصر في المستوى الرابع
       \end{enumerate}
     \end{enumerate}
   \end{enumerate}
 \end{enumerate}
```

[افتح هذا المثال في Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Basic+nested+ordered+list+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Benumerate%7D%0A+++%5Citem+First+level+item%0A+++%5Citem+First+level+item%0A+++%5Cbegin%7Benumerate%7D%0A+++++%5Citem+Second+level+item%0A+++++%5Citem+Second+level+item%0A+++++%5Cbegin%7Benumerate%7D%0A+++++++%5Citem+Third+level+item%0A+++++++%5Citem+Third+level+item%0A+++++++%5Cbegin%7Benumerate%7D%0A+++++++++%5Citem+Fourth+level+item%0A+++++++++%5Citem+Fourth+level+item%0A+++++++%5Cend%7Benumerate%7D%0A+++++%5Cend%7Benumerate%7D%0A+++%5Cend%7Benumerate%7D%0A+%5Cend%7Benumerate%7D%0A%5Cend%7Bdocument%7D)

ينتج هذا المثال المخرجات التالية:

![List4OLV2.png](/files/c554e25a6df1ebbc642ab8c37b5cbd7b5e853eec)

#### القوائم المتداخلة itemize: نمط النقاط

يتغير نمط النقاط تبعًا لعمق القوائم المتداخلة:

```latex
\begin{itemize}
   \item العنصر في المستوى الأول
   \item العنصر في المستوى الأول
   \begin{itemize}
     \item العنصر في المستوى الثاني
     \item العنصر في المستوى الثاني
     \begin{itemize}
       \item العنصر في المستوى الثالث
       \item العنصر في المستوى الثالث
       \begin{itemize}
         \item العنصر في المستوى الرابع
         \item العنصر في المستوى الرابع
       \end{itemize}
     \end{itemize}
   \end{itemize}
 \end{itemize}
```

[افتح هذا المثال في Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Basic+nested+ordered+list+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Bitemize%7D%0A+++%5Citem+First+level+item%0A+++%5Citem+First+level+item%0A+++%5Cbegin%7Bitemize%7D%0A+++++%5Citem+Second+level+item%0A+++++%5Citem+Second+level+item%0A+++++%5Cbegin%7Bitemize%7D%0A+++++++%5Citem+Third+level+item%0A+++++++%5Citem+Third+level+item%0A+++++++%5Cbegin%7Bitemize%7D%0A+++++++++%5Citem+Fourth+level+item%0A+++++++++%5Citem+Fourth+level+item%0A+++++++%5Cend%7Bitemize%7D%0A+++++%5Cend%7Bitemize%7D%0A+++%5Cend%7Bitemize%7D%0A+%5Cend%7Bitemize%7D%0A%5Cend%7Bdocument%7D)

ينتج هذا المثال المخرجات التالية:

![List5OLV2.png](/files/d1b32dc2da99938ea0b5c9667e485dd1a9191fa5)

## تخصيص القوائم

قوائم LaTeX *مرنة للغاية* ، مما يوفر مجالًا واسعًا لإنشاء أنواع كثيرة من القوائم المخصصة. يمكنك إما إجراء تعديلات مباشرة على أنواع القوائم القياسية في LaTeX أو، *ويُفضَّل*، استخدام حزمة [enumitem](https://ctan.org/pkg/enumitem) المرنة للغاية

يستضيف CTAN عددًا من [الحزم المتعلقة بالقوائم](https://ctan.org/topic/list) التي قد يكون من المفيد استكشافها إذا كانت لديك متطلبات تخصيص محددة. بالإضافة إلى ذلك، يوفّر tex.stackexchange ثروة من [الأسئلة المتعلقة بالقوائم](https://tex.stackexchange.com/questions/tagged/lists) مع إجابات تقدم رؤى مفيدة وأمثلة رائعة!

سنبدأ ببعض الأمثلة التي تعدّل وسوم القوائم ثم ننتقل إلى تخصيص تخطيطات القوائم.

### تخصيص القوائم: تغيير الوسوم

أولًا، نوضح كيفية تغيير وسم القائمة من دون استخدام [enumitem](https://ctan.org/pkg/enumitem).

#### أوامر توليد الوسوم القياسية

يمكن إنشاء القوائم المخصصة باستخدام [enumitem](https://ctan.org/pkg/enumitem) الحزمة أو عبر تعديل القوائم القياسية مباشرةً. هنا سنقدّم ملخصًا لبعض أوامر LaTeX القياسية ومتغيرات العداد ومعلمات القوائم التي قد تحتاج إلى معرفتها.

يوضح الجدول التالي أوامر LaTeX المستخدمة لتوليد الوسوم في كل مستوى من `itemize` و `enumerate` بيئات القوائم:

|             |                             |                           |
| ----------- | --------------------------- | ------------------------- |
| **المستوى** | **`enumerate`** أوامر الوسم | **`itemize`** أوامر الوسم |
| المستوى 1   | `\labelenumi`               | `\labelitemi`             |
| المستوى 2   | `\labelenumii`              | `\labelitemii`            |
| المستوى 3   | `\labelenumiii`             | `\labelitemiii`           |
| المستوى 4   | `\labelenumiv`              | `\labelitemiv`            |

#### متغيرات العداد لـ enumerate

ال `enumerate` بيئة القائمة تستخدم أيضًا أربعة *عدّاد* متغيرات تتابع قيمة الوسم الحالية لكل مستوى:

|             |                              |
| ----------- | ---------------------------- |
| **المستوى** | **`enumerate`** متغير العداد |
| المستوى 1   | `enumi`                      |
| المستوى 2   | `enumii`                     |
| المستوى 3   | `enumiii`                    |
| المستوى 4   | `enumiv`                     |

#### أمثلة: تخصيص وسوم قوائم enumerate

يمكنك تهيئة الوسم القياسي في LaTeX باستخدام `\renewcommand` لإعادة تعريف أوامر توليد الوسوم، وبالنسبة إلى `enumerate` بيئة، يمكنك أيضًا استخدام متغير العداد المناسب.

فيما يلي بعض الأمثلة التي تفعل ذلك من دون استخدام `enumitem` الحزمة.

**مثال عملي**

```latex
\documentclass{article}
\begin{document}
\renewcommand{\labelenumii}{\arabic{enumi}.\arabic{enumii}}
\renewcommand{\labelenumiii}{\arabic{enumi}.\arabic{enumii}.\arabic{enumiii}}
\renewcommand{\labelenumiv}{\arabic{enumi}.\arabic{enumii}.\arabic{enumiii}.\arabic{enumiv}}

\begin{enumerate}
\item واحد
\item اثنان
\item ثلاثة
\begin{enumerate}
    \item ثلاثة ونقطة واحدة
    \begin{enumerate}
    \item ثلاثة ونقطة واحدة، نقطة واحدة
        \begin{enumerate}
        \item ثلاثة ونقطة واحدة، نقطة واحدة، نقطة واحدة
        \item ثلاثة ونقطة واحدة، نقطة واحدة، نقطة اثنتان
        \end{enumerate}
    \end{enumerate}
\end{enumerate}
\item أربعة
\item خمسة
\end{enumerate}

\end{document}
```

[افتح هذا المثال في Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Configuring+list+layout\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cbegin%7Bdocument%7D%0A%5Crenewcommand%7B%5Clabelenumii%7D%7B%5Carabic%7Benumi%7D.%5Carabic%7Benumii%7D%7D%0A%5Crenewcommand%7B%5Clabelenumiii%7D%7B%5Carabic%7Benumi%7D.%5Carabic%7Benumii%7D.%5Carabic%7Benumiii%7D%7D%0A%5Crenewcommand%7B%5Clabelenumiv%7D%7B%5Carabic%7Benumi%7D.%5Carabic%7Benumii%7D.%5Carabic%7Benumiii%7D.%5Carabic%7Benumiv%7D%7D%0A%0A%5Cbegin%7Benumerate%7D%0A%5Citem+One%0A%5Citem+Two%0A%5Citem+Three%0A%5Cbegin%7Benumerate%7D%0A++++%5Citem+Three+point+one%0A++++%5Cbegin%7Benumerate%7D%0A++++%5Citem+Three+point+one%2C+point+one%0A++++++++%5Cbegin%7Benumerate%7D%0A++++++++%5Citem+Three+point+one%2C+point+one%2C+point+one%0A++++++++%5Citem+Three+point+one%2C+point+one%2C+point+two%0A++++++++%5Cend%7Benumerate%7D%0A++++%5Cend%7Benumerate%7D%0A%5Cend%7Benumerate%7D%0A%5Citem+Four%0A%5Citem+Five%0A%5Cend%7Benumerate%7D%0A%0A%5Cend%7Bdocument%7D)

ينتج هذا المثال المخرجات التالية:

![List9OLV2.png](/files/33fc50b1e93e9c3b5bd14ac91bc0ac4d118e6bbe)

**طباعة متغيرات العداد**

في المثال السابق، استُخدم الأمر `\arabic` لطباعة القيمة الحالية لمتغيرات الوسوم المختلفة *متغيرات العداد*. لاحظ أن «الأرقام العربية»، واستخدام الأمر `\arabic`، يشير إلى الأرقام من 0 إلى 9: راجع [مقال الأرقام العربية على ويكيبيديا](https://en.wikipedia.org/wiki/Arabic_numerals) للمزيد من الخلفية.

بوجه عام، يمكن طباعة *متغير العداد* بصيغ مختلفة باستخدام أحد الأوامر الخمسة التالية:

* `\arabic{*counter variable*}`
* `\roman{*counter variable*}`
* `\Roman{*counter variable*}`
* `\Alph{*counter variable*}`
* `\alph{*counter variable*}`

على سبيل المثال:

```latex
\documentclass{article}
\begin{document}
\begin{verbatim}
\newcounter{foo}
\setcounter{foo}{5}
\end{verbatim}
\newcounter{foo}
\setcounter{foo}{5}

\begin{itemize}
\item \verb|\arabic{foo}| ينتج \arabic{foo}
\item \verb|\roman{foo}| ينتج \roman{foo}
\item \verb|\Roman{foo}| ينتج \Roman{foo}
\item \verb|\Alph{foo}| ينتج \Alph{foo}
\item \verb|\alph{foo}| ينتج \alph{foo}
\end{itemize}

\end{document}
```

[افتح هذا المثال في Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Configuring+list+layout\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Bverbatim%7D%0A%5Cnewcounter%7Bfoo%7D%0A%5Csetcounter%7Bfoo%7D%7B5%7D++++%0A%5Cend%7Bverbatim%7D%0A%5Cnewcounter%7Bfoo%7D%0A%5Csetcounter%7Bfoo%7D%7B5%7D+%0A%0A%5Cbegin%7Bitemize%7D%0A%5Citem+%5Cverb%7C%5Carabic%7Bfoo%7D%7C+produces+%5Carabic%7Bfoo%7D%0A%5Citem+%5Cverb%7C%5Croman%7Bfoo%7D%7C+produces+%5Croman%7Bfoo%7D+%0A%5Citem+%5Cverb%7C%5CRoman%7Bfoo%7D%7C+produces+%5CRoman%7Bfoo%7D%0A%5Citem+%5Cverb%7C%5CAlph%7Bfoo%7D%7C+produces+%5CAlph%7Bfoo%7D%0A%5Citem+%5Cverb%7C%5Calph%7Bfoo%7D%7C+produces+%5Calph%7Bfoo%7D%0A%5Cend%7Bitemize%7D%0A%0A%5Cend%7Bdocument%7D)

ينتج هذا المثال المخرجات التالية:

![List8OLV2.png](/files/6b727ee6e8ab829089a523a3feffaf8b17261236)

**مثال غير عملي (للتسلية)**

يقوم هذا المثال بتنسيق الرموز التعبيرية باستخدام خط ألوان OpenType، لذا *لن يعمل إلا في LuaLaTeX*. راجع مقال Overleaf [نظرة عامة على التقنيات التي تدعم استخدام خطوط الرموز التعبيرية الملوّنة في LaTeX](/latex/ar/mqalat-mtamqh/10-an-overview-of-technologies-supporting-the-use-of-colour-emoji-fonts-in-latex.md) لمزيد من المعلومات حول تنسيق الرموز التعبيرية.

على الرغم من أن هذا مجرد مثال للتسلية باستخدام LuaLaTeX، فإنه يوضح تخصيص أوامر توليد الوسوم الأربعة كلها، واستخدام متغيرات عداد الوسوم، لإنشاء بعض أنماط الوسم غير المعتادة... انقر رابط “Open in Overleaf” لعرض الكود الكامل.

```latex
\renewcommand{\labelenumi}{\duck{enumi}}
\renewcommand{\labelenumii}{\duck{enumi}.\duckegg{enumii}}
\renewcommand{\labelenumiii}{\duck{enumi}.\duckegg{enumii}.\duckegg{enumiii}}
\renewcommand{\labelenumiv}{\duck{enumi}.\duckegg{enumii}.\duckegg{enumiii}.\duckchick{enumiv}}

\begin{enumerate}
\item بطة
\item المزيد من البط
\item سرب من البط
\begin{enumerate}
    \item بط وبيض
    \begin{enumerate}
    \item هل أرى...
    \item بط وبطّات قبل الفقس
       \begin{enumerate}
       \item أااا...
       \item لطيف جدًا!
       \end{enumerate}
    \end{enumerate}
\end{enumerate}
\item العودة إلى البط
\item مرة أخرى
\end{enumerate}
```

[لرؤية ***الكود الكامل***، افتح مثال LuaLaTeX هذا في Overleaf.](https://www.overleaf.com/docs?engine=lualatex\&snip_name=Fun+example+of+configuring+a+list\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bfontspec%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cnewfontfamily%5Cemojifont%5BRenderer%3DHarfbuzz%2CSizeFeatures%3D%7BSize%3D6%7D%5D%7BNotoColorEmoji.ttf%7D%0A%0A%5Cnewcount%5Cduckcount%0A%5Cnewcount%5Ceggcount%0A%5Cnewcount%5Cchickcount%0A%0A%5Cdef%5Cduck%231%7B%25%0A%5Cduckcount%3D%5Cvalue%7B%231%7D%25%0A%5Cloop%7B%5Cemojifont%5CUchar%221F986%7D%25%0A%5Cadvance%5Cduckcount+by+-1%0A%5Cunless%5Cifnum%5Cduckcount%3D0+%0A%5Crepeat%7D%0A%0A%5Cdef%5Cduckegg%231%7B%25%0A%5Ceggcount%3D%5Cvalue%7B%231%7D%25%0A%5Cloop%7B%5Cemojifont%5CUchar%221F95A%7D%25%0A%5Cadvance%5Ceggcount+by+-1%0A%5Cunless%5Cifnum%5Ceggcount%3D0+%0A%5Crepeat%7D%0A%0A%5Cdef%5Cduckchick%231%7B%25%0A%5Cchickcount%3D%5Cvalue%7B%231%7D%25%0A%5Cloop%7B%5Cemojifont%5CUchar%221F424%7D%25%0A%5Cadvance%5Cchickcount+by+-1%0A%5Cunless%5Cifnum%5Cchickcount%3D0+%0A%5Crepeat%7D%0A%5Crenewcommand%7B%5Clabelenumi%7D%7B%5Cduck%7Benumi%7D%7D%0A%5Crenewcommand%7B%5Clabelenumii%7D%7B%5Cduck%7Benumi%7D.%5Cduckegg%7Benumii%7D%7D%0A%5Crenewcommand%7B%5Clabelenumiii%7D%7B%5Cduck%7Benumi%7D.%5Cduckegg%7Benumii%7D.%5Cduckegg%7Benumiii%7D%7D%0A%5Crenewcommand%7B%5Clabelenumiv%7D%7B%5Cduck%7Benumi%7D.%5Cduckegg%7Benumii%7D.%5Cduckegg%7Benumiii%7D.%5Cduckchick%7Benumiv%7D%7D+%0A%0A%5Cbegin%7Benumerate%7D%0A%5Citem+A+duck%0A%5Citem+More+ducks%0A%5Citem+A+flurry+of+ducks%0A%5Cbegin%7Benumerate%7D%0A++++%5Citem+Ducks+and+eggs%0A++++%5Cbegin%7Benumerate%7D%0A++++%5Citem+Do+I+see...+%0A++++%5Citem+Ducks+and+pre-ducks+%0A+++++++%5Cbegin%7Benumerate%7D%0A+++++++%5Citem+Awww...%0A+++++++%5Citem+So+cute%21%0A+++++++%5Cend%7Benumerate%7D%0A++++%5Cend%7Benumerate%7D%0A%5Cend%7Benumerate%7D%0A%5Citem+Back+to+ducks%0A%5Citem+Again%0A%5Cend%7Benumerate%7D%0A%5Cend%7Bdocument%7D)

ينتج هذا المثال المخرجات التالية

![Ducklist.png](/files/50336e88bce117a6507221f7a6479d52fbb930a1)

### تخصيص القوائم: تغيير التخطيط

إضافةً إلى تخصيص الوسوم، من الممكن تعديل تباعد القوائم وتخطيطها، لكن علينا أولًا معرفة معلمات LaTeX المختلفة التي تحدد تنسيق القوائم وتخطيطها.

#### معلمات قوائم LaTeX

يمكنك استخدام [حزمة layouts](https://ctan.org/pkg/layouts?lang=en) لإنشاء مخطط يعرض معلمات قوائم LaTeX:

```latex
\documentclass{article}
\usepackage{layouts}
\begin{document}
\begin{figure}
\listdiagram
\caption{معلمات \LaTeX{} التي تحدد تنسيق القوائم وتخطيطها.}
\end{figure}
\end{document}
```

[افتح هذا المثال في Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Using+the+layout+package+to+view+list+structures\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Blayouts%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Bfigure%7D%0A%5Clistdiagram%0A%5Ccaption%7BThe+%5CLaTeX%7B%7D+parameters+which+define+typesetting+and+layout+of+lists.%7D+%0A%5Cend%7Bfigure%7D%0A%5Cend%7Bdocument%7D)

ينتج هذا المثال المخرجات التالية:

![](/files/0348953d08951ff13a50cd96d8876917b744778d)

يُوصَف معنى هذه المعلمات في [قسم القوائم من دليل LaTeX2e المرجعي غير الرسمي](https://tug.org/texinfohtml/latex2e.html#list) ولذلك لن نعيد إنتاجه هنا.

#### إنشاء قائمة مخصصة باستخدام بيئة list

يوفر LaTeX البيئة `القائمة` التي توفر إطارًا لإنشاء نوع أو أنواع القائمة الخاصة بك. باستخدام المعلومات الواردة في المخطط أعلاه، فإن المثال التالي هو نسخة معدلة قليلًا من مثال وارد في [قسم القوائم](https://tug.org/texinfohtml/latex2e.html#list) في [الدليل المرجعي غير الرسمي لـ LaTeX2e](https://tug.org/texinfohtml/latex2e.html)

```latex
\documentclass{article}
\begin{document}
\newcounter{boxlblcounter}
\newcommand{\makeboxlabel}[1]{\fbox{#1.}\hfill}% \hfill يملأ صندوق الوسم
\newenvironment{boxlabel}
  {\begin{list}
    {\arabic{boxlblcounter}}
    {\usecounter{boxlblcounter}
     \setlength{\labelwidth}{3em}
     \setlength{\labelsep}{0em}
     \setlength{\itemsep}{2pt}
     \setlength{\leftmargin}{1.5cm}
     \setlength{\rightmargin}{2cm}
     \setlength{\itemindent}{0em}
     \let\makelabel=\makeboxlabel
    }
  }
{\end{list}}

\newcommand{\randomtext}{مرحبًا، إليك بعض النصوص من دون معنى. مرحبًا، إليك بعض النصوص من دون معنى. مرحبًا، إليك بعض النصوص من دون معنى.}

\noindent\randomtext

\begin{boxlabel}
\item \randomtext
\item \randomtext
\item \randomtext
\end{boxlabel}
\end{document}
```

[افتح هذا المثال في Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Using+the+list+environment\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cnewcounter%7Bboxlblcounter%7D++%0A%5Cnewcommand%7B%5Cmakeboxlabel%7D%5B1%5D%7B%5Cfbox%7B%231.%7D%5Chfill%7D%25+%5Chfill+fills+the+label+box%0A%5Cnewenvironment%7Bboxlabel%7D%0A++%7B%5Cbegin%7Blist%7D%0A++++%7B%5Carabic%7Bboxlblcounter%7D%7D%0A++++%7B%5Cusecounter%7Bboxlblcounter%7D%0A+++++%5Csetlength%7B%5Clabelwidth%7D%7B3em%7D%0A+++++%5Csetlength%7B%5Clabelsep%7D%7B0em%7D%0A+++++%5Csetlength%7B%5Citemsep%7D%7B2pt%7D%0A+++++%5Csetlength%7B%5Cleftmargin%7D%7B1.5cm%7D%0A+++++%5Csetlength%7B%5Crightmargin%7D%7B2cm%7D%0A+++++%5Csetlength%7B%5Citemindent%7D%7B0em%7D+%0A+++++%5Clet%5Cmakelabel%3D%5Cmakeboxlabel%0A++++%7D%0A++%7D%0A%7B%5Cend%7Blist%7D%7D%0A%0A%5Cnewcommand%7B%5Crandomtext%7D%7BHello%2C+here+is+some+text+without+a+meaning.+Hello%2C+here+is+some+text+without+a+meaning.+Hello%2C+here+is+some+text+without+a+meaning.%7D%0A%0A%5Cnoindent%5Crandomtext%0A%0A%5Cbegin%7Bboxlabel%7D%0A%5Citem+%5Crandomtext%0A%5Citem+%5Crandomtext%0A%5Citem+%5Crandomtext%0A%5Cend%7Bboxlabel%7D%0A%5Cend%7Bdocument%7D)

ينتج هذا المثال المخرجات التالية:

![Listenvironmemt2.png](/files/04c43eef077d7ca6898185ced21259c8896a6028)

### استخدام حزمة enumitem لتعديل القوائم وإنشائها

ال [`enumitem` الحزمة](https://ctan.org/pkg/enumitem?lang=en) هي الطريقة الموصى بها لتعديل قوائم LaTeX القياسية أو إنشاء تنسيقات القوائم المخصصة الخاصة بك. `enumitem` يقدّم *ثروة* من الميزات، لذلك لا يمكننا تغطيتها كلها، لكن يمكننا تقديم بعض الأمثلة الأساسية لمساعدتك على البدء. وأي شخص يرغب في استكشاف هذه الحزمة المتعددة الاستخدامات بعمق أكبر يُ *بشدّة* نُشجَّع على تصفح tex.stackexchange بحثًا عن [أسئلة وأجوبة (وأمثلة) تتعلق بـ `enumitem` الحزمة](https://tex.stackexchange.com/questions/tagged/enumitem)، وقراءة [توثيق الحزمة](http://mirrors.ctan.org/macros/latex/contrib/enumitem/enumitem.pdf).

#### خيار الحزمة enumitem shortlabels

ال `enumitem` يوفّر معلمة تهيئة اختيارية تُسمى `shortlabels` والتي تستخدمها عبر

```latex
\usepackage[shortlabels]{enumitem}
```

ال `shortlabels` الخيار يحاكي سلوك `enumerate` الحزمة، ويقدّم طريقة موجزة لتعريف مخطط الترقيم لبيئات enumerate. راجع [`enumerate` توثيق الحزمة](https://ctan.org/pkg/enumerate?lang=en) للحصول على مزيد من المعلومات.

#### تعديل قائمة قياسية

بالإشارة إلى [مخطط معلمات LaTeX](#latex-list-parameters) يمكننا استخدام `enumitem` لتخصيص قائمة LaTeX قياسية بسهولة، مثل `itemize`:

```latex
\documentclass{article}
\usepackage{enumitem}

\begin{document}

\newcommand{\randomtext}{مرحبًا، إليك بعض النصوص من دون معنى. مرحبًا، إليك بعض النصوص من دون معنى.}

\section*{استخدام الإعدادات الافتراضية في LaTeX لـ \texttt{itemize}}

\randomtext

\begin{itemize}
\item \randomtext
   \begin{itemize}
      \item \randomtext
        \begin{itemize}
        \item \randomtext
        \end{itemize}
   \item \randomtext
   \end{itemize}
\item \randomtext
\end{itemize}

\section*{استخدام \texttt{itemize} مخصص عبر \texttt{enumitem}}

\subsection*{لاحظ تأثير إعدادات الهامش الأيسر والأيمن}

\randomtext

\begin{itemize}[leftmargin=30pt, rightmargin=2cm]
\item \randomtext
   \begin{itemize}
      \item \randomtext
        \begin{itemize}
        \item \randomtext
        \end{itemize}
   \item \randomtext
   \end{itemize}
\item \randomtext
\end{itemize}

\end{document}
```

[افتح هذا `enumitem` مثال في Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Modifying+a+LaTeX+list+with+enumitem\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Benumitem%7D%0A%0A%5Cbegin%7Bdocument%7D%0A%0A%5Cnewcommand%7B%5Crandomtext%7D%7BHello%2C+here+is+some+text+without+a+meaning.+Hello%2C+here+is+some+text+without+a+meaning.%7D%0A%0A%5Csection%2A%7BUsing+LaTeX%27s+default+settings+for+%5Ctexttt%7Bitemize%7D%7D%0A%0A%5Crandomtext%0A%0A%5Cbegin%7Bitemize%7D%0A%5Citem+%5Crandomtext%0A+++%5Cbegin%7Bitemize%7D%0A++++++%5Citem+%5Crandomtext%0A++++++++%5Cbegin%7Bitemize%7D%0A++++++++%5Citem+%5Crandomtext%0A++++++++%5Cend%7Bitemize%7D%0A+++%5Citem+%5Crandomtext%0A+++%5Cend%7Bitemize%7D%0A%5Citem+%5Crandomtext%0A%5Cend%7Bitemize%7D%0A%0A%5Csection%2A%7BUsing+a+custom+%5Ctexttt%7Bitemize%7D+via+%5Ctexttt%7Benumitem%7D%7D%0A%0A%5Csubsection%2A%7BNote+the+effect+of+left+and+right+margin+settings%7D%0A%0A%5Crandomtext%0A%0A%5Cbegin%7Bitemize%7D%5Bleftmargin%3D30pt%2C+rightmargin%3D2cm%5D%0A%5Citem+%5Crandomtext%0A+++%5Cbegin%7Bitemize%7D%0A++++++%5Citem+%5Crandomtext%0A++++++++%5Cbegin%7Bitemize%7D%0A++++++++%5Citem+%5Crandomtext%0A++++++++%5Cend%7Bitemize%7D%0A+++%5Citem+%5Crandomtext%0A+++%5Cend%7Bitemize%7D%0A%5Citem+%5Crandomtext%0A%5Cend%7Bitemize%7D%0A%0A%5Cend%7Bdocument%7D)

ينتج هذا المثال المخرجات التالية:

![Tweakitemize2.png](/files/026168a987204aa501946d6337d38e08a31b5f13)

#### إنشاء قائمة جديدة باستخدام enumitem

لإنشاء نوع قائمة جديد باستخدام `enumitem` تستخدم `\newlist` الأمر الذي يتطلب 3 معاملات:

```latex
\newlist{name}{list-type}{max-depth}
```

* **`الاسم`**: اسم قائمتك، ليُستخدم كبيئة:

  ```
  \begin{name}
  ...
  \end{name}
  ```
* **`نوع القائمة`** : يجب أن يكون أحد أنواع القوائم القياسية في LaTeX:
* `enumerate`
* `itemize`
* `الوصف`
* **`العمق الأقصى`**: أعمق مستوى يمكن أن تتداخل إليه هذه القائمة. **ملاحظة** بالنسبة إلى القوائم التي تتجاوز حد التداخل الافتراضي في LaTeX وهو 4، يجب عليك أيضًا إصدار الأمر `\setlistdepth{*integer*}` حيث `*integer*` هو أقصى عمق للتداخل تنوي استخدامه. راجع [مثال Lists for lawyers](#lists-for-lawyers-nesting-lists-to-an-arbitrary-depth) لرؤية توضيح لذلك.

بعد أن تنشئ القائمة الجديدة يمكنك تهيئتها باستخدام `\setlist` الأمر.

**استخدام \setlist لتهيئة قائمة مخصصة أُنشئت باستخدام enumitem**

في هذا المثال سننشئ قائمة جديدة تُسمّى `myitems` والتي تعتمد على `enumerate`. سنضبط [`**العمق الأقصى**`](#maxdepth) إلى 3:

```latex
\newlist{myitems}{enumerate}{3}
```

الحد الأدنى المطلوب هو استخدام الأمر `\setlist` لتعريف الوسوم لهذه القائمة المخصصة. وإحدى الطرق للقيام بذلك، بالنسبة للقوائم القائمة على enumerate، هي استخدام متغيرات العداد التي أنشأتها `enumitem` الحزمة—تستخدم متغيرات العداد تلك الـ `**الاسم**` لقائمتك: `myitems` في مثالنا.

إليك كيفية استخدام متغيرات العدّاد المقابلة ضمن إعدادات التسميات لدينا:

* `myitems**i**` لعناصر المستوى 1
* `myitems**ii**` لعناصر المستوى 2
* `myitems**iii**` لعناصر المستوى 3

لو كان لدينا أكثر من 3 مستويات، لكانت متغيرات العدّاد المقابلة تُسمّى `myitems**iv**` (المستوى 4)، `myitems**v**` (المستوى 5) وهكذا دواليك، مع الاستمرار في استخدام الأرقام الرومانية الصغيرة.

إضافةً إلى التسميات، سنضبط أيضًا بعض القيم لـ `leftmargin` و `rightmargin` (انظر إلى [مخطط معلمات LaTeX](#latex-list-parameters)).

```latex
\documentclass{article}
\usepackage{enumitem}
\begin{document}

\newcommand{\randomtext}{مرحبًا، إليك بعض النصوص من دون معنى. مرحبًا، إليك بعض النصوص من دون معنى.}

\newcommand{\shortrandomtext}{مرحبًا، إليك بعض النصوص.}
% أنشئ قائمة مخصصة بناءً على enumerate
% تُسمّى "myitems"
% سننشئ قائمة بعمق 3 مستويات
\newlist{myitems}{enumerate}{3}

% اضبط سلوك عناصر المستوى 1
% ملاحظة: نستخدم عدّاد القائمة "myitemsi"
\setlist[myitems, 1]
{label=\arabic{myitemsi}., %1., 2., 3., ...
leftmargin=\parindent,
rightmargin=10pt
}

% اضبط سلوك عناصر المستوى 2
% ملاحظة: نستخدم عدّاد القائمة "myitemsii"
\setlist[myitems, 2]
{label=\arabic{myitemsi}.\arabic{myitemsii}, %1.1, 1.2, 1.3...
leftmargin=15pt,
rightmargin=15pt}

% اضبط سلوك عناصر المستوى 3
% ملاحظة: نستخدم عدّاد القائمة "myitemsiii"
\setlist[myitems, 3]
% استخدم تسمية على النحو 1.1:<kern>(a)، 1.1:<kern>(b) إلخ
{label=\arabic{myitemsi}.\arabic{myitemsii}:\kern1.5pt(\alph{myitemsiii}),
leftmargin=30pt,
rightmargin=30pt}

\randomtext
\begin{myitems}
\item \randomtext
    \begin{myitems}
    \item \randomtext
        \begin{myitems}
        \item \randomtext
        \item \randomtext
        \end{myitems}
    \item \shortrandomtext
    \item \shortrandomtext
    \end{myitems}
\item \randomtext
\end{myitems}
\end{document}
```

[افتح هذا `enumitem` مثال في Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Create+a+custom+list+with+enumitem\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Benumitem%7D%0A%5Cbegin%7Bdocument%7D%0A%0A%5Cnewcommand%7B%5Crandomtext%7D%7BHello%2C+here+is+some+text+without+a+meaning.+Hello%2C+here+is+some+text+without+a+meaning.%7D%0A%0A%5Cnewcommand%7B%5Cshortrandomtext%7D%7BHello%2C+here+is+some+text.%7D%0A%25+Create+a+custom+list+based+on+enumerate%0A%25+It+is+called+%22myitems%22%0A%25+We%27ll+create+a+list+that+is+3+levels+deep%0A%5Cnewlist%7Bmyitems%7D%7Benumerate%7D%7B3%7D%0A%0A%25+Configure+the+behaviour+of+level+1+entries%0A%25+NOTE%3A+we+use+the+list+counter+%22myitemsi%22%0A%5Csetlist%5Bmyitems%2C+1%5D%0A%7Blabel%3D%5Carabic%7Bmyitemsi%7D.%2C+%251.%2C+2.%2C+3.%2C+...%0Aleftmargin%3D%5Cparindent%2C%0Arightmargin%3D10pt%0A%7D%0A%0A%25+Configure+the+behaviour+of+level+2+entries%0A%25+NOTE%3A+we+use+the+list+counter+%22myitemsii%22%0A%5Csetlist%5Bmyitems%2C+2%5D%0A%7Blabel%3D%5Carabic%7Bmyitemsi%7D.%5Carabic%7Bmyitemsii%7D%2C+%251.1%2C+1.2%2C+1.3...%0Aleftmargin%3D15pt%2C%0Arightmargin%3D15pt%7D%0A%0A%25+Configure+the+behaviour+of+level+3+entries%0A%25+NOTE%3A+we+use+the+list+counter+%22myitemsiii%22%0A%5Csetlist%5Bmyitems%2C+3%5D%0A%25+Use+a+label+of+1.1%3A%3Ckern%3E%28a%29%2C+1.1%3A%3Ckern%3E%28b%29+etc++%0A%7Blabel%3D%5Carabic%7Bmyitemsi%7D.%5Carabic%7Bmyitemsii%7D%3A%5Ckern1.5pt%28%5Calph%7Bmyitemsiii%7D%29%2C%0Aleftmargin%3D30pt%2C%0Arightmargin%3D30pt%7D%0A%0A%5Crandomtext%0A%5Cbegin%7Bmyitems%7D%0A%5Citem+%5Crandomtext%0A++++%5Cbegin%7Bmyitems%7D%0A++++%5Citem+%5Crandomtext%0A++++++++%5Cbegin%7Bmyitems%7D%0A++++++++%5Citem+%5Crandomtext%0A++++++++%5Citem+%5Crandomtext%0A++++++++%5Cend%7Bmyitems%7D%0A++++%5Citem+%5Cshortrandomtext%0A++++%5Citem+%5Cshortrandomtext%0A++++%5Cend%7Bmyitems%7D%0A%5Citem+%5Crandomtext%0A%5Cend%7Bmyitems%7D%0A%5Cend%7Bdocument%7D)

ينتج هذا المثال المخرجات التالية:

![CustomItemizeList.png](/files/260a014680ff043fdb3ef6bc78b09aaaaf5827b3)

#### قوائم للمحامين: تداخل القوائم إلى عمق اعتباطي

ال `enumitem` تتيح لك الحزمة إنشاء قوائم يمكن تداخلها إلى أي عمق تريده، مما يزيل حدّ LaTeX البالغ 4. قد يستفيد من ذلك أي شخص يجهّز عقودًا ذات هياكل بنود معقدة (ومتداخلة بعمق)، رغم أن الكود المتداخل يبدو قليلًا مُربكًا...

```latex
\documentclass{article}
\usepackage{enumitem}

\begin{document}

\newlist{contract}{enumerate}{10}
\setlist[contract]{label*=\arabic*.}
\setlistdepth{10}

\section*{قائمة مخصصة متداخلة إلى 10 مستويات عمقًا!}

\begin{contract}
\item المستوى 1
 \begin{contract}
 \item المستوى 2
   \begin{contract}
   \item المستوى 3
     \begin{contract}
     \item المستوى 4
       \begin{contract}
       \item المستوى 5
        \begin{contract}
        \item المستوى 6
         \begin{contract}
         \item المستوى 7
          \begin{contract}
          \item المستوى 8
           \begin{contract}
           \item المستوى 9
            \begin{contract}
            \item المستوى 10
          \end{contract}
         \end{contract}
        \end{contract}
       \end{contract}
      \end{contract}
     \end{contract}
    \end{contract}
   \end{contract}
  \end{contract}
 \end{contract}
\end{document}
```

[افتح هذا `enumitem` مثال في Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Using+the+enumitem+package+to+create+deeply+nested+lists\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Benumitem%7D%0A%0A%5Cbegin%7Bdocument%7D%0A%0A%5Cnewlist%7Bcontract%7D%7Benumerate%7D%7B10%7D%0A%5Csetlist%5Bcontract%5D%7Blabel%2A%3D%5Carabic%2A.%7D%0A%5Csetlistdepth%7B10%7D+%0A%0A%5Csection%2A%7BCustom+list+nested+to+10+levels+deep%21%7D%0A%0A%5Cbegin%7Bcontract%7D%0A%5Citem+Level+1%0A+%5Cbegin%7Bcontract%7D%0A+%5Citem+Level+2%0A+++%5Cbegin%7Bcontract%7D%0A+++%5Citem+Level+3%0A+++++%5Cbegin%7Bcontract%7D%0A+++++%5Citem+Level+4%0A+++++++%5Cbegin%7Bcontract%7D%0A+++++++%5Citem+Level+5%0A++++++++%5Cbegin%7Bcontract%7D%0A++++++++%5Citem+Level+6%0A+++++++++%5Cbegin%7Bcontract%7D%0A+++++++++%5Citem+Level+7%0A++++++++++%5Cbegin%7Bcontract%7D%0A++++++++++%5Citem+Level+8%0A+++++++++++%5Cbegin%7Bcontract%7D%0A+++++++++++%5Citem+Level+9%0A++++++++++++%5Cbegin%7Bcontract%7D%0A++++++++++++%5Citem+Level+10%0A++++++++++%5Cend%7Bcontract%7D%0A+++++++++%5Cend%7Bcontract%7D%0A++++++++%5Cend%7Bcontract%7D%0A+++++++%5Cend%7Bcontract%7D%0A++++++%5Cend%7Bcontract%7D%0A+++++%5Cend%7Bcontract%7D%0A++++%5Cend%7Bcontract%7D%0A+++%5Cend%7Bcontract%7D%0A++%5Cend%7Bcontract%7D%0A+%5Cend%7Bcontract%7D%0A%5Cend%7Bdocument%7D)

ينتج هذا المثال المخرجات التالية:

![10levels.png](/files/9d6fafb25ef9f69ff333bddb65200b321522d420)

#### نقاط تعداد مخصصة باستخدام حزمة enumitem وMetaPost

تعمل الأمثلة التالية فقط مع LuaLaTeX وهي مصممة لتقديم فكرة عن بعض الإمكانيات—وبالطبع، استبدل MetaPost بأداة/تطبيق الرسم المفضل لديك!

تستخدم هذه الأمثلة `luamplib` الحزمة، كما تُظهر أيضًا الأوامر القابلة للتوسيع، مثل `\the` و `\directlua`، يمكن استخدامها داخل كود MetaPost.

**المثال 1: نقاط تعداد ذات حجم تلقائي**

ينتج هذا المثال نقاط تعداد يتناقص حجمها مع زيادة عمق القائمة. انقر على رابط «افتح في Overleaf» لتشغيل المثال وعرض الكود الكامل.

```latex
% أعلن قائمة جديدة قائمة على itemize عبر enumitem
\newlist{myEnumerate}{itemize}{6}

% يزيل الخيار nosep جميع المسافات الرأسية
% تؤدي label=\protect\mpbullet إلى أن تُرسم جميع النقاط
% بواسطة ماكرو يستخدم كود MetaPost. \protect
% مطلوب كما هو مذكور في دليل enumitem

\setlist[myEnumerate]{nosep,label=\protect\mpbullet}
\setlistdepth{6}

\begin{myEnumerate}
\item المستوى 1
  \begin{myEnumerate}
   \item المستوى 2
    \begin{myEnumerate}
     \item المستوى 3
      \begin{myEnumerate}
       \item المستوى 4
        \begin{myEnumerate}
         \item المستوى 5
          \begin{myEnumerate}
           \item المستوى 6
           \end{myEnumerate}
        \end{myEnumerate}
       \end{myEnumerate}
    \end{myEnumerate}
   \end{myEnumerate}
\end{myEnumerate}
```

[لرؤية ***الكود الكامل***، افتح مثال LuaLaTeX هذا في Overleaf.](https://www.overleaf.com/docs?engine=lualatex\&snip_name=Using+MetaPost+with+the+enumitem+package\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bluamplib%7D%0A%5Cusepackage%7Benumitem%7D%0A%5Ceverymplib%7Bbeginfig%280%29%3B%7D%0A%5Ceveryendmplib%7Bendfig%3B%7D%0A%0A%5Cbegin%7Bdocument%7D%0A%0AThis+list+configuration+example+uses+MetaPost+code+that+contains+Lua+code+via+%5Cverb%7C%5Cdirectlua%7C.+Bullets+are+created+by+MetaPost+code%2C+size+is+calculated+from+the+depth+of+the+entry.%0A%0A%25+It+is+convenient+to+use+%5Clet%5Cmpdepth%5C%40listdepth%3A+makes+it+%0A%25+easier+to+use+in+MetaPost+code%0A%0A%5Ccatcode%60%40%3D11%0A%5Clet%5Cmpdepth%5C%40listdepth%0A%5Ccatcode%60%40%3D12%0A%0A%5Cnewcommand%7B%5Cmpbullet%7D%7B%25%0A%5Cbegin%7Bmplibcode%7D%25%0Adraw+%280%2C0%29..%280%2C-%5Cdirectlua%7Btex.print%28%5Cthe%5Cmpdepth%2F2%29%7D%29+withpen+pencircle+scaled+2pt+withcolor+white%3B%0Adrawdot%280%2C0%29+withpen+pencircle+scaled+%5Cdirectlua%7Btex.print%285%2Fmath.sqrt%28%5Cthe%5Cmpdepth%29%29%7Dbp%3B%0A%5Cend%7Bmplibcode%7D%7D%0A%25+Declare+a+new+itemize-based+list+via+enumitem%0A%5Cnewlist%7BmyEnumerate%7D%7Bitemize%7D%7B6%7D%0A%0A%25+The+nosep+option+removes+all+vertical+spacing%0A%25+the+label%3D%5Cprotect%5Cmpbullet+causes+all+bullets+to+be+%0A%25+drawn+by+a+macro+that+uses+MetaPost+code.+%5Cprotect%0A%25+is+required+as+noted+in+the+enumitem+manual+%0A%0A%5Csetlist%5BmyEnumerate%5D%7Bnosep%2Clabel%3D%5Cprotect%5Cmpbullet%7D%0A%5Csetlistdepth%7B6%7D%0A%0A%5Cbegin%7BmyEnumerate%7D%0A%5Citem+Level+1%0A++%5Cbegin%7BmyEnumerate%7D%0A+++%5Citem+Level+2%0A++++%5Cbegin%7BmyEnumerate%7D%0A+++++%5Citem+Level+3%0A++++++%5Cbegin%7BmyEnumerate%7D%0A+++++++%5Citem+Level+4%0A++++++++%5Cbegin%7BmyEnumerate%7D%0A+++++++++%5Citem+Level+5%0A++++++++++%5Cbegin%7BmyEnumerate%7D%0A+++++++++++%5Citem+Level+6%0A+++++++++++%5Cend%7BmyEnumerate%7D%0A++++++++%5Cend%7BmyEnumerate%7D%0A+++++++%5Cend%7BmyEnumerate%7D%0A++++%5Cend%7BmyEnumerate%7D%0A+++%5Cend%7BmyEnumerate%7D%0A%5Cend%7BmyEnumerate%7D%0A%5Cend%7Bdocument%7D)

ينتج هذا المثال المخرجات التالية:

![Autosize.png](/files/650128528f1992a91db9d06ffe58b96050dd06f5)

**المثال 2: نقاط تعداد مخصصة غريبة**

استُلهم هذا المثال من [على tex.stackexchange](https://tex.stackexchange.com/a/313337) قامت Overleaf بتعديله لإنشاء نقاط تعداد مخصصة باستخدام كود MetaPost. انقر على رابط «افتح في Overleaf» لتشغيل المثال وعرض الكود الكامل.

```latex
\newlist{todolist}{itemize}{2}

\begin{itemize}
  \item ابدأ بالتفكير فيما نأمل في تحقيقه
  \begin{todolist}
  \item[\mpdot] حدّد الأهداف
  \item[\mpyingyang] وازِن الأثر البيئي
  \item[\mpsquare{0}{5}{0}] نفّذ الخطط
    \begin{todolist}
    \item[\mpsquare{-0.5}{4}{0}] خطط المرحلة 1
    \item[\mpsquare{-0.5}{4}{-20}] خطط المرحلة 2
    \item[\mpsquare{-0.5}{4}{-40}] خطط المرحلة 3
    \item[\mpsquare{-0.5}{4}{-60}] خطط المرحلة 4
    \end{todolist}
  \end{todolist}
\end{itemize}
```

[لرؤية ***الكود الكامل***، افتح مثال LuaLaTeX هذا في Overleaf.](https://www.overleaf.com/docs?engine=lualatex\&snip_name=Second+example+using+MetaPost+with+the+enumitem+package\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Benumitem%7D%0A%5Cusepackage%7Bluamplib%7D%0A%5Ceverymplib%7Bbeginfig%280%29%3B%7D%0A%5Ceveryendmplib%7Bendfig%3B%7D%0A%0A%5Cbegin%7Bdocument%7D%0A%0A%5Cnewcommand%7B%5Cmpyingyang%7D%7B%25%0A%5Clower1.5pt%5Chbox%7B%5Cbegin%7Bmplibcode%7D%25%0Apath+p%3B%0Ap%3A%3D%28-1%2C0%29..%280%2C-1%29..%281%2C0%29%3B%0Afill+%28p%7Bup%7D..%7Bdown%7D%280%2C0%29%7Bdown%7D..%7Bup%7Dcycle%29+scaled+0.15cm%3B%0Adraw+%28p..%280%2C1%29..cycle%29+scaled+0.15cm+%3B%0A%5Cend%7Bmplibcode%7D%7D%25%0A%7D%25%0A%5Cnewcommand%7B%5Cmpdot%7D%7B%25%0A%5Clower1.5pt%5Chbox%7B%5Cbegin%7Bmplibcode%7D%25%0Adrawdot%280%2C0%29+withpen+pencircle+scaled+2bp%3B%0Adraw+fullcircle+scaled+0.2cm%3B%0Adraw+fullcircle+scaled+0.3cm%3B%0A%5Cend%7Bmplibcode%7D%7D%25%0A%7D%25%0A%5Cnewcommand%7B%5Cmpsquare%7D%5B3%5D%7B%25%0A%5Clower%231pt%5Chbox%7B%5Cbegin%7Bmplibcode%7D%25%0Adraw+unitsquare+rotated+%233+scaled+%232pt%3B%0A%5Cend%7Bmplibcode%7D%25%0A%7D%7D%25%0A%5Cnewlist%7Btodolist%7D%7Bitemize%7D%7B2%7D%0A%0A%5Cbegin%7Bitemize%7D%0A++%5Citem+Start+thinking+about+what+we+hope+to+achieve%0A++%5Cbegin%7Btodolist%7D%0A++%5Citem%5B%5Cmpdot%5D+Identify+objectives%0A++%5Citem%5B%5Cmpyingyang%5D+Balance+environmental+impact+%0A++%5Citem%5B%5Cmpsquare%7B0%7D%7B5%7D%7B0%7D%5D+Implement+plans%0A++++%5Cbegin%7Btodolist%7D%0A++++%5Citem%5B%5Cmpsquare%7B-0.5%7D%7B4%7D%7B0%7D%5D+Stage+1+plans%0A++++%5Citem%5B%5Cmpsquare%7B-0.5%7D%7B4%7D%7B-20%7D%5D+Stage+2+plans%0A++++%5Citem%5B%5Cmpsquare%7B-0.5%7D%7B4%7D%7B-40%7D%5D+Stage+3+plans%0A++++%5Citem%5B%5Cmpsquare%7B-0.5%7D%7B4%7D%7B-60%7D%5D+Stage+4+plans%0A++++%5Cend%7Btodolist%7D%0A++%5Cend%7Btodolist%7D%0A%5Cend%7Bitemize%7D%0A%5Cend%7Bdocument%7D)

ينتج هذا المثال المخرجات التالية:

![CustomBullets2.png](/files/7df4069c119e0646985a27dee48378de8a44b2f5)

## ميزات أخرى لحزمة enumitem

كما ذُكر، فإن `enumitem` الحزمة متعددة الاستخدامات للغاية وتوفّر العديد من الميزات لاستخدام القوائم وتخصيصها. على سبيل المثال، تشمل الميزات التي لم نتناولها ما يلي:

* الإحالة إلى عناصر القائمة: على سبيل المثال، انظر هذا [سؤال ومثال على tex.stackexchane](https://tex.stackexchange.com/questions/524822/help-for-formatting-the-ref-of-nested-enumerate)
* التحكم في `enumerate` ترقيم القائمة:
  * تعيين الرقم الابتدائي لأول عنصر
  * متابعة ترقيم `enumerate` القوائم

وغير ذلك الكثير! تصفّح [tex.stackexchange للعثور على العديد من الأمثلة الرائعة](https://tex.stackexchange.com/questions/tagged/enumitem) لما يمكنك فعله عبر `enumitem`—وبالطبع، [اقرأ توثيق الحزمة](https://ctan.org/pkg/enumitem).


---

# 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/asasyat-latex/04-lists.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.
