添加要在列表中突出显示的关键字

添加要在列表中突出显示的关键字

C++ 的最新版本添加了一些新关键字,例如 decltype 等。我想在报告中突出显示它们。我看过这篇文章,但它对我不起作用。

用附加关键字来扩展语言?

所以我添加了以下代码

\usepackage{listings}
\lstset{emph={%  
    decltype%
    },emphstyle={\color{black}}%
}

但后来我收到错误消息:未定义的控制序列 decltype

当以下列方式使用时:

\begin{lstlisting}
auto f(T1 X, T2 Y) -> 
  decltype(X<Y)
{}
\end{lstlisting}

答案1

扩展 Stephan 的帖子。为了便于添加要强调的关键字,最好定义一个新的环境和一个命令,例如\emphasis。这是一个 MWE。

![enter image description here][1]

\documentclass{article}
\usepackage{listings,xcolor}
\begin{document}

%% Emphasis
\newcommand\emphasis[2][red]{%
   \lstset{emph={#2},
   emphstyle={\ttfamily\textcolor{#1}}}}%

\lstnewenvironment{teX}[1][]
  {\lstset{language=[LaTeX]TeX}\lstset{%
      escapeinside={{(*@}{@*)}},
      breaklines=true,
      framesep=5pt,
      basicstyle=\ttfamily,
      showstringspaces=false,
      keywordstyle=\ttfamily\textcolor{blue},
      stringstyle=\color{orange},
       commentstyle=\color{gray!80},
       rulecolor=\color{gray!10},
      breakatwhitespace=true,
      showspaces=false,  % shows spacing symbol
       xleftmargin=0pt,
       xrightmargin=5pt,
       aboveskip=0pt, % compact the code looks ugly in type
       belowskip=0pt,  % user responsible to insert any skips
      backgroundcolor=\color{gray!15}, #1
}}
{}

\emphasis{test,aline}
\begin{teX}
  % test
  \test
  \aline
\end{teX}
and another
\emphasis[blue]{new,aline}
\begin{teX}
  \new\aline
\end{teX}
\end{document}

答案2

对我有用。我确实得到了未定义的控制序列错误,但是\color

使用

\usepackage{color}

使这对我有用。

相关内容