minted в Scissor LaTeX
Пакет minted работает в Scissor LaTeX частично: \begin{minted}{python} и \mintinline работают без Python и -shell-escape, с подсветкой синтаксиса по фиксированной схеме; параметры вроде linenos, \setminted, \usemintedstyle, подпись listing, \mint и \inputminted не поддерживаются.
Что делает пакет
minted раскрашивает исходный код с помощью библиотеки Pygments. Вы пишете \begin{minted}{python} ... \end{minted} или \mintinline{python}{code} внутри предложения. Параметры вроде linenos и frame=lines меняют раскладку, \setminted задаёт их для всего документа, а \usemintedstyle выбирает цветовую тему. В установленном TeX minted нужен Python с Pygments, и документ должен компилироваться с -shell-escape.
Что здесь работает
| Возможность | В Scissor LaTeX | Примечания |
|---|---|---|
\begin{minted}{lang} ... \end{minted} | Работает | С цветами, без Python и shell escape. |
\mintinline{lang}{code} | Работает | Моноширинный шрифт, без цветов. |
Параметры: [linenos, frame=lines, bgcolor=...] | Пропускается | Игнорируются без сообщения. |
\setminted{...}, \usemintedstyle{...} | Пропускается | Игнорируются без сообщения; цвета фиксированы. |
Окружение listing с \caption | Частично | Код показывается, а подпись выводится простым текстом, без «Listing 1»; \ref на неё показывает «??». |
\mint{lang}|code| | Не поддерживается | Пропускается с сообщением; язык и код выводятся простым текстом. |
\inputminted{lang}{file} | Не поддерживается | Пропускается с сообщением. |
\newminted, \newmintinline | Не поддерживается | Пропускаются с сообщением, а аргументы выводятся. |
Имена языков те же, что и для listings: Python, C, C++, Java, JavaScript, Rust, Go, R, MATLAB, SQL, Bash, HTML, TeX и многие другие, заглавными или строчными буквами.
Примеры
Блок minted с языком:
minted с JavaScript
\begin{minted}{javascript}
// greet a list of people
const people = ["Erika", "Hans", "John"];
for (const name of people) {
console.log(`Hello, ${name}!`);
}
\end{minted}Параметры принимаются и игнорируются, поэтому у этого блока здесь нет номеров строк и рамки:
linenos и frame игнорируются
\begin{minted}[linenos, frame=lines]{rust}
fn main() {
let total: u32 = (1..=8).sum();
println!("{}", total + 8); // 44
}
\end{minted}Для нумерованной подписи используйте figure вместо окружения listing из minted. Тогда подпись здесь выглядит как «Listing 1», а \ref даёт номер:
Блок minted с подписью внутри figure
\begin{figure}[h]
\begin{minted}{python}
print(sum(range(44)))
\end{minted}
\caption{Adding the numbers below 44}
\label{lst:sum}
\end{figure}
Listing~\ref{lst:sum} prints 946.Совместимость
- Из установленного TeX сюда: каждый блок minted показывается с цветами. Параметры и стили не применяются; замените
\mintна\mintinlineи вставьте в документ код из файлов\inputminted. - Отсюда в установленный TeX: блоки minted компилируются там, если доступны Python, Pygments и
-shell-escape. Блок minted внутриfigureподписывается там как «Figure 1».
Полное руководство есть на CTAN: ctan.org/pkg/minted. См. также Листинги кода в LaTeX.
Вопросы и ответы
Работает ли minted без shell escape?
Здесь да. Scissor LaTeX сам раскрашивает блоки minted, поэтому ни Python, ни -shell-escape не нужны. В установленном TeX оба по-прежнему требуются.
Что использовать, minted или listings?
Здесь оба работают одинаково: язык читается, а остальные параметры игнорируются. Если документ должен компилироваться и в другом месте без shell escape, надёжнее выбрать listings.
Каждый пример на этой странице верстается в Scissor LaTeX при сборке сайта. Обновлено 2026-11-07.