我正在用 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
- 加载所需的包(例如
algorithmic
和algorithm2e
或algorithm
) - 使用
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}