プログラムリスト/コードに行番号を追加するにはどうすればいいですか?

プログラムリスト/コードに行番号を追加するにはどうすればいいですか?

次のような結果を得るには、どうすればコードを 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}はファイルを入力します。

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

関連情報