带有背景和高亮代码的列表问题

带有背景和高亮代码的列表问题

我有一个代码片段,其中的一行过长,可以按需要中断。自定义格式应用于行的部分。但是,背景样式未应用于格式化行的第二部分。 我怎样才能解决这个问题?

在此处输入图片描述

代码:

\documentclass{article}
\usepackage{listings}
\usepackage{xcolor}

\lstset{
    backgroundcolor=\color{lightgray},
    breaklines=true,
    escapechar=~
}

\newcommand{\highlightInListing}[1]{\textbf{\textcolor[rgb]{1,0.41,0.13}{#1}}}

\begin{document}
\begin{lstlisting}
 public static void x() {
    System.out.println("aaaaaaaaaaaaaaa" + ~\highlightInListing{compute(10000000, 44444444444, 333333333, 999)}~); 
 }
\end{lstlisting}
\end{document}

答案1

您需要做的就是阅读listings手册的第 7.2 节。它的名称是:带有背景颜色和 LaTeX 转义公式的列表

在此处输入图片描述

因此,唯一的解决方法是

\documentclass{article}
\usepackage{listings}
\usepackage{xcolor}
\usepackage{mdframed}
\usepackage{moreverb}

\begin{verbatimwrite}{x.java}
 public static void x() {
    System.out.println("aaaaaaaaaaaaaaa" + ~\highlightInListing{compute(10000000, 44444444444, 333333333, 999)}~); 
 }
\end{verbatimwrite}

\lstset{
    breaklines=true,
    escapechar=~
}

\newcommand{\highlightInListing}[1]{\textbf{\textcolor[rgb]{1,0.41,0.13}{#1}}}

\begin{document}
\begin{mdframed}[backgroundcolor=lightgray,hidealllines=true]
\lstinputlisting[mathescape]{./x.java}
\end{mdframed}
\end{document}

在此处输入图片描述

相关内容