问题基本上就在标题中。
使用此代码:
\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