Перейти до вмісту

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. figure навколо блока minted там підписується як «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.