> 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/11-code-listing.md).

# عرض الشفرة

## مقدمة

تُستخدم LaTeX على نطاق واسع في العلوم، وأصبحت البرمجة جانبًا مهمًا في عدة مجالات من العلوم، ومن هنا جاءت الحاجة إلى أداة تعرض الشيفرة بشكل صحيح. تشرح هذه المقالة كيفية استخدام البيئة القياسية **verbatim** البيئة وكذلك الحزمة **listings**، التي توفر ميزات أكثر تقدمًا لتنسيق الشيفرة. [تتناول هذه المقالة المنفصلة](/latex/ar/altnsyq/12-code-highlighting-with-minted.md) تتناول `minted` الحزمة، التي تُجري تمييزًا نحويًا باستخدام Python `pygmentize` المكتبة.

## بيئة verbatim

الأداة الافتراضية لعرض الشيفرة في LaTeX هي `verbatim`، والتي تُنشئ مخرجات بخط أحادي العرض.

```latex
\begin{verbatim}
النص المحاط داخل بيئة \texttt{verbatim}
يُطبع مباشرةً
وتُتجاهل جميع أوامر \LaTeX{}.
\end{verbatim}
```

[افتح هذا المثال على Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=verbatim+text+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Bverbatim%7D%0AText+enclosed+inside+%5Ctexttt%7Bverbatim%7D+environment+%0Ais+printed+directly+%0Aand+all+%5CLaTeX%7B%7D+commands+are+ignored.%0A%5Cend%7Bverbatim%7D%0A%5Cend%7Bdocument%7D)

تنتج الشيفرة أعلاه المخرجات التالية:

![Verbatim1.png](/files/c730080b1a2efcc23e40135b892dd0d6d9b28bca)

كما في المثال في المقدمة، يُطبع كل النص مع الحفاظ على فواصل الأسطر والمسافات البيضاء. توجد نسخة ذات نجمة من هذا الأمر ويكون ناتجها مختلفًا قليلًا.

```latex
\begin{verbatim*}
النص المحاط داخل بيئة \texttt{verbatim}
يُطبع مباشرةً
وتُتجاهل جميع أوامر \LaTeX{}.
\end{verbatim*}
```

[افتح هذا المثال على Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=verbatim+text+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Bverbatim%2A%7D%0AText+enclosed+inside+%5Ctexttt%7Bverbatim%7D+environment+%0Ais+printed+directly+%0Aand+all+%5CLaTeX%7B%7D+commands+are+ignored.%0A%5Cend%7Bverbatim%2A%7D%0A%5Cend%7Bdocument%7D)

تنتج الشيفرة أعلاه المخرجات التالية:

![Verbatim2.png](/files/7ea4a9d5335c02ab13ea7d6716db531f07def891)

في هذه الحالة تُبرز المسافات برمز خاص للمسافة المرئية: **`␣`**.

يمكن أيضًا استخدام نص شبيه بـverbatim داخل فقرة باستخدام `\verb` الأمر.

```latex
في الدليل \verb|C:\Windows\system32| يمكنك العثور على الكثير من تطبيقات
النظام الخاصة بويندوز.

ينتج الأمر \verb+\ldots+ \ldots
```

[افتح هذا المثال على Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=using+the+%5Cverb+command\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cbegin%7Bdocument%7D%0AIn+the+directory+%5Cverb%7CC%3A%5CWindows%5Csystem32%7C+you+can+find+a+lot+of+Windows+%0Asystem+applications.+%0A+%0AThe+%5Cverb%2B%5Cldots%2B+command+produces+%5Cldots%0A%5Cend%7Bdocument%7D)

تنتج الشيفرة أعلاه المخرجات التالية:

![Verbatim3OLV2.png](/files/3b846799a1ee3b517d9eaaa6b677ecd295483cf9)

الأمر `\verb|C:\Windows\system32|` يطبع النص داخل المحددات `|` بصيغة verbatim. يمكن استخدام أي حرف، باستثناء الأحرف و `*`، كمحدد. على سبيل المثال `\verb+\ldots+` يستخدم `+` كمحدد.

## استخدام listings لتظليل الشيفرة

لاستخدام `lstlisting` البيئة، عليك إضافة السطر التالي إلى مقدمة مستندك:

