> 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/altnsyq/12-code-highlighting-with-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}
```

[افتح هذا المثال في Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Example+of+the+minted+package\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bminted%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Bminted%7D%7Bpython%7D%0Aimport+numpy+as+np%0A++++%0Adef+incmatrix%28genl1%2Cgenl2%29%3A%0A++++m+%3D+len%28genl1%29%0A++++n+%3D+len%28genl2%29%0A++++M+%3D+None+%23to+become+the+incidence+matrix%0A++++VT+%3D+np.zeros%28%28n%2Am%2C1%29%2C+int%29++%23dummy+variable%0A++++%0A++++%23compute+the+bitwise+xor+matrix%0A++++M1+%3D+bitxormatrix%28genl1%29%0A++++M2+%3D+np.triu%28bitxormatrix%28genl2%29%2C1%29+%0A%0A++++for+i+in+range%28m-1%29%3A%0A++++++++for+j+in+range%28i%2B1%2C+m%29%3A%0A++++++++++++%5Br%2Cc%5D+%3D+np.where%28M2+%3D%3D+M1%5Bi%2Cj%5D%29%0A++++++++++++for+k+in+range%28len%28r%29%29%3A%0A++++++++++++++++VT%5B%28i%29%2An+%2B+r%5Bk%5D%5D+%3D+1%3B%0A++++++++++++++++VT%5B%28i%29%2An+%2B+c%5Bk%5D%5D+%3D+1%3B%0A++++++++++++++++VT%5B%28j%29%2An+%2B+r%5Bk%5D%5D+%3D+1%3B%0A++++++++++++++++VT%5B%28j%29%2An+%2B+c%5Bk%5D%5D+%3D+1%3B%0A++++++++++++++++%0A++++++++++++++++if+M+is+None%3A%0A++++++++++++++++++++M+%3D+np.copy%28VT%29%0A++++++++++++++++else%3A%0A++++++++++++++++++++M+%3D+np.concatenate%28%28M%2C+VT%29%2C+1%29%0A++++++++++++++++%0A++++++++++++++++VT+%3D+np.zeros%28%28n%2Am%2C1%29%2C+int%29%0A++++%0A++++return+M%0A%5Cend%7Bminted%7D%0A%5Cend%7Bdocument%7D)

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

![مثال يعرض مخرجات حزمة minted](/files/32cc9d5477c8a1d4d8525a9dd6a7936972097241)

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

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

ثم تقوم العلامات `\begin{minted}{python}` و `\end{minted}` تحدد بيئة تطبع النص كما هو بخط أحادي المسافة، وتطبّق أيضًا ألوانًا على التعليقات والكلمات المفتاحية والدوال. والمعامل `python` هي لغة البرمجة التي كُتبت بها الشيفرة المصدرية. `minted` يدعم أكثر من 150 لغة برمجة ولغة ترميز بالإضافة إلى ملفات الإعداد، راجع [دليل المراجع](#reference-guide) للاطلاع على قائمة اللغات المدعومة.

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

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

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

```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}
```

[افتح هذا المثال في Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Another+example+of+the+minted+package\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bminted%7D%0A%5Cusepackage%7Bxcolor%7D+%25+to+access+the+named+colour+LightGray%0A%5Cdefinecolor%7BLightGray%7D%7Bgray%7D%7B0.9%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Bminted%7D%0A%5B%0Aframe%3Dlines%2C%0Aframesep%3D2mm%2C%0Abaselinestretch%3D1.2%2C%0Abgcolor%3DLightGray%2C%0Afontsize%3D%5Cfootnotesize%2C%0Alinenos%0A%5D%0A%7Bpython%7D%0Aimport+numpy+as+np%0A++++%0Adef+incmatrix%28genl1%2Cgenl2%29%3A%0A++++m+%3D+len%28genl1%29%0A++++n+%3D+len%28genl2%29%0A++++M+%3D+None+%23to+become+the+incidence+matrix%0A++++VT+%3D+np.zeros%28%28n%2Am%2C1%29%2C+int%29++%23dummy+variable%0A++++%0A++++%23compute+the+bitwise+xor+matrix%0A++++M1+%3D+bitxormatrix%28genl1%29%0A++++M2+%3D+np.triu%28bitxormatrix%28genl2%29%2C1%29+%0A%0A++++for+i+in+range%28m-1%29%3A%0A++++++++for+j+in+range%28i%2B1%2C+m%29%3A%0A++++++++++++%5Br%2Cc%5D+%3D+np.where%28M2+%3D%3D+M1%5Bi%2Cj%5D%29%0A++++++++++++for+k+in+range%28len%28r%29%29%3A%0A++++++++++++++++VT%5B%28i%29%2An+%2B+r%5Bk%5D%5D+%3D+1%3B%0A++++++++++++++++VT%5B%28i%29%2An+%2B+c%5Bk%5D%5D+%3D+1%3B%0A++++++++++++++++VT%5B%28j%29%2An+%2B+r%5Bk%5D%5D+%3D+1%3B%0A++++++++++++++++VT%5B%28j%29%2An+%2B+c%5Bk%5D%5D+%3D+1%3B%0A++++++++++++++++%0A++++++++++++++++if+M+is+None%3A%0A++++++++++++++++++++M+%3D+np.copy%28VT%29%0A++++++++++++++++else%3A%0A++++++++++++++++++++M+%3D+np.concatenate%28%28M%2C+VT%29%2C+1%29%0A++++++++++++++++%0A++++++++++++++++VT+%3D+np.zeros%28%28n%2Am%2C1%29%2C+int%29%0A++++%0A++++return+M%0A%5Cend%7Bminted%7D%0A%5Cend%7Bdocument%7D)

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

![مثال يطبّق التنسيق على الشيفرة المنسقة الناتجة عن حزمة minted](/files/bf608e9f68363960197453d276bca6f71a5a32af)

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

* `frame=lines`: يرسم خطين، أحدهما في الأعلى والآخر في الأسفل لإحاطة الشيفرة بإطار. القيم الممكنة الأخرى هي `leftline`, `topline`, `bottomline` و `single`.
* `framesep=2mm` : تم ضبط فصل الإطار على 2 مم. يمكن استخدام [وحدات طول](/latex/ar/altnsyq/01-lengths-in-latex.md) أخرى.
* `baselinestretch=1.2`: تم ضبط تباعد الأسطر في الشيفرة على 1.2.
* `bgcolor=LightGray`: تم ضبط لون الخلفية على `LightGray`. تحتاج إلى استيراد حزمة `xcolor` ليعمل هذا. انظر [استخدام الألوان في LaTeX](/latex/ar/altnsyq/13-using-colors-in-latex.md) للتعرّف على المزيد حول معالجة الألوان.
* `fontsize=\footnotesize`: تم ضبط حجم الخط على `footnotesize`. يمكن ضبط أي [حجم خط](/latex/ar/alkhtwt/01-font-sizes-families-and-styles.md#reference-guide) آخر.
* `linenos`: يفعّل أرقام الأسطر.

خيارات أخرى قد تكون مفيدة هي:

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

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

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

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

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

[افتح هذا المثال في Overleaf](https://www.overleaf.com/docs?engine=\&snip_name\[]=main.tex\&snip\[]=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bminted%7D%0A%5Ctitle%7BImporting+files+using+minted%7D%0A%5Cbegin%7Bdocument%7D%0AThe+next+code+will+be+directly+imported+from+a+file%3A%0A%0A%5Cinputminted%7Boctave%7D%7BBitXorMatrix.m%7D%0A%5Cend%7Bdocument%7D\&snip_name\[]=BitXorMatrix.m\&snip\[]=function+X+%3D+BitXorMatrix%28A%2CB%29%0A%25function+to+compute+the+sum+without+charge+of+two+vectors%0A%09%0A%09%25convert+elements+into+usigned+integers%0A%09A+%3D+uint8%28A%29%3B%0A%09B+%3D+uint8%28B%29%3B%0A%0A%09m1+%3D+length%28A%29%3B%0A%09m2+%3D+length%28B%29%3B%0A%09X+%3D+uint8%28zeros%28m1%2C+m2%29%29%3B%0A%09for+n1%3D1%3Am1%0A%09%09for+n2%3D1%3Am2%0A%09%09%09X%28n1%2C+n2%29+%3D+bitxor%28A%28n1%29%2C+B%28n2%29%29%3B%0A%09%09end%0A%09end\&main_document=main.tex)

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

![استخدام minted لاستيراد ملف شيفرة](/files/288f65932c5511aa66d1e9e0f9a406e45a7fb934)

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

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

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

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

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

[افتح هذا المثال في Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=One+line+code+example+with+minted\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bminted%7D%0A%5Cbegin%7Bdocument%7D%0AOne-line+code+formatting+also+works+with+%5Ctexttt%7Bminted%7D.+For+example%2C+a+small+fragment+of+HTML+like+this%3A%0A%5Cmint%7Bhtml%7D%7C%3Ch2%3ESomething+%3Cb%3Ehere%3C%2Fb%3E%3C%2Fh2%3E%7C%0A%5Cnoindent+can+be+formatted+correctly.%0A%5Cend%7Bdocument%7D)

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

![مثال لشيفرة من سطر واحد باستخدام minted](/files/51d72a385e3ad6c310edda046bd609dd07f05e8d)

المعامل بين الأقواس المعقوفة يحدد لغة البرمجة (`html` لغة ترميز في هذه الحالة) مع كون النص الفعلي المراد تنسيقه محدودًا بالمحرف '|' .

## مُحلّلات مخصصة

**(يرجى ملاحظة أنه بسبب تغييرات في `minted` منذ 2023، فإن النهج التالي سيعمل فقط في** [**TeX Live 2022 أو أقدم**](/latex/ar/qaadh-almarfh/148-using-the-overleaf-project-menu.md#tex-live-version)**.)**

بشكل افتراضي، `minted` يدعم فقط اللغات التي تكون محللاتها مثبتة مسبقًا أو مسجّلة بالفعل لدى `pygmentize`. إذا كنت قد كتبت محللًا مخصصًا، أو تريد استخدام محلل للغة لم تُثبت بعد على Overleaf، فلا يزال بإمكانك استخدامه في مشروع Overleaf الخاص بك باستخدام النهج المذكور [هنا](https://tex.stackexchange.com/questions/18083/how-to-add-custom-c-keywords-to-be-recognized-by-minted#comment930474_42392).

لنفترض أنك عرّفت محللًا في الملف `nl-lexer.py`، ويحتوي على الفئة `NetLogoLexer` للغة NetLogo. ارفع `nl-lexer.py` إلى مشروع Overleaf الخاص بك، ثم حدّد `nl-lexer.py:NetLogoLexer` كـ«اسم اللغة» عند استخدام `minted`. على سبيل المثال:

```latex
\begin{minted}{nl-lexer.py:NetLogoLexer -x}
   ... شيفرتك هنا ...
