Beamer 和伪代码

Beamer 和伪代码

我正在用 Beamer 准备一份演示文稿,内容是之前用 Latex 写的一篇论文。我想在幻灯片中插入伪代码

    \begin{algorithm}
\begin{algorithmic}[1]
\FOR{$i=1$ to $N$}
\FOR{$j=1$ to $JJJJ}
\STATE $energy[i*JJJ+j] =$ \\
$ interpolate(AAA[i*JJJ+j], ZZZ)$
\ENDFOR
\ENDFOR
\end{algorithmic}
\caption{pseudocode for the calculation of }
\label{alg:seq}
\end{algorithm}

但由于 beamer 文档无法编译,因此我遇到了问题。我尝试使用与 latex 文档中相同的包。我还尝试通过 google 查找示例,但一无所获。您能告诉我这里出了什么问题吗?或者我如何在 beamer 中添加伪代码(网上的示例等)?

答案1

浮动对象algorithm在 beamer 中表现不佳(显然,beamer 会禁用浮动对象)。为了防止出现问题,您可以 1) 使用 的H位置说明符algorithm,或 2) 如果需要标题,可以删除algorithm环境并使用包\captionof中的命令caption。以下示例显示了第一种方法:

\documentclass[12pt]{beamer}
\usepackage{algorithm,algorithmic}

\begin{document}

\begin{frame}

\begin{algorithm}[H]
\begin{algorithmic}[1]
\FOR{$i=1$ to $N$}
\FOR{$j=1$ to $JJJJ$}
\STATE $energy[i*JJJ+j] =$ 
$ interpolate(AAA[i*JJJ+j], ZZZ)$
\ENDFOR
\ENDFOR
\end{algorithmic}
\caption{pseudocode for the calculation of }
\label{alg:seq}
\end{algorithm}
\end{frame}

\end{document}

答案2

  • 加载所需的包(例如algorithmicalgorithm2ealgorithm
  • 使用float带有H浮动算法环境选项的包来获取固定位置
  • fragile如果出现奇怪的错误,请使用框架选项,它可以修复逐字文本和列表的问题

可编译示例:

\documentclass{beamer}
\usetheme{Singapore}
\usepackage{algorithm2e}
\usepackage{algorithmic}
\usepackage{float}
\begin{document}
\section{Test}
\begin{frame}[fragile]
\begin{algorithm}[H]
\begin{algorithmic}[1]
\FOR{$i=1$ to $N$}
\FOR{$j=1$ to $JJJJ$}
\STATE $energy[i*JJJ+j] =$ \\
$ interpolate(AAA[i*JJJ+j], ZZZ)$
\ENDFOR
\ENDFOR
\end{algorithmic}
\caption{pseudocode for the calculation of }
\label{alg:seq}
\end{algorithm}
\end{frame}
\end{document}

算法示例

答案3

在此处输入图片描述是的。这些都不适合我。我已经搜索了两三天的答案,但还是看到了其他对我不起作用的解决方案。我敢打赌,如果你正在使用 Han the Tanh 的 Latex 2020,那么你就会在这里阅读这篇文章。继续随意给我差评吧,但你总是可以通过在块环境中使用制表符让它看起来足够好。你甚至可以将每条打印线括在揭示中以获得额外的戏剧效果。

\begin{frame}
  \frametitle{My Procedure}
\begin{block}{}
\begin{tabbing}
  \uncover<2- | alert @2>{My\=Fun($x,y$)\=\\}
  \uncover<3- | alert @3>{\>Let $\ell=1,$ \>~~$\epsilon_0=1,w_0=x,$ and $z_0=y$\\}
  \uncover<4- | alert @4>{\>While \>$(\epsilon_{\ell-1} >$ tol $)$\\}
  \uncover<5- | alert @5>{\>\>Let $w_{\ell}$ be the solution to $w = G(w z_{\ell-1})$\\}
  \uncover<6- | alert @6>{\>\>Let $z_{\ell}$ be the solution to $z = G(w_{\ell-1} z) + H(z)$\\}
  \uncover<7- | alert @7>{\>\>Let $\epsilon_{\ell}= |w_{\ell} - w_{\ell-1}| + |z_{\ell} - z_{\ell-1}|$\\}
  \uncover<8- | alert @8>{\>End While\>\\}
  \uncover<9- | alert @9>{End MyFun\>\\}
\end{tabbing}
\end{block}
\end{frame}

答案4

我们在 Beamer 文档中添加了一个新幻灯片,使用此\begin{frame}...\end{frame}幻灯片和算法\begin{algorithm}...\end{algorithm} 如果您尝试直接在框架中嵌入算法,它将不起作用。

因此使用 \scalebox{}{...}

句法:

\begin{frame}
    \scalebox{1}{\begin{algorithm}...\end{algorithm}}
\end{frame}

https://beerensahu.wordpress.com/2014/11/17/documentation-how-to-write-algorithms-in-latex-beamer-slids/

相关内容