Package: pygments-portugol
Pygments_PortugolPygmentsé um excelente pacote em Python destinado à coloração de sintaxe (syntax highlighting), sendo possível utilizá-lo, inclusive, em documentos LaTeX. Este pacote fornece umlexerpara a linguagemPortugol Studio.InstalaçãoApós a instalação do Python 3, você provavelmente poderá executar o comando a seguir a fim de instalar o Pygments:$pipinstallpygmentsNote que$indica opromptdoshell, você não deve digitar isso.Algumas variações desse comando podem aparecer a depender da plataforma, por exemplo:$pip3installpygments
$python3-mpipinstallpygments
$python-mpipinstallpygmentsApós instalar com sucesso o Pygments, você pode instalar olexerpara Portugol Studio:$pipinstallpygments-portugolUtilizaçãoPara utilizar olexer, o procedimento é equivalente a qualquer outra linguagem suportada pelo Pygments. Utilizeportugolouportugolstudiocomo nome da linguagem. Por exemplo, o código em Python a seguir ilustra como ler um arquivocode.pore salvar em HTML no arquivoformatted.html.frompygmentsimporthighlightfrompygments.lexersimportget_lexer_by_namefrompygments.formattersimportHtmlFormatterwithopen("./code.por","r")asfl:code=fl.read()lexer=get_lexer_by_name("portugol",stripall=True)formatter=HtmlFormatter(linenos=True,noclasses=True)result=highlight(code,lexer,formatter)withopen("./formatted.html","w")asfl:fl.write(result)Clique aqui para ver o resultado.Utilização com LaTeXPara tipografar um código em LaTeX com o Pygments, pode-se utilizar o pacoteminted. O código a seguir é um exemplo. A fonte DejaVuSansMono foi utilizada apenas por questões estéticas. As duas linhas referentes à fonte podem ser removidas ou substituídas. Caso queira usar pdfLaTeX, remova-as.% !TeX program = xelatex\documentclass{article}\usepackage{fontspec}% remover caso esteja usando pdfLaTeX\usepackage{DejaVuSansMono}% remover caso esteja usando pdfLaTeX\setmonofont[Scale=MatchLowercase]{DejaVuSansMono}% remover caso esteja usando pdfLaTeX\usepackage{minted}% importa o pacote para que possamos usar\begin{document}O código a seguir ilustra um fatorial recursivo no Portugol Studio.\begin{minted}[autogobble, linenos]{portugol}programa{funcao inicio(){inteiro numero

            escreva("Digite um número: ")
            leia(numero)

            limpa()
            escreva("O fatorial de ", numero, " é: ", fatorial(numero), "\n")}// Função recursiva que calcula o fatorial do número passado

        funcao inteiro fatorial(inteiro numero){se (numero == 1 ou numero == 0){retorne 1}retorne numero * fatorial(numero - 1)}}\end{minted}\end{document}Resultado:Vejaeste tutorialse quiser ver outras possibilidades, como escolher cores diferentes ou importar de um arquivo externo.Utilização em LaTeX no OverleafCaso você tenha o costume de usar Overleaf, pode ter lido a seção anterior e pensado que é impossível instalar um pacote Python no Overleaf. Sim, é verdade. Felizmente, é possível utilizar umlexersem instalação obrigatória.Copie o arquivo dolexer(este) e salve como, por exemplo,PortugolStudioLexer.py.Coloque no mesmo diretório do seu arquivo.tex;Substitua o nome da linguagem porPortugolStudioLexer.py:PortugolStudioLexer -x.O código deve ser assim (veja o exemplo completo na seção anterior):% ...\begin{minted}[autogobble, linenos]{PortugolStudioLexer.py:PortugolStudioLexer -x}// seu código\end{minted}% ...Isto pode ser recomendado para projetos maiores, para reduzir a quantidade de dependências que outros colaboradores precisarão instalar (o mesmo vale para fontes personalizadas). Para projetos menores, entretanto, é mais prático instalar e apenas utilizar o nome da linguagem.ContribuiçãoCaso note algo de errado, fique à vontade para abrir umaissueou, ainda melhor, enviar o seu Pull Request.AutorDesenvolvido porHéliton Martins.