如何為程式列表/程式碼新增行號?

如何為程式列表/程式碼新增行號?

如何將程式碼複製到乳膠中以獲得如下所示的結果:

在此輸入影像描述

……當然沒有紅條。我不知道編譯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並使用了 for 語法高亮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}

相關內容