Langsung ke konten

listings di Scissor LaTeX

Paket listings berfungsi sebagian di Scissor LaTeX: lstlisting mempertahankan kode persis seperti yang diketik dan mewarnainya jika Anda memberikan language= pada lingkungannya, dan \lstinline berfungsi; \lstset, nomor baris, bingkai, keterangan, dan label diabaikan, dan \lstinputlisting dilewati.

Apa yang dilakukan paket ini

listings menata kode sumber. Lingkungan lstlisting mempertahankan pemisah baris dan spasi, dan dengan language=Python (atau C, Java, SQL ...) ia mencetak kata kunci, komentar, dan string dengan gaya yang berbeda. Opsi menambahkan nomor baris, bingkai, keterangan, dan warna, baik per listing maupun untuk seluruh dokumen dengan \lstset. \lstinline adalah bentuk sebarisnya, dan \lstinputlisting membaca kode dari file.

Apa yang berfungsi di sini

FiturDi Scissor LaTeXCatatan
\begin{lstlisting} ... \end{lstlisting}BerfungsiMonospasi, persis seperti yang diketik.
[language=Python] pada lingkunganBerfungsiWarna sintaksis dari skema tetap.
[language={[Sharp]C}] dan dialek lainnyaBerfungsiDialek dalam kurung siku dibaca bersama namanya.
\lstinline|code|, \lstinline{code}BerfungsiMonospasi, tanpa warna.
numbers=left, frame=single, basicstyle, keywordstyle, backgroundcolorDihilangkanDiabaikan tanpa pesan.
caption=, label=DihilangkanTidak ada keterangan yang dicetak, dan \ref ke labelnya menampilkan "??".
\lstset{...}, \lstdefinestyle, style=DihilangkanDiabaikan, termasuk language= yang diatur di sana.
\lstinputlisting{file}Tidak didukungDilewati dengan pesan.
\lstlistoflistings, \lstnewenvironmentTidak didukungDilewati dengan pesan.

Nama bahasa tidak peka huruf besar-kecil. Warna tersedia untuk bahasa umum seperti Python, C, C++, C#, Java, JavaScript, Rust, Go, R, MATLAB, SQL, Bash, HTML, dan TeX. Nama yang tidak dikenali, seperti Fortran, menghasilkan kode monospasi biasa tanpa pesan.

Contoh

Berikan bahasanya pada setiap listing:

lstlisting dengan language=Python

LaTeXPreambul: \usepackage{listings}Buka di editor (terbuka di tab baru)
\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}
Ditata oleh Scissor LaTeX: lstlisting dengan language=Python

Bahasa yang diatur dengan \lstset tidak dipakai, jadi listing ini tidak berwarna. Opsi tata letak 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}

Kode sebaris dengan \lstinline menerima pembatas apa pun, seperti \verb:

\lstinline dalam kalimat

LaTeXPreambul: \usepackage{listings}Buka di editor (terbuka di tab baru)
The loop \lstinline|for i in range(44):| runs 44 times, and
\lstinline{total += i} adds up the numbers.
Ditata oleh Scissor LaTeX: \lstinline dalam kalimat

Listing berketerangan di dalam figure

LaTeXPreambul: \usepackage{listings}Buka di editor (terbuka di tab baru)
\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.
Ditata oleh Scissor LaTeX: Listing berketerangan di dalam figure

Kompatibilitas

  • Dari instalasi TeX ke sini: kode setiap lstlisting ditampilkan. Pindahkan language= dari \lstset ke setiap listing untuk mendapatkan warna, dan tempelkan kode dari file \lstinputlisting ke dalam dokumen.
  • Dari sini ke instalasi TeX: dokumen bisa dikompilasi di sana tanpa perubahan, dan opsi Anda lalu berlaku.

Manual lengkapnya ada di CTAN: ctan.org/pkg/listings. Lihat juga Listing kode di LaTeX dan minted.

Tanya jawab

Mengapa listing saya tidak berwarna?

Bahasanya mungkin diatur dengan \lstset, yang diabaikan di sini. Tulis [language=Python] (atau bahasa Anda) setelah \begin{lstlisting}.

Bisakah saya menampilkan nomor baris?

Belum bisa. numbers=left diterima lalu diabaikan.

Setiap contoh di halaman ini ditata oleh Scissor LaTeX saat situs dibuat. Terakhir diperbarui 2026-11-07.