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.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.