Python 注释未通过 lstlisting 突出显示

Python 注释未通过 lstlisting 突出显示

我想要使​​用lstlisting一些 Python 代码,我有一个如下所示的代码段:

\documentclass[11pt]{article}

\usepackage{color}
\usepackage{listings}
\lstloadlanguages{Python}
\lstset{
  language=Python,
  basicstyle=\scriptsize\sffamily,
  numberstyle=\color{gray},
  stringstyle=\color[HTML]{933797}
  commentstyle=\color[HTML]{228B22}\sfffamily,
  emph={[2]from,import,pass,return}, emphstyle={[2]\color[HTML]{DD52F0}},
  emph={[3]range}, emphstyle={[3]\color[HTML]{D17032}},
  emph={[4]for,in,def}, emphstyle={[4]\color{blue}},
  showstringspaces=false,
  breaklines=true,
  prebreak=\mbox{{\color{gray}\tiny$\searrow$}},
  numbers=left,
  xleftmargin=15pt
}

\begin{document}
\begin{lstlisting}[language=Python]
# Function definitions

# Test cases
for _ in range(100):
    # Test comment
\end{lstlisting}

\end{document}

但是以 开头的评论#没有用我指定的颜色突出显示,它们只是黑色。有什么想法吗?

答案1

这里有三个问题:(1)gray中默认没有定义color,一般用xcolor代替。(2) 后面少了一个逗号stringstyle=\color[HTML]{933797}。(3) 中的 f 太多了\sfffamily

那么这个例子对我有用

更新的 MWE:

\documentclass[11pt]{article}

\usepackage{xcolor}
\usepackage{listings}
\lstloadlanguages{Python}
\lstset{
  language=Python,
  basicstyle=\scriptsize\sffamily,
  numberstyle=\color{gray},
  stringstyle=\color[HTML]{933797},
  commentstyle=\color[HTML]{228B22}\sffamily,
  emph={[2]from,import,pass,return}, emphstyle={[2]\color[HTML]{DD52F0}},
  emph={[3]range}, emphstyle={[3]\color[HTML]{D17032}},
  emph={[4]for,in,def}, emphstyle={[4]\color{blue}},
  showstringspaces=false,
  breaklines=true,
  prebreak=\mbox{{\color{gray}\tiny$\searrow$}},
  numbers=left,
  xleftmargin=15pt
}

\begin{document}
\begin{lstlisting}[language=Python]
# Function definitions

# Test cases
for _ in range(100):
    # Test comment
\end{lstlisting}

\end{document}

答案2

出奇,

\lstdefinelanguage{Python}{
commentstyle=\color{white}\sffamily
}

不会起作用,但是

\lstset{
  language=Python,
commentstyle=\color{white}\sffamily
}

会的,这是值得检查的事情。

相关内容