У цій статті показано, як використовувати пакет minted для форматування та підсвічування вихідного коду мов програмування в документі LaTeX. Почнімо з прикладу:
\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}
Цей приклад дає такий результат:
Тут є дві важливі команди. У преамбулі пакет імпортується так:
\usepackage{minted}
далі теги \begin{minted}{python} і \end{minted} обмежують середовище, яке виводить текст дослівно моноширинним шрифтом, а також розфарбовує коментарі, ключові слова та функції. Параметр python — це мова програмування, якою написано вихідний код. minted підтримує понад 150 мов програмування та розмітки, а також конфігураційні файли; перелік підтримуваних мов наведено в довідковому посібнику.Примітка: щоб minted працював з вашим локальним дистрибутивом LaTeX, потрібно встановити додаткову програму Pygments. Overleaf позбавляє вас клопоту з її встановленням і виконанням спеціальних команд для компіляції документа — в Overleaf документи, що використовують minted, працюють “з коробки”.
Як показано в наступному прикладі, середовище minted можна налаштувати, щоб змінити візуальне подання набраного коду. Тут середовище minted використовує кілька параметрів у формі 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}
Цей приклад дає такий результат:
У цьому прикладі використано такі параметри:
frame=lines: малює дві лінії — одну над кодом, другу під ним, — щоб обрамити його. Інші можливі значення: leftline, topline, bottomline і single.
framesep=2mm: відступ рамки встановлено на 2mm. Можна використовувати й інші одиниці довжини.
baselinestretch=1.2: міжрядковий інтервал коду встановлено на 1.2.
bgcolor=LightGray: колір тла встановлено на LightGray. Щоб це працювало, потрібно імпортувати пакет xcolor. Докладніше про роботу з кольорами читайте в статті Using colours in LaTeX.
fontsize=\footnotesize: розмір шрифту встановлено на footnotesize. Можна задати будь-який інший розмір шрифту.
linenos: вмикає нумерацію рядків.
Інші параметри, які можуть знадобитися:
mathescape: вмикає математичний режим у коментарях до коду.
rulecolor: змінює колір рамки.
showspaces: вмикає спеціальний символ, що робить пробіли видимими.
Код зазвичай зберігається у вихідному файлі, тому команда, що автоматично імпортує код із файлу, дуже зручна, як показано в наступному прикладі:
\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}
Цей приклад дає такий результат:Команда \inputminted{octave}{BitXorMatrix.m} імпортує код із файлу BitXorMatrix.m, а параметр octave повідомляє LaTeX мову програмування коду. Ця команда може приймати два додаткові параметри, щоб імпортувати лише частину файлу; наприклад, щоб імпортувати код із рядка 2 до рядка 12, команда набуває такого вигляду:
Якщо потрібно вставити лише один рядок коду, впорається команда \mint, синтаксис якої наведено в наступному прикладі.
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.
Цей приклад дає такий результат:Параметр у фігурних дужках задає мову програмування (у цьому випадку мову розмітки html), а сам текст для форматування обмежується символом ’|’.
Якщо ви використовуєте sandbox-компіляцію і власний сервер overleaf для розгортання overleaf, minted може працювати некоректно. Докладніше дивіться: issues/131. Щоб minted працював, потрібно ввімкнути профіль інструкцій arm і деякі системні виклики.
Останнє оновлення 4 жовтня 2026 р.
Чи була ця сторінка корисною?
Assistant
Responses are generated using AI and may contain mistakes.