Como adicionar números de linha a uma listagem/código de programa?

Como adicionar números de linha a uma listagem/código de programa?

Como copio o código para o latex para obter um resultado parecido com este:

insira a descrição da imagem aqui

...Sem as barras vermelhas, claro. Não sei como obter a numeração do lado esquerdo ao compilar o LaTeX. Usar \verbatimapenas me dá o código.

Atualizar:É necessário ter o código colorido como apareceria no Matlab.

Responder1

Para minha tese de mestrado eu estava escrevendo muitos códigos em MatLab. Para deixar "bem impresso" usei a mesma embalagem que o @cmhughes mencionou. Fica assim (no preâmbulo):

\usepackage{listings} %For code in appendix
\lstset
{ %Formatting for code in appendix
    language=Matlab,
    basicstyle=\footnotesize,
    numbers=left,
    stepnumber=1,
    showstringspaces=false,
    tabsize=1,
    breaklines=true,
    breakatwhitespace=false,
}

Então, quando você quiser incluir seu arquivo de código, basta usar \lstinputlisting. Continuando com o exemplo:

\lstinputlisting[language=Matlab]{./Code/calc_error.m}

Eu particularmente adorei isso porque me permitiu alterar meu código no MatLab na própria pasta e não precisei atualizá-lo no LaTeX, pois estava apontando diretamente para o arquivo e não para o código em si.

O resultado será algo assim:

Exemplo de código usando <code>\usepackage{listings}</code> e configurando-o com <code>\lstset</code>

Claro, você sempre pode brincar \lstsetpara conseguir o que deseja, conforme explicado ema documentação

Responder2

Se você não precisar de destaque de código, o fancyvrbpacote servirá. Eu não uso matlab, mas para fins de demonstração, suponha que você tenha um arquivo chamado yourfile.m, então o código a seguir fornecerá a numeração do lado esquerdo. VerbatimInput{yourfile.m}insere seu arquivo.

\documentclass[10pt]{article}

\usepackage{fancyvrb}
\fvset{%
fontsize=\small,
numbers=left
}

\begin{document}
\VerbatimInput{yourfile.m}
\end{document}

Outra opção é ominted. Ele usa fancyvrbe usa internamente a Pygmentsbiblioteca de pythonpara realce de sintaxe. Experimente o exemplo a seguir, substituindo yourfile.mpelo seu arquivo real. Você tem que compilar com -shell-escapea opção habilitada. Leia o manual sobre a instalação da Pygmentsbiblioteca.

\documentclass[10pt]{article}

\usepackage{minted}
\newmintedfile{matlab}{
linenos=TRUE,
fontsize=\small,
}
\usemintedstyle{trac}

\begin{document}
\matlabfile{yourfile.m}
\end{document}

informação relacionada