使用 beamer 将算法文本变为灰色并仅显示其中的一部分

使用 beamer 将算法文本变为灰色并仅显示其中的一部分

我正在准备幻灯片,想在上面介绍一些算法,但是由于太长,我决定只展示算法中的重要部分。

所以我想知道我的算法是否有可能缺少一部分。我的意思是它应该是这样的:

Algorithm 1.
Input: data
Require: some constraings
[1]-[10] //this part for example to be cut out, 
11. if condition
12. do something
13. other stuff

所以我想剪掉几行,但仍然显示它们被剪掉了。然后算法中的以下语句当然需要有相应的编号(这里从 11 开始)。

.tex到目前为止我的文件是这样的:

\documentclass[11pt]{beamer}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\PassOptionsToPackage{noend}{algpseudocode}
\usepackage{algpseudocode}
\usepackage{algorithm}
\usepackage{color}

\begin{document}

\begin{frame}

\begin{algorithm}[H]
\begin{algorithmic}[1]
\setcounter{ALG@line}{11}
\State \textcolor{grey}{Lines cut out}
\State conditions
\State other stuff
\State $d$: stuff
\end{algorithmic}
\end{algorithm}
\end{frame}

\end{document}

答案1

由于您要剪切的范围的宽度,您可能需要手动调整灰色文本行的间距。不过,这相当简单,因为环境内的项目列表algorithmic就是这样…… \items:

在此处输入图片描述

\documentclass{beamer}

\usepackage[noend]{algpseudocode}
\usepackage{algorithm}

\makeatletter
\newcommand{\setalgolineno}[1]{\setcounter{ALG@line}{\numexpr#1-1}}
\makeatother

\begin{document}

\begin{frame}
  \begin{algorithmic}[1]
    \item[\rlap{\alglinenumber{1-10}}\phantom{\alglinenumber{10}}] \quad \textcolor{gray}{Lines cut out}
    \setalgolineno{11}
    \State conditions
    \State other stuff
    \State $d$: stuff
  \end{algorithmic}
\end{frame}

\end{document}

相关内容