\end{minted}
```

[إليك](http://quantixed.org/2018/10/23/new-lexicon-how-to-add-a-custom-minted-lexer-in-overleaf/) مثال آخر للغة ImageJ Macro.

## الألوان وأوراق الأنماط

تُحفظ أنظمة الألوان المستخدمة في تمييز الشيفرة ضمن أوراق أنماط. يمكنك إنشاء نظامك الخاص أو استخدام نظام متاح بالفعل في توزيعة LaTeX الخاصة بك. انظر [دليل المراجع](#reference-guide) للاطلاع على قائمة أوراق الأنماط المضمّنة في [يمكن لـ Overleaf أن يوفر عليك عناء تثبيته واضطرارك إلى تشغيل أوامر خاصة لتجميع مستندك—فعلى Overleaf، ستعمل المستندات التي تستخدم](https://www.overleaf.com).

```latex
\documentclass{article}
\usepackage{minted}
\usemintedstyle{borland}
\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}
```

[افتح هذا المثال في Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Using+stylesheets+with+minted+package\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bminted%7D%0A%5Cusemintedstyle%7Bborland%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Bminted%7D%7Bpython%7D%0Aimport+numpy+as+np%0A++++%0Adef+incmatrix%28genl1%2Cgenl2%29%3A%0A++++m+%3D+len%28genl1%29%0A++++n+%3D+len%28genl2%29%0A++++M+%3D+None+%23to+become+the+incidence+matrix%0A++++VT+%3D+np.zeros%28%28n%2Am%2C1%29%2C+int%29++%23dummy+variable%0A++++%0A++++%23compute+the+bitwise+xor+matrix%0A++++M1+%3D+bitxormatrix%28genl1%29%0A++++M2+%3D+np.triu%28bitxormatrix%28genl2%29%2C1%29+%0A%0A++++for+i+in+range%28m-1%29%3A%0A++++++++for+j+in+range%28i%2B1%2C+m%29%3A%0A++++++++++++%5Br%2Cc%5D+%3D+np.where%28M2+%3D%3D+M1%5Bi%2Cj%5D%29%0A++++++++++++for+k+in+range%28len%28r%29%29%3A%0A++++++++++++++++VT%5B%28i%29%2An+%2B+r%5Bk%5D%5D+%3D+1%3B%0A++++++++++++++++VT%5B%28i%29%2An+%2B+c%5Bk%5D%5D+%3D+1%3B%0A++++++++++++++++VT%5B%28j%29%2An+%2B+r%5Bk%5D%5D+%3D+1%3B%0A++++++++++++++++VT%5B%28j%29%2An+%2B+c%5Bk%5D%5D+%3D+1%3B%0A++++++++++++++++%0A++++++++++++++++if+M+is+None%3A%0A++++++++++++++++++++M+%3D+np.copy%28VT%29%0A++++++++++++++++else%3A%0A++++++++++++++++++++M+%3D+np.concatenate%28%28M%2C+VT%29%2C+1%29%0A++++++++++++++++%0A++++++++++++++++VT+%3D+np.zeros%28%28n%2Am%2C1%29%2C+int%29%0A++++%0A++++return+M%0A%5Cend%7Bminted%7D%0A%5Cend%7Bdocument%7D)

باستخدام `borland` ورقة الأنماط ينتج المخرجات التالية:

![مخرجات حزمة minted باستخدام ورقة الأنماط borland](/files/7a25b2900c20534199ced5059f4c3a2ab784100b)

صياغة تعيين نمط تلوين سهلة، فالأمر `\usemintedstyle{borland}` يستخدم سمة الألوان `borland` لتنسيق الشيفرة المصدرية. يمكنك العثور على المزيد من أنظمة الألوان في [دليل المراجع](#reference-guide).

## التسميات التوضيحية والتسميات وقائمة القوائم

يمكن تضمين القوائم المنسقة باستخدام **minted** في عنصر عائم، تمامًا مثل [الأشكال](/latex/ar/mzyd-mn-almwdhwaat/27-inserting-images.md#positioning) و [الجداول](/latex/ar/alashkal-waljdawl/01-tables.md#positioning-tables). يمكن تعيين تسميات توضيحية وتسميات لقوائم الشيفرة، ثم الإشارة إليها لاحقًا وإدراجها في «قائمة القوائم».

```latex
\documentclass{article}
\usepackage{minted}
\title{أمثلة شيفرة القوائم}
\begin{document}
\begin{listing}[!ht]
\inputminted{octave}{BitXorMatrix.m}
\caption{مثال من ملف خارجي}
\label{listing:1}
\end{listing}

