我想定义一个lstlisting
样式,让字符串以背景色突出显示,使它们更加突出。我甚至不确定这是否可行,但让我解释一下。
下面是一次尝试\colorbox
,它可能会让您了解我想要什么:
\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}
可以看出,这种方法存在几个问题:
- 撇号与文本的其余部分分开突出显示
- 空白是行首突出显示的一些位置,这些位置字符串尚未开始
- 颜色框的高度不相等
- 单词和撇号之间增加了额外的间距
是否有可能修复上述问题?也许可以使用tcolorbox
或其他方法\colorbox
?