如何在 verbatim 环境中突出显示代码?

如何在 verbatim 环境中突出显示代码?

我正在写一本包含教程的书,我需要展示代码:

Write this: 

\begin{verbatim}
function doit() {
  console.log("Hello");
}
\end{verbatim}

And then add these lines:

\begin{verbatim}
function doit() {
  var s = "Hello";
  console.log(s);
}
\end{verbatim}

我想突出显示var s = "Hello";,以便清楚地看到这是新添加的代码。我想为这段文本设置不同的颜色,以便新行显示为黑色,其余显示为灰色。

我如何实现这个目标?

这是一个非常标准的 LaTeX 文档,所以我没有包含整个文件。fg

答案1

这是一个选项fancyvrb您可以在其中更改特定行的格式;代码应该是不言自明的:

在此处输入图片描述

\documentclass{article}

\usepackage{fancyvrb,xcolor}

\begin{document}

Write this: 

\begin{Verbatim}
function doit() {
  console.log("Hello");
}
\end{Verbatim}

And then add these lines:

\renewcommand{\FancyVerbFormatLine}[1]{%
  \ifnum\value{FancyVerbLine}=2
    \textcolor{red}{#1}% Format specific line
  \else
    #1% Else, do nothing different
  \fi
}
\begin{Verbatim}
function doit() {
  var s = "Hello";
  console.log(s);
}
\end{Verbatim}

\renewcommand{\FancyVerbFormatLine}{}% Clear how lines are formatted differently
\begin{Verbatim}
function doit() {
  var s = "Hello";
  console.log(s);
}
\end{Verbatim}

\end{document}

它应该适用于基本设置和小代码格式。

答案2

拍摄于: 我如何突出显示源代码中的某些行?

做这个:

\documentclass{article}
\usepackage{soul,listings,xcolor}

    \lstnewenvironment{teX}[1][]
      {\lstset{language=[LaTeX]TeX}\lstset{escapeinside={(*@}{@*)},
       numbers=left,numberstyle=\normalsize,stepnumber=1,numbersep=5pt,
       breaklines=true,
       %firstnumber=last,
           %frame=tblr,
           framesep=5pt,
           basicstyle=\normalsize\ttfamily,
           showstringspaces=false,
           keywordstyle=\itshape\color{blue},
          %identifierstyle=\ttfamily,
           stringstyle=\color{maroon},
        commentstyle=\color{black},
        rulecolor=\color{black},
        xleftmargin=0pt,
        xrightmargin=0pt,
        aboveskip=\medskipamount,
        belowskip=\medskipamount,
               backgroundcolor=\color{white}, #1
    }}
    {}
    \begin{document}


Write this: 

\begin{teX}
function doit() {
console.log("Hello");
}
\end{teX}

And then add these lines:

\begin{teX}
function doit() {
(*@ \hl{var s = "Hello";} @*)
console.log(s);
}
\end{teX}

    \end{document}

收到:

结果

相关内容