Adicionando palavras ao lstlisting para linguagem Python

Adicionando palavras ao lstlisting para linguagem Python

Desejo adicionar algumas palavras-chave a algum código python inserido em um documento LaTeX. Quero fazer Truee Falseaparecer amarelo e também algumas chamadas de módulo, como ttkvermelho. Tentei usar a chamada morekeywords, mas não está funcionando para mim. Abaixo está meu código 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            
}}

Responder1

Você pode usar

keywords=[<number>]{<list of keywords>}

para adicionar outro conjunto de palavras-chave e depois

keywordstyle={[<number>]<style commands>},

para dar um estilo a esse novo conjunto.

Como eu não tinha as definições originais das suas cores nem do comando \ttb, no exemplo abaixo usei algumas configurações próprias, mas você pode facilmente usar suas próprias configurações; o código foi obtido aleatoriamente, apenas para este exemplo.

\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}

insira a descrição da imagem aqui

Observe que "ttk" está sendo tratado como uma palavra-chave de cor vermelha, conforme também foi solicitado.

informação relacionada