原始问题
我想突出显示代码列表中 C++ 注释中的某些内容。
\documentclass[a4paper, 12pt]{article}
\usepackage{color}
\usepackage{listings}
\definecolor{light_gray}{rgb}{0.7,0.7,0.7}
\lstset{
breaklines=true
numbers=left,
basicstyle=\footnotesize,
frame=single
}
\begin{document}
\begin{lstlisting}[language=C++, escapechar=\%]
/**%\textcolor{light_gray}{************************************************}%
* ... text ...
*************************************************/
\end{lstlisting}
\end{document}
使用此代码我得到以下输出:
有没有办法将灰色星星格式化为与其他星星相同的样式?
更新
好的,感谢朱博布斯' 回答这里,我能够快速创建一个解决方案:
\documentclass[a4paper, 12pt]{article}
\usepackage[T1]{fontenc}
\usepackage[scaled=.85]{beramono}
\usepackage{listings}
\usepackage{color}
\definecolor{light_gray}{rgb}{0.7,0.7,0.7}
% some listings shenanigans to have access to the current listings style
% within an escape to LaTeX
\makeatletter
\newcommand\currentStyle@lstparam{}
\lst@AddToHook{Output}{\global\let\currentStyle@lstparam\lst@thestyle}
\lst@AddToHook{OutputOther}{\global\let\currentStyle@lstparam\lst@thestyle}
\makeatother
\makeatletter
% Usage: \highlightcode{color}{content}
\newcommand{\highlightcode}[2]{\currentStyle@lstparam \textcolor{#1}{#2}}
\makeatother
\lstset{
basicstyle = \footnotesize\ttfamily,
breaklines=true
numbers=left,
frame=single
}
\begin{document}
\begin{lstlisting}[language=C++, escapechar=\%]
/**%\highlightcode{light_gray}{************************************************}%
* ... text ...
*************************************************/
\end{lstlisting}
\end{document}
我现在得到的输出是:
看起来lstlisting
默认使用了另一种字体\ttfamily
。
我同意,但是是否可以在这里使用与第一个输出相同的字体样式?