Verbatim

  1. Verbatim e verb
  2. Comandos lstlisting e lstinputlisting

Verbatim e verb

Você pode querer escrever marcação de LaTeX no seu próprio documento de LaTeX. Nesse caso, você precisará imprimir símbolos que não podem ser impressos diretamente pelo LaTeX, porque são símbolos especiais, como \, $ e _. Uma das soluções é escapar os símbolos, como já foi visto no tutorial de Símbolos especiais.

Outra solução é usar o ambiente verbatim:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

\begin{document}
    \begin{verbatim}
        \documentclass{article}
        \usepackage[utf8]{inputenc}
        \usepackage[T1]{fontenc}

        \begin{document}
            Olá, mundo!
        \end{document}
    \end{verbatim}
\end{document}

Imagine escrever o documento acima escapando os símbolos? Seria muito chato, não é? Usar o ambiente verbatim tem muitas vantagens:

  • Você não precisa ficar escapando os símbolos.
  • A marcação fica em uma fonte monoespaçada, que é ideal para marcação e para código.
  • A indentação, os espaços e as quebras de linhas que ficam dentro do ambiente são preservados.

Essas vantagens tornam o ambiente verbatim uma solução muito melhor do que escapar os símbolos para exibir código ou marcação. Também há o comando \verb, que é o equivalente inline do verbatim:

\verb|texto verbatim|

O uso desse comando é simples: basta colocar o texto verbatim entre dois separadores. No caso, a barra vertical foi usada como separador, mas poderia ser usado outro separador, como um sinal de adição, por exemplo. O mais usado é a barra vertical.

Você pode querer usar texto verbatim dentro de algum argumento. Vamos supor que você queira colocar texto verbatim no nome de uma seção:

\section{Nome da seção \verb|texto verbatim|}

Se você colocar esse comando em algum documento, verá vários erros de compilação que impedirão a geração do seu documento. A solução é usar o comando \cprotect, do pacote homônimo:

\usepackage{cprotect}
...

\cprotect\section{Nome da seção \verb|\texto verbatim|}

Comandos lstlisting e lstinputlisting

Apesar do ambiente verbatim ter algumas vantagens para exibir código ou marcação, o ambiente lstlisting é bem mais apropriado para esse fim. Para usá-lo, é necessário usar o pacote listings. Veja um exemplo de uso do lstlisting para exibir um código na linguagem de programação PHP:

\begin{lstlisting}[language=PHP]
    for ($i = 0; $i < 10; $i++) {
        echo $i;
    }
\end{lstlisting}

O ambiente lstlisting possui um argumento opcional que recebe uma lista de opções do tipo chave=valor separadas por vírgula. No caso, só foi usada a opção language. Ela informa a linguagem do que está dentro do ambiente. Várias linguagens são suportadas. Veja a lista completa.

No ambiente lstlisting há um syntax highlighting, mesmo que seja fraquinho, bem simplório, diferentemente do ambiente verbatim. Dependendo da linguagem com a qual você quer trabalhar, você pode encontrar algumas soluções na internet que podem ser aplicadas para melhorar esse syntax highlighting.

Também é possível importar código de um arquivo usando o comando \lstinputlisting passando o caminho do arquivo como argumento. Ele suporta as mesmas linguagens que o \lstlisting. Exemplo:

\lstinputlisting[language=PHP]{ParsingException.php}

Também é possível exibir o código de apenas algumas linhas de um arquivo, passando os argumentos firstline e lastline:

\lstinputlisting[language=PHP, firstline=10, lastline=20]{teste.php}