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.\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
\begin{lstlisting}[language=Python]
def total(xs):
"""Add up the numbers in xs."""
return sum(xs)
print(total([40, 4])) # 44
\end{lstlisting}\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
\begin{minted}{rust}
fn main() {
let answer = 40 + 4;
println!("{}", answer);
}
\end{minted}
Inline: \mintinline{rust}{let x = 44;}Co jest odczytywane
| Polecenie | W Scissor LaTeX | Uwagi |
|---|---|---|
verbatim, verbatim* | Działa | |
\verb, \verb* | Działa | |
lstlisting | Częściowo | language= jest odczytywane; każda inna opcja (numbers, caption, frame, basicstyle, firstline ...) jest ignorowana. |
\lstinline | Działa | Bez kolorowania składni w tekście. |
\lstset{...} | Pomijane | Ustawiony tu język nie jest używany; podawaj language= przy każdym listingu. |
minted | Częściowo | Język jest odczytywany; opcje takie jak linenos i frame są ignorowane. |
\mintinline{lang}{code} | Działa | Bez kolorowania składni w tekście. |
Verbatim, BVerbatim (fancyvrb) | Częściowo | Pokazywane jak verbatim; opcje są ignorowane. |
\lstinputlisting{file}, \inputminted{lang}{file} | Nieobsługiwane | Pomijane z komunikatem; wklej kod do dokumentu. |
\lstnewenvironment, \newminted | Nieobsł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
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.