Το 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.