Как добавить номера строк в листинг/код программы?

Как добавить номера строк в листинг/код программы?

Как скопировать код в latex, чтобы получить результат, который выглядит следующим образом:

введите описание изображения здесь

...Без красных полос, конечно. Я не знаю, как получить нумерацию слева, когда я компилирую LaTeX. Использование \verbatimтолько дает мне код.

Обновлять:Необходимо раскрасить код так, как он будет выглядеть в Matlab.

решение1

Для своей магистерской диссертации я писал много кода в MatLab. Чтобы он был "красиво напечатан", я использовал тот же пакет, о котором упоминал @cmhughes. Выглядит это так (в преамбуле):

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

Затем, когда вы захотите включить свой файл кода, просто используйте \lstinputlisting. Продолжая пример:

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

Мне это особенно понравилось, потому что это позволило мне изменять мой код в MatLab в самой папке, и мне не пришлось обновлять его в LaTeX, поскольку я указывал непосредственно на файл, а не на код как таковой.

Результат будет примерно таким:

Пример кода с использованием <code>\usepackage{listings}</code> и его настройка с помощью <code>\lstset</code>

Конечно, вы всегда можете поиграть с \lstsetтем, чтобы получить желаемое, как описано вдокументация

решение2

Если вам не нужна подсветка кода, то fancyvrbподойдет пакет. Я не использую matlab, но в целях демонстрации предположим, что у вас есть файл с именем yourfile.m, тогда следующий код даст вам левостороннюю нумерацию. VerbatimInput{yourfile.m}inputs ваш файл.

\documentclass[10pt]{article}

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

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

Другой вариант -minted. Он внутренне использует fancyvrbи использует Pygmentsбиблиотеку pythonдля подсветки синтаксиса. Попробуйте следующий пример, заменив yourfile.mвашим реальным файлом. Вам нужно скомпилировать с -shell-escapeвключенной опцией. Прочитайте руководство по установке библиотеки Pygments.

\documentclass[10pt]{article}

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

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

Связанный контент