如何在列表中强调某一行的一部分?

如何在列表中强调某一行的一部分?

有了这个包,listing我可以用来emph=强调特定的身份标识在整个列表中。

\begin{lstlisting}[style=towi, title=Functions,emph={add}]
void print(int arg) { /* ... */ }
int add(int a, int b) { return a + b; }
...
print(12);           // call function print
int sum = add(8, 4); // call function add
\end{lstlisting}

add这将强调列表中的所有实例。

但是我只想强调一个特定的实例,而不仅仅是标识符,而是想自由选择要强调哪个部分add(8, 4);

答案1

为了实现您想要的效果,请不要添加,而是emph=定义一个escapechar并使用您的格式emphstyle来强调该行的那一部分。

例如,假设你有

emphstyle=\underline

然后,定义

escapechar=ä

你可以写

ä\underline{add(8, 4);}ä

来强调add(8, 4);,而不是其他的出现add

梅威瑟:

\documentclass{article}

\usepackage{listings}

\lstset{%
  basicstyle=\ttfamily,
  columns=fullflexible,
  emphstyle=\underline,
}

\begin{document}

\begin{lstlisting}[title=Functions,emph={add}]
void print(int arg) { /* ... */ }
int add(int a, int b) { return a + b; }
...
print(12);           // call function print
int sum = add(8, 4); // call function add
\end{lstlisting}

\begin{lstlisting}[title=Functions,escapechar=ä]
void print(int arg) { /* ... */ }
int add(int a, int b) { return a + b; }
...
print(12);           // call function print
int sum = ä\underline{add(8, 4);}ä // call function add
\end{lstlisting}

\end{document} 

输出:

在此处输入图片描述

相关内容