انتقل إلى المحتوى

عرض الشيفرة البرمجية في 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.
نضّده Scissor LaTeX: شيفرة داخل السطر باستخدام \verb و\texttt

لا يغيّر \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}
نضّده Scissor LaTeX: lstlisting مع language=Python

و\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: minted مع لغة

ما يُقرأ

الأمرفي 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.