Algoritmos no LaTeX em Português

LaTeX
LaTeX. Fonte: http://latex-project.org

Pacotes

Caso esteja se perguntando “como colocar algoritmos na minha monografia, dissertação, tese feita em LaTeX em português”? Calma que é simples! 😀

Existem alguns pacotes para facilitar a vida de quem precisa listar algoritmos no meio do texto ( como por exemplo: algorithm e algoritmic). No entanto, geralmente os comandos estão em inglês.
Para utilizar os comandos em  português, recomendo incluir o pacote Algorithm2e.sty ao seu documento LaTeX (pode clicar aqui para baixar e mande salvar na mesma pasta que está seu texto, se quiser uma solução rápida).

Pode incluir desse jeito lá no início do documento passando entre as opções a palavra “portugues” (sem acento!):

\usepackage[portugues,ruled,lined]{algorithm2e}

Obs: inclusão de pacotes é feita depois da definição da classe (\documentclass[opcoes]{nomedaclasse} e antes do início do documento \begin{document})

Inclua também o pacote algorithmic citado acima que é utilizado junto ao algorithm2e.

\usepackage{algorithmic}

Feito isso, no local que quiser incluir a listagem com o algoritmo, escreva o código que quiser (existem comandos pré-definidos olhe mais abaixo nesse post) dentro do ambiente “algorithm” usando comandos já em português graças ao algorithm2e.

Segue um exemplo:

\begin{algorithm}[H]
\Entrada{o proprio texto}
\Saida{como escrever algoritmos com \LaTeX2e }
\Inicio{
inicializa\c{c}\~ao\;
\Repita{fim do texto}{
leia o atual\;
\uIf{entendeu}{
vá para o próximo\;
próximo se torna o atual\;}
\Else{volte ao início da seção\;}
}
}
\caption{Como escrever algoritmos no \LaTeX2e}
\end{algorithm}

O código acima gera a seguinte listagem de algoritmo no documento:

Algoritmo

Na versão que baixei do arquivo Algorithm2e.sty  tive um problema justamente com o trecho que define os nomes em português. Parece que os parâmetros estavam desatualizados. Mas só tive que substituir os parâmetros e funcionou perfeitamente!

Abra o arquivo Algorithm2e.sty e procure por “declareoption” (está na parte inicial do pacote).

Basta substituir o texto abaixo onde tiver a opção “\DeclareOption{portugues}”:


\DeclareOption{portugues}{%
 \renewcommand{\listalgorithmcfname}{Lista de Algoritmos}%
 \renewcommand{\algorithmcfname}{Algoritmo}%
 \renewcommand{\algocf@typo}{}%
 \renewcommand{\@algocf@procname}{Procedimento}
 \renewcommand{\@algocf@funcname}{Fun\c{c}\~{a}o}
 }

Substituindo esse trecho no arquivo Algorithm2e.sty garanto que resolve!

Comandos

Para saber quais são os comandos possíveis basta olhar no arquivo algorithm2e.sty mas se não tiver tanta intimidade com código LaTeX, vou dar uma colher de chá. Os comandos em português que podem ser utilizados para montar seu algoritmo são:

  • \Inicio
  • \Entrada
  • \Saida
  • \Dados
  • \Resultado
  • \Ate
  • \Retorna
  • \Repita

Agora é só escrever seus próprios algoritmos!

Qualquer dúvida ou sugestão deixe um comentário!

ATENÇÃO: Existem comandos atualizados nos comentários abaixo! Muito obrigada pelas colaborações!

Referências (em inglês):

O que é o LaTeXhttp://latex-project.org/intro.html

Blog bem completo com dicas sobre LaTeX: http://texblog.org/

Link para Algorithm2e.sty: http://tug.ctan.org/tex-archive/macros/latex/contrib/algorithm2e/tex/algorithm2e.sty

Sempre a wikipedia! http://en.wikibooks.org/wiki/LaTeX/Algorithms_and_Pseudocode

Mais exemplos: http://www.math-linux.com/latex-26/faq/latex-faq/How-to-write-algorithm-and

19 comentários em “Algoritmos no LaTeX em Português”

  1. Olá amigo, obrigado pelo seu post. Uma correção, a opção correta é “portuguese” e não “portugues” como aparece no texto em \usepackage[portugues,ruled,lined]{algorithm2e}.
    Para tanto, troque por \usepackage[portuguese,ruled,lined]{algorithm2e}

    Curtir

  2. Já descobri a referencia também… alterar “caption” para “\caption{Como escrever algoritmos no \LaTeX2e\label{alg1}}” e referenciar como “Veja o Algoritmo~\ref{alg1}”…

    Curtido por 1 pessoa

  3. Se trocar o “bloco do \uIf (If-Else)” –que começa na linha 8 do teu algoritmo — por
    \eSe{entendeu}{
    vá para o próximo\;
    próximo se torna o atual\;}
    {volte ao início da seção\;}
    o algoritmo ficará totalmente em português 🙂

    Curtido por 1 pessoa

    1. Olá Gustavo, obrigada pela contribuição! Acredito que devo ter uma versão antiga do algorithm2e.sty, que não tem essa opção de usar “portuguese”. Mas, com certeza essa informação vai ser útil pra alguém, ou pra mim mesma no futuro! (Um dos motivos desse blog!)
      Continue participando!

      Curtir

Deixe esse post ainda mais útil! Escreva algo aqui.