突出显示环境中代码的背景

问题描述

我正在尝试突出显示环境中的一些代码片段。

在我的示例中,我使用了 \colorBox 来更改单词的背景。问题是所有这些单词都有不同的高度,并且颜色框不在同一级别。有没有办法调整颜色框,使其所有字符的高度都相同?

有没有更好的方法解决我的问题?

enter image description here

\documentclass[a4paper,12pt]{scrreprt}

\usepackage[dvipsnames]{xcolor}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[dvipsnames]{xcolor}
\usepackage[ngerman]{babel}
\usepackage[chapter,cache=false]{minted}
\setminted[python]{
    frame=single,framesep=2mm,baselinestretch=1.2,fontsize=\footnotesize,linenos=true,}

\begin{document}

\begin{listing}[ht]
\begin{minted}[escapeinside=||]{python}
print('test Test !,?/')
|\colorBox{green}{test}| |\colorBox{yellow}{Test}| |\colorBox{red}{!,?/}|
\end{minted}
\end{listing}

\end{document}

解决方法

您可以通过在文本中添加 \strut 来确保高度恒定:

% !TeX program = txs:///arara
% arara: pdflatex: {synctex: on,interaction: nonstopmode,shell: yes}
\documentclass[a4paper,12pt]{scrreprt}

\usepackage[dvipsnames]{xcolor}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[dvipsnames]{xcolor}
\usepackage[ngerman]{babel}
\usepackage[chapter,cache=false]{minted}
\setminted[python]{
    frame=single,framesep=2mm,baselinestretch=1.2,fontsize=\footnotesize,linenos=true,}

\begin{document}

\begin{listing}[ht]
\begin{minted}[escapeinside=||]{python}
print('test Test !,?/')
|\colorbox{green}{\strut{}test}| |\colorbox{yellow}{\strut{}Test}| |\colorbox{red}{\strut{}!,?/}|
\end{minted}
\end{listing}

\end{document}

enter image description here