Wie füge ich einer Programmliste/einem Programmcode Zeilennummern hinzu?

Wie füge ich einer Programmliste/einem Programmcode Zeilennummern hinzu?

Wie kopiere ich Code in Latex, um ein Ergebnis zu erhalten, das so aussieht:

Bildbeschreibung hier eingeben

...Natürlich ohne die roten Balken. Ich weiß nicht, wie ich die Nummerierung auf der linken Seite hinbekomme, wenn ich LaTeX kompiliere. Wenn ich \verbatimnur verwende, bekomme ich den Code.

Aktualisieren:Es ist notwendig, den Code so einzufärben, wie er in Matlab erscheinen würde.

Antwort1

Für meine Masterarbeit habe ich viel Code in MatLab geschrieben. Um ihn "schön gedruckt" zu haben, habe ich dasselbe Paket verwendet, das @cmhughes erwähnt hat. Es sieht so aus (in der Präambel):

\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,
}

Wenn Sie dann Ihre Codedatei einbinden möchten, verwenden Sie einfach \lstinputlisting. Weiter mit dem Beispiel:

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

Das gefiel mir besonders gut, weil ich dadurch meinen Code in MatLab direkt im Ordner ändern konnte und ihn nicht in LaTeX aktualisieren musste, da ich direkt auf die Datei und nicht auf den Code an sich verwies.

Das Ergebnis wird ungefähr so ​​aussehen:

Codebeispiel mit <code>\usepackage{listings}</code> und Einrichten mit <code>\lstset</code>

Natürlich können Sie immer mit spielen, \lstsetum das zu bekommen, was Sie wollen, wie indie Dokumentation

Antwort2

Wenn Sie keine Codehervorhebung benötigen, fancyvrbreicht das Paket aus. Ich verwende nicht matlab, aber nehmen wir zu Demonstrationszwecken an, Sie haben eine Datei mit dem Namen yourfile.m. Dann erhalten Sie mit dem folgenden Code eine Nummerierung auf der linken Seite. VerbatimInput{yourfile.m}gibt Ihre Datei ein.

\documentclass[10pt]{article}

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

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

Eine weitere Möglichkeit ist dieminted. Es verwendet intern fancyvrbdie PygmentsBibliothek von pythonzur Syntaxhervorhebung. Versuchen Sie das folgende Beispiel und ersetzen Sie es yourfile.mdurch Ihre aktuelle Datei. Sie müssen mit -shell-escapeaktivierter Option kompilieren. Lesen Sie das Handbuch zur Installation der PygmentsBibliothek.

\documentclass[10pt]{article}

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

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

verwandte Informationen