İçeriğe geç

Scissor LaTeX'te listings

listings paketi Scissor LaTeX'te kısmen çalışır: lstlisting kodu tam yazıldığı gibi korur ve ortamda language= verdiğinizde renklendirir, \lstinline da çalışır; \lstset, satır numaraları, çerçeveler, başlıklar ve etiketler yok sayılır, \lstinputlisting ise atlanır.

Paket ne yapar

listings kaynak kodu dizer. lstlisting ortamı satır sonlarını ve boşlukları korur; language=Python (ya da C, Java, SQL ...) ile anahtar sözcükleri, yorumları ve dizeleri farklı stillerde dizer. Seçenekler, tek tek listeler için ya da \lstset ile belgenin tamamı için satır numaraları, çerçeveler, başlıklar ve renkler ekler. \lstinline satır içi biçimdir, \lstinputlisting de kodu bir dosyadan okur.

Burada neler çalışır

ÖzellikScissor LaTeX'teNotlar
\begin{lstlisting} ... \end{lstlisting}ÇalışırEş aralıklı, tam yazıldığı gibi.
Ortamda [language=Python]ÇalışırSabit bir şemadan sözdizimi renkleri.
[language={[Sharp]C}] ve diğer lehçelerÇalışırKöşeli parantezdeki lehçe adla birlikte okunur.
\lstinline|code|, \lstinline{code}ÇalışırEş aralıklı, renksiz.
numbers=left, frame=single, basicstyle, keywordstyle, backgroundcolorAtlanırİleti olmadan yok sayılır.
caption=, label=AtlanırBaşlık yazdırılmaz ve etikete yapılan bir \ref "??" gösterir.
\lstset{...}, \lstdefinestyle, style=AtlanırOrada ayarlanan bir language= dahil yok sayılır.
\lstinputlisting{file}DesteklenmezBir iletiyle atlanır.
\lstlistoflistings, \lstnewenvironmentDesteklenmezBir iletiyle atlanır.

Dil adlarında büyük-küçük harf fark etmez. Python, C, C++, C#, Java, JavaScript, Rust, Go, R, MATLAB, SQL, Bash, HTML ve TeX gibi yaygın diller için renkler vardır. Fortran gibi tanınmayan bir ad, ileti olmadan düz eş aralıklı kod verir.

Örnekler

Dili her listede verin:

language=Python ile lstlisting

LaTeXÖnsöz: \usepackage{listings}Düzenleyicide aç (yeni sekmede açılır)
\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}
Scissor LaTeX tarafından dizildi: language=Python ile lstlisting

\lstset ile ayarlanan bir dil kullanılmaz, bu yüzden bu listede renk yoktur. numbers ve frame gibi düzen seçenekleri de yok sayılır:

\lstset yok sayılır

\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 ile satır içi kod, \verb gibi herhangi bir sınırlayıcı alır:

Bir cümlede \lstinline

LaTeXÖnsöz: \usepackage{listings}Düzenleyicide aç (yeni sekmede açılır)
The loop \lstinline|for i in range(44):| runs 44 times, and
\lstinline{total += i} adds up the numbers.
Scissor LaTeX tarafından dizildi: Bir cümlede \lstinline

Bir şeklin içinde başlıklı bir liste

LaTeXÖnsöz: \usepackage{listings}Düzenleyicide aç (yeni sekmede açılır)
\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.
Scissor LaTeX tarafından dizildi: Bir şeklin içinde başlıklı bir liste

Uyumluluk

  • Bir TeX kurulumundan buraya: her lstlisting ortamının kodu gösterilir. Renkler için language= değerini \lstset içinden her listeye taşıyın ve \lstinputlisting dosyalarındaki kodu belgeye yapıştırın.
  • Buradan bir TeX kurulumuna: belgeler orada değişiklik yapmadan derlenir ve seçenekleriniz bu durumda uygulanır.

Tam kılavuz CTAN'dadır: ctan.org/pkg/listings. Ayrıca bkz. LaTeX'te kod listeleri ve minted.

Sorular ve yanıtlar

Listelerim neden renklendirilmiyor?

Dil büyük olasılıkla burada yok sayılan \lstset ile ayarlanmıştır. \begin{lstlisting} komutundan sonra [language=Python] (ya da kendi dilinizi) yazın.

Satır numaralarını gösterebilir miyim?

Henüz değil. numbers=left kabul edilir ve yok sayılır.

Bu sayfadaki her örnek, site oluşturulurken Scissor LaTeX tarafından dizilir. Son güncelleme: 2026-11-07.