listings dalam Scissor LaTeX
Pakej listings berfungsi sebahagiannya dalam Scissor LaTeX: lstlisting mengekalkan kod tepat seperti yang ditaip dan mewarnakannya apabila anda memberikan language= pada persekitaran itu, dan \lstinline berfungsi; \lstset, nombor baris, bingkai, kapsyen dan label diabaikan, dan \lstinputlisting dilangkau.
Apa yang dilakukan oleh pakej ini
listings mengatur kod sumber. Persekitaran lstlisting mengekalkan pemisah baris dan jarak, dan dengan language=Python (atau C, Java, SQL ...) ia mengatur kata kunci, ulasan dan rentetan dalam gaya berbeza. Pilihan menambah nombor baris, bingkai, kapsyen dan warna, sama ada bagi setiap penyenaraian atau untuk seluruh dokumen dengan \lstset. \lstinline ialah bentuk sebaris, dan \lstinputlisting membaca kod daripada fail.
Apa yang berfungsi di sini
| Ciri | Dalam Scissor LaTeX | Catatan |
|---|---|---|
\begin{lstlisting} ... \end{lstlisting} | Berfungsi | Monospace, tepat seperti yang ditaip. |
[language=Python] pada persekitaran | Berfungsi | Warna sintaks daripada skema tetap. |
[language={[Sharp]C}] dan dialek lain | Berfungsi | Dialek dalam kurungan dibaca bersama nama. |
\lstinline|code|, \lstinline{code} | Berfungsi | Monospace, tanpa warna. |
numbers=left, frame=single, basicstyle, keywordstyle, backgroundcolor | Diabaikan | Diabaikan tanpa mesej. |
caption=, label= | Diabaikan | Tiada kapsyen dicetak, dan \ref kepada label memaparkan "??". |
\lstset{...}, \lstdefinestyle, style= | Diabaikan | Diabaikan, termasuk language= yang ditetapkan di sana. |
\lstinputlisting{file} | Tidak disokong | Dilangkau dengan mesej. |
\lstlistoflistings, \lstnewenvironment | Tidak disokong | Dilangkau dengan mesej. |
Nama bahasa tidak peka huruf besar-kecil. Warna tersedia untuk bahasa biasa seperti Python, C, C++, C#, Java, JavaScript, Rust, Go, R, MATLAB, SQL, Bash, HTML dan TeX. Nama yang tidak dikenali, seperti Fortran, memberikan kod monospace biasa tanpa mesej.
Contoh
Berikan bahasa pada setiap penyenaraian:
lstlisting dengan 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}Bahasa yang ditetapkan dengan \lstset tidak digunakan, jadi penyenaraian ini tiada warna. Pilihan susun atur seperti numbers dan frame juga diabaikan:
\lstset diabaikan
\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 sebaris dengan \lstinline menerima sebarang pembatas, seperti \verb:
\lstinline dalam ayat
The loop \lstinline|for i in range(44):| runs 44 times, and
\lstinline{total += i} adds up the numbers.Penyenaraian berkapsyen di dalam rajah
\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.Keserasian
- Dari pemasangan TeX ke sini: kod setiap
lstlistingdipaparkan. Pindahkanlanguage=daripada\lstsetke setiap penyenaraian untuk mendapatkan warna, dan tampal kod daripada fail\lstinputlistingke dalam dokumen. - Dari sini ke pemasangan TeX: dokumen dikompil di sana tanpa perubahan, dan pilihan anda kemudian digunakan.
Manual penuh terdapat di CTAN: ctan.org/pkg/listings. Lihat juga Penyenaraian kod dalam LaTeX dan minted.
Soalan dan jawapan
Mengapa penyenaraian saya tidak berwarna?
Bahasa itu mungkin ditetapkan dengan \lstset, yang diabaikan di sini. Tulis [language=Python] (atau bahasa anda) selepas \begin{lstlisting}.
Bolehkah saya memaparkan nombor baris?
Belum lagi. numbers=left diterima dan diabaikan.
Setiap contoh di halaman ini disusun atur oleh Scissor LaTeX semasa laman dibina. Kali terakhir dikemas kini 2026-11-07.