> 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/overleaf-learn-latex-pt/formatacao/12-code-highlighting-with-minted.md).

# Realce de código com minted

## Introdução

Este artigo mostra como usar o [`minted` pacote](https://ctan.org/pkg/minted?lang=en) para formatar e destacar código-fonte de linguagens de programação num documento LaTeX, começando com um exemplo:

```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 #para se tornar a matriz de incidência
    VT = np.zeros((n*m,1), int)  #variável auxiliar

    #calcula a matriz xor bit a bit
    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}
```

[Abra este exemplo no 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)

Este exemplo produz a seguinte saída:

![Exemplo que mostra a saída do pacote minted](/files/0ddeaf849b0fab9b4fbe928a56ee6a0ccbe87dc7)

Há dois comandos importantes aqui. No preâmbulo, o pacote é importado escrevendo

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

depois, as tags `\begin{minted}{python}` e `\end{minted}` delimitam um ambiente que imprime o texto literalmente em fontes monoespaçadas e também aplica cor aos comentários, palavras-chave e funções. O parâmetro `python` é a linguagem de programação em que o código-fonte está escrito. `minted` suporta mais de 150 linguagens de programação e de marcação, bem como ficheiros de configuração; veja o [guia de referência](#reference-guide) para uma lista das linguagens suportadas.

**Nota**: Para `minted` funcionar com a sua *local* distribuição LaTeX, é necessário instalar um programa adicional chamado [Pygments](https://pygments.org/) deve ser instalado. [O Overleaf](https://www.overleaf.com/) pode poupar-lhe o trabalho de o instalar e de ter de executar comandos especiais para compilar o seu documento — no Overleaf, documentos que usam `minted` funcionarão “fora da caixa”.

## Utilização básica

Como demonstrado no exemplo seguinte, o `minted` ambiente pode ser configurado para modificar a apresentação visual do código formatado. Aqui, o `minted` ambiente usa vários parâmetros separados por vírgulas da forma `key=value`:

```latex
\documentclass{article}
\usepackage{minted}
\usepackage{xcolor} % para aceder à cor nomeada 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 #para se tornar a matriz de incidência
    VT = np.zeros((n*m,1), int)  #variável auxiliar

    #calcula a matriz xor bit a bit
    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}
```

[Abra este exemplo no 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)

Este exemplo produz a seguinte saída:

![Exemplo aplicando formatação ao código formatado produzido pelo pacote minted](/files/460566e6d42c632eb55c0de80acc555a142aaef7)

Os parâmetros usados neste exemplo são:

* `frame=lines`: desenha duas linhas, uma na parte superior e outra na parte inferior do código para o emoldurar. Outros valores possíveis são `leftline`, `topline`, `bottomline` e `single`.
* `framesep=2mm`: a separação da moldura é definida para 2mm. Outras [unidades de comprimento](/latex/overleaf-learn-latex-pt/formatacao/01-lengths-in-latex.md) podem ser usadas.
* `baselinestretch=1.2`: o espaçamento entre linhas do código é definido para 1,2.
* `bgcolor=LightGray`: cor de fundo definida para `LightGray`. É necessário importar o pacote `xcolor` para que isto funcione. Veja [Utilizar cores no LaTeX](/latex/overleaf-learn-latex-pt/formatacao/13-using-colors-in-latex.md) para saber mais sobre manipulação de cores.
* `fontsize=\footnotesize`: tamanho da fonte definido para `footnotesize`. Qualquer outro [tamanho de fonte](/latex/overleaf-learn-latex-pt/fontes/01-font-sizes-families-and-styles.md#reference-guide) pode ser definido.
* `linenos`: ativa números de linha.

Outras opções que podem ser úteis são:

* `mathescape`: ativa o modo matemático em comentários de código.
* `rulecolor`: altera a cor da moldura.
* `showspaces`: ativa um caractere especial para tornar os espaços visíveis.

## Incluir código a partir de um ficheiro

O código é normalmente armazenado num ficheiro-fonte, por isso um comando que importe automaticamente código de um ficheiro é muito conveniente, como demonstrado no exemplo seguinte:

```latex
\documentclass{article}
\usepackage{minted}
\title{Importing files using minted}
\begin{document}
O código seguinte será importado diretamente de um ficheiro:

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

[Abra este exemplo no 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)

Este exemplo produz a seguinte saída:

![Usar minted para importar um ficheiro de código](/files/2f1e8924cb25708021470063830f4d4140a60286)

O comando `\inputminted{octave}{BitXorMatrix.m}` importa o código do ficheiro `BitXorMatrix.m`, o parâmetro `octave` diz ao LaTeX a linguagem de programação do código. Este comando pode receber dois parâmetros extra para importar apenas parte do ficheiro; por exemplo, para importar código da linha 2 à linha 12, o comando torna-se:

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

## Código de uma linha

Se precisar de inserir apenas uma linha de código, o comando `\mint`, cuja sintaxe é apresentada no exemplo seguinte, fará o truque.

```latex
A formatação de código de uma linha também funciona com \texttt{minted}. Por exemplo, um pequeno fragmento de HTML como este:
\mint{html}|<h2>Something <b>here</b></h2>|
\noindent pode ser formatado corretamente.
```

[Abra este exemplo no 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)

Este exemplo produz a seguinte saída:

![Exemplo de código de uma linha com minted](/files/fb348e7ebd3b6ac77aead77b5409808d1d48eba3)

O parâmetro entre chavetas define a linguagem de programação (`html` linguagem de marcação, neste caso) sendo o texto real a formatar delimitado pelo carácter '|' .

## Lexers personalizados

**(Tenha em atenção que, devido a alterações no `minted` desde 2023, a abordagem seguinte só funcionará no** [**TeX Live 2022 ou anterior**](/latex/overleaf-learn-latex-pt/base-de-conhecimento/148-using-the-overleaf-project-menu.md#tex-live-version)**.)**

Por predefinição, `minted` suporta apenas linguagens com lexers que já estejam instalados ou registados com `pygmentize`. Se escreveu um lexer personalizado, ou se quiser usar um lexer para uma linguagem que ainda não foi instalada no Overleaf, ainda pode usá-lo no seu próprio projeto Overleaf usando a abordagem mencionada [aqui](https://tex.stackexchange.com/questions/18083/how-to-add-custom-c-keywords-to-be-recognized-by-minted#comment930474_42392).

Suponha que definiu um lexer no ficheiro `nl-lexer.py`, contendo a classe `NetLogoLexer` para a linguagem NetLogo. Carregue `nl-lexer.py` para o seu projeto Overleaf e depois especifique `nl-lexer.py:NetLogoLexer` como o “nome da linguagem” ao usar `minted`. Por exemplo:

```latex
\begin{minted}{nl-lexer.py:NetLogoLexer -x}
   ... o seu código aqui ...
\end{minted}
```

[Aqui está](http://quantixed.org/2018/10/23/new-lexicon-how-to-add-a-custom-minted-lexer-in-overleaf/) outro exemplo para a linguagem ImageJ Macro.

## Cores e folhas de estilo

Os esquemas de cores usados para o destaque de código são guardados em folhas de estilo. Pode criar a sua própria ou usar uma já disponível na sua distribuição LaTeX. Veja o [guia de referência](#reference-guide) para uma lista de folhas de estilo incluídas em [O 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 #para se tornar a matriz de incidência
    VT = np.zeros((n*m,1), int)  #variável auxiliar

    #calcula a matriz xor bit a bit
    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}
```

[Abra este exemplo no 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)

Usando a `borland` folha de estilo produz a seguinte saída:

![Saída do pacote minted usando a folha de estilo borland](/files/0e208a563a8d5a5e93ad388be81664b273a04ae1)

A sintaxe para definir um estilo de coloração é simples, o comando `\usemintedstyle{borland}` usa o tema de cores `borland` para formatar o código-fonte. Pode encontrar mais esquemas de cores no [guia de referência](#reference-guide).

## Legendas, rótulos e a lista de listagens

Listagens de código formatadas com **minted** podem ser incluídas num elemento flutuante, tal como [figuras](/latex/overleaf-learn-latex-pt/mais-topicos/27-inserting-images.md#positioning) e [tabelas](/latex/overleaf-learn-latex-pt/figuras-e-tabelas/01-tables.md#positioning-tables). Podem ser atribuídas legendas e rótulos a listagens de código e, mais tarde, ser referenciadas e incluídas numa “Lista de listagens”.

```latex
\documentclass{article}
\usepackage{minted}
\title{Listing code examples}
\begin{document}
\begin{listing}[!ht]
\inputminted{octave}{BitXorMatrix.m}
\caption{Exemplo de ficheiro externo}
\label{listing:1}
\end{listing}

\begin{listing}[!ht]
\begin{minted}{c}
#include <stdio.h>
int main() {
   printf("Hello, World!"); /*printf() apresenta a string entre aspas*/
   return 0;
}
\end{minted}
\caption{Hello World em C}
\label{listing:2}
\end{listing}

\begin{listing}[!ht]
\begin{minted}{lua}
function fact (n)--define uma função fatorial
  if n == 0 then
    return 1
  else
    return n * fact(n-1)
  end
end

print("introduza um número:")
a = io.read("*number") -- lê um número
print(fact(a))
\end{minted}
\caption{Exemplo do manual Lua}
\label{listing:3}
\end{listing}
\noindent\texttt{minted} faz um bom trabalho na composição das listagens \ref{listing:1}, \ref{listing:2} e \ref{listing:3}.
\renewcommand\listoflistingscaption{Lista de códigos-fonte}
\listoflistings
\end{document}
```

[Abra este exemplo no 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)

A primeira página deste exemplo contém a seguinte saída:

![Exemplo de fragmentos de código de listagem](/files/ceb527df03fdd029ea27d0c8154ecb4831136bc3)

Para imprimir a lista com todos os elementos “listing”, use `\listoflistings`. No exemplo acima, o título predefinido `Lista de listagens` é alterado para `Lista de códigos-fonte` escrevendo

```latex
\renewcommand\listoflistingscaption{Lista de códigos-fonte}
\listoflistings % Agora componha a lista
```

A segunda página produzida pelo exemplo acima contém a seguinte listagem:

![Um exemplo de listagem de códigos-fonte](/files/1fd5e7e18bed32112bd09f3d5b7a25a06d003930)

## Guia de referência

**Estilos de cor para minted**

| nome     | saída                                                                 | nome     | saída                                                                  |
| -------- | --------------------------------------------------------------------- | -------- | ---------------------------------------------------------------------- |
| manni    | ![MintedStyles1.png](/files/115b28c16285289fcf3229eb7ae9b00f0b82db61) | fruity   | ![MintedStyles10.png](/files/a1c96428174696da3f78727981e327b9c39f11f7) |
| rrt      | ![MintedStyles2.png](/files/5a27a5186572ab35b055aa5e6652e6fe11b400d4) | autumn   | ![MintedStyles11.png](/files/79390d21e33c0fb99ab110d1df1b3ca492e070ce) |
| perldoc  | ![MintedStyles3.png](/files/e9c604cf4df862271582801258c79ec82fb38900) | bw       | ![MintedStyles12.png](/files/6097ce6759e5b3e6d6e333a0b4cb08cfaa02edf3) |
| borland  | ![MintedStyles4.png](/files/b46608ecac5b90eb72b8d9c038bbf6a35e1411cf) | emacs    | ![MintedStyles13.png](/files/2a2bdc20e7f2fe3ea1617c6c00721c7f880c0f17) |
| colorful | ![MintedStyles5.png](/files/1901a722cd6e672e97b2359afab85c35df7a847d) | vim      | ![MintedStyles14.png](/files/cc5ce36f2b47d4125880dddc41d83922dca62849) |
| murphy   | ![MintedStyles6.png](/files/d4cc19f5716b17859885aab3329bfe19aa8818fa) | pastie   | ![MintedStyles15.png](/files/69d854c274a3262378782562aeecbdb1a9a31f91) |
| vs       | ![MintedStyles7.png](/files/a9769345a2beb75d9f8ee0cb4d033e1c15f356c4) | friendly | ![MintedStyles16.png](/files/70239a6409e4741f4a92d533e4f9631212473ec4) |
| trac     | ![MintedStyles8.png](/files/f355b2e0f6ba3716722162883903199fb228199d) | native   | ![MintedStyles17.png](/files/8473229a53fe53f2d4bfe17d73552f208bb693d4) |
| tango    | ![MintedStyles9.png](/files/29eda54584a1f1e9b7a1c7fb7dc2a5a86ab7be52) | monokai  | ![MintedStyles18.png](/files/760cc64766ba89ed7c9ef495b61c14c849a54523) |

Alguns esquemas de cores precisam de um fundo escuro para serem legíveis.

**Principais linguagens de programação suportadas e ficheiros de configuração**

|          |            |             |           |
| -------- | ---------- | ----------- | --------- |
| 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      |
| logos    | lua        | mako        | mason     |
| matlab   | minid      | monkey      | moon      |
| mxml     | myghty     | mysql       | nasm      |
| newlisp  | newspeak   | numpy       | ocaml     |
| octave   | ooc        | perl        | php       |
| plpgsql  | postgresql | postscript  | pot       |
| prolog   | psql       | puppet      | python    |
| qml      | ragel      | bruto       | ruby      |
| rhtml    | sass       | scheme      | smalltalk |
| sql      | ssp        | tcl         | tea       |
| tex      | texto      | vala        | vgl       |
| vim      | xml        | xquery      | yaml      |

## Leitura adicional

Para mais informações, consulta:

* [Comprimentos em LaTeX](/latex/overleaf-learn-latex-pt/formatacao/01-lengths-in-latex.md)
* [Listagem de código](/latex/overleaf-learn-latex-pt/formatacao/11-code-listing.md)
* [Contadores](/latex/overleaf-learn-latex-pt/formatacao/10-counters.md)
* [Utilizar cores no LaTeX](/latex/overleaf-learn-latex-pt/formatacao/13-using-colors-in-latex.md)
* [Tamanhos, famílias e estilos de fonte](/latex/overleaf-learn-latex-pt/fontes/01-font-sizes-families-and-styles.md)
* [Tipos de letra](/latex/overleaf-learn-latex-pt/fontes/02-font-typefaces.md)
* [Gestão num grande projeto](/latex/overleaf-learn-latex-pt/estrutura-do-documento/07-management-in-a-large-project.md)
* [Projetos LaTeX com vários ficheiros](/latex/overleaf-learn-latex-pt/estrutura-do-documento/08-multi-file-latex-projects.md)
* [Índice](/latex/overleaf-learn-latex-pt/estrutura-do-documento/02-table-of-contents.md)
* [Documentos de uma face e de dupla face](/latex/overleaf-learn-latex-pt/formatacao/08-single-sided-and-double-sided-documents.md)
* [O **minted** documentação do pacote](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/overleaf-learn-latex-pt/formatacao/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.
