将彩色文本放入列表内

将彩色文本放入列表内

所以我一直在寻找一种给列表内的文本着色的方法。已经有几个问题得到了回答。例如这里:我如何突出显示源代码中的某些行?

我发现的所有解决方案都采用相同的方法。只需使用转义字符并为文本着色即可。但是,如果我这样做,我的字体就不再是等宽字体了。有办法解决这个问题吗?将字体设置为\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}

MWE 输出

相关内容