Перейти к содержанию

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

LaTeXПреамбула: \usepackage{minted}Открыть в редакторе (откроется в новой вкладке)
\begin{minted}{javascript}
// greet a list of people
const people = ["Erika", "Hans", "John"];
for (const name of people) {
  console.log(`Hello, ${name}!`);
}
\end{minted}
Свёрстано в Scissor LaTeX: minted с JavaScript

Параметры принимаются и игнорируются, поэтому у этого блока здесь нет номеров строк и рамки:

linenos и frame игнорируются

LaTeXПреамбула: \usepackage{minted}Открыть в редакторе (откроется в новой вкладке)
\begin{minted}[linenos, frame=lines]{rust}
fn main() {
    let total: u32 = (1..=8).sum();
    println!("{}", total + 8); // 44
}
\end{minted}
Свёрстано в Scissor LaTeX: linenos и frame игнорируются

Для нумерованной подписи используйте figure вместо окружения listing из minted. Тогда подпись здесь выглядит как «Listing 1», а \ref даёт номер:

Блок minted с подписью внутри figure

LaTeXПреамбула: \usepackage{minted}Открыть в редакторе (откроется в новой вкладке)
\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.
Свёрстано в Scissor LaTeX: Блок minted с подписью внутри figure

Совместимость

  • Из установленного 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.