
Я хочу добавить несколько ключевых слов в код Python, вставленный в документ LaTeX. Я хочу, чтобы True
& False
отображался желтым, а также некоторые вызовы модулей, например, ttk
отображались красным. Я пробовал использовать вызов morekeywords, однако у меня это не работает. Ниже приведен мой код LaTeX:
\newcommand\pythonstyle{\lstset{
language=Python,
basicstyle=\ttm,
otherkeywords={self},
keywordstyle=\ttb\color{deepblue},
morekeywords={ttk}
emph={MyClass,__init__},
emphstyle=\ttb\color{deepred},
stringstyle=\color{deepgreen},
showstringspaces=false
}}
решение1
Вы можете использовать
keywords=[<number>]{<list of keywords>}
добавить еще один набор ключевых слов, а затем
keywordstyle={[<number>]<style commands>},
чтобы задать стиль для этого нового набора.
Поскольку у меня не было исходных определений ни для ваших цветов, ни для команды \ttb, в примере ниже я использовал некоторые собственные настройки, но вы можете легко использовать свои собственные настройки; код был взят случайным образом, специально для этого примера.
\documentclass{article}
\usepackage{xcolor}
\usepackage{listings}
\usepackage{bera}% optional; just for the example
\lstset{
language=Python,
basicstyle=\ttfamily,
otherkeywords={self},
keywordstyle=\ttfamily\color{blue!90!black},
keywords=[2]{True,False},
keywords=[3]{ttk},
keywordstyle={[2]\ttfamily\color{yellow!80!orange}},
keywordstyle={[3]\ttfamily\color{red!80!orange}},
emph={MyClass,__init__},
emphstyle=\ttfamily\color{red!80!black},
stringstyle=\color{green!80!black},
showstringspaces=false
}
\begin{document}
\begin{lstlisting}
def under_attack(col, queens):
left = right = col
for r, c in reversed(queens):
left, right = left - 1, right + 1
if c in (left, col, right):
return True
return False
print 'This generation has {0} babies'.format(babies)
ttk.Button(buttonframe,width = 3,
textvariable=guivars["%s %s" %(current, item)],
command=lambda: remoteButton(current, item))
\end{lstlisting}
\end{document}
Обратите внимание, что «ttk» рассматривается как ключевое слово красного цвета, как и было запрошено.