Inserindo Códigos Fonte

Origem: Tex-Br, a enciclopédia livre.

Conteúdo

Inserir Códigos Fonte

Dica especial para os programadores

Quando estamos escrevendo artigos, livros, apostilas, etc de programação devemos colocar os códigos de exemplos no documento.

Como é de se esperar o LaTeX possui recursos fantásticos para facilitar nossa vida.

Este exemplo insere códigos e cria Lista de Códigos.

Modificado da apostila já conhecida por todos: LaTeX-demo

No preâmbulo, antes de \begin{document}:
\usepackage{float}      
\usepackage{fancyvrb}
  • Ainda no preâmbulo, antes de \begin{document}:
%===== Códigos Fonte =====
\newenvironment{codeverbatim}{\VerbatimEnvironment \small
   \begin{Verbatim}[xleftmargin=20mm]}
   {\end{Verbatim}}
%=======
\floatstyle{plain}  % tipos: plain, boxed, ruled
\newfloat{codigo}{tbp}{lop}[section]  % numera os captions com  número de seção.
\floatname{codigo}{Código}
% nome para ser usado no sumário
\newcommand{\listofcodename}{Lista de Códigos}
%=========================
Dentro de \begin{document}:

Esta linha deve ser colocada junto a linha que você utiliza para exibir Lista de Tabelas e Lista de Figuras, para que apareça corretamente no Sumário:

\addcontentsline{toc}{chapter}{\listofcodename}
\listof{codigo}{\listofcodename}  % Lista de Códigos 
Salvando o trecho de código:

O melhor desta ferramenta é que não se faz necessário a cópia de seu código para o arquivo .tex, basta mostrar o caminho onde seu arquivo (.cpp, .pas, .bas .m,...) está que o LaTeX coloca pra você no documento. Desde que os códigos sejam em formato Texto, tudo funciona perfeitamente.

Uma dica do que faço é copiar o trecho de código para um arquivo Texto, por exemplo para inserir o código c++ abaixo, basta copiar este trecho e salva-lo por exemplo como meu_codigo.cpp.

char * Set_info(int s[])
{
  char * aux = new char[255];
  int i=0;
  aux[i]='\0';
  while (i< 8)
  {
     if (s[i] != 0) StrCat(aux,f_Chr(s[i]));
        else {
            StrCat(aux,"\0");
        }
     i++;
  }
 return aux;
} 
Utilizando a ferramenta:

Para utilizar a ferramenta basta proceder como se segue:

\renewcommand{\baselinestretch}{0.5}  % distância entre linhas
\begin{codigo}[htb]
   \tiny  % tamanho da fonte
   \begin{boxit}  % coloca o código dentro de um Box
      \vspace{2mm}
      \VerbatimInput[xleftmargin=8mm,numbers=left,obeytabs=true]{meu_codigo.cpp}
   \end{boxit}
   \caption{\it Estou colocando um código C++ no meu texto }
   \label{code:meu_codigo}
\end{codigo}


--Elvio 11:51, 18 Jul 2005 (BRT)

Inserir Códigos Fonte Usando o Pacote Listings

O pacote listings fornece maneiras muito elegantes de inserir código fonte. Entre outras funções, ele pode numerar as linhas do código, salientar palavras chaves da linguagem, quebrar páginas, usar caracteres acentuados, mostrar espaços nos literais (strings) e colocar bordas (frames) no fonte.

É possível inserir o código fonte diretamente do arquivo, sem a necessidade de reescrevê-lo.


No preâmbulo, antes de \begin{document}:

\usepackage{listings}

O pacote listings tem opções que podem ser definidas globalmente, no preâmbulo, através de \lstset{opções}.

\lstset{numbers=left,
stepnumber=5,
firstnumber=1,
numberstyle=\tiny,
extendedchars=true,
breaklines=true,
frame=tb,
basicstyle=\footnotesize,
stringstyle=\ttfamily,
showstringspaces=false
}

No exemplo acima, a numeração está a esquerda de 5 em 5 linhas, iniciando na linha 1, com fontes pequenas (dos números), caracteres acentuados, quebra de linha automática, delimitadores encima(t=top) e embaixo(b=bottom), estilo da fonte footnotesize, estilo dos literais ttfamily e não mostra espaço entre os literais.

  • Ainda no preâmbulo, antes de \begin{document}:

Redefinição dos nomes.

\renewcommand{\lstlistingname}{Listagem}
\renewcommand{\lstlistlistingname}{Lista de Listagens}


Dentro de \begin{document}:


Lista de Listagens

  • Análogo à Lista de Figuras ou Tabelas, a Lista de Listagens é feita com o comando:
\lstlistoflistings

Inclusão do Código Fonte

  • Através de um arquivo fonte
\lstinputlisting[language=C, label=hello, caption={``Hello World na linguagem C}]{hello.c}
  • Diretamente no TeX

--Alexandre 12:11, 17 Ago 2005 (BRT)

Inserir Algoritmos Usando o Pacote Algorithm

Outra alternativa é o uso dos pacotes algorithm

  • Preâmbulo
\usepackage{algorithm}
\usepackage{algorithmic}
  • Renomeia os títulos
\renewcommand{\ALG@name}{Algoritmo}
\renewcommand{\listalgorithmname}{Lista de Algoritmos}
  • No documento
\begin{algorithm}
\caption{Só um exemplo}
\begin{algorithmic}
\IF{condição}
\STATE{faz alguma coisa}\COMMENT{\textit{comentário}}
\STATE{var $\Leftarrow$ x}
\ELSE
\STATE{faz outra coisa}
\ENDIF
\end{algorithmic}
\end{algorithm}


Realmente o LaTeX é um dos sistemas mais poderosos que existe!!!

Personal tools