\begin{listing}[!ht]
\begin{minted}{c}
#include <stdio.h>
int main() {
   printf("مرحبًا بالعالم!"); /*تُخرج printf() السلسلة الموضوعة بين علامتي الاقتباس*/
   return 0;
}
\end{minted}
\caption{مرحبًا بالعالم بلغة C}
\label{listing:2}
\end{listing}

\begin{listing}[!ht]
\begin{minted}{lua}
function fact (n)--تعرّف دالة المضروب
  if n == 0 then
    return 1
  else
    return n * fact(n-1)
  end
end

print("أدخل عددًا:")
a = io.read("*number") -- اقرأ عددًا
print(fact(a))
\end{minted}
\caption{مثال من دليل Lua}
\label{listing:3}
\end{listing}
\noindent\texttt{minted} يقوم بعمل رائع في تنسيق القوائم \ref{listing:1}، \ref{listing:2} و\ref{listing:3}.
\renewcommand\listoflistingscaption{قائمة الشيفرات المصدرية}
\listoflistings
\end{document}
```

[افتح هذا المثال في Overleaf](https://www.overleaf.com/docs?engine=\&snip_name\[]=main.tex\&snip\[]=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bminted%7D%0A%5Ctitle%7BListing+code+examples%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Blisting%7D%5B%21ht%5D%0A%5Cinputminted%7Boctave%7D%7BBitXorMatrix.m%7D%0A%5Ccaption%7BExample+from+external+file%7D%0A%5Clabel%7Blisting%3A1%7D%0A%5Cend%7Blisting%7D%0A%0A%5Cbegin%7Blisting%7D%5B%21ht%5D%0A%5Cbegin%7Bminted%7D%7Bc%7D%0A%23include+%3Cstdio.h%3E%0Aint+main%28%29+%7B%0A+++printf%28%22Hello%2C+World%21%22%29%3B+%2F%2Aprintf%28%29+outputs+the+quoted+string%2A%2F%0A+++return+0%3B%0A%7D%0A%5Cend%7Bminted%7D%0A%5Ccaption%7BHello+World+in+C%7D%0A%5Clabel%7Blisting%3A2%7D%0A%5Cend%7Blisting%7D%0A%0A%5Cbegin%7Blisting%7D%5B%21ht%5D%0A%5Cbegin%7Bminted%7D%7Blua%7D%0Afunction+fact+%28n%29--defines+a+factorial+function%0A++if+n+%3D%3D+0+then%0A++++return+1%0A++else%0A++++return+n+%2A+fact%28n-1%29%0A++end%0Aend%0A%0Aprint%28%22enter+a+number%3A%22%29%0Aa+%3D+io.read%28%22%2Anumber%22%29+--+read+a+number%0Aprint%28fact%28a%29%29%0A%5Cend%7Bminted%7D%0A%5Ccaption%7BExample+from+the+Lua+manual%7D%0A%5Clabel%7Blisting%3A3%7D%0A%5Cend%7Blisting%7D%0A%5Cnoindent%5Ctexttt%7Bminted%7D+makes+a+nice+job+of+typesetting+listings+%5Cref%7Blisting%3A1%7D%2C+%5Cref%7Blisting%3A2%7D+and+%5Cref%7Blisting%3A3%7D.%0A%5Crenewcommand%5Clistoflistingscaption%7BList+of+source+codes%7D%0A%5Clistoflistings%0A%5Cend%7Bdocument%7D\&snip_name\[]=BitXorMatrix.m\&snip\[]=%25This+code+is+directly+imported+from+a+file%0A%25A+function+to+compute+the+sum+without+charge+of+two+vectors%0Afunction+X+%3D+BitXorMatrix%28A%2CB%29%0A%25convert+elements+into+unsigned+integers%0AA+%3D+uint8%28A%29%3B%0AB+%3D+uint8%28B%29%3B%0A%0Am1+%3D+length%28A%29%3B%0Am2+%3D+length%28B%29%3B%0AX+%3D+uint8%28zeros%28m1%2C+m2%29%29%3B%0A+for+n1%3D1%3Am1%0A++for+n2%3D1%3Am2%0A+++X%28n1%2C+n2%29+%3D+bitxor%28A%28n1%29%2C+B%28n2%29%29%3B%0A++end%0Aend\&main_document=main.tex)

تحتوي الصفحة الأولى من هذا المثال على المخرجات التالية:

![مثال على شذرات شيفرة القوائم](/files/01ff5f70dac5c6e167b2b31f229dbbf1a959c4c3)

لطباعة القائمة التي تضم جميع عناصر «listing» استخدم `\listoflistings`. في المثال أعلاه، العنوان الافتراضي `قائمة القوائم` يُغيَّر إلى `قائمة الشيفرات المصدرية` بكتابة

```latex
\renewcommand\listoflistingscaption{قائمة الشيفرات المصدرية}
\listoflistings % الآن نسّق القائمة
```

تحتوي الصفحة الثانية الناتجة عن المثال أعلاه على القائمة التالية:

![مثال على قوائم الشيفرة المصدرية](/files/2aa41acc50f4eae68a7984f219b3eff61e9b81b5)

## دليل المراجع

**أنماط الألوان لـ minted**

| الاسم    | المخرجات                                                              | الاسم    | المخرجات                                                               |
| -------- | --------------------------------------------------------------------- | -------- | ---------------------------------------------------------------------- |
| manni    | ![MintedStyles1.png](/files/a73b13054b2cff37614ff1297586a7e0316da265) | fruity   | ![MintedStyles10.png](/files/eba1ebe48c1f1c82e01317d595a0ad4694a29f9b) |
| rrt      | ![MintedStyles2.png](/files/dad8d8ab4824f2f4b69232e9847646af55c7d174) | autumn   | ![MintedStyles11.png](/files/21887188dc164302d2163293e3087320a34e824c) |
| perldoc  | ![MintedStyles3.png](/files/e048005627b90fe7360ecbd02b55f6d2f6d0aa43) | bw       | ![MintedStyles12.png](/files/971c1cde928385d03611c0fc975045c9480aabb5) |
| borland  | ![MintedStyles4.png](/files/91f137e0b631a4c11198f68c6dbeaaf590f9b19c) | emacs    | ![MintedStyles13.png](/files/6ddd3d09120ea41f695432b850d537446e65bebc) |
| colorful | ![MintedStyles5.png](/files/a0dae64c96d2ca6a181377843d8552260586b023) | vim      | ![MintedStyles14.png](/files/313f2ec4dacb89c4e27abd70abd867ba7880703b) |
| murphy   | ![MintedStyles6.png](/files/edaa0015f8e395b16fcd70d3369f87947348c922) | pastie   | ![MintedStyles15.png](/files/c8d9ce28df414c88412d7a8a76d79482ba6764e1) |
| vs       | ![MintedStyles7.png](/files/725616f74ccb37593fc1aabb8a400429b793ae1c) | friendly | ![MintedStyles16.png](/files/c92370788629fc9ffd26ecad4e97cdfb523d7e7c) |
| trac     | ![MintedStyles8.png](/files/ac0bb5e6d72aaf119381ec9a0ef8c4fe5777530d) | native   | ![MintedStyles17.png](/files/459f76baab1a93f9c6b7f4a9021fb23a15f716bf) |
| tango    | ![MintedStyles9.png](/files/b3a6e31a12e573486ed2a5d1e8342997d244a465) | monokai  | ![MintedStyles18.png](/files/2cddc5a1173f06d473b63d3760cf31f068e3e314) |

تحتاج بعض أنظمة الألوان إلى خلفية داكنة لتكون مقروءة.

**أهم لغات البرمجة المدعومة وملفات الإعداد**

|                       |                   |               |           |
| --------------------- | ----------------- | ------------- | --------- |
| cucumber              | abap              | ada           | ahk       |
| antlr                 | apacheconf        | applescript   | as        |
| aspectj               | autoit            | asy           | awk       |
| basemake              | bash              | bat           | bbcode    |
| befunge               | bmax              | boo           | brainfuck |
| bro                   | bugs              | c             | ceylon    |
| cfm                   | cfs               | cheetah       | clj       |
| cmake                 | cobol             | cl            | console   |
| control               | coq               | cpp           | croc      |
| csharp                | css               | cuda          | cyx       |
| d                     | dg                | diff          | django    |
| dpatch                | duel              | dylan         | ec        |
| erb                   | evoque            | fan           | fancy     |
| fortran               | gas               | genshi        | glsl      |
| gnuplot               | go                | gosu          | groovy    |
| gst                   | haml              | haskell       | hxml      |
| html                  | http              | hx            | idl       |
| irc                   | ini               | java          | jade      |
| js                    | json              | jsp           | kconfig   |
| koka                  | lasso             | livescrit     | llvm      |
| لوغوس                 | لوا               | ماكو          | ماسون     |
| ماتلاب                | مينيد             | مونكي         | مون       |
| إم إكس إم إل          | مايتي             | ماي إس كيو إل | ناسِم     |
| نيو ليب               | نيوزبيك           | نمباي         | أوكامِل   |
| octave                | أو أو سي          | بيرل          | بي إتش بي |
| بي إل/بي جي إس كيو إل | بوستغري إس كيو إل | بوستسكريبت    | بوت       |
| برولوج                | بي إس كيو إل      | بوبت          | python    |
| كيو إم إل             | راجل              | خام           | روبي      |
| آر إتش تي إم إل       | ساس               | سكيم          | سمولتوك   |
| إس كيو إل             | إس إس بي          | تي سي إل      | شاي       |
| تي إكس                | نص                | فالا          | في جي إل  |
| vim                   | إكس إم إل         | إكس كويري     | يامل      |

## قراءة إضافية

لمزيد من المعلومات، انظر:

* [الأطوال في LaTeX](/latex/ar/altnsyq/01-lengths-in-latex.md)
* [قائمة الشيفرة](/latex/ar/altnsyq/11-code-listing.md)
* [العدادات](/latex/ar/altnsyq/10-counters.md)
* [استخدام الألوان في LaTeX](/latex/ar/altnsyq/13-using-colors-in-latex.md)
* [أحجام الخطوط، والعائلات، والأنماط](/latex/ar/alkhtwt/01-font-sizes-families-and-styles.md)
* [وجوه الخطوط](/latex/ar/alkhtwt/02-font-typefaces.md)
* [الإدارة في مشروع كبير](/latex/ar/bnyh-almstnd/07-management-in-a-large-project.md)
* [مشاريع LaTeX متعددة الملفات](/latex/ar/bnyh-almstnd/08-multi-file-latex-projects.md)
* [جدول المحتويات](/latex/ar/bnyh-almstnd/02-table-of-contents.md)
* [المستندات أحادية الوجه ومزدوجة الوجه](/latex/ar/altnsyq/08-single-sided-and-double-sided-documents.md)
* [ال **minted** توثيق الحزمة](https://texdoc.org/serve/minted/0)


---

# 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/altnsyq/12-code-highlighting-with-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.
