原始问题

原始问题

原始问题

我想突出显示代码列表中 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

我同意,但是是否可以在这里使用与第一个输出相同的字体样式?

相关内容