> For the complete documentation index, see [llms.txt](https://overleaf-pro.ayaka.space/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://overleaf-pro.ayaka.space/latex/ru/formatirovanie/12-code-highlighting-with-minted.md).

# Подсветка кода с minted

## Введение

В этой статье показано, как использовать [`minted` пакет](https://ctan.org/pkg/minted?lang=en) для форматирования и подсветки исходного кода на языке программирования в документе LaTeX, начиная с примера:

```latex
\documentclass{article}
\usepackage{minted}
\begin{document}
\begin{minted}{python}
import numpy as np

def incmatrix(genl1,genl2):
    m = len(genl1)
    n = len(genl2)
    M = None # станет матрицей инцидентности
    VT = np.zeros((n*m,1), int)  # вспомогательная переменная

    # вычисляем побитовую матрицу XOR
    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}
```

[Откройте этот пример в Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Example+of+the+minted+package\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bminted%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Bminted%7D%7Bpython%7D%0Aimport+numpy+as+np%0A++++%0Adef+incmatrix%28genl1%2Cgenl2%29%3A%0A++++m+%3D+len%28genl1%29%0A++++n+%3D+len%28genl2%29%0A++++M+%3D+None+%23to+become+the+incidence+matrix%0A++++VT+%3D+np.zeros%28%28n%2Am%2C1%29%2C+int%29++%23dummy+variable%0A++++%0A++++%23compute+the+bitwise+xor+matrix%0A++++M1+%3D+bitxormatrix%28genl1%29%0A++++M2+%3D+np.triu%28bitxormatrix%28genl2%29%2C1%29+%0A%0A++++for+i+in+range%28m-1%29%3A%0A++++++++for+j+in+range%28i%2B1%2C+m%29%3A%0A++++++++++++%5Br%2Cc%5D+%3D+np.where%28M2+%3D%3D+M1%5Bi%2Cj%5D%29%0A++++++++++++for+k+in+range%28len%28r%29%29%3A%0A++++++++++++++++VT%5B%28i%29%2An+%2B+r%5Bk%5D%5D+%3D+1%3B%0A++++++++++++++++VT%5B%28i%29%2An+%2B+c%5Bk%5D%5D+%3D+1%3B%0A++++++++++++++++VT%5B%28j%29%2An+%2B+r%5Bk%5D%5D+%3D+1%3B%0A++++++++++++++++VT%5B%28j%29%2An+%2B+c%5Bk%5D%5D+%3D+1%3B%0A++++++++++++++++%0A++++++++++++++++if+M+is+None%3A%0A++++++++++++++++++++M+%3D+np.copy%28VT%29%0A++++++++++++++++else%3A%0A++++++++++++++++++++M+%3D+np.concatenate%28%28M%2C+VT%29%2C+1%29%0A++++++++++++++++%0A++++++++++++++++VT+%3D+np.zeros%28%28n%2Am%2C1%29%2C+int%29%0A++++%0A++++return+M%0A%5Cend%7Bminted%7D%0A%5Cend%7Bdocument%7D)

Этот пример выводит следующий результат:

![Пример, демонстрирующий вывод пакета minted](/files/3722b3e7bdce7a3a896f91011b6d7daf72cd9e8c)

Здесь есть две важные команды. В преамбуле пакет подключается с помощью

```latex
\usepackage{minted}
```

затем теги `\begin{minted}{python}` и `\end{minted}` ограничивают окружение, которое печатает текст как есть моноширинным шрифтом и также применяет цвет к комментариям, ключевым словам и функциям. Параметр `python` — это язык программирования, на котором написан исходный код. `minted` поддерживает более 150 языков программирования и языков разметки, а также файлы конфигурации; см. [справочное руководство](#reference-guide) для списка поддерживаемых языков.

**Примечание**: Чтобы `minted` работал с вашей *локальной* дистрибуцией LaTeX, должна быть установлена дополнительная программа под названием [Pygments](https://pygments.org/) . [Overleaf](https://www.overleaf.com/) может избавить вас от необходимости устанавливать её и выполнять специальные команды для компиляции документа — в Overleaf документы, использующие `minted` будут работать «из коробки».

## Базовое использование

Как показано в следующем примере, окружение `minted` можно настроить, чтобы изменить визуальное оформление набранного кода. Здесь окружение `minted` использует несколько параметров, разделённых запятыми, в форме `ключ=значение`:

```latex
\documentclass{article}
\usepackage{minted}
\usepackage{xcolor} % для доступа к именованному цвету 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 np

def incmatrix(genl1,genl2):
    m = len(genl1)
    n = len(genl2)
    M = None # станет матрицей инцидентности
    VT = np.zeros((n*m,1), int)  # вспомогательная переменная

    # вычисляем побитовую матрицу XOR
    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}
```

[Откройте этот пример в Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Another+example+of+the+minted+package\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bminted%7D%0A%5Cusepackage%7Bxcolor%7D+%25+to+access+the+named+colour+LightGray%0A%5Cdefinecolor%7BLightGray%7D%7Bgray%7D%7B0.9%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Bminted%7D%0A%5B%0Aframe%3Dlines%2C%0Aframesep%3D2mm%2C%0Abaselinestretch%3D1.2%2C%0Abgcolor%3DLightGray%2C%0Afontsize%3D%5Cfootnotesize%2C%0Alinenos%0A%5D%0A%7Bpython%7D%0Aimport+numpy+as+np%0A++++%0Adef+incmatrix%28genl1%2Cgenl2%29%3A%0A++++m+%3D+len%28genl1%29%0A++++n+%3D+len%28genl2%29%0A++++M+%3D+None+%23to+become+the+incidence+matrix%0A++++VT+%3D+np.zeros%28%28n%2Am%2C1%29%2C+int%29++%23dummy+variable%0A++++%0A++++%23compute+the+bitwise+xor+matrix%0A++++M1+%3D+bitxormatrix%28genl1%29%0A++++M2+%3D+np.triu%28bitxormatrix%28genl2%29%2C1%29+%0A%0A++++for+i+in+range%28m-1%29%3A%0A++++++++for+j+in+range%28i%2B1%2C+m%29%3A%0A++++++++++++%5Br%2Cc%5D+%3D+np.where%28M2+%3D%3D+M1%5Bi%2Cj%5D%29%0A++++++++++++for+k+in+range%28len%28r%29%29%3A%0A++++++++++++++++VT%5B%28i%29%2An+%2B+r%5Bk%5D%5D+%3D+1%3B%0A++++++++++++++++VT%5B%28i%29%2An+%2B+c%5Bk%5D%5D+%3D+1%3B%0A++++++++++++++++VT%5B%28j%29%2An+%2B+r%5Bk%5D%5D+%3D+1%3B%0A++++++++++++++++VT%5B%28j%29%2An+%2B+c%5Bk%5D%5D+%3D+1%3B%0A++++++++++++++++%0A++++++++++++++++if+M+is+None%3A%0A++++++++++++++++++++M+%3D+np.copy%28VT%29%0A++++++++++++++++else%3A%0A++++++++++++++++++++M+%3D+np.concatenate%28%28M%2C+VT%29%2C+1%29%0A++++++++++++++++%0A++++++++++++++++VT+%3D+np.zeros%28%28n%2Am%2C1%29%2C+int%29%0A++++%0A++++return+M%0A%5Cend%7Bminted%7D%0A%5Cend%7Bdocument%7D)

Этот пример выводит следующий результат:

![Пример применения форматирования к набранному коду, созданному пакетом minted](/files/a56e946ce15ae2f4c1d4a74d3067edfd2d2da427)

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

* `frame=lines`: рисует две линии — одну сверху и одну снизу кода, обрамляя его. Другие возможные значения: `leftline`, `topline`, `bottomline` и `single`.
* `framesep=2mm`: расстояние до рамки установлено в 2 мм. Можно использовать другие [единицы длины](/latex/ru/formatirovanie/01-lengths-in-latex.md) .
* `baselinestretch=1.2`: межстрочный интервал кода установлен на 1.2.
* `bgcolor=LightGray`: цвет фона установлен на `LightGray`. Чтобы это работало, нужно подключить пакет `xcolor` для этого. См. [Использование цветов в LaTeX](/latex/ru/formatirovanie/13-using-colors-in-latex.md) чтобы узнать больше о работе с цветом.
* `fontsize=\footnotesize`: размер шрифта установлен на `footnotesize`. Можно задать любой другой [размер шрифта](/latex/ru/shrifty/01-font-sizes-families-and-styles.md#reference-guide) .
* `linenos`: включает нумерацию строк.

Другие полезные параметры:

* `mathescape`: включает математический режим в комментариях к коду.
* `rulecolor`: изменяет цвет рамки.
* `showspaces`: включает специальный символ, делающий пробелы видимыми.

## Включение кода из файла

Код обычно хранится в исходном файле, поэтому команда, которая автоматически импортирует код из файла, очень удобна, как показано в следующем примере:

```latex
\documentclass{article}
\usepackage{minted}
\title{Импорт файлов с помощью minted}
\begin{document}
Следующий код будет напрямую импортирован из файла:

\inputminted{octave}{BitXorMatrix.m}
\end{document}
```

[Откройте этот пример в Overleaf](https://www.overleaf.com/docs?engine=\&snip_name\[]=main.tex\&snip\[]=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bminted%7D%0A%5Ctitle%7BImporting+files+using+minted%7D%0A%5Cbegin%7Bdocument%7D%0AThe+next+code+will+be+directly+imported+from+a+file%3A%0A%0A%5Cinputminted%7Boctave%7D%7BBitXorMatrix.m%7D%0A%5Cend%7Bdocument%7D\&snip_name\[]=BitXorMatrix.m\&snip\[]=function+X+%3D+BitXorMatrix%28A%2CB%29%0A%25function+to+compute+the+sum+without+charge+of+two+vectors%0A%09%0A%09%25convert+elements+into+usigned+integers%0A%09A+%3D+uint8%28A%29%3B%0A%09B+%3D+uint8%28B%29%3B%0A%0A%09m1+%3D+length%28A%29%3B%0A%09m2+%3D+length%28B%29%3B%0A%09X+%3D+uint8%28zeros%28m1%2C+m2%29%29%3B%0A%09for+n1%3D1%3Am1%0A%09%09for+n2%3D1%3Am2%0A%09%09%09X%28n1%2C+n2%29+%3D+bitxor%28A%28n1%29%2C+B%28n2%29%29%3B%0A%09%09end%0A%09end\&main_document=main.tex)

Этот пример выводит следующий результат:

![Использование minted для импорта файла с кодом](/files/6db2c99a8dcd268a768e6dbda51915f332b85bc8)

Команда `\inputminted{octave}{BitXorMatrix.m}` импортирует код из файла `BitXorMatrix.m`, параметр `octave` указывает LaTeX язык программирования кода. Эта команда может принимать ещё два параметра для импорта только части файла; например, чтобы импортировать код со 2-й по 12-ю строку, команда становится такой:

```latex
\inputminted[firstline=2, lastline=12]{octave}{BitXorMatrix.m}
```

## Однострочный код

Если вам нужно ввести только одну строку кода, команда `\mint`, синтаксис которой показан в следующем примере, поможет.

```latex
Форматирование однострочного кода также работает с \texttt{minted}. Например, небольшой фрагмент HTML вроде этого:
\mint{html}|<h2>Something <b>here</b></h2>|
можно корректно отформатировать.
```

[Откройте этот пример в Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=One+line+code+example+with+minted\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bminted%7D%0A%5Cbegin%7Bdocument%7D%0AOne-line+code+formatting+also+works+with+%5Ctexttt%7Bminted%7D.+For+example%2C+a+small+fragment+of+HTML+like+this%3A%0A%5Cmint%7Bhtml%7D%7C%3Ch2%3ESomething+%3Cb%3Ehere%3C%2Fb%3E%3C%2Fh2%3E%7C%0A%5Cnoindent+can+be+formatted+correctly.%0A%5Cend%7Bdocument%7D)

Этот пример выводит следующий результат:

![Пример однострочного кода с minted](/files/af3889ca8549ec0112a7cc7f820bc30aa00f9000)

Параметр в фигурных скобках задаёт язык программирования (`html` язык разметки в данном случае), а сам текст, который нужно форматировать, отделяется символом '|'.

## Пользовательские лексеры

**(Обратите внимание, что из-за изменений в `minted` с 2023 года следующий подход будет работать только в** [**TeX Live 2022 или более ранней версии**](/latex/ru/baza-znanii/148-using-the-overleaf-project-menu.md#tex-live-version)**.)**

По умолчанию, `minted` поддерживает только языки, для которых лексеры уже установлены или зарегистрированы в `pygmentize`. Если вы написали пользовательский лексер или хотите использовать лексер для языка, который ещё не установлен в Overleaf, вы всё равно можете использовать его в своём проекте Overleaf, применив описанный выше подход [здесь](https://tex.stackexchange.com/questions/18083/how-to-add-custom-c-keywords-to-be-recognized-by-minted#comment930474_42392).

Предположим, вы определили лексер в файле `nl-lexer.py`, содержащем класс `NetLogoLexer` для языка NetLogo. Загрузите `nl-lexer.py` в свой проект Overleaf, а затем укажите `nl-lexer.py:NetLogoLexer` в качестве «имени языка» при использовании `minted`. Например:

```latex
\begin{minted}{nl-lexer.py:NetLogoLexer -x}
   ... ваш код здесь ...
\end{minted}
```

[Вот](http://quantixed.org/2018/10/23/new-lexicon-how-to-add-a-custom-minted-lexer-in-overleaf/) ещё один пример для языка ImageJ Macro.

## Цвета и таблицы стилей

Цветовые схемы, используемые для подсветки кода, сохраняются в таблицах стилей. Вы можете создать свою или использовать уже имеющуюся в вашей дистрибуции LaTeX. См. [справочное руководство](#reference-guide) для списка таблиц стилей, включённых в [Overleaf](https://www.overleaf.com).

```latex
\documentclass{article}
\usepackage{minted}
\usemintedstyle{borland}
\begin{document}
\begin{minted}{python}
import numpy as np

def incmatrix(genl1,genl2):
    m = len(genl1)
    n = len(genl2)
    M = None # станет матрицей инцидентности
    VT = np.zeros((n*m,1), int)  # вспомогательная переменная

    # вычисляем побитовую матрицу XOR
    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}
```

[Откройте этот пример в Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Using+stylesheets+with+minted+package\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bminted%7D%0A%5Cusemintedstyle%7Bborland%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Bminted%7D%7Bpython%7D%0Aimport+numpy+as+np%0A++++%0Adef+incmatrix%28genl1%2Cgenl2%29%3A%0A++++m+%3D+len%28genl1%29%0A++++n+%3D+len%28genl2%29%0A++++M+%3D+None+%23to+become+the+incidence+matrix%0A++++VT+%3D+np.zeros%28%28n%2Am%2C1%29%2C+int%29++%23dummy+variable%0A++++%0A++++%23compute+the+bitwise+xor+matrix%0A++++M1+%3D+bitxormatrix%28genl1%29%0A++++M2+%3D+np.triu%28bitxormatrix%28genl2%29%2C1%29+%0A%0A++++for+i+in+range%28m-1%29%3A%0A++++++++for+j+in+range%28i%2B1%2C+m%29%3A%0A++++++++++++%5Br%2Cc%5D+%3D+np.where%28M2+%3D%3D+M1%5Bi%2Cj%5D%29%0A++++++++++++for+k+in+range%28len%28r%29%29%3A%0A++++++++++++++++VT%5B%28i%29%2An+%2B+r%5Bk%5D%5D+%3D+1%3B%0A++++++++++++++++VT%5B%28i%29%2An+%2B+c%5Bk%5D%5D+%3D+1%3B%0A++++++++++++++++VT%5B%28j%29%2An+%2B+r%5Bk%5D%5D+%3D+1%3B%0A++++++++++++++++VT%5B%28j%29%2An+%2B+c%5Bk%5D%5D+%3D+1%3B%0A++++++++++++++++%0A++++++++++++++++if+M+is+None%3A%0A++++++++++++++++++++M+%3D+np.copy%28VT%29%0A++++++++++++++++else%3A%0A++++++++++++++++++++M+%3D+np.concatenate%28%28M%2C+VT%29%2C+1%29%0A++++++++++++++++%0A++++++++++++++++VT+%3D+np.zeros%28%28n%2Am%2C1%29%2C+int%29%0A++++%0A++++return+M%0A%5Cend%7Bminted%7D%0A%5Cend%7Bdocument%7D)

Использование `borland` таблицы стилей даёт следующий результат:

![Вывод пакета minted с использованием таблицы стилей borland](/files/afbdb8028c01713bd0484b322faa5f72362aaa88)

Синтаксис задания стиля раскраски прост: команда `\usemintedstyle{borland}` использует цветовую тему `borland` для форматирования исходного кода. Больше цветовых схем можно найти в [справочное руководство](#reference-guide).

## Подписи, метки и список листингов

Листинги кода, отформатированные с помощью **minted** можно включать в плавающее окружение, как и [рисунки](/latex/ru/drugie-temy/27-inserting-images.md#positioning) и [таблицы](/latex/ru/risunki-i-tablicy/01-tables.md#positioning-tables). К листингам кода можно добавлять подписи и метки, а затем ссылаться на них и включать в «Список листингов».

```latex
\documentclass{article}
\usepackage{minted}
Примеры листингов кода
\begin{document}
\begin{listing}[!ht]
\inputminted{octave}{BitXorMatrix.m}
Пример из внешнего файла
\label{listing:1}
\end{listing}

\begin{listing}[!ht]
\begin{minted}{c}
#include <stdio.h>
int main() {
   printf("Привет, мир!"); /*printf() выводит строку в кавычках*/
   return 0;
}
\end{minted}
Hello World на C
\label{listing:2}
\end{listing}

\begin{listing}[!ht]
\begin{minted}{lua}
function fact (n)--определяет функцию факториала
  if n == 0 then
    return 1
  else
    return n * fact(n-1)
  end
end

print("Введите число:")
a = io.read("*number") -- считывает число
print(fact(a))
\end{minted}
Пример из руководства по Lua
\label{listing:3}
\end{listing}
\noindent\texttt{minted} отлично справляется с версткой листингов \ref{listing:1}, \ref{listing:2} и \ref{listing:3}.
\renewcommand\listoflistingscaption{Список исходных кодов}
\listoflistings
\end{document}
```

[Откройте этот пример в Overleaf](https://www.overleaf.com/docs?engine=\&snip_name\[]=main.tex\&snip\[]=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bminted%7D%0A%5Ctitle%7BListing+code+examples%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Blisting%7D%5B%21ht%5D%0A%5Cinputminted%7Boctave%7D%7BBitXorMatrix.m%7D%0A%5Ccaption%7BExample+from+external+file%7D%0A%5Clabel%7Blisting%3A1%7D%0A%5Cend%7Blisting%7D%0A%0A%5Cbegin%7Blisting%7D%5B%21ht%5D%0A%5Cbegin%7Bminted%7D%7Bc%7D%0A%23include+%3Cstdio.h%3E%0Aint+main%28%29+%7B%0A+++printf%28%22Hello%2C+World%21%22%29%3B+%2F%2Aprintf%28%29+outputs+the+quoted+string%2A%2F%0A+++return+0%3B%0A%7D%0A%5Cend%7Bminted%7D%0A%5Ccaption%7BHello+World+in+C%7D%0A%5Clabel%7Blisting%3A2%7D%0A%5Cend%7Blisting%7D%0A%0A%5Cbegin%7Blisting%7D%5B%21ht%5D%0A%5Cbegin%7Bminted%7D%7Blua%7D%0Afunction+fact+%28n%29--defines+a+factorial+function%0A++if+n+%3D%3D+0+then%0A++++return+1%0A++else%0A++++return+n+%2A+fact%28n-1%29%0A++end%0Aend%0A%0Aprint%28%22enter+a+number%3A%22%29%0Aa+%3D+io.read%28%22%2Anumber%22%29+--+read+a+number%0Aprint%28fact%28a%29%29%0A%5Cend%7Bminted%7D%0A%5Ccaption%7BExample+from+the+Lua+manual%7D%0A%5Clabel%7Blisting%3A3%7D%0A%5Cend%7Blisting%7D%0A%5Cnoindent%5Ctexttt%7Bminted%7D+makes+a+nice+job+of+typesetting+listings+%5Cref%7Blisting%3A1%7D%2C+%5Cref%7Blisting%3A2%7D+and+%5Cref%7Blisting%3A3%7D.%0A%5Crenewcommand%5Clistoflistingscaption%7BList+of+source+codes%7D%0A%5Clistoflistings%0A%5Cend%7Bdocument%7D\&snip_name\[]=BitXorMatrix.m\&snip\[]=%25This+code+is+directly+imported+from+a+file%0A%25A+function+to+compute+the+sum+without+charge+of+two+vectors%0Afunction+X+%3D+BitXorMatrix%28A%2CB%29%0A%25convert+elements+into+unsigned+integers%0AA+%3D+uint8%28A%29%3B%0AB+%3D+uint8%28B%29%3B%0A%0Am1+%3D+length%28A%29%3B%0Am2+%3D+length%28B%29%3B%0AX+%3D+uint8%28zeros%28m1%2C+m2%29%29%3B%0A+for+n1%3D1%3Am1%0A++for+n2%3D1%3Am2%0A+++X%28n1%2C+n2%29+%3D+bitxor%28A%28n1%29%2C+B%28n2%29%29%3B%0A++end%0Aend\&main_document=main.tex)

Первая страница этого примера содержит следующий вывод:

![Пример листингов фрагментов кода](/files/fa1c4bb55ea52ea1b02725e96c74a917e4204ae7)

Чтобы вывести список со всеми элементами «listing», используйте `\listoflistings`. В приведённом выше примере заголовок по умолчанию `List of listings` изменён на `Список исходных кодов` с помощью записи

```latex
\renewcommand\listoflistingscaption{Список исходных кодов}
\listoflistings % Теперь напечатайте список
```

На второй странице, создаваемой приведённым выше примером, содержится следующий листинг:

![Пример листинга исходного кода](/files/6c7cc7d9bbd2035e6d4f1a031a298ef8bf7de140)

## Справочное руководство

**Цветовые стили для minted**

| имя      | вывод                                                                 | имя      | вывод                                                                  |
| -------- | --------------------------------------------------------------------- | -------- | ---------------------------------------------------------------------- |
| manni    | ![MintedStyles1.png](/files/08f6cdb309e1456d7d86ffc97a1e592eaa6f84aa) | fruity   | ![MintedStyles10.png](/files/3d277235ff856084592b5cc38ec714afd079d241) |
| rrt      | ![MintedStyles2.png](/files/b5a26ffc1e6c934b5afb7e31312e483838d33380) | autumn   | ![MintedStyles11.png](/files/f9fabe0e465f16d3544c6dfe4ebc2519df2562c2) |
| perldoc  | ![MintedStyles3.png](/files/7481f536ab25406ddf074373f397520b682ca92c) | bw       | ![MintedStyles12.png](/files/bfbb1cf0752fcf6acd63b70ab7c39b2cb6bff424) |
| borland  | ![MintedStyles4.png](/files/91d8267fbd7c8f55006de9bfbd6a47c8f98244b0) | emacs    | ![MintedStyles13.png](/files/2329d933557a737a6e38e55dcb86895fa6facae6) |
| colorful | ![MintedStyles5.png](/files/e0358815b93c1c7703e450e669fc3e40c3590a7a) | vim      | ![MintedStyles14.png](/files/21f0cc2d6d04812c5fd69a9907b70b1da4f6edfd) |
| murphy   | ![MintedStyles6.png](/files/89c2560e9c48d50d27710ffcca2ec97d4f1430d9) | pastie   | ![MintedStyles15.png](/files/3a23c79116e9b7503686437db08ae66b9ad566f1) |
| vs       | ![MintedStyles7.png](/files/3e56e53775295d1b8cbafd5bfab0bde0655707d0) | friendly | ![MintedStyles16.png](/files/f293e31a74a9d0626815e1a67e4b7e43b33dacd5) |
| trac     | ![MintedStyles8.png](/files/3e889c827d50db64435eba4dc53827f548aecc6b) | native   | ![MintedStyles17.png](/files/50a3116edfadbe87364a2224635e61e50c9d5bca) |
| tango    | ![MintedStyles9.png](/files/4c345c8af21de67c25f77225f64bbbc7a1ca790b) | monokai  | ![MintedStyles18.png](/files/4ef4222712f07229f5b9f9562e90a7b874e23e99) |

Некоторым цветовым схемам для читаемости нужен тёмный фон.

**Основные поддерживаемые языки программирования и файлы конфигурации**

|          |            |             |           |
| -------- | ---------- | ----------- | --------- |
| cucumber | abap       | ada         | ahk       |
| antlr    | apacheconf | applescript | as        |
| aspectj  | autoit     | asy         | awk       |
| basemake | bash       | bat         | bbcode    |
| befunge  | bmax       | boo         | brainfuck |
| bro      | bugs       | c           | ceylon    |
| cfm      | cfs        | cheetah     | clj       |
| cmake    | cobol      | cl          | console   |
| control  | coq        | cpp         | croc      |
| csharp   | css        | cuda        | cyx       |
| d        | dg         | diff        | django    |
| dpatch   | duel       | dylan       | ec        |
| erb      | evoque     | fan         | fancy     |
| fortran  | gas        | genshi      | glsl      |
| gnuplot  | go         | gosu        | groovy    |
| gst      | haml       | haskell     | hxml      |
| html     | http       | hx          | idl       |
| irc      | ini        | java        | jade      |
| js       | json       | jsp         | kconfig   |
| koka     | lasso      | livescrit   | llvm      |
| лого     | Луа        | Мако        | Мейсон    |
| Матлаб   | Минид      | Манки       | Мун       |
| MXML     | Майти      | MySQL       | NASM      |
| НьюЛисп  | Ньюспик    | NumPy       | OCaml     |
| octave   | OOC        | Перл        | PHP       |
| PL/pgSQL | PostgreSQL | PostScript  | POT       |
| Пролог   | psql       | Паппет      | python    |
| QML      | Рейджел    | RAW         | Руби      |
| RHTML    | Sass       | Scheme      | Смолток   |
| SQL      | SSP        | Tcl         | Tea       |
| TeX      | текст      | Вала        | VGL       |
| vim      | XML        | XQuery      | YAML      |

## Дальнейшее чтение

Дополнительную информацию см. на:

* [Длины в LaTeX](/latex/ru/formatirovanie/01-lengths-in-latex.md)
* [Листинг кода](/latex/ru/formatirovanie/11-code-listing.md)
* [Счётчики](/latex/ru/formatirovanie/10-counters.md)
* [Использование цветов в LaTeX](/latex/ru/formatirovanie/13-using-colors-in-latex.md)
* [Размеры шрифтов, семейства и стили](/latex/ru/shrifty/01-font-sizes-families-and-styles.md)
* [Гарнитуры шрифтов](/latex/ru/shrifty/02-font-typefaces.md)
* [Управление в большом проекте](/latex/ru/struktura-dokumenta/07-management-in-a-large-project.md)
* [Многофайловые проекты LaTeX](/latex/ru/struktura-dokumenta/08-multi-file-latex-projects.md)
* [Содержание](/latex/ru/struktura-dokumenta/02-table-of-contents.md)
* [Односторонние и двусторонние документы](/latex/ru/formatirovanie/08-single-sided-and-double-sided-documents.md)
* [Функция **minted** Документация пакета](https://texdoc.org/serve/minted/0)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://overleaf-pro.ayaka.space/latex/ru/formatirovanie/12-code-highlighting-with-minted.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
