有没有办法在通过 \lstinputlisting 导入 matlab 代码时忽略空行

有没有办法在通过 \lstinputlisting 导入 matlab 代码时忽略空行

我使用 mcode latex 包这里

我用:

\lstinputlisting{G:/PROJECT_and_SEMINARS/sms/v.1.39.a.1/sms.m}[caption={Source code of program: SMS. Version:1.39.a.1}][firstnumber = 1] 

命令导入 matlab 文件。这将导入并向我提供源文件中的代码。但是,我的问题是是否可以在 mcode.sty 中进行任何设置,以便删除 matlab 源代码中的空行。!!这个问题的解决方案将非常有帮助

% LATEX 文档代码:

\documentclass[08pt, a4paper, twoside]{Thesis}
\usepackage{framed}
\begin{document}

\begin{framed}
\lstinputlisting{.../sms.m}[caption={Source code of program: SMS. Version:1.39.a.1}]   [firstnumber = 1]
\end{framed}

\end{document}

MATLAB 代码:

% SMS.V.1.39_a:start date Sept.01.2013

%<><><><><><><><><><><><><><><><><><>
smc2()


% smc3()

% sfea1d()

% sfea2()
%<><><><><><><><><><><><><><><><><><>

% IMPROVEMENT TYPE ABBREAVIATION
% VM:VARIABLE MANAGEMENT  BR:BUG REMOVAL          NF:NEW FUNCTION               
% FE:FUNCTION EDIT        NC:NEW CAPABILITY       EH:ERROR HANDLING
% FF:FILE & FOLDER        SO:SPEED OPTIMIZATION   RD:RESULT DISPLAY
% FR:FUNCTION RENAME      MM:MEMORY MANAGEMENT
%<><><><><><><><><><><><><><><><><><>

答案1

看看这是否适合你:

\documentclass{article}
\usepackage{listings}
\makeatletter
\lst@AddToHook{OnEmptyLine}{\vspace{\dimexpr-\baselineskip+\smallskipamount}}
\makeatother
\usepackage{framed}
\begin{document}

\begin{framed}
\lstinputlisting[emptylines=1,caption={Source code of program: SMS. Version:1.39.a.1}]
       {my_matlab_code.m}
\end{framed}

\end{document}

Mathematica graphics

参考:Ulrike Fischer 文章这里

相关内容