listings no Scissor LaTeX
O pacote listings funciona em parte no Scissor LaTeX: o lstlisting mantém o código exatamente como digitado e o colore quando você dá language= no ambiente, e \lstinline funciona; \lstset, números de linha, molduras, legendas e rótulos são ignorados, e \lstinputlisting é pulado.
O que o pacote faz
O listings compõe código-fonte. O ambiente lstlisting mantém quebras de linha e espaços e, com language=Python (ou C, Java, SQL ...), compõe palavras-chave, comentários e strings em estilos diferentes. Opções acrescentam números de linha, molduras, legendas e cores, por listagem ou para o documento inteiro com \lstset. O \lstinline é a forma em linha, e o \lstinputlisting lê o código de um arquivo.
O que funciona aqui
| Recurso | No Scissor LaTeX | Observações |
|---|---|---|
\begin{lstlisting} ... \end{lstlisting} | Funciona | Monoespaçado, exatamente como digitado. |
[language=Python] no ambiente | Funciona | Cores de sintaxe de um esquema fixo. |
[language={[Sharp]C}] e outros dialetos | Funciona | O dialeto entre colchetes é lido junto com o nome. |
\lstinline|code|, \lstinline{code} | Funciona | Monoespaçado, sem cores. |
numbers=left, frame=single, basicstyle, keywordstyle, backgroundcolor | Ignorado | Ignorados sem mensagem. |
caption=, label= | Ignorado | Nenhuma legenda é impressa, e um \ref ao rótulo mostra "??". |
\lstset{...}, \lstdefinestyle, style= | Ignorado | Ignorados, inclusive um language= definido ali. |
\lstinputlisting{file} | Não suportado | Pulado com uma mensagem. |
\lstlistoflistings, \lstnewenvironment | Não suportado | Pulados com uma mensagem. |
Os nomes de linguagem não diferenciam maiúsculas de minúsculas. Há cores para linguagens comuns como Python, C, C++, C#, Java, JavaScript, Rust, Go, R, MATLAB, SQL, Bash, HTML e TeX. Um nome não reconhecido, como Fortran, dá código monoespaçado simples, sem mensagem.
Exemplos
Indique a linguagem em cada listagem:
lstlisting com language=Python
\begin{lstlisting}[language=Python]
def mean(values):
# average of a list of numbers
return sum(values) / len(values)
print(mean([40, 44, 48]))
\end{lstlisting}Uma linguagem definida com \lstset não é usada, então esta listagem fica sem cores. Opções de layout como numbers e frame também são ignoradas:
\lstset é ignorado
\documentclass{article}
\usepackage{listings}
\lstset{language=SQL, numbers=left, frame=single}
\begin{document}
\begin{lstlisting}
SELECT name FROM staff WHERE id = 44;
\end{lstlisting}
\begin{lstlisting}[language=SQL]
SELECT name FROM staff WHERE id = 44;
\end{lstlisting}
\end{document}Código em linha com \lstinline aceita qualquer delimitador, como o \verb:
\lstinline em uma frase
The loop \lstinline|for i in range(44):| runs 44 times, and
\lstinline{total += i} adds up the numbers.Uma listagem com legenda dentro de uma figura
\begin{figure}[h]
\begin{lstlisting}[language=Python]
print(sum(range(44)))
\end{lstlisting}
\caption{Adding the numbers below 44}
\label{lst:sum}
\end{figure}
The code in Listing~\ref{lst:sum} prints 946.Compatibilidade
- De uma instalação do TeX para cá: o código de cada
lstlistingé mostrado. Mova olanguage=do\lstsetpara cada listagem para ter cores, e cole no documento o código dos arquivos de\lstinputlisting. - Daqui para uma instalação do TeX: os documentos compilam lá sem mudanças, e suas opções passam a valer.
O manual completo está no CTAN: ctan.org/pkg/listings. Veja também Listagens de código em LaTeX e minted.
Perguntas e respostas
Por que minhas listagens não têm cores?
Provavelmente a linguagem está definida com \lstset, que é ignorado aqui. Escreva [language=Python] (ou a sua linguagem) depois de \begin{lstlisting}.
Posso mostrar números de linha?
Ainda não. O numbers=left é aceito e ignorado.
Cada exemplo desta página é composto pelo Scissor LaTeX quando o site é gerado. Última atualização: 2026-11-07.