Przejdź do treści

Listingi kodu w LaTeX

Umieść kod w środowisku verbatim, lstlisting lub minted albo użyj \verb|...| w tekście; Scissor LaTeX składa go czcionką o stałej szerokości dokładnie tak, jak go wpisano, i koloruje składnię, gdy podasz język.

verbatim

Wewnątrz verbatim nic nie jest interpretowane: ukośniki wsteczne, nawiasy klamrowe, $ i % są wypisywane bez zmian, a podziały wierszy i spacje zostają zachowane. To najprostszy sposób na pokazanie kodu lub wyniku z terminala.

Blok verbatim

\begin{verbatim}
for i in range(44):
    print(i)   # $ and \textbf stay as typed
\end{verbatim}

Kod w tekście: \verb

\verb pokazuje krótki fragment kodu wewnątrz zdania. Znak tuż po \verb jest ogranicznikiem; wybierz taki, którego nie ma w kodzie, na przykład | lub +.

Kod w tekście z \verb i \texttt

Call \verb|total(xs)| to add the list, or type \verb+x_1 = 44+.
For plain words in a monospaced font, \texttt{main.tex} is enough.
Złożone przez Scissor LaTeX: Kod w tekście z \verb i \texttt

\texttt{...} zmienia tylko czcionkę: znaki specjalne, takie jak _ i %, nadal trzeba tam poprzedzać ukośnikiem, a \verb przyjmuje je bez zmian.

listings: lstlisting z językiem

Pakiet listings udostępnia lstlisting. Z language=... kod otrzymuje kolorowanie składni.

lstlisting z language=Python

LaTeXPreambuła: \usepackage{listings}Otwórz w edytorze (otwiera się w nowej karcie)
\begin{lstlisting}[language=Python]
def total(xs):
    """Add up the numbers in xs."""
    return sum(xs)

print(total([40, 4]))  # 44
\end{lstlisting}
Złożone przez Scissor LaTeX: lstlisting z language=Python

\lstinline|code| to odmiana do użycia w tekście, podobnie jak \verb.

minted

minted przyjmuje język jako argument. W instalacji TeX wymaga Pythona i opcji -shell-escape; w Scissor LaTeX działa bez nich.

minted z językiem

LaTeXPreambuła: \usepackage{minted}Otwórz w edytorze (otwiera się w nowej karcie)
\begin{minted}{rust}
fn main() {
    let answer = 40 + 4;
    println!("{}", answer);
}
\end{minted}
Inline: \mintinline{rust}{let x = 44;}
Złożone przez Scissor LaTeX: minted z językiem

Co jest odczytywane

PolecenieW Scissor LaTeXUwagi
verbatim, verbatim*Działa
\verb, \verb*Działa
lstlistingCzęściowolanguage= jest odczytywane; każda inna opcja (numbers, caption, frame, basicstyle, firstline ...) jest ignorowana.
\lstinlineDziałaBez kolorowania składni w tekście.
\lstset{...}PomijaneUstawiony tu język nie jest używany; podawaj language= przy każdym listingu.
mintedCzęściowoJęzyk jest odczytywany; opcje takie jak linenos i frame są ignorowane.
\mintinline{lang}{code}DziałaBez kolorowania składni w tekście.
Verbatim, BVerbatim (fancyvrb)CzęściowoPokazywane jak verbatim; opcje są ignorowane.
\lstinputlisting{file}, \inputminted{lang}{file}NieobsługiwanePomijane z komunikatem; wklej kod do dokumentu.
\lstnewenvironment, \newmintedNieobsługiwane

Kolorowanie składni jest dostępne dla popularnych języków, między innymi Python, C, C++, Java, JavaScript, TypeScript, Rust, Go, Ruby, R, Julia, MATLAB, SQL, Bash, HTML, CSS, JSON, YAML, TeX i LaTeX. W nazwach języków wielkość liter nie ma znaczenia, więc Python i python oznaczają to samo. Nierozpoznana nazwa daje zwykły kod czcionką o stałej szerokości.

Kod z pliku

\lstinputlisting i \inputminted w instalacji TeX wczytują kod z innego pliku. Scissor LaTeX je pomija i informuje o tym na karcie Problemy:

\lstinputlisting jest pomijane

LaTeXPreambuła: \usepackage{listings}Otwórz w edytorze (otwiera się w nowej karcie)
The script below is not shown:
\lstinputlisting[language=Python]{scripts/total.py}
Paste the code into an lstlisting environment instead.

Karta Problemy: 1 included file is not part of this conversion

Czym to się różni od instalacji TeX

Strony pakietów to listings i minted. Pełna dokumentacja znajduje się w CTAN: listings, minted i fancyvrb.

Pytania i odpowiedzi

Jak dodać blok kodu w LaTeX?

Umieść kod w \begin{verbatim} ... \end{verbatim} albo w lstlisting z [language=Python], aby uzyskać kolorowanie składni.

Czy minted działa bez shell escape?

W Scissor LaTeX tak: środowiska minted są kolorowane bez Pythona i bez -shell-escape. W instalacji TeX minted nadal wymaga obu.

Dlaczego w moim listingu brakuje numerów wierszy?

Scissor LaTeX ignoruje numbers=left i pozostałe opcje układu pakietu listings. Odczytywany jest tylko język.

Każdy przykład na tej stronie jest składany przez Scissor LaTeX podczas budowania witryny. Ostatnia aktualizacja: 2026-11-07.