latex - كتابة كود في وثيقة اللاتكس




(4)

استخدام حزمة Listings .

تكوين بسيط لرأس LaTeX (قبل \begin{document} ):

\usepackage{listings}
\usepackage{color}

\definecolor{dkgreen}{rgb}{0,0.6,0}
\definecolor{gray}{rgb}{0.5,0.5,0.5}
\definecolor{mauve}{rgb}{0.58,0,0.82}

\lstset{frame=tb,
  language=Java,
  aboveskip=3mm,
  belowskip=3mm,
  showstringspaces=false,
  columns=flexible,
  basicstyle={\small\ttfamily},
  numbers=none,
  numberstyle=\tiny\color{gray},
  keywordstyle=\color{blue},
  commentstyle=\color{dkgreen},
  stringstyle=\color{mauve},
  breaklines=true,
  breakatwhitespace=true,
  tabsize=3
}

يمكنك تغيير اللغة الافتراضية في منتصف المستند مع \lstset{language=Java} .

مثال على الاستخدام في المستند:

\begin{lstlisting}
// Hello.java
import javax.swing.JApplet;
import java.awt.Graphics;

public class Hello extends JApplet {
    public void paintComponent(Graphics g) {
        g.drawString("Hello, world!", 65, 95);
    }    
}
\end{lstlisting}

وهنا النتيجة:

كيف أقوم بإدخال الكود في مستند لاتكس؟ هل هناك شيء مثل:

\begin{code}
...
\end{code}

الشيء الوحيد الذي أحتاج حقا هو المسافة البادئة وخط العرض ثابت. تسليط الضوء على بناء الجملة يمكن أن يكون لطيفا على الرغم من أنه بالتأكيد غير مطلوب.



الحزم المتخصصة مثل mted ، والتي تعتمد على Pygments للقيام بالتنسيق ، تقدم مزايا مختلفة عبر حزمة listings . للإقتباس من الدليل اليدوي ،

تقدم Pygments ميزة تسليط الضوء على بناء الجملة بشكل أفضل مقارنة مع الحزم التقليدية. على سبيل المثال ، تبرز القوائم بشكل أساسي السلاسل والتعليقات والكلمات الرئيسية فقط. من ناحية أخرى ، يمكن تخصيص الأقواس تمامًا لإبراز أي نوع مميز يمكن أن تدعمه اللغة المصدر. قد يتضمن ذلك تسلسلات تنسيق خاصة داخل السلاسل والأرقام وأنواع مختلفة من المعرفات والبنيات الغريبة مثل علامات HTML.


هذا سؤال قديم ، لكنني لاحظت أن لا أحد قال كيفية إضافة رمز مضمّن.

يمكنك إضافة رمز مضمّن مع {\tt code } أو \texttt{ code } . إذا كنت ترغب في تنسيق التعليمات البرمجية المضمنة ، فمن الأفضل إجراء الأمر الخاص بك

\newcommand{\code}[1]{\texttt{#1}}

لاحظ أيضًا أنه يمكن تحميل كتل التعليمات البرمجية من الملفات الأخرى باستخدام

\lstinputlisting[breaklines]{source.c}

breaklines غير مطلوبة ، لكني أجدها مفيدة. اعلم أنه يجب عليك تحديد \usepackage{ } لهذا \usepackage{ .