本文首发于我的CSDN博客:LATEX算法过长,分页显示(基于爱思唯尔模板)(解决算法老是跑到最后一页的问题)_猎人伯爵-CSDN博客_latex中算法分页显示LATEX算法过长,分页显示(基于爱思唯尔模板)(解决算法老是跑到最后一页的问题)_猎人伯爵-CSDN博客_latex中算法分页显示blog.csdn.net
在使用爱思唯尔模板的时候,页面太小了,算法老是一个页面放不下,或者因为太大老是跑到最后一页。
我们可以采用算法分页的方法解决这个问题。效果如下图(原谅我的战术马赛克,论文还在投emmm):
这个方法是不会与usepackage{algorithmic}包冲突的(我常用这个包)。如果使用的不是这个伪代码包,可能会引发冲突,可以使用网上普遍的方法。
采取两步走战略:
1.引用外部包+定义新环境:
usepackage{algorithm}
usepackage{algorithmic}
usepackage{float}
usepackage{lipsum}
makeatletter
newenvironment{breakablealgorithm}
{% begin{breakablealgorithm}
begin{center}
refstepcounter{algorithm}% New algorithm
hrule height.8pt depth0pt kern2pt% @fs@pre for @fs@ruled
renewcommand{caption}[2][relax]{% Make a new caption
{raggedrighttextbf{ALG@name~thealgorithm} ##2par}%
ifxrelax##1relax % #1 is relax
addcontentsline{loa}{algorithm}{protectnumberline{thealgorithm}##2}%
else % #1 is not relax
addcontentsline{loa}{algorithm}{protectnumberline{thealgorithm}##1}%
fi
kern2pthrulekern2pt
}
}{% end{breakablealgorithm}
kern2pthrulerelax% @fs@post for @fs@ruled
end{center}
}
makeatother
2.创建支持自动分页的伪代码块以插入伪代码:
begin{breakablealgorithm}
caption{The proposed }
label{alg.}
begin{algorithmic}[1]
begin{footnotesize} %%调整算法字体大小
STATE {//Initialization part}
............
STATE {//Iterative part}
REPEAT
............
STATE {$countLeftarrow count+1$}
UNTIL{The given termination criterion is met.}
end{footnotesize}
end{algorithmic}
end{breakablealgorithm}