Ten artykuł pokazuje, jak używać pakietu minted do formatowania i podświetlania kodu źródłowego języków programowania w dokumencie LaTeX. Zacznijmy od przykładu:
\documentclass{article}\usepackage{minted}\begin{document}\begin{minted}{python}import numpy as npdef incmatrix(genl1,genl2): m = len(genl1) n = len(genl2) M = None #to become the incidence matrix VT = np.zeros((n*m,1), int) #dummy variable #compute the bitwise xor matrix M1 = bitxormatrix(genl1) M2 = np.triu(bitxormatrix(genl2),1) for i in range(m-1): for j in range(i+1, m): [r,c] = np.where(M2 == M1[i,j]) for k in range(len(r)): VT[(i)*n + r[k]] = 1; VT[(i)*n + c[k]] = 1; VT[(j)*n + r[k]] = 1; VT[(j)*n + c[k]] = 1; if M is None: M = np.copy(VT) else: M = np.concatenate((M, VT), 1) VT = np.zeros((n*m,1), int) return M\end{minted}\end{document}
Ten przykład daje następujący wynik:
Są tu dwa ważne polecenia. W preambule pakiet jest importowany przez wpisanie
\usepackage{minted}
następnie znaczniki \begin{minted}{python} i \end{minted} wyznaczają środowisko, które wypisuje tekst dosłownie czcionką o stałej szerokości, a także koloruje komentarze, słowa kluczowe i funkcje. Parametr python to język programowania, w którym napisany jest kod źródłowy. minted obsługuje ponad 150 języków programowania i znaczników, a także pliki konfiguracyjne — listę obsługiwanych języków znajdziesz w przewodniku referencyjnym.Uwaga: Aby minted działał z Twoją lokalną dystrybucją LaTeX, musi być zainstalowany dodatkowy program o nazwie Pygments. Overleaf oszczędza Ci kłopotu z jego instalacją i uruchamianiem specjalnych poleceń do kompilacji dokumentu — w Overleaf dokumenty używające minted działają “od razu”.
Jak pokazano w poniższym przykładzie, środowisko minted można skonfigurować tak, aby zmienić wygląd składanego kodu. Tutaj środowisko minted używa kilku parametrów rozdzielonych przecinkami w postaci key=value:
\documentclass{article}\usepackage{minted}\usepackage{xcolor} % to access the named colour LightGray\definecolor{LightGray}{gray}{0.9}\begin{document}\begin{minted}[frame=lines,framesep=2mm,baselinestretch=1.2,bgcolor=LightGray,fontsize=\footnotesize,linenos]{python}import numpy as npdef incmatrix(genl1,genl2): m = len(genl1) n = len(genl2) M = None #to become the incidence matrix VT = np.zeros((n*m,1), int) #dummy variable #compute the bitwise xor matrix M1 = bitxormatrix(genl1) M2 = np.triu(bitxormatrix(genl2),1) for i in range(m-1): for j in range(i+1, m): [r,c] = np.where(M2 == M1[i,j]) for k in range(len(r)): VT[(i)*n + r[k]] = 1; VT[(i)*n + c[k]] = 1; VT[(j)*n + r[k]] = 1; VT[(j)*n + c[k]] = 1; if M is None: M = np.copy(VT) else: M = np.concatenate((M, VT), 1) VT = np.zeros((n*m,1), int) return M\end{minted}\end{document}
Ten przykład daje następujący wynik:
Parametry użyte w tym przykładzie to:
frame=lines: rysuje dwie linie, jedną nad kodem i jedną pod nim, tworząc ramkę. Inne możliwe wartości to leftline, topline, bottomline i single.
framesep=2mm: odstęp ramki jest ustawiony na 2 mm. Można używać innych jednostek długości.
baselinestretch=1.2: interlinia kodu ustawiona na 1,2.
bgcolor=LightGray: kolor tła ustawiony na LightGray. Aby to działało, musisz zaimportować pakiet xcolor. Więcej o pracy z kolorami dowiesz się z artykułu Używanie kolorów w LaTeX.
fontsize=\footnotesize: rozmiar czcionki ustawiony na footnotesize. Można ustawić dowolny inny rozmiar czcionki.
linenos: włącza numerowanie wierszy.
Inne przydatne opcje to:
mathescape: włącza tryb matematyczny w komentarzach kodu.
rulecolor: zmienia kolor ramki.
showspaces: włącza specjalny znak, który uwidacznia spacje.
Kod zazwyczaj jest przechowywany w pliku źródłowym, dlatego polecenie automatycznie importujące kod z pliku jest bardzo wygodne, co pokazuje poniższy przykład:
\documentclass{article}\usepackage{minted}\title{Importing files using minted}\begin{document}The next code will be directly imported from a file:\inputminted{octave}{BitXorMatrix.m}\end{document}
Ten przykład daje następujący wynik:Polecenie \inputminted{octave}{BitXorMatrix.m} importuje kod z pliku BitXorMatrix.m, a parametr octave informuje LaTeX o języku programowania kodu. Polecenie może przyjmować dwa dodatkowe parametry, aby zaimportować tylko część pliku; na przykład, aby zaimportować kod od wiersza 2 do wiersza 12, polecenie wygląda tak:
Jeśli potrzebujesz wstawić tylko jeden wiersz kodu, wystarczy polecenie \mint, którego składnię przedstawia następny przykład.
One-line code formatting also works with \texttt{minted}. For example, a small fragment of HTML like this:\mint{html}|<h2>Something <b>here</b></h2>|\noindent can be formatted correctly.
Ten przykład daje następujący wynik:Parametr w nawiasach klamrowych określa język programowania (w tym przypadku język znaczników html), a właściwy tekst do sformatowania jest ograniczony znakami ’|’.
Jeśli używasz sandbox compile i wdrażasz Overleaf na własnym serwerze, minted może nie działać poprawnie. Szczegółowe informacje znajdziesz tutaj: issues/131. Aby minted działał, musisz włączyć profil instrukcji arm oraz niektóre wywołania systemowe.
Ostatnia modyfikacja 4 października 2026
Czy ta strona była pomocna?
Assistant
Responses are generated using AI and may contain mistakes.