Listagens de código em LaTeX
Coloque o código em um ambiente verbatim, lstlisting ou minted, ou use \verb|...| no meio do texto; o Scissor LaTeX o compõe em fonte monoespaçada exatamente como foi digitado e colore a sintaxe quando você indica a linguagem.
verbatim
Dentro de verbatim, nada é interpretado: barras invertidas, chaves, $ e % são impressos como estão, e quebras de linha e espaços são mantidos. É o jeito mais simples de mostrar código ou a saída de um terminal.
Um bloco verbatim
\begin{verbatim}
for i in range(44):
print(i) # $ and \textbf stay as typed
\end{verbatim}Código no meio do texto: \verb
\verb mostra um trecho curto de código dentro de uma frase. O caractere logo depois de \verb é o delimitador; escolha um que não esteja no código, como | ou +.
Código no texto com \verb e \texttt
Call \verb|total(xs)| to add the list, or type \verb+x_1 = 44+.
For plain words in a monospaced font, \texttt{main.tex} is enough.\texttt{...} só muda a fonte: caracteres especiais como _ e % ainda precisam ser escapados ali, enquanto \verb os aceita como estão.
listings: lstlisting com uma linguagem
O pacote listings oferece o lstlisting. Com language=... o código ganha cores de sintaxe.
lstlisting com language=Python
\begin{lstlisting}[language=Python]
def total(xs):
"""Add up the numbers in xs."""
return sum(xs)
print(total([40, 4])) # 44
\end{lstlisting}\lstinline|code| é a forma para o meio do texto, como \verb.
minted
O minted recebe a linguagem como argumento. Em uma instalação do TeX ele precisa de Python e da opção -shell-escape; no Scissor LaTeX funciona sem nenhum dos dois.
minted com uma linguagem
\begin{minted}{rust}
fn main() {
let answer = 40 + 4;
println!("{}", answer);
}
\end{minted}
Inline: \mintinline{rust}{let x = 44;}O que é lido
| Comando | No Scissor LaTeX | Observações |
|---|---|---|
verbatim, verbatim* | Funciona | |
\verb, \verb* | Funciona | |
lstlisting | Em parte | language= é lido; todas as outras opções (numbers, caption, frame, basicstyle, firstline ...) são ignoradas. |
\lstinline | Funciona | Sem cores de sintaxe no meio do texto. |
\lstset{...} | Ignorado | Uma linguagem definida aqui não é usada; indique language= em cada listagem. |
minted | Em parte | A linguagem é lida; opções como linenos e frame são ignoradas. |
\mintinline{lang}{code} | Funciona | Sem cores de sintaxe no meio do texto. |
Verbatim, BVerbatim (fancyvrb) | Em parte | Mostrados como verbatim; as opções são ignoradas. |
\lstinputlisting{file}, \inputminted{lang}{file} | Não suportado | Ignorados com uma mensagem; cole o código no documento. |
\lstnewenvironment, \newminted | Não suportado |
Há cores de sintaxe para as linguagens mais comuns, entre elas Python, C, C++, Java, JavaScript, TypeScript, Rust, Go, Ruby, R, Julia, MATLAB, SQL, Bash, HTML, CSS, JSON, YAML, TeX e LaTeX. Os nomes das linguagens não diferenciam maiúsculas de minúsculas, então Python e python são a mesma coisa. Um nome que não é reconhecido dá código monoespaçado simples.
Código de um arquivo
\lstinputlisting e \inputminted leem código de outro arquivo em uma instalação do TeX. O Scissor LaTeX os ignora e avisa na aba Problemas:
\lstinputlisting é ignorado
The script below is not shown:
\lstinputlisting[language=Python]{scripts/total.py}
Paste the code into an lstlisting environment instead.Aba Problemas: 1 included file is not part of this conversion
O que muda em relação a uma instalação do TeX
Veja listings e minted para as páginas dos pacotes. Os manuais completos estão no CTAN: listings, minted e fancyvrb.
Perguntas e respostas
Como eu adiciono um bloco de código em LaTeX?
Coloque o código entre \begin{verbatim} ... \end{verbatim}, ou em lstlisting com [language=Python] para ter cores de sintaxe.
O minted funciona sem shell escape?
No Scissor LaTeX, sim: os ambientes minted são coloridos sem Python nem -shell-escape. Em uma instalação do TeX o minted continua precisando dos dois.
Por que os números de linha da minha listagem não aparecem?
O Scissor LaTeX ignora numbers=left e as outras opções de layout do listings. Só a linguagem é lida.
Cada exemplo desta página é composto pelo Scissor LaTeX quando o site é gerado. Última atualização: 2026-11-07.