listings w Scissor LaTeX
Pakiet listings działa w Scissor LaTeX częściowo: lstlisting zachowuje kod dokładnie tak, jak go wpisano, i koloruje go, gdy podasz language= przy środowisku, a \lstinline działa; \lstset, numery wierszy, ramki, podpisy i etykiety są ignorowane, a \lstinputlisting jest pomijane.
Do czego służy pakiet
listings składa kod źródłowy. Środowisko lstlisting zachowuje podziały wierszy i spacje, a z language=Python (lub C, Java, SQL ...) składa słowa kluczowe, komentarze i łańcuchy różnymi stylami. Opcje dodają numery wierszy, ramki, podpisy i kolory, osobno dla każdego listingu albo dla całego dokumentu za pomocą \lstset. \lstinline to wersja do użycia w tekście, a \lstinputlisting wczytuje kod z pliku.
Co tu działa
| Funkcja | W Scissor LaTeX | Uwagi |
|---|---|---|
\begin{lstlisting} ... \end{lstlisting} | Działa | Font o stałej szerokości, dokładnie tak, jak wpisano. |
[language=Python] przy środowisku | Działa | Kolory składni ze stałego schematu. |
[language={[Sharp]C}] i inne dialekty | Działa | Dialekt w nawiasach jest odczytywany razem z nazwą. |
\lstinline|code|, \lstinline{code} | Działa | Font o stałej szerokości, bez kolorów. |
numbers=left, frame=single, basicstyle, keywordstyle, backgroundcolor | Pomijane | Ignorowane bez komunikatu. |
caption=, label= | Pomijane | Podpis nie jest wypisywany, a \ref do etykiety pokazuje „??”. |
\lstset{...}, \lstdefinestyle, style= | Pomijane | Ignorowane, łącznie z ustawionym tam language=. |
\lstinputlisting{file} | Nieobsługiwane | Pomijane z komunikatem. |
\lstlistoflistings, \lstnewenvironment | Nieobsługiwane | Pomijane z komunikatem. |
Wielkość liter w nazwach języków nie ma znaczenia. Kolory są dostępne dla popularnych języków, takich jak Python, C, C++, C#, Java, JavaScript, Rust, Go, R, MATLAB, SQL, Bash, HTML i TeX. Nierozpoznana nazwa, na przykład Fortran, daje zwykły kod w foncie o stałej szerokości, bez komunikatu.
Przykłady
Podawaj język przy każdym listingu:
lstlisting z 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}Język ustawiony w \lstset nie jest używany, więc ten listing nie ma kolorów. Opcje układu, takie jak numbers i frame, też są ignorowane:
\lstset jest ignorowane
\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}Kod w tekście za pomocą \lstinline przyjmuje dowolny ogranicznik, tak jak \verb:
\lstinline w zdaniu
The loop \lstinline|for i in range(44):| runs 44 times, and
\lstinline{total += i} adds up the numbers.Listing z podpisem wewnątrz 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.Zgodność
- Z instalacji TeX do Scissor LaTeX: kod każdego
lstlistingjest pokazywany. Przenieślanguage=z\lstsetdo każdego listingu, aby uzyskać kolory, a kod z plików\lstinputlistingwklej do dokumentu. - Ze Scissor LaTeX do instalacji TeX: dokumenty kompilują się tam bez zmian, a Twoje opcje są wtedy stosowane.
Pełna dokumentacja jest dostępna w CTAN: ctan.org/pkg/listings. Zobacz też Listingi kodu w LaTeX oraz minted.
Pytania i odpowiedzi
Dlaczego moje listingi nie są kolorowe?
Język jest prawdopodobnie ustawiony w \lstset, które jest tu ignorowane. Napisz [language=Python] (lub swój język) po \begin{lstlisting}.
Czy mogę pokazać numery wierszy?
Jeszcze nie. numbers=left jest akceptowane i ignorowane.
Każdy przykład na tej stronie jest składany przez Scissor LaTeX podczas budowania witryny. Ostatnia aktualizacja: 2026-11-07.