使用 lstlisting 格式化 Matlab 文件

使用 lstlisting 格式化 Matlab 文件

我包含了一个 Matlab 文件,它运行良好。颜色发生了变化,看起来很漂亮。突然,Latex 不会改变代码的颜色,除了背景颜色。我的代码有问题吗?或者包含的包是否可能扰乱了代码?非常感谢您的回答!

\documentclass[12pt, xcolor=dvipsnames]{scrartcl}


\usepackage{listings}
\usepackage[dvipsnames]{xcolor}

\definecolor{codegreen}{rgb}{0,0.6,0}
\definecolor{codegray}{rgb}{0.5,0.5,0.5}
\definecolor{codepurple}{rgb}{0.58,0,0.82}
\definecolor{mygreen}{RGB}{28,172,0} 
\definecolor{mylilas}{RGB}{170,55,241}
\definecolor{backcolour}{rgb}{0.95,0.95,0.92}

\begin{document}

\lstdefinestyle{mystyle}{
    backgroundcolor=\color{backcolour},   
    commentstyle=\color{codegreen},
    keywordstyle=\color{blue},
    numberstyle=\tiny\color{codegray},
    stringstyle=\color{codepurple},
    basicstyle=\ttfamily\scriptsize,
    breakatwhitespace=false,         
    breaklines=true,                 
    captionpos=b,                    
    keepspaces=true,                 
    numbers=left,                    
    numbersep=5pt,                  
    showspaces=false,                
    showstringspaces=false,
    showtabs=false,                  
    tabsize=2,
    aboveskip=\medskipamount
}
\lstset{style=mystyle}

\lstinputlisting{adj.m}
\end{document}

PDF 输出

答案1

您没有提供带有语言的列表,因此它不知道语法,也无法为评论、关键字等添加颜色。

如果你添加language=MATLAB\lstset,它应该可以工作。

\lstset{style=mystyle,language=MATLAB}

如果你计划对多种语言使用相同的样式,则可以使用以下方式更改语言\lstset再次使用来更改语言。

您还可以在插入代码时指定语言

\lstinputlisting[language=MATLAB]{adj.m}

相关内容