我使用 otherkeywords 控件通过彩色包清单(python)将 scipy.signal 库的一些函数添加到关键字列表中,我添加了 lti 顺序,此顺序是用颜色表示的,但问题是文本“lti”在单词“multi”中也是彩色的。
如何避免这种副作用?
是否可以添加一个库的所有关键字(例如 matplolib)?
答案1
我使用了morekeywords
选项而不是otherkeywords
,您可能通过指定加载默认的预定义语言\begin{lstlisting}[style=Python]
,作为第一步,您应该通过定义您的列表语言样式(自定义),lstdefinestyle
然后在lstlisting
环境中将其用作样式style=myPython
。
对于第二部分,我不确定,但恐怕没有其他方法可以自动添加关键字,而不是通过收集库关键字列表并将其粘贴到中添加morekeywords = {keyword1,...}
。
\documentclass{article}
\usepackage{listings}
\usepackage{xcolor}
\usepackage{textcomp} %for upquote
\definecolor{keywords}{rgb}{0,0,0.7}
\lstdefinestyle{myPython} {
language=Python,
keywordstyle=*\color{keywords},
numbers=left,
numberstyle=\scriptsize,
commentstyle=*\color{green!50},
stepnumber=1,
numbersep=8pt,
showstringspaces=false,
breaklines=true,
frameround=ftff,
frame=lines,
morekeywords = {lti},
backgroundcolor=\color{gray!20},
firstnumber=1,
upquote=true %for straight single quotes
}
\begin{document}
\begin{lstlisting}[style=myPython]
def greet(name):
print 'Hello', name
greet('LaTeX')
multi lti
\end{lstlisting}
\end{document}