> For the complete documentation index, see [llms.txt](https://overleaf-pro.ayaka.space/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://overleaf-pro.ayaka.space/latex/ar/alaselh-walajwbh/16-how-can-i-include-matlab-code-in-my-latex-document.md).

# كيف يمكنني تضمين كود MATLAB في مستند LaTeX الخاص بي؟

ال [`matlab-prettifier` الحزمة](https://www.ctan.org/pkg/matlab-prettifier) يمكن استخدامه لتنضيد كود MATLAB وقد كُتب ردًا على [سؤال على tex.stackexchange](https://tex.stackexchange.com/questions/75116/what-can-i-use-to-typeset-matlab-code-in-my-document).

### بيئة lstlisting

بعد تضمين `matlab-prettifier` الحزمة في مستندك عبر

```latex
\usepackage{matlab-prettifier}
```

يمكنك استخدام `lstlisting` البيئة لتنضيد كود MATLAB:

```latex
\begin{lstlisting}[<options>]
كود MATLAB...
\end{lstlisting}
```

حيث `<options>` هي قائمة مفصولة بفواصل من المعلمات التي تُضبط قيمها باستخدام أزواج المفتاح–القيمة (أي، `parameter=value`).

* **ملاحظة**: إن `matlab-prettifier` الحزمة مبنية حول حزمة `listings` ، مما يتيح استخدام الميزات التي توفرها `listings`، بما في ذلك المعلمات ضمن `<options>` في `lstlisting` البيئة. ومع ذلك، فإن بعض `listings` المعلمات يجب *تحتوي* استخدامها، ويُنصح القراء بالرجوع إلى [`matlab-prettifier` الوثائق](http://mirrors.ctan.org/macros/latex/contrib/matlab-prettifier/matlab-prettifier.pdf) للمزيد من التفاصيل.

يمكن تغيير المظهر البصري لكود MATLAB المنضد باستخدام `النمط` ، الذي يدعم ثلاث قيم:

* `Matlab-editor`
* `Matlab-bw`
* `Matlab-Pyglike`

توضح الأمثلة التالية كيفية استخدام هذه الأنماط.

### أمثلة

إليك مثالًا، باستخدام كود MATLAB من `matlab-prettifier`التوثيق، والذي يطبق `Matlab-editor` النمط:

```latex
\documentclass[a4paper]{article}
\usepackage{matlab-prettifier}
\begin{document}

\begin{lstlisting}[style=Matlab-editor]
%% Sample Matlab code
!mv test.txt test2.txt
A = [1, 2, 3;... foo
     4, 5, 6];
s = 'abcd';
for k = 1:4
  Disp(s(k)) % bar
end
%{
إنشاء متجه صف x، ثم عكسه
%}
x = linspace(0,1,101);
y = x(end:-1:1);
\end{lstlisting}
\end{document}
```

[افتح هذا المثال في Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=A+matlab-prettifier+example\&snip=%5Cdocumentclass%5Ba4paper%5D%7Barticle%7D%0A%5Cusepackage%7Bmatlab-prettifier%7D%0A%5Cbegin%7Bdocument%7D%0A%0A%5Cbegin%7Blstlisting%7D%5Bstyle%3DMatlab-editor%5D%0A%25%25+Sample+Matlab+code%0A%21mv+test.txt+test2.txt%0AA+%3D+%5B1%2C+2%2C+3%3B...+foo%0A+++++4%2C+5%2C+6%5D%3B%0As+%3D+%27abcd%27%3B%0Afor+k+%3D+1%3A4%0A++Disp%28s%28k%29%29+%25+bar%0Aend%0A%25%7B%0Acreate+row+vector+x%2C+then+reverse+it%0A%25%7D%0Ax+%3D+linspace%280%2C1%2C101%29%3B%0Ay+%3D+x%28end%3A-1%3A1%29%3B%0A%5Cend%7Blstlisting%7D%0A%5Cend%7Bdocument%7D)

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

![كود MATLAB منضد في LaTeX على Overleaf](/files/5f9f4e6a73e5da891e3b9b082d1c0840fea0bc6c)

يضبط المثال التالي قيمًا لـ `إطار` و `أرقام` المعلمات التي توفرها `listings` الحزمة:

```latex
\documentclass[a4paper]{article}
\usepackage{matlab-prettifier}
\begin{document}

\begin{lstlisting}[
frame=single,
numbers=left,
style=Matlab-Pyglike]
%% Sample Matlab code
!mv test.txt test2.txt
A = [1, 2, 3;... foo
     4, 5, 6];
s = 'abcd';
for k = 1:4
  Disp(s(k)) % bar
end
%{
إنشاء متجه صف x، ثم عكسه
%}
x = linspace(0,1,101);
y = x(end:-1:1);
\end{lstlisting}
\end{document}
```

[افتح هذا المثال في Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=A+second+matlab-prettifier+example\&snip=%5Cdocumentclass%5Ba4paper%5D%7Barticle%7D%0A%5Cusepackage%7Bmatlab-prettifier%7D%0A%5Cbegin%7Bdocument%7D%0A%0A%5Cbegin%7Blstlisting%7D%5B%0Aframe%3Dsingle%2C%0Anumbers%3Dleft%2C%0Astyle%3DMatlab-Pyglike%5D%0A%25%25+Sample+Matlab+code%0A%21mv+test.txt+test2.txt%0AA+%3D+%5B1%2C+2%2C+3%3B...+foo%0A+++++4%2C+5%2C+6%5D%3B%0As+%3D+%27abcd%27%3B%0Afor+k+%3D+1%3A4%0A++Disp%28s%28k%29%29+%25+bar%0Aend%0A%25%7B%0Acreate+row+vector+x%2C+then+reverse+it%0A%25%7D%0Ax+%3D+linspace%280%2C1%2C101%29%3B%0Ay+%3D+x%28end%3A-1%3A1%29%3B%0A%5Cend%7Blstlisting%7D%0A%5Cend%7Bdocument%7D)

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

![كود MATLAB منضد في LaTeX على Overleaf](/files/e036a9c27953a3f444aec9a5d5c76e752dfb15b6)

### استخدام كود MATLAB المخزن في ملف

بدلًا من تضمين كود MATLAB مباشرة داخل مستند LaTeX الخاص بك، استخدم `\lstinputlisting` الأمر لاستيراد وتنضيد الكود الموجود في ملف خارجي:

```latex
\lstinputlisting[<options>]{<filename>}
```

حيث

* `<options>` هي قائمة مفصولة بفواصل من المعلمات المقدمة على شكل أزواج المفتاح–القيمة [(انظر أعلاه)](#matopts);
* `<filename>` هو المسار إلى ملف يحتوي على كود MATLAB.

على سبيل المثال، لاستيراد الملف `sample.m` وتنضيده باستخدام `Matlab-bw` النمط، ستكتب

```latex
\lstinputlisting[style=Matlab-bw]{sample.m}
```

يضع المثال التالي إطارًا حول الكود، ويرقم أسطر الكود (على اليسار)، ويستخدم `Matlab-bw` النمط:

```latex
\lstinputlisting[
frame=single,
numbers=left,
style=Matlab-editor
]{sample.m}
```

حدّد `افتح هذا المثال في Overleaf` الرابط ([انظر أدناه](#openol)) لإنشاء مشروع Overleaf تلقائيًا يتضمن `sample.m` ملف كود MATLAB.

**`main.tex`**

```latex
\documentclass[a4paper]{article}
\usepackage{matlab-prettifier}
\begin{document}
\title{Importing and typesetting MATLAB code contained in a file}
\lstinputlisting[
frame=single,
numbers=left,
style=Matlab-bw
]{sample.m}

\end{document}
```

**`sample.m`**

```latex
%% Sample Matlab code
!mv test.txt test2.txt
A = [1, 2, 3;... foo
     4, 5, 6];
s = 'abcd';
for k = 1:4
  Disp(s(k)) % bar
end
%{
إنشاء متجه صف x، ثم عكسه
%}
x = linspace(0,1,101);
y = x(end:-1:1);
```

[افتح هذا المثال في Overleaf (فهو ينشئ ال `sample.m` ).](https://www.overleaf.com/docs?engine=pdflatex\&snip_name\[]=main.tex\&snip\[]=%5Cdocumentclass%5Ba4paper%5D%7Barticle%7D%0A%5Cusepackage%7Bmatlab-prettifier%7D%0A%5Cbegin%7Bdocument%7D%0A%5Ctitle%7BImporting+and+typesetting+MATLAB+code+contained+in+a+file%7D%0A%5Clstinputlisting%5B%0Aframe%3Dsingle%2C%0Anumbers%3Dleft%2C%0Astyle%3DMatlab-bw%0A%5D%7Bsample.m%7D%0A%0A%5Cend%7Bdocument%7D\&snip_name\[]=sample.m\&snip\[]=%25%25+Sample+Matlab+code%0A%21mv+test.txt+test2.txt%0AA+%3D+%5B1%2C+2%2C+3%3B...+foo%0A+++++4%2C+5%2C+6%5D%3B%0As+%3D+%27abcd%27%3B%0Afor+k+%3D+1%3A4%0A++Disp%28s%28k%29%29+%25+bar%0Aend%0A%25%7B%0Acreate+row+vector+x%2C+then+reverse+it%0A%25%7D%0Ax+%3D+linspace%280%2C1%2C101%29%3B%0Ay+%3D+x%28end%3A-1%3A1%29%3B\&main_document=main.tex)

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

![كود MATLAB منضد في LaTeX على Overleaf](/files/e5d23760d115529c6494eb285c255bd55b1fca9a)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://overleaf-pro.ayaka.space/latex/ar/alaselh-walajwbh/16-how-can-i-include-matlab-code-in-my-latex-document.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.
