
Deseo agregar algunas palabras clave a algún código Python insertado en un documento LaTeX. Quiero que True
& False
aparezca en amarillo y también que algunas llamadas de módulos, como las ttk
que aparecen en rojo. Intenté usar la llamada morekeywords, sin embargo, no me funciona. A continuación se muestra mi 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
}}
Respuesta1
Puedes usar
keywords=[<number>]{<list of keywords>}
para agregar otro conjunto de palabras clave y luego
keywordstyle={[<number>]<style commands>},
para darle un estilo a este nuevo set.
Como no tenía las definiciones originales para sus colores ni para el comando \ttb, en el siguiente ejemplo utilicé algunas configuraciones propias, pero usted puede usar fácilmente sus propias configuraciones; el código fue tomado al azar, sólo para este ejemplo.
\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}
Tenga en cuenta que "ttk" se trata como una palabra clave con color rojo, como también se solicitó.