我想要使用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
}
会的,这是值得检查的事情。