即使指定了语言参数,列表包也仅输出黑色源代码

即使指定了语言参数,列表包也仅输出黑色源代码

问题基本上就在标题中。

使用此代码:

\documentclass{report}    
\usepackage{listings}    
\begin{document}  
\lstset{language=Python}
\begin{lstlisting}
def some_function(parameter):
    a_random_number = parameter - 10
    print "some random string" + str(a_random_number)

if __name__ == '__main__'
    print 'Hello Latex Listings package'
    some_function(20)
\end{lstlisting}
\end{document}

我没有得到任何颜色,只有一些粗体关键字:

在此处输入图片描述

知道为什么会这样吗?如何解决?谢谢。

答案1

正如其他人在评论中正确提到的那样,您正在使用默认行为。要自定义它,您可以执行以下操作

\documentclass[12pt]{article}
\usepackage{geometry}
\usepackage{listings}
\usepackage{color}
\usepackage[usenames,dvipsnames,svgnames,table]{xcolor}
\geometry{a4paper}

\begin{document}

This is a sample file:

    \lstset{
    language=python,
    tabsize=3,
    %frame=lines,
    caption=Test,
    label=code:sample,
    frame=shadowbox,
    rulesepcolor=\color{gray},
    xleftmargin=20pt,
    framexleftmargin=15pt,
    keywordstyle=\color{blue}\bf,
    commentstyle=\color{OliveGreen},
    stringstyle=\color{red},
    numbers=left,
    numberstyle=\tiny,
    numbersep=5pt,
    breaklines=true,
    showstringspaces=false,
    basicstyle=\footnotesize,
    emph={str},emphstyle={\color{magenta}}}
    %\lstinputlisting{simple.py}
    \begin{lstlisting}
    def some_function(parameter):
        a_random_number = parameter - 10
        print "some random string" + str(a_random_number)
    # And a random comment!
    if __name__ == '__main__'
        print 'Hello Latex Listings package'
        some_function(20)
    \end{lstlisting}

\end{document}

您可以使用\begin{lstlisting}或将脚本保存在外部文件中,然后通过添加来添加 Python 脚本。我个人更喜欢使用外部文件,因为这样可以使源代码更干净。此外,您还可以添加额外的关键字,就像我为函数\lstinputlisting{simple.py}所做的那样。str

在此处输入图片描述

相关内容