如何使某些代码行淡出并突出显示其中几行。(参见示例)

如何使某些代码行淡出并突出显示其中几行。(参见示例)

enter image description here

我需要知道前四行代码是如何褪色的,以及如何用不同的颜色表示 Ck 和 Ck'。

如果我能获得前 4-5 行的代码,那将会很有帮助。

谢谢。

答案1

一种可能性是:

\documentclass[dvipsnames,svgnames]{beamer}
\usepackage{algpseudocode}
\usepackage{eulervm}
\usepackage[most]{tcolorbox}

\setbeamercovered{transparent=40}

\usefonttheme[onlymath]{serif}
\usefonttheme{professionalfonts}

\newcommand\myRed[1]{%
  \makebox[0pt][l]{\hspace*{-\algorithmicindent}\textcolor{red}{#1}}}

\tcbset{
common/.style={
  arc=0pt,
  outer arc=0pt,
  boxsep=0pt,
  left=1pt,
  right=1pt,
  top=1pt,
  bottom=1pt
  },
blue/.style={
  common,
  colback=LightBlue!90,
  colframe=LightBlue!90,
  highlight math style={colback=LightBlue!50,colframe=Navy,boxsep=0pt}
  },
green/.style={
  common,
  colback=Green!50,
  colframe=Green!50,
  highlight math style={colback=Green!50,colframe=Green}
  }
}

\begin{document}

\begin{frame}<1>
\begin{algorithmic}[1]
\uncover<2>{\If{$quality\ge 9$}}
\uncover<2>{\State $a\gets perfect$}
\uncover<2>{\ElsIf{$quality\ge 7$}}
\uncover<2>{\State $a\gets good$}
\ElsIf{\tcbhighmath[blue]{k\ge 5}}
\State \myRed{$c_k$} $a\gets medium$
\ElsIf{$quality\ge 3$}
\State\myRed{$c'_k$} \tcbhighmath[green]{a\gets bad}
\Else
\State $a\gets unusable$
\EndIf
\end{algorithmic}

\end{frame}

\end{document}

enter image description here

一些评论:

  1. 透明效果可以通过\uncover以下方式实现

     \setbeamercovered{transparent=40}
    
  2. \tcbhighmath突出显示的部分可以轻松实现tcolorbox包裹。

  3. 该算法使用 排版algpseudocode,是`算法x捆。

相关内容