我需要将命令放在单独的行中(If、While 等)。我还尝试按照其他帖子中的建议删除算法的数字,但数字仍然存在。任何帮助都非常感谢!谢谢!
\documentclass[9pt,handout,compress,rgb]{beamer}
\usepackage[T2A]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage{amstext, amsmath, amsfonts}
\usepackage{array}
\usepackage{indentfirst}
\usepackage[noend]{algpseudocode}
\usepackage{caption}
\usepackage[justification=centering]{caption} % Figures caption
\usepackage{float} % To place figures where I want with [H]
\usepackage{FiraMono}
\usepackage{algpseudocode}
\usepackage{chngcntr}
\usepackage{ragged2e}
\usepackage[vlined,ruled]{algorithm2e}
\usepackage{comment}
\usepackage{mathtools}
\usepackage{mathrsfs}
\usepackage{wasysym}
\usepackage{marvosym}
\setbeamertemplate{itemize items}[default]
\captionsetup{labelsep = period}
\algrenewcommand\algorithmicrequire{\textbf{Input:}}
\renewcommand{\algorithmicensure}{\textbf{Output:}}
\begin{document}
\begin{frame}
\begin{algorithm}[H]
\renewcommand{\thealgorithm}{}
\caption*{Finding $z$}
\begin{algorithmic}
\Require{$x, y$}
\Ensure{$z$}
\State $X \gets x$
\State $N \gets n$
\While{$s < k$}
\While{$(t \le k-s)$ and $f$}
\State $s \gets 0$
\If{$ff$ is negative}
\State $x \gets y-1$
\State $ff$ \gets false
\Endif
\State $t \gets t+1$
\Endwhile
\State Assign $y$ to $z$
\State $jf \gets j+1$
\Endwhile
\end{algorithmic}
\end{algorithm}
\end{frame}
\end{document}
答案1
一些错误:
- 删除
\renewcommand{\thealgorithm}{}
,这将导致错误。 - 您正在加载的包
algorithm2e
将 while 循环定义为\while{...}{...}
而不是\while{...} \endwhile
- 如果出现同样的错误
\get
必须将 in置于\State $ff$ \gets false
数学模式
更多评论:
- 如果您同时告诉 babel 您的文档应该是英文的,那么该
T2A
选项似乎是一个奇怪的选择......\usepackage[T2A]{fontenc}
float
由于 beamer 没有浮动机制,因此加载包没有多大意义- 不要多次加载同一个包,尤其是使用不同的选项
- 您不需要加载所有这些
ams*
包,beamer 会自动加载它们。 indentfirst
由于 beamer 不缩进段落,因此也没有多大意义
一种可能的方法使用以下algorithm2e
语法:
\documentclass[9pt,handout,compress,rgb]{beamer}
%\usepackage[T2A]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
%\usepackage{amstext, amsmath, amsfonts}
\usepackage{array}
%\usepackage{indentfirst}
%\usepackage[noend]{algpseudocode}
%\usepackage{caption}
\usepackage[justification=centering]{caption} % Figures caption
%\usepackage{float} % To place figures where I want with [H]
\usepackage{FiraMono}
%\usepackage{algpseudocode}
\usepackage{chngcntr}
\usepackage{ragged2e}
\usepackage[vlined,ruled]{algorithm2e}
\usepackage{comment}
\usepackage{mathtools}
\usepackage{mathrsfs}
\usepackage{wasysym}
\usepackage{marvosym}
\setbeamertemplate{itemize items}[default]
\captionsetup{labelsep = period}
%\algrenewcommand\algorithmicrequire{\textbf{Input:}}
%\renewcommand{\algorithmicensure}{\textbf{Output:}}
\SetKwInOut{Input}{Input}
\SetKwInOut{Output}{Output}
\begin{document}
\begin{frame}
\begin{algorithm}[H]
%\newcommand{\thealgorithm}{}
\NoCaptionOfAlgo
\caption{\textbf{Algorithm:} Finding $z$}
%\begin{algorithmic}
\Input{$x, y$}
\Output{$z$}
$X \gets x$
$N \gets n$
\While{$s < k$}{
\While{$(t \le k-s)$ and $f$}{
$s \gets 0$
\If{$ff$ is negative}{
$x \gets y-1$
$ff \gets$ false
}
$t \gets t+1$
}
Assign $y$ to $z$
$jf \gets j+1$
}
%\end{algorithmic}
\end{algorithm}
\end{frame}
\end{document}