所以我一直在寻找一种给列表内的文本着色的方法。已经有几个问题得到了回答。例如这里:我如何突出显示源代码中的某些行?
我发现的所有解决方案都采用相同的方法。只需使用转义字符并为文本着色即可。但是,如果我这样做,我的字体就不再是等宽字体了。有办法解决这个问题吗?将字体设置为\ttfamily
或使用\verb
/\texttt
都不起作用。
以下是出错的示例:
\documentclass{article}
\usepackage{listings,xcolor}
\begin{document}
\begin{lstlisting}[escapeinside={(*@}{@*)}, basicstyle=\tiny\ttfamily]
this is monospace
as you can see here
(*@\color{orange}not monospace anymore@*)
\end{lstlisting}
\end{document}
欢呼
帕斯卡
答案1
您可以使用 来解决该问题\aftergroup
。
\documentclass{article}
\usepackage{listings,xcolor}
\def\speciallstcolor{\begingroup\color{orange}}
\def\endspeciallstcolor{\endgroup}
\begin{document}
\begin{lstlisting}[escapeinside={(*@}{@*)}, basicstyle=\tiny\ttfamily]
this is monospace
as you can see here
(*@\aftergroup\speciallstcolor@*)not monospace anymore(*@\aftergroup\endspeciallstcolor@*)
(that was a lie)
\end{lstlisting}
\end{document}