我在 algorithmicx 包中定义了一个名为的新块Class
。我想在这个新块中插入一个新页面的断点,但出现了错误:
包 algorithmicx 错误:有些块没有关闭!!!。
缺失数字,视为零。\结束
这是我重现错误的最小工作示例:
\documentclass{article}
\usepackage{algorithm}
\usepackage{algpseudocode}
\begin{document}
\begin{algorithm}
\algblock[Class]{Class}{End}
\caption{Class: Part 1}\label{case_class_1}
\begin{algorithmic}[1]
\Class
\Statex
\Function{function 1}{ }
\State do some stuff
\EndFunction
\algstore{bkbreak}
\end{algorithmic}
\end{algorithm}
% BREAK
\begin{algorithm}[h]
\algblock[Class]{Class}{End}
\caption{Class: Part 2}\label{case_class_2}
\begin{algorithmic}[1]
\algrestore{bkbreak}
\Statex
\Function{function 2}{ }
\State do some stuff
\EndFunction
\End
\end{algorithmic}
\end{algorithm}
\end{document}
错误:
第 32 行:缺少数字,视为零。\结束
第 33 行:程序包 algorithmicx 错误:某些块未关闭!!!。 \end{algorithmic}
答案1
在前言中定义新块,而不是在环境中定义两次algorithm
。此外,如果第二个浮点数超过第一个浮点数(没有选项),[h]
第二个环境的选项可能会有问题,因为then 可能会在 之前执行。algorithm
[h]
\algrestore
\algstore
\documentclass{article}
\usepackage{algorithm}
\usepackage{algpseudocode}
\algblock[Class]{Class}{End}
\begin{document}
\begin{algorithm}
\caption{Class: Part 1}\label{case_class_1}
\begin{algorithmic}[1]
\Class
\Function{function 1}{ }
\State do some stuff
\EndFunction
\algstore{bkbreak}
\end{algorithmic}
\end{algorithm}
% BREAK
\begin{algorithm}
\caption{Class: Part 2}\label{case_class_2}
\begin{algorithmic}[h]
\algrestore{bkbreak}
\Function{function 2}{ }
\State do some stuff
\EndFunction
\End
\end{algorithmic}
\end{algorithm}
\end{document}