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}

Verbatim

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.

Para que a indentação seja preservada, é necessário usar espaços ao invés de tabs. Você pode continuar usando tabs para indentar, desde que o seu editor consiga converter as tabs em espaços. Se você estiver usando o TeXstudio, e isso não estiver acontecendo, vá em Opções < Configurar TeXstudio.... Na aba Editor, marque a opção Substituir Tab por Espaços no Recuo.

Verb

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. 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:

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

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

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, ao contrário do ambiente verbatim, embora ele seja fraco e simplório. Dependendo da linguagem, você pode encontrar algumas soluções na internet que podem ser aplicadas para melhorar esse syntax highlighting.

O comando \lstinputlisting é usado para importar código de um arquivo. Ele suporta as mesmas linguagens que o \lstlisting e o caminho do arquivo é passado como argumento obrigatório:

\lstinputlisting[language=PHP]{caminho-do-arquivo.php}

Para exibir o código de apenas algumas linhas de um arquivo, passe as opções firstline e lastline no argumento opcional:

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