
如何將程式碼複製到乳膠中以獲得如下所示的結果:
……當然沒有紅條。我不知道編譯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 中更新它,因為我直接指向文件而不是程式碼本身。
結果將是這樣的:
當然,您可以隨時玩耍\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}