
Я хотел бы сделать 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}
Вот пример вывода при использовании указанного выше стиля для некоторого JSON:
Как видно, при таком подходе возникает ряд проблем:
- апострофы выделены отдельно от остального текста
- пробелы - это некоторые выделенные места в начале строк, где строка еще не началась
- цветовые ячейки не равны по высоте
- введены дополнительные пробелы между словами и апострофами
Возможно ли исправить вышеуказанные проблемы? Возможно, с помощью tcolorbox
или чем-то другим \colorbox
?