![如何在列表中强调某一行的一部分?](https://linux22.com/image/307831/%E5%A6%82%E4%BD%95%E5%9C%A8%E5%88%97%E8%A1%A8%E4%B8%AD%E5%BC%BA%E8%B0%83%E6%9F%90%E4%B8%80%E8%A1%8C%E7%9A%84%E4%B8%80%E9%83%A8%E5%88%86%EF%BC%9F.png)
有了这个包,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}
输出: