
Me gustaría hacer una lstlisting
definición de estilo, donde las cadenas se resaltan con un color de fondo, para que se destaquen más. Ni siquiera estoy seguro de que sea posible, pero déjame explicarte.
Aquí hay un intento con \colorbox
, que podría darle una idea de lo que quiero:
\documentclass{article}
\usepackage{xcolor}
\usepackage{listings}
\lstdefinestyle{mypython}{
keywordstyle=\bfseries,
captionpos=b,
language=Python,
keywordstyle=\bfseries,
identifierstyle=\color{black},
ndkeywordstyle=\color{darkgray}\bfseries,
commentstyle=\color{gray}\ttfamily,
stringstyle=\color{black}\ttfamily\colorbox{black!10},
showstringspaces=false
}
\begin{document}
\begin{lstlisting}[style=mypython]
{'timezone': 7200, 'cod': 200, 'dt': 1561470780, 'base': 'stations',
'weather': [{'id': 804, 'icon': '04d', 'main': 'Clouds',
'description': 'overcast clouds'}],
'sys': {'message': 0.0076, 'country': 'DK', 'sunrise': 1561429582,
\end{lstlisting}
\end{document}
Aquí hay un ejemplo de resultado cuando se usa el estilo anterior en algún JSON:
Como puede verse, este enfoque plantea varios problemas:
- los apóstrofes se resaltan por separado del resto del texto
- Los espacios en blanco son algunos lugares resaltados al principio de las líneas, donde la cadena aún no ha comenzado.
- Las cajas de colores no son iguales en altura.
- Se han introducido espacios adicionales entre palabras y apóstrofes.
¿Es posible solucionar los problemas anteriores? ¿Quizás usando tcolorbox
o algo más que \colorbox
?