\documentclass{beamer}
\usepackage[ noend, boxruled]{algorithm2e}
\begin{document}
\begin{center}
\begin{algorithm}[H]
\SetKwInOut{Input}{Input}\SetKwInOut{Output}{Output}
\SetKwProg{fxn}{Function}{}{end} %To define functions like \fxn{name}{body}
\Input{$a,b\in\mathbb N$}
\Output{$\mathrm{gcd}(a,b)$}
\textbf{Initialize} $X,Y\leftarrow 1$\;
\While{$Y\le a$}{\If{$Y|a$\quad\&\quad$Y|b$}{$X\leftarrow Y$\;}$Y=Y+1$}
\textbf{Output} $Y$
\caption{$\mathrm{gcd}(a,b)$}
\end{algorithm}
\end{center}
\end{document}
以上是我的问题的 MWE。为什么center
这里的环境不起作用?为什么左边距这么糟糕?如何像在文章类中一样使其正常?将其放在里面minipage
也\centering
无济于事。
编辑上述 MWE 的输出是并且所需的输出是(除了盒子的宽度,这里并不重要)。
参见框左边距的差异。
答案1
环境
center
正在运行,但算法的宽度等于文本的宽度,因此你看不到任何差异。如果你减小算法的宽度,你会看到效果您可以通过设置来调整边距
\algomargin
\documentclass{beamer}
\usepackage[ noend, boxruled]{algorithm2e}
\setlength{\algomargin}{1em}
\begin{document}
\begin{frame}
\centering
\begin{minipage}{.6\textwidth}
\begin{algorithm}[H]
\SetKwInOut{Input}{Input}\SetKwInOut{Output}{Output}
\SetKwProg{fxn}{Function}{}{end} %To define functions like \fxn{name}{body}
\Input{$a,b\in\mathbb N$}
\Output{$\mathrm{gcd}(a,b)$}
\textbf{Initialize} $X,Y\leftarrow 1$\;
\While{$Y\le a$}{\If{$Y|a$\quad\&\quad$Y|b$}{$X\leftarrow Y$\;}$Y=Y+1$}
\textbf{Output} $Y$
\caption{$\mathrm{gcd}(a,b)$}
\end{algorithm}
\end{minipage}
\end{frame}
\end{document}