我正在尝试使用 listinline 突出显示列表中的特定行。我目前使用的代码如下所示:
\begin{lstlisting}[escapechar=!]
class A {
void m() {
B b = ...
!\fbox{b.n();}!
}
}
\end{lstlisting}
fbox
这在某种程度上是可行的,但是listings 包显然不会处理其中的文本。使用!fbox{\lstinline{b.n();}}!
会产生错误。
答案1
在我看来,listings
两个转义符之间不允许有任何逐字代码。一种解决方案是将存储\lstinline{b.n();}
在外面的框中lstlisting
,并使用里面的框:
\documentclass{article}
\usepackage{listings}
\usepackage{newverbs}
\newsavebox{\mybox}
\begin{document}
\begin{lrbox}{\mybox}
\lstinline{b.n();}%
\end{lrbox}
\begin{lstlisting}[escapechar=!]
class A {
void m() {
B b = ...
!\fbox{\usebox\mybox}!
}
}
\end{lstlisting}
\end{document}