我必须在我的文档中包含子程序代码。为此,我使用了lstlisting
。我成功包含了子程序,但我想做一些小改动。
在 Visual Studio 中,函数输入以灰色突出显示。例如,
\begin{lstlisting}
double foo(double a){
return a * a;
}
\end{lstlisting}
在这里,我想突出显示a
为灰色。我可以通过添加
\lstset{
OTHEROPTIONS,
keywords=[2]{a},
keywordstyle=[2]\color{gray},
}
但是,如果我这样设置,即使列表不是输入,它也会影响整个列表a
。因此,我想执行以下操作
\lstset{
OTHEROPTIONS,
keywordstyle=\color{blue},
keywordstyle=[2]\color{gray},
}
\begin{lstlisting}
// This Code will have black `a`
void main(){
double b = foo(a);
}
\end{lstlisting}
\begin{lstlisting}[keyword=0.5]
double foo(double a){
return a * a;
}
\end{lstlisting}
有什么可行的办法吗?
第一个图的完整代码。
\documentclass[12pt]{paper}
\usepackage{listings}
\usepackage{xcolor}
\usepackage{textcomp}
\definecolor{mygreen}{rgb}{0,0.6,0}
\definecolor{mygray}{rgb}{0.5,0.5,0.5}
\definecolor{mymauve}{rgb}{0.58,0,0.82}
\lstset{
tabsize=4,
% rulecolor=,
language={C++},
captionpos = t,
basicstyle = \footnotesize\ttfamily,
frame=lines,
numbersep=5pt,
numbers=left,
numberstyle=\tiny,
backgroundcolor=\color{white},
aboveskip={1.5\baselineskip},
columns=fixed,
extendedchars=false,
breaklines=true,
% prebreak = \raisebox{0ex}[0ex][0ex]{\ensuremath{\hookleftarrow}},
frame=single,
showtabs=false,
showspaces=false,
showstringspaces=false,
keywordstyle=\color[rgb]{0,0,1},
keywordstyle=[2]\color{gray},
commentstyle=\color{mygreen},
stringstyle=\color{red},
numberstyle=\color[rgb]{0.205, 0.142, 0.73},
}
% DOCUMENT STARTS
% HERE
\begin{document}
\begin{lstlisting}[title=main.cpp]
// This code will have black `a`
void main(){
double a = 0.5;
cout << foo(a) << endl;
}
\end{lstlisting}
\end{document}