عرض الشيفرة البرمجية في LaTeX
ضع الشيفرة في بيئة verbatim أو lstlisting أو minted، أو استخدم \verb|...| داخل السطر؛ يطبعها Scissor LaTeX بخط ثابت العرض كما كُتبت تمامًا، ويلوّن الصياغة حين تحدد اللغة.
verbatim
داخل verbatim لا يُفسَّر أي شيء: تُطبع الشرطات المائلة العكسية والأقواس المعقوفة و$ و% كما هي، ويُحتفظ بفواصل الأسطر والمسافات. وهي أبسط طريقة لعرض الشيفرة أو مخرجات الطرفية.
كتلة verbatim
\begin{verbatim}
for i in range(44):
print(i) # $ and \textbf stay as typed
\end{verbatim}الشيفرة داخل السطر: \verb
يعرض \verb جزءًا قصيرًا من الشيفرة داخل جملة. والحرف الذي يلي \verb مباشرةً هو المحدِّد؛ اختر حرفًا غير موجود في الشيفرة، مثل | أو +.
شيفرة داخل السطر باستخدام \verb و\texttt
Call \verb|total(xs)| to add the list, or type \verb+x_1 = 44+.
For plain words in a monospaced font, \texttt{main.tex} is enough.لا يغيّر \texttt{...} إلا الخط: فالأحرف الخاصة مثل _ و% لا تزال تحتاج إلى تهريب هناك، بينما يأخذها \verb كما هي.
listings: lstlisting مع لغة
تعطيك حزمة listings البيئة lstlisting. ومع language=... تحصل الشيفرة على ألوان الصياغة.
lstlisting مع language=Python
\begin{lstlisting}[language=Python]
def total(xs):
"""Add up the numbers in xs."""
return sum(xs)
print(total([40, 4])) # 44
\end{lstlisting}و\lstinline|code| هو الشكل الذي يُستخدم داخل السطر، مثل \verb.
minted
تأخذ minted اللغة وسيطًا. في تثبيت TeX تحتاج إلى Python وخيار -shell-escape؛ أما في Scissor LaTeX فتعمل دون أي منهما.
minted مع لغة
\begin{minted}{rust}
fn main() {
let answer = 40 + 4;
println!("{}", answer);
}
\end{minted}
Inline: \mintinline{rust}{let x = 44;}ما يُقرأ
| الأمر | في Scissor LaTeX | ملاحظات |
|---|---|---|
verbatim وverbatim* | يعمل | |
\verb و\verb* | يعمل | |
lstlisting | جزئيًا | يُقرأ language=؛ وكل خيار آخر (numbers وcaption وframe وbasicstyle وfirstline ...) يُتجاهل. |
\lstinline | يعمل | لا ألوان صياغة داخل السطر. |
\lstset{...} | يُحذف | اللغة المضبوطة هنا لا تُستخدم؛ حدد language= في كل كتلة. |
minted | جزئيًا | تُقرأ اللغة؛ وتُتجاهل خيارات مثل linenos وframe. |
\mintinline{lang}{code} | يعمل | لا ألوان صياغة داخل السطر. |
Verbatim وBVerbatim (fancyvrb) | جزئيًا | تُعرض مثل verbatim؛ وتُتجاهل الخيارات. |
\lstinputlisting{file} و\inputminted{lang}{file} | غير مدعوم | يُتخطى مع رسالة؛ الصق الشيفرة في المستند. |
\lstnewenvironment و\newminted | غير مدعوم |
تتوفر ألوان الصياغة للغات الشائعة، ومنها Python وC وC++ وJava وJavaScript وTypeScript وRust وGo وRuby وR وJulia وMATLAB وSQL وBash وHTML وCSS وJSON وYAML وTeX وLaTeX. ولا تُميّز أسماء اللغات بين الأحرف الكبيرة والصغيرة، فـ Python وpython سواء. والاسم غير المعروف يعطي شيفرة عادية بخط ثابت العرض.
شيفرة من ملف
يقرأ \lstinputlisting و\inputminted الشيفرة من ملف آخر في تثبيت TeX. أما Scissor LaTeX فيتخطاهما ويذكر ذلك في تبويب «المشكلات»:
يُتخطى \lstinputlisting
The script below is not shown:
\lstinputlisting[language=Python]{scripts/total.py}
Paste the code into an lstlisting environment instead.تبويب المشكلات: 1 included file is not part of this conversion
ما يختلف عن تثبيت TeX
راجع listings وminted لصفحات الحزم. والأدلة الكاملة متاحة على CTAN: listings وminted وfancyvrb.
أسئلة وأجوبة
كيف أضيف كتلة شيفرة في LaTeX؟
ضع الشيفرة داخل \begin{verbatim} ... \end{verbatim}، أو داخل lstlisting مع [language=Python] لألوان الصياغة.
هل تعمل minted دون shell escape؟
في Scissor LaTeX، نعم: تُلوَّن بيئات minted دون Python أو -shell-escape. أما في تثبيت TeX فلا تزال minted تحتاج إلى كليهما.
لماذا لا تظهر أرقام الأسطر في كتلة الشيفرة؟
يتجاهل Scissor LaTeX numbers=left وخيارات التخطيط الأخرى في listings. ولا تُقرأ إلا اللغة.
كل مثال في هذه الصفحة ينضّده Scissor LaTeX عند بناء الموقع. آخر تحديث: 2026-11-07.