我正在准备一个演示文稿,并使用了 beamer 模板。我必须增加特定算法的字体大小(这不是全局更改)。latex 代码是:
\begin{frame}{Serial Breadth-First Search}
\begin{algorithm}[H]
\begin{algorithmic}[1]
\Require Graph G, Node root
\Worklist $wl$ = \{ root \};
\State root.level = 0;
\While{($wl \neq \emptyset$)}
\State $u = DEQUEUE(wl)$;
\ForEach{($v \in Vertices(G)$ such that $(u, v) \in Edges(G)$)} \{
\hspace{.3cm} \textit{// Neighbors of u}
\If{(v.level $>$ u.level + 1)} \{
\State v.level = u.level + 1;
\State $ENQUEUE(wl, v)$;
\EndIf
\EndFor \State \} \}
\EndWhile \State \}
\end{algorithmic}
\end{algorithm}
\end{frame}
我不知道该怎么做。有人能帮我吗?提前谢谢。
答案1
为了改变特定框架的字体大小,你可以在框架的开头发出任何一个字体大小改变命令(类似于如何在文档中的一小部分文本中使用特定字体?)。如果您对想要的具体尺寸感兴趣,请参阅\Large 等字体大小是多少点(pt)?
下面我重新创建了你的设置没有更改字体大小,因为否则算法就无法适应。不过,我已经指出了您可以放置字体大小命令的位置。其他更改包括重新定义控制结构的功能方式 - 您似乎想要分组{
...}
来界定范围。
\documentclass{beamer}
\usepackage{algorithm,algpseudocode}
\algrenewtext{For}[1]{\algorithmicfor\ (#1)\ \{}
\algrenewtext{EndFor}{\}}
\algrenewtext{If}[1]{\algorithmicif\ (#1)\ \algorithmicthen\ \{}
\algrenewtext{EndIf}{\}}
\algrenewtext{While}[1]{\algorithmicwhile\ (#1)\ \algorithmicdo\ \{}
\algrenewtext{EndWhile}{\}}
\algnewcommand{\Worklist}{\item[\textbf{Worklist:}]}
\begin{document}
\begin{frame}{Serial Breadth-First Search}
% \tiny \scriptsize \footnotesize \small % <------ make font smaller
% \normalsize % <--------------------------------- normal font size
% \large \Large \LARGE \Huge % <------------------ make font larger
\begin{algorithmic}[1]
\Require Graph G, Node root
\Worklist $wl$ = \{ root \};
\State root.level = 0;
\While{$wl \neq \emptyset$}
\State $u = DEQUEUE(wl)$;
\For{$v \in Vertices(G)$ such that $(u, v) \in Edges(G)$}
\hspace{.3cm} \textit{// Neighbors of u}
\If{v.level $>$ u.level + 1}
\State v.level = u.level + 1;
\State $ENQUEUE(wl, v)$;
\EndIf
\EndFor
\EndWhile
\end{algorithmic}
\end{frame}
\end{document}