如何将 algorithm2e 拆分为两页

如何将 algorithm2e 拆分为两页

我正在使用algorithm2e包,但我的算法不适合一页。有没有办法将它分成两页,即使是手动的?

如果手动进行,我们可以使用两个algorithm环境,但存在一些问题:

  1. 保持行计数-好的,这可以通过调用以下包来完成noresetcount

  2. 从第一/第二个算法中删除标题(取决于我们是否希望在开头或结尾添加标题)——如何做?

  3. 注意缩进的垂直线,也就是说,我希望它们“跨越”页面 - 如何做到?

答案1

如果你不需要使用algorithm2e,你应该看看listings包,支持多页列表。

答案2

有一个技巧,我遵循答案algorithm2e 分为几页 经过超越

\documentclass{report}

\usepackage[linesnumbered,ruled,vlined]{algorithm2e}

\begin{document}


\begin{algorithm}
\caption{abc dcc}
\LinesNumbered
% This is to hide end and get the last vertical line straight
\SetKwBlock{Begin}{Begin}{}
\SetAlgoLined
\SetKwProg{Loop}{LOOP}{}{}
  \Begin{
  $\mathcal{E} \leftarrow \emptyset$\;
    \SetAlgoVlined \Loop {$ab \gets  cd$}{
  $abcd$\\
  $abdc  $                              }
  }
\end{algorithm}


\SetNlSty{texttt}{(}{)}
\begin{algorithm}
  \LinesNumbered
\setcounter{AlgoLine}{12}
% This is to restore vline mode if you did not take the package as \usepackage[linesnumbered,ruled,vlined]{algorithm2e}
  \SetAlgoVlined
%This is to hide Begin keyword
\SetKwBlock{Begin}{}{end}
\SetKwProg{Loop}{LOOP}{}{}
\Begin{
  $\mathcal{E} \leftarrow \emptyset$\;
  $\mathcal{E} \leftarrow \emptyset$\;
    \SetAlgoVlined \Loop {$ab \gets  cd$}{
  $abcd$\\
  $abdc  $                              }
  $\mathcal{E} \leftarrow \emptyset$\;
  $\mathcal{E} \leftarrow \emptyset$\;
  $\mathcal{E} \leftarrow \emptyset$\;     
  }
\end{algorithm}


\begin{algorithm}
\caption{fbf jfjf}
  \LinesNumbered
% This is to restore vline mode if you did not take the package as \usepackage[linesnumbered,ruled,vlined]{algorithm2e}
  \SetAlgoVlined
%This is to hide Begin keyword
\SetKwProg{Loop}{LOOP}{}{}
\SetKwBlock{Begin}{loop3}{end}
\Begin{
  $\mathcal{E} \leftarrow \emptyset$\;
  $\mathcal{E} \leftarrow \emptyset$\;
  \SetAlgoVlined \Loop {$ab \gets  cd$}{
  $abcd$\\
  $abdc  $                              }
  $\mathcal{E} \leftarrow \emptyset$\;
  $\mathcal{E} \leftarrow \emptyset$\;
  $\mathcal{E} \leftarrow \emptyset$\;     
  }
\end{algorithm}

\end{document}

在此处输入图片描述

对于行号,您可以使用\usepackage[ruled,vlined]{algorithm2e}代替\usepackage[linesnumbered,ruled,vlined]{algorithm2e},并使用 来编号行\nl。或者您也可以\LinesNotNumbered{在 之前使用begin{algorithm} 要删除规则行:有三种方法:首先,使用

\setlength{\algoheightrule}{0.8pt} % thickness of the rules above and below
\setlength{\algotitleheightrule}{0pt} % thicknes of the rule below the title

第二:删除算法标题下方的规则 - 使用 Algorithm2e

第三:好方法,顶部、底部、中线用algorithm2e 中的彩色水平线经过沃纳

答案3

对我来说,我通过减小文本大小解决了这个问题。

通过使用:\footnotsize\scriptsize

而且效果很好。

相关内容