> 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/texlive/ar/that-slh-balhzm/minted.md).

# {Minted}

توضح هذه المقالة كيفية استخدام [`minted` الحزمة](https://ctan.org/pkg/minted?lang=en) لتنسيق وإبراز الشيفرة المصدرية للغات البرمجة داخل مستند LaTeX، بدءًا بمثال:

```latex
\documentclass{article}
\usepackage{minted}
\begin{document}
\begin{minted}{python}
import numpy as np
    
def incmatrix(genl1,genl2):
    m = len(genl1)
    n = len(genl2)
    M = None #ليصبح مصفوفة السقوط
    VT = np.zeros((n*m,1), int)  #متغير وهمي
    
    #احسب مصفوفة XOR على مستوى البتّات
    M1 = bitxormatrix(genl1)
    M2 = np.triu(bitxormatrix(genl2),1) 

    for i in range(m-1):
        for j in range(i+1, m):
            [r,c] = np.where(M2 == M1[i,j])
            for k in range(len(r)):
                VT[(i)*n + r[k]] = 1;
                VT[(i)*n + c[k]] = 1;
                VT[(j)*n + r[k]] = 1;
                VT[(j)*n + c[k]] = 1;
                
                if M is None:
                    M = np.copy(VT)
                else:
                    M = np.concatenate((M, VT), 1)
                
                VT = np.zeros((n*m,1), int)
    
    return M
\end{minted}
\end{document}
```

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

<p align="center"><img src="https://sharelatex-wiki-cdn-671420.c.cdn77.org/learn-scripts/images/f/f0/OLV2minted.png" alt="Example displaying the output of the minted package"></p>

هناك أمران مهمان هنا. في المقدمة يتم استيراد الحزمة بكتابة

```latex
\usepackage{minted}
```

ثم تقوم العلامتان `\begin{minted}{python}` و `\end{minted}` بتحديد بيئة تطبع النص حرفيًا بخطوط أحادية المسافة وتطبّق أيضًا الألوان على التعليقات والكلمات المفتاحية والدوال. وتحدد المعلمة `python` لغة البرمجة التي كُتبت بها الشيفرة المصدرية. `minted` يدعم أكثر من 150 لغة برمجة ولغة ترميز وكذلك ملفات الإعداد، راجع [دليل المراجع](https://www.overleaf.com/learn/latex/Code_Highlighting_with_minted#Reference_guide) للحصول على قائمة اللغات المدعومة.

**ملاحظة**: لكي `minted` ليعمل مع توزيع *المحلي* ‏LaTeX، يجب تثبيت برنامج إضافي يسمى [Pygments](https://pygments.org/) . [Overleaf](https://www.overleaf.com/) يمكن أن يوفر عليك عناء تثبيته والحاجة إلى تشغيل أوامر خاصة لترجمة مستندك — على Overleaf، المستندات التي تستخدم `minted` ستعمل «مباشرةً دون إعدادات إضافية».

### الاستخدام الأساسي

كما هو موضح في المثال التالي، يمكن تهيئة `minted` البيئة لتعديل المظهر المرئي للشيفرة المنسقة. هنا، `minted` تستخدم البيئة عدة معاملات مفصولة بفواصل بالشكل `key=value`:

```latex
\documentclass{article}
\usepackage{minted}
\usepackage{xcolor} % للوصول إلى اللون المسمّى LightGray
\definecolor{LightGray}{gray}{0.9}
\begin{document}
\begin{minted}
[
frame=lines,
framesep=2mm,
baselinestretch=1.2,
bgcolor=LightGray,
fontsize=\footnotesize,
linenos
]
{python}
import numpy as np
    
def incmatrix(genl1,genl2):
    m = len(genl1)
    n = len(genl2)
    M = None #ليصبح مصفوفة السقوط
    VT = np.zeros((n*m,1), int)  #متغير وهمي
    
    #احسب مصفوفة XOR على مستوى البتّات
    M1 = bitxormatrix(genl1)
    M2 = np.triu(bitxormatrix(genl2),1) 

    for i in range(m-1):
        for j in range(i+1, m):
            [r,c] = np.where(M2 == M1[i,j])
            for k in range(len(r)):
                VT[(i)*n + r[k]] = 1;
                VT[(i)*n + c[k]] = 1;
                VT[(j)*n + r[k]] = 1;
                VT[(j)*n + c[k]] = 1;
                
                if M is None:
                    M = np.copy(VT)
                else:
                    M = np.concatenate((M, VT), 1)
                
                VT = np.zeros((n*m,1), int)
    
    return M
\end{minted}
\end{document}
```

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

<p align="center"><img src="https://sharelatex-wiki-cdn-671420.c.cdn77.org/learn-scripts/images/f/ff/OLV2minted2.png" alt="Example applying formatting to typeset code produced by the minted package"></p>

المعلمات المستخدمة في هذا المثال هي:

* `frame=lines`: يرسم خطين، واحدًا في الأعلى وآخر في أسفل الشيفرة لتأطيرها. القيم الأخرى الممكنة هي `leftline`, `topline`, `bottomline` و `single`.
* `framesep=2mm`: تم ضبط المسافة بين الإطار والمحتوى على 2 مم. يمكن استخدام [وحدات طول](https://www.overleaf.com/learn/latex/Lengths_in_LaTeX) أخرى.
* `baselinestretch=1.2`: تم ضبط تباعد الأسطر في الشيفرة على 1.2.
* `bgcolor=LightGray`: تم ضبط لون الخلفية على `LightGray`. تحتاج إلى استيراد الحزمة `xcolor` ليعمل هذا. راجع [استخدام الألوان في LaTeX](https://www.overleaf.com/learn/latex/Using_colours_in_LaTeX) للمزيد من المعلومات حول معالجة الألوان.
* `fontsize=\footnotesize`: تم ضبط حجم الخط على `footnotesize`. يمكن ضبط أي [حجم خط](https://www.overleaf.com/learn/latex/Font_sizes_and_kinds%23Reference_guide) آخر.
* `linenos`: يفعّل أرقام الأسطر.

من الخيارات الأخرى المفيدة:

* `mathescape`: يفعّل وضع الرياضيات في تعليقات الشيفرة.
* `rulecolor`: يغيّر لون الإطار.
* `showspaces`: يفعّل محرفًا خاصًا لجعل المسافات مرئية.

### تضمين شيفرة من ملف

تُخزَّن الشيفرة عادةً في ملف مصدر، لذا فإن الأمر الذي يستورد الشيفرة تلقائيًا من ملف يكون مفيدًا جدًا، كما هو موضح في المثال التالي:

```latex
\documentclass{article}
\usepackage{minted}
\title{استيراد الملفات باستخدام minted}
\begin{document}
سيتم استيراد الشيفرة التالية مباشرةً من ملف:

\inputminted{octave}{BitXorMatrix.m}
\end{document}
```

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

<img src="https://sharelatex-wiki-cdn-671420.c.cdn77.org/learn-scripts/images/c/c8/OLV2mintedinput.png" alt="استخدام minted لاستيراد ملف شيفرة" height="392" width="600">

الأمر `\inputminted{octave}{BitXorMatrix.m}` يستورد الشيفرة من الملف `BitXorMatrix.m`، وتحدد المعلمة `octave` لغة البرمجة الخاصة بالشيفرة في LaTeX. ويمكن لهذا الأمر أن يأخذ معلمتين إضافيتين لاستيراد جزء فقط من الملف؛ فعلى سبيل المثال، لاستيراد الشيفرة من السطر 2 إلى السطر 12، يصبح الأمر:

```latex
\inputminted[firstline=2, lastline=12]{octave}{BitXorMatrix.m}
```

### شيفرة من سطر واحد

إذا كنت تحتاج إلى إدخال سطر واحد فقط من الشيفرة، فإن الأمر `\mint`، والذي تُعرض بنيته في المثال التالي، سيؤدي الغرض.

{% code overflow="wrap" %}

```latex
يعمل تنسيق الشيفرة من سطر واحد أيضًا مع \texttt{minted}. على سبيل المثال، يمكن تنسيق مقطع صغير من HTML مثل هذا:
\mint{html}|<h2>Something <b>here</b></h2>|
يمكن تنسيقه بشكل صحيح.
```

{% endcode %}

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

<img src="https://sharelatex-wiki-cdn-671420.c.cdn77.org/learn-scripts/images/d/d9/OLV2mintedHTML.png" alt="مثال على شيفرة من سطر واحد باستخدام minted" height="112" width="600">

تحدد المعلمة بين الأقواس المعقوفة لغة البرمجة (`html` لغة ترميز في هذه الحالة)، بينما يُحدَّد النص الفعلي المراد تنسيقه بواسطة المحرف '|'

### مشكلات مع Overleaf المستضاف ذاتيًا

إذا كنت تستخدم التجميع في بيئة sandbox وكذلك خادم overleaf لنشر overleaf، فقد لا يعمل minted بشكل جيد. لمزيد من المعلومات التفصيلية، يمكنك الاطلاع على: [issues/131](https://github.com/yu-i-i/overleaf-cep/issues/131). تحتاج إلى تفعيل ملف تعريف تعليمات ARM وبعض نداءات النظام لكي يعمل minted.


---

# 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/texlive/ar/that-slh-balhzm/minted.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.
