如何在投影仪的框架中心显示算法2e?

如何在投影仪的框架中心显示算法2e?

我想将我的算法显示在框架的中心,就像hello world代码中的句子一样。这是我的代码和输出:

\documentclass{beamer}
\usepackage{algorithm2e}

\begin{document}
\begin{frame}
  \begin{center}
    hello world!
  \end{center}
  \begin{algorithm}[H]
    \DontPrintSemicolon
    \KwSty{type} val : \KwSty{real}$[k]$\;
    \KwSty{type} ind : \KwSty{int}$[k]$\;
    \KwSty{type} ptr : \KwSty{int}$[m+1]$\;
    \LinesNumbered
    \ForEach{row $i$}{
      \For{$l=ptr[i]$ \KwTo $prt[i+1]-1$}{
     $ y[i] \leftarrow y[i]+val[l] \cdot x[ind[l]]$ \;
      }
    }
  \end{algorithm}
\end{frame}

\end{document}

在此处输入图片描述

答案1

不太理想的解决方案

\documentclass{beamer}
\usepackage{algorithm2e}

\begin{document}
\begin{frame}
  \begin{center}
    hello world!

%\fbox{% fbox helps to find the minimal width for the minipage below
  \begin{minipage}{.55\linewidth} % find the minimal value to enclose the code
  \begin{algorithm}[H]
    \DontPrintSemicolon
    \KwSty{type} val : \KwSty{real}$[k]$\;
    \KwSty{type} ind : \KwSty{int}$[k]$\;
    \KwSty{type} ptr : \KwSty{int}$[m+1]$\;
    \LinesNumbered
    \ForEach{row $i$}{
      \For{$l=ptr[i]$ \KwTo $prt[i+1]-1$}{
     $ y[i] \leftarrow y[i]+val[l] \cdot x[ind[l]]$ \;
      }
    }
  \end{algorithm}
  \end{minipage}
%  }% end of fbox
  \end{center}
\end{frame}

\end{document}

在此处输入图片描述

相关内容