listings في Scissor LaTeX
تعمل حزمة listings جزئيًا في Scissor LaTeX: تحفظ lstlisting الشيفرة كما كُتبت تمامًا وتلوّنها عندما تعطي language= على البيئة، ويعمل \lstinline؛ أما \lstset وأرقام الأسطر والإطارات والتسميات والعلامات فتُتجاهل، ويُتخطّى \lstinputlisting.
ماذا تفعل الحزمة
تنضّد listings الشيفرة المصدرية. تحفظ البيئة lstlisting فواصل الأسطر والمسافات، ومع language=Python (أو C أو Java أو SQL ...) تكتب الكلمات المفتاحية والتعليقات والسلاسل النصية بأنماط مختلفة. وتضيف الخيارات أرقام الأسطر والإطارات والتسميات والألوان، إما لكل قائمة شيفرة على حدة أو للمستند كله باستخدام \lstset. و\lstinline هو الشكل المضمّن في السطر، ويقرأ \lstinputlisting الشيفرة من ملف.
ما الذي يعمل هنا
| الميزة | في Scissor LaTeX | ملاحظات |
|---|---|---|
\begin{lstlisting} ... \end{lstlisting} | يعمل | بخط ثابت العرض، كما كُتبت تمامًا. |
[language=Python] على البيئة | يعمل | تلوين الصياغة من مخطط ألوان ثابت. |
[language={[Sharp]C}] واللهجات الأخرى | يعمل | تُقرأ اللهجة بين القوسين مع الاسم. |
\lstinline|code|, \lstinline{code} | يعمل | بخط ثابت العرض، دون ألوان. |
numbers=left, frame=single, basicstyle, keywordstyle, backgroundcolor | يُحذف | تُتجاهل دون أي رسالة. |
caption=, label= | يُحذف | لا تُطبع أي تسمية، ويُظهر \ref إلى العلامة "??". |
\lstset{...}, \lstdefinestyle, style= | يُحذف | تُتجاهل، بما في ذلك language= المحدّد هناك. |
\lstinputlisting{file} | غير مدعوم | يُتخطّى مع رسالة. |
\lstlistoflistings, \lstnewenvironment | غير مدعوم | يُتخطّيان مع رسالة. |
أسماء اللغات لا تميّز بين الأحرف الكبيرة والصغيرة. والألوان متاحة للغات الشائعة مثل Python وC وC++ وC# وJava وJavaScript وRust وGo وR وMATLAB وSQL وBash وHTML وTeX. أما الاسم غير المعروف، مثل Fortran، فيعطي شيفرة عادية بخط ثابت العرض دون أي رسالة.
أمثلة
حدّد اللغة على كل قائمة شيفرة:
lstlisting مع language=Python
\begin{lstlisting}[language=Python]
def mean(values):
# average of a list of numbers
return sum(values) / len(values)
print(mean([40, 44, 48]))
\end{lstlisting}لا تُستخدم اللغة المحدّدة باستخدام \lstset، لذا لا ألوان في هذه القائمة. وتُتجاهل كذلك خيارات التخطيط مثل numbers وframe:
\lstset يُتجاهل
\documentclass{article}
\usepackage{listings}
\lstset{language=SQL, numbers=left, frame=single}
\begin{document}
\begin{lstlisting}
SELECT name FROM staff WHERE id = 44;
\end{lstlisting}
\begin{lstlisting}[language=SQL]
SELECT name FROM staff WHERE id = 44;
\end{lstlisting}
\end{document}تقبل الشيفرة المضمّنة باستخدام \lstinline أي محدِّد، مثل \verb:
\lstinline في جملة
The loop \lstinline|for i in range(44):| runs 44 times, and
\lstinline{total += i} adds up the numbers.قائمة شيفرة ذات تسمية داخل figure
\begin{figure}[h]
\begin{lstlisting}[language=Python]
print(sum(range(44)))
\end{lstlisting}
\caption{Adding the numbers below 44}
\label{lst:sum}
\end{figure}
The code in Listing~\ref{lst:sum} prints 946.التوافق
- من تثبيت TeX إلى هنا: تُعرض شيفرة كل
lstlisting. انقلlanguage=من\lstsetإلى كل قائمة شيفرة للحصول على الألوان، والصق الشيفرة من ملفات\lstinputlistingفي المستند. - من هنا إلى تثبيت TeX: تُترجَم المستندات هناك دون تغيير، وتُطبَّق خياراتك عندئذ.
الدليل الكامل موجود على CTAN: ctan.org/pkg/listings. راجع أيضًا قوائم الشيفرة في LaTeX وminted.
أسئلة وأجوبة
لماذا قوائم الشيفرة لديّ غير ملوّنة؟
الأرجح أن اللغة محدّدة باستخدام \lstset، الذي يُتجاهل هنا. اكتب [language=Python] (أو لغتك) بعد \begin{lstlisting}.
هل يمكنني عرض أرقام الأسطر؟
ليس بعد. يُقبل numbers=left ويُتجاهل.
كل مثال في هذه الصفحة ينضّده Scissor LaTeX عند بناء الموقع. آخر تحديث: 2026-11-07.