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