我的论文导师要求我把所有的 MATLAB 代码都放在 PDF 中。我的代码分散在十几个.m
文件中,都放在同一个文件夹中。
我知道我可以使用该包来包含代码matlab-prettifier
,我这样做如下:
\lstinputlisting[style=Matlab-editor]{codice/ICCplot.m}
本质上,我想做以下事情:
for \filename in codice/*.m
\section{\filename}
\lstinputlisting[style=Matlab-editor]{codice/\filename.m}
end for
答案1
我将使用 Makefile 来执行此操作,一个非常简单的方法是:
TEX=pdflatex
NAME=riccardos_thesis
MFILES=$(wildcard codice/*.m)
all: $(NAME).pdf
$(NAME).pdf: $(NAME).tex $(MFILES)
$(TEX) -jobname="$(NAME)" "\def\RiccardosMFiles{$(MFILES)}\input{$(NAME).tex}"
与此主 TeX 文件一起:
\documentclass[]{article}
\usepackage{matlab-prettifier}
\ExplSyntaxOn
\NewDocumentCommand\showallmfiles{}
{
\exp_args:NNno \seq_set_split:Nnn \l_tmpa_seq { codice/ } \RiccardosMFiles
\seq_pop_left:NN \l_tmpa_seq \l_tmpa_tl
\seq_map_inline:Nn \l_tmpa_seq
{
\section{##1}
\lstinputlisting[style=Matlab-editor]{codice/##1}
}
}
\ExplSyntaxOff
\begin{document}
\showallmfiles
\end{document}