Eu preciso imprimir código-fonte com realce de sintaxe. Quais pacotes existem para dar suporte a isso?

perguntou 18 Jul '18, 17:30

felipe's gravatar image

felipe
4301
accept rate: 0%


Listagens de código ‘bonitas’ são às vezes consideradas desejáveis pelo programador “comum”, mas elas têm um lugar importante na composição de dissertações de estudantes de ciência da computação e outros que devem escrever programas. Simples listagens verbatim e programas são comumente úteis também.

Listagens verbatim são tratadas em outro lugar, assim como o problema de composição tipográfica de especificações de algoritmo.

O pacote listings é amplamente considerado como a melhor aposta para saída formatada (ele é capaz de analisar a fonte do programa, dentro do próprio pacote), mas existem vários pacotes bem estabelecidos que dependem de um pré-compilador de algum tipo. Você pode usar o listings para compor os pedaços que você insere em seu código-fonte:

\usepackage{listings}
\lstset{language=C}
...
\begin{document}
\begin{lstlisting}
#include

int main(int argc, char ** argv)
{
  printf("Hello world!\n");
  return 0;
}
\end{lstlisting}
\end{document}
Ou você pode usá-lo para tipografar arquivos inteiros:
\usepackage{listings}
\lstset{language=C}
...
\begin{document}
\lstinputlisting{main.c}
\end{document}

Estes exemplos muito simples podem ser decorados de muitas maneiras diferentes e, é claro, existem outras linguagens no vocabulário do pacote além da C… Durante muito tempo, o listings foi considerado como o suprassumo em matéria de listas no (La)TeX. Nos últimos anos, alternativas viáveis apareceram. O Highlight é atraente se você precisar de mais de um formato de saída para seu programa: assim como a saída em (La)TeX, o highlight produz representações da listagem do seu programa em (X)HTML, RTF e XSL-FO O manual conduz você através dos detalhes da definição de um arquivo de parâmetros para uma “nov” linguagem, bem como dos detalhes de apresentação de uma linguagem.

O pacote minted é outra alternativa que oferece os meios para criar definições de nova linguagem. Ele requer que código seja processado usando um script (python) externo, o Pygments. O Pygments precisa de um “analisador léxico” que conheça a linguagem que você quer processar; muitos destes estão disponíveis para as linguagens mais comumente usados, e existem instruções sobre como fazer o seu no site do Pygments site

O uso do minted pode ser tão simples quanto

\begin{minted}{‹language›}
…
\end{minted}

que processa o código do programa dinamicamente, na hora da digitação — embora tal uso provavelmente exija que o processamento separado esteja habilitado. Por um caminho bem diferente, o pacote showexpl suporta a digitação de código (La)TeX e sua saída tipografada, em ‘painéis’ paralelos. (Isso poderia dar suporte para textos de instrução de (La)TeX , ou para artigos em publicações do grupo de usuários de TeX.) O pacote usa o listings para seu painel de (La)TeX, e compõe o resultado em uma caixa simples para o outro painel.

Sistemas estabelecidos mais antigamente, e muito menos poderosos, incluem:

  • O sistema lgrind é um pré-compilador bem estabelecido, com todas as facilidades necessárias e um amplo repertório de linguagens; é derivado do tgrind, estabelecido há mais tempo ainda, cuja saída é baseada no Plain TeX.
  • O sistema tiny_c2l é ligeiramente mais recente: os usuários são, mais uma vez, encorajados a gerar seus próprios arquivos de drivers para linguagens com os quais ele não lida, mas seu nome “tiny” sugere corretamente que ele não é um sistema particularmente elaborado.
  • O sistema C++2LaTeX vem com fortes recomendações para utilização com C e C++. Um sistema extremamente simples é o c2latex, no qual você escreve fonte LaTeX nos comentários de seu programa C. O programa, então, converte o seu programa em um documento LaTeX para processamento. O programa alega (implicitamente) ser “autodocumentado”.

  • listings

  • minted

  • showexpl

https://texfaq.org/FAQ-codelist

link

respondeu 18 Jul '18, 17:39

stefan's gravatar image

stefan ♦♦
614
accept rate: 0%

edited 18 Jul '18, 17:39

Sua resposta
Ligar/desligar pré-visualização

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **negrito** or __negrito__
  • link:[texto](http://url.com/ "título")
  • imagem?![alt texto](/path/img.jpg "título")
  • lista numerada: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • comandos HTML também podem ser usados

Palavras-chave:

×1
×1
×1

Questão feita: 18 Jul '18, 17:30

Vista: 895 vezes

Última atualização: 18 Jul '18, 17:39

Questões relacionadas

powered by Bitnami OSQA