```latex
\usepackage{listings}
```

فيما يلي مثال على استخدام `lstlisting` البيئة من `listings` الحزمة:

```latex
\begin{lstlisting}
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{lstlisting}
```

[افتح هذا `listings` مثال Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=listings+package+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Blistings%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Blstlisting%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%7Blstlisting%7D%0A%5Cend%7Bdocument%7D)

تنتج الشيفرة أعلاه المخرجات التالية:

![CodeListingEx1.png](/files/7b4e49ce10ec25125953b24c1028401e4d93d99e)

في هذا المثال، يتجاهل الناتج جميع أوامر LaTeX ويُطبع النص مع الحفاظ على جميع فواصل الأسطر والمسافات البيضاء المكتوبة. لنرَ مثالًا ثانيًا:

```latex
\begin{lstlisting}[language=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{lstlisting}
```

[افتح هذا `listings` مثال Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Python+listings+package+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Blistings%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Blstlisting%7D%5Blanguage%3DPython%5D%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%7Blstlisting%7D%0A%5Cend%7Bdocument%7D)

تنتج الشيفرة أعلاه المخرجات التالية:

![CodeListingEx2.png](/files/c4a5b1def5be5457f0e7d2ad2757115477abd8cf)

المعلمة الإضافية داخل الأقواس `[language=Python]` تتيح تمييز الشيفرة لهذه اللغة البرمجية تحديدًا (Python)، وتُعرض الكلمات الخاصة بخط عريض وتُكتب التعليقات بخط مائل. انظر [دليل المراجع](#reference-guide) للحصول على قائمة كاملة بلغات البرمجة المدعومة.

## استيراد الشيفرة من ملف

عادةً ما تُخزن الشيفرة في ملف مصدر، ولذلك يصبح الأمر الذي يجلب الشيفرة تلقائيًا من ملف مفيدًا جدًا.

```latex
سيتم استيراد الشيفرة التالية مباشرةً من ملف

\lstinputlisting[language=Octave]{BitXorMatrix.m}
```

![CodeListingEx3.png](/files/12e0c914da1d834f8980cfbaea15d1e95d7afbee)

الأمر `\lstinputlisting[language=Octave]{BitXorMatrix.m}` يستورد الشيفرة من الملف *BitXorMatrix.m*، وتتيح المعلمة الإضافية بين الأقواس إبراز لغة برمجة Octave. إذا كنت تحتاج إلى استيراد جزء فقط من الملف، فيمكنك تحديد معلمتين مفصولتين بفاصلة داخل الأقواس. على سبيل المثال، لاستيراد الشيفرة من السطر 2 إلى السطر 12، يصبح الأمر السابق

```latex
\lstinputlisting[language=Octave, firstline=2, lastline=12]{BitXorMatrix.m}
```

إذا `firstline` أو `lastline` إذا حُذفت، فسيُفترض أن القيم تشير إلى بداية الملف أو إلى نهايته، على الترتيب.

## أنماط وألوان الشيفرة

تنسيق الشيفرة باستخدام **listing** الحزمة قابلة للتخصيص بدرجة كبيرة. لنرَ مثالًا

```latex
\documentclass{article}
\usepackage{listings}
\usepackage{xcolor}

\definecolor{codegreen}{rgb}{0,0.6,0}
\definecolor{codegray}{rgb}{0.5,0.5,0.5}
\definecolor{codepurple}{rgb}{0.58,0,0.82}
\definecolor{backcolour}{rgb}{0.95,0.95,0.92}

\lstdefinestyle{mystyle}{
    backgroundcolor=\color{backcolour},
    commentstyle=\color{codegreen},
    keywordstyle=\color{magenta},
    numberstyle=\tiny\color{codegray},
    stringstyle=\color{codepurple},
    basicstyle=\ttfamily\footnotesize,
    breakatwhitespace=false,
    breaklines=true,
    captionpos=b,
    keepspaces=true,
    numbers=left,
    numbersep=5pt,
    showspaces=false,
    showstringspaces=false,
    showtabs=false,
    tabsize=2
}

\lstset{style=mystyle}

\begin{document}
سيتم استيراد الشيفرة التالية مباشرةً من ملف

\lstinputlisting[language=Octave]{BitXorMatrix.m}
\end{document}
```

تنتج الشيفرة أعلاه المخرجات التالية:

![CodeListingEx4.png](/files/ea70b4677b1a4d858f31dbe051787b09807ea3a5)

كما ترى، فإن تلوين الشيفرة وتنسيقها يحسّنان قابلية القراءة بدرجة كبيرة.

في هذا المثال تُستورد الحزمة **xcolor** ثم يُستخدم الأمر `\definecolor{}{}{}` لتعريف ألوان جديدة بصيغة rgb ستُستخدم لاحقًا. لمزيد من المعلومات انظر: [استخدام الألوان في LaTeX](/latex/ar/altnsyq/13-using-colors-in-latex.md)

يوجد أساسًا أمران ينشئان النمط لهذا المثال:

**\lstdefinestyle{mystyle}{...}**

يعرّف نمطًا جديدًا لقوائم الشيفرة يسمى "mystyle". داخل الزوج الثاني من الأقواس تُمرَّر الخيارات التي تحدد هذا النمط؛ راجع دليل المراجع للحصول على وصف كامل لهذه المعلمات وبعض المعلمات الأخرى.

**\lstset{style=mystyle}**

يُمكّن النمط "mystyle". يمكن استخدام هذا الأمر داخل مستندك للانتقال إلى نمط مختلف إذا لزم الأمر.

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

كما في العناصر العائمة ([الجداول](/latex/ar/alashkal-waljdawl/01-tables.md) و [الأشكال](/latex/ar/mzyd-mn-almwdhwaat/27-inserting-images.md))، يمكن إضافة تسمية توضيحية إلى القائمة لمزيد من الوضوح.

```latex
\begin{lstlisting}[language=Python, caption=Python example]
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{lstlisting}
```

[افتح هذا `listings` مثال Overleaf](/latex/ar/altnsyq/11-code-listing.md)

تنتج الشيفرة أعلاه المخرجات التالية:

![CodeListingEx5.png](/files/8e9a8aba7810527c1bc0d346d0492ecee1b7dc07)

إضافة المعلمة المفصولة بفاصلة `caption=Python example` داخل الأقواس يتيح التسمية التوضيحية. ويمكن لاحقًا استخدام هذه التسمية في قائمة القوائم.

```latex
\lstlistoflistings
```

![CodeListingEx6OLV2.png](/files/4152a4c294732dbeae8101d5f71cda49cdc9edb7)

## مشروع Overleaf نموذجي

افتح هذا الرابط [لتجربة `listings` مثال الحزمة على Overleaf.](https://www.overleaf.com/project/new/template/20053?id=68266290\&templateName=listings+package+demo\&latexEngine=pdflatex\&texImage=texlive-full%3A2020.1\&mainFile=)

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

### اللغات المدعومة

**اللغات المدعومة (ولهجاتها إن أمكن، وتُذكر اللهجات بين أقواس وتُكتب اللهجات الافتراضية بخط مائل):**

|                                                        |                                            |
| ------------------------------------------------------ | ------------------------------------------ |
| ABAP (R/2 4.3, R/2 5.0, R/3 3.1, R/3 4.6C, *R/3 6.10*) | ACSL                                       |
| Ada (*2005*, 83, 95)                                   | Algol (60, *68*)                           |
| Ant                                                    | Assembler (Motorola68k, x86masm)           |
| Awk (*gnu*, POSIX)                                     | bash                                       |
| Basic (Visual)                                         | C (*ANSI*, Handel, Objective, Sharp)       |
| C++ (ANSI, GNU, *ISO*, Visual)                         | Caml (*خفيف*, Objective)                   |
| CIL                                                    | Clean                                      |
| Cobol (1974, *1985*, ibm)                              | Comal 80                                   |
| command.com (*WinXP*)                                  | Comsol                                     |
| csh                                                    | Delphi                                     |
| Eiffel                                                 | Elan                                       |
| erlang                                                 | Euphoria                                   |
| Fortran (77, 90, *95*)                                 | GCL                                        |
| Gnuplot                                                | Haskell                                    |
| HTML                                                   | IDL (فارغ، CORBA)                          |
| inform                                                 | Java (فارغ، AspectJ)                       |
| JVMIS                                                  | ksh                                        |
| Lingo                                                  | Lisp (فارغ، تلقائي)                        |
| Logo                                                   | make (فارغ، gnu)                           |
| Mathematica (1.0, 3.0, *5.2*)                          | Matlab                                     |
| Mercury                                                | MetaPost                                   |
| Miranda                                                | Mizar                                      |
| ML                                                     | Modula-2                                   |
| MuPAD                                                  | NASTRAN                                    |
| Oberon-2                                               | OCL (زخرفي, *OMG*)                         |
| Octave                                                 | Oz                                         |
| Pascal (Borland6, *قياسي*, XSC)                        | Perl                                       |
| PHP                                                    | PL/I                                       |
| Plasm                                                  | PostScript                                 |
| POV                                                    | Prolog                                     |
| Promela                                                | PSTricks                                   |
| Python                                                 | R                                          |
| Reduce                                                 | Rexx                                       |
| RSL                                                    | Ruby                                       |
| S (فارغ، PLUS)                                         | SAS                                        |
| Scilab                                                 | sh                                         |
| SHELXL                                                 | Simula (*67*, CII, DEC, IBM)               |
| SPARQL                                                 | SQL                                        |
| tcl (فارغ، tk)                                         | TeX (AlLaTeX، شائع، LaTeX، *plain*، بدائي) |
| VBScript                                               | Verilog                                    |
| VHDL (فارغ، AMS)                                       | VRML (*97*)                                |
| XML                                                    | XSLT                                       |

### خيارات لتخصيص أنماط قوائم الشيفرة

* **backgroundcolor** - لون الخلفية. حزمة color خارجية مطلوبة. ***color*** أو ***xcolor*** .
* **commentstyle** - نمط التعليقات في لغة المصدر.
* **basicstyle** - حجم الخط/العائلة/إلخ للمصدر (مثلاً `basicstyle=\ttfamily\small`)
* **keywordstyle** - نمط الكلمات المفتاحية في لغة المصدر (مثلاً `keywordstyle=\color{red}`)
* **numberstyle** - النمط المستخدم لأرقام الأسطر
* **numbersep** - المسافة بين أرقام الأسطر والشيفرة
* **stringstyle** - نمط السلاسل النصية في لغة المصدر
* **showspaces** - إبراز المسافات في الشيفرة (true/false)
* **showstringspaces** - إبراز المسافات في السلاسل النصية (true/false)
* **showtabs** - إبراز علامات الجدولة في الشيفرة (true/false)
* **أرقام** - موضع أرقام الأسطر (left/right/none، أي بدون أرقام أسطر)
* **prebreak** - عرض علامة في نهاية السطر المكسور (مثلاً `prebreak=\raisebox{0ex}[0ex][0ex]{\ensuremath{\hookleftarrow}}`)
* **captionpos** - موضع التسمية التوضيحية (t/b)
* **إطار** - إظهار إطار خارج الشيفرة (none/leftline/topline/bottomline/lines/single/shadowbox)
* **breakatwhitespace** - يحدد ما إذا كانت الفواصل التلقائية يجب أن تحدث فقط عند المسافات البيضاء
* **breaklines** - كسر الأسطر تلقائيًا
* **keepspaces** - الاحتفاظ بالمسافات في الشيفرة، مفيد للمحاذاة
* **tabsize** - الحجم الافتراضي للتاب
* **escapeinside** - تحديد أحرف للخروج من الشيفرة المصدر إلى LaTeX (مثلاً `escapeinside={\%*}{*)}`)
* **rulecolor** - تحديد لون إطار الصندوق

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

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

* [تظليل الشيفرة باستخدام minted](/latex/ar/altnsyq/12-code-highlighting-with-minted.md)
* [استخدام الألوان في LaTeX](/latex/ar/altnsyq/13-using-colors-in-latex.md)
* [جدول المحتويات](/latex/ar/bnyh-almstnd/02-table-of-contents.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/alkhtwt/01-font-sizes-families-and-styles.md)
* [وجوه الخطوط](/latex/ar/alkhtwt/02-font-typefaces.md)
* [**listings** توثيق الحزمة](https://texdoc.org/serve/listings/0)
* [**listings** موقع CTAN الإلكتروني](http://www.ctan.org/pkg/listings)


---

# 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/11-code-listing.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.
