\fbox 列表内

\fbox 列表内

我正在尝试使用 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}

相关内容