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:
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 LaTeX? http://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
Muito obrigado!
CurtirCurtido por 1 pessoa
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}
CurtirCurtir
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}”…
CurtirCurtido por 1 pessoa
Ok, já descobri…. trocar “\usepackage[portugues,ruled,lined]{algorithm2e}” por
“\usepackage[portugues,ruled]{algorithm2e}”
CurtirCurtido por 1 pessoa
Olá Angilberto, acabei demorando para acessar o blog! Obrigada pelo comentário e por ter postado a solução que encontrou!
CurtirCurtir
Ah, e como faço, no texto, para referenciar o algortimo?
CurtirCurtido por 1 pessoa
Funcionou bem, obrigado. Mas apareceram barras verticais delimitando os blocos… como faço para remove-las?
CurtirCurtido por 1 pessoa
Me ajudou bastante, todas as dicas. Muito obrigada!
CurtirCurtido por 1 pessoa
Que ótimo! Obrigada pelo comentário!
CurtirCurtir
O algorithmic, em 04/01/2015, não foi encontrado. Havia o pacote algorithmicx, que deve ser uma atualização do pacote anterior.
CurtirCurtido por 1 pessoa
Obrigada pelo comentário! Preciso mesmo atualizar esse post!
CurtirCurtir
[…] Pseudocódigo em português […]
CurtirCurtido por 1 pessoa
Olá. Há comandos atualizados:
\Se
\SenaoSe
\Senao
\Selec
\Caso
\Outro
\Para
\ParaPar
\ParaCada
\ParaTodo
\Enqto
CurtirCurtido por 1 pessoa
Olá Renan, muito obrigada pelo comentário! Preciso atualizar esse post pois já tem um tempo que escrevi.
CurtirCurtir
[…] Dou preferência ao português pra facilitar a vida dos colegas que falam português. Sim, tenho acessos de Portugal e outros países que falam português o que acho o máximo! Muito obrigada pelos acessos! 🙂 No momento o post que tem mais acessos de forma geral é o Algoritmos no LaTeX em português 🙂 […]
CurtirCurtir
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 🙂
CurtirCurtido por 1 pessoa
Olá Cassimiro,
Só vi depois que deixei o “if” no meio do algoritmo! Tenho que atualizar esse post!
Obrigada pela colaboração!
Abraços
CurtirCurtir
Uma alternativa, para não alterar o “Algorithm2e.sty”, é adicionar um “e” em “portugues”
\usepackage[portuguese,ruled,lined]{algorithm2e}
CurtirCurtido por 2 pessoas
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!
CurtirCurtir