文本在算法(算法 2e)之前跳跃

  • 本文关键字:算法 跳跃 2e 文本 latex
  • 更新时间 :
  • 英文 :


假设我有一个包含以下内容的.tex文件:

    documentclass[10pt,a4paper]{article}
    usepackage[utf8]{inputenc}
    usepackage[ruled,vlined]{algorithm2e}
    begin{document}
    section{Section1}
    subsection{SubSection1}
    Text Before:newline
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec sem ex, rhoncus id mattis sit amet, vehicula sed magna. Sed lacus libero, cursus ac mi at, ornare mattis orci. Sed aliquet felis non scelerisque pulvinar. Maecenas congue volutpat neque sit amet placerat. Sed ultricies magna urna, nec egestas quam accumsan in. Nulla finibus quam dolor, at aliquet mauris tristique a. Aenean ultrices fermentum ante, a dignissim libero vehicula ac. Aenean ornare ullamcorper molestie. Nunc sagittis risus dolor, auctor sodales quam vestibulum a. Morbi tincidunt auctor odio. Sed feugiat diam nulla, commodo tincidunt lectus euismod vel. Aliquam quis maximus nunc, at cursus lectus. Vestibulum posuere aliquam diam, in malesuada nisi tincidunt id. Curabitur aliquam sapien cursus vestibulum tempor. Cras malesuada aliquet sapien et aliquet. Aliquam nibh metus, cursus at pharetra sit amet, tincidunt tincidunt ante. 
    subsection{Subsection2}
    %Algorithm
    SetKwFor{Loop}{Loop}{}{end}
    begin{algorithm}
    DontPrintSemicolon
    SetAlgoLined
    Loop{$infty$:}{
        $i++$;
    }
    Loop{$infty$:}{
        $i++$;
    }
    Loop{$infty$:}{
        $i++$;
    }
    Loop{$infty$:}{
        $i++$;
    }
    Loop{$infty$:}{
        $i++$;
    }
    Loop{$infty$:}{
        $i++$;
    }
    Loop{$infty$:}{
        $i++$;
    }
    Loop{$infty$:}{
        $i++$;
    }
    Loop{$infty$:}{
        $i++$;
    }
    Return{V};
    caption{{sc someAlgorithm.}}
    label{algo:Algorithm}
    end{algorithm}
    Text After:newline
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec sem ex, rhoncus id mattis sit amet, vehicula sed magna. Sed lacus libero, cursus ac mi at, ornare mattis orci. Sed aliquet felis non scelerisque pulvinar. Maecenas congue volutpat neque sit amet placerat. Sed ultricies magna urna, nec egestas quam accumsan in. Nulla finibus quam dolor, at aliquet mauris tristique a. Aenean ultrices fermentum ante, a dignissim libero vehicula ac. Aenean ornare ullamcorper molestie. Nunc sagittis risus dolor, auctor sodales quam vestibulum a. Morbi tincidunt auctor odio. Sed feugiat diam nulla, commodo tincidunt lectus euismod vel. Aliquam quis maximus nunc, at cursus lectus. Vestibulum posuere aliquam diam, in malesuada nisi tincidunt id. Curabitur aliquam sapien cursus vestibulum tempor. Cras malesuada aliquet sapien et aliquet. Aliquam nibh metus, cursus at pharetra sit amet, tincidunt tincidunt ante.
end{document}

我得到的结果如下所示:第一页第二页

第 2 节中的文本应该出现在算法之后,然而,它出现在它上面,我不知道这是算法 2e 的错误,还是我犯了一个我无法发现的错误。顺便说一下,这也发生在参考中,每次算法占用更多空间然后留在当前页面上时,它之后的事情就会超过它。

默认情况下,algorithm是一个浮动环境,如图形或表格。这意味着tex将尝试为它找到最佳位置。如果您认为可以做得更好,可以通过将选项H添加到algorithm环境中来强制将其放置在文本中的确切位置:

    documentclass[10pt,a4paper]{article}
    usepackage[utf8]{inputenc}
    usepackage[ruled,vlined]{algorithm2e}
    begin{document}
    section{Section1}
    subsection{SubSection1}
    Text Before:newline
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec sem ex, rhoncus id mattis sit amet, vehicula sed magna. Sed lacus libero, cursus ac mi at, ornare mattis orci. Sed aliquet felis non scelerisque pulvinar. Maecenas congue volutpat neque sit amet placerat. Sed ultricies magna urna, nec egestas quam accumsan in. Nulla finibus quam dolor, at aliquet mauris tristique a. Aenean ultrices fermentum ante, a dignissim libero vehicula ac. Aenean ornare ullamcorper molestie. Nunc sagittis risus dolor, auctor sodales quam vestibulum a. Morbi tincidunt auctor odio. Sed feugiat diam nulla, commodo tincidunt lectus euismod vel. Aliquam quis maximus nunc, at cursus lectus. Vestibulum posuere aliquam diam, in malesuada nisi tincidunt id. Curabitur aliquam sapien cursus vestibulum tempor. Cras malesuada aliquet sapien et aliquet. Aliquam nibh metus, cursus at pharetra sit amet, tincidunt tincidunt ante. 
    subsection{Subsection2}
    %Algorithm
    SetKwFor{Loop}{Loop}{}{end}
    begin{algorithm}[H]
    DontPrintSemicolon
    SetAlgoLined
    Loop{$infty$:}{
        $i++$;
    }
    Loop{$infty$:}{
        $i++$;
    }
    Loop{$infty$:}{
        $i++$;
    }
    Loop{$infty$:}{
        $i++$;
    }
    Loop{$infty$:}{
        $i++$;
    }
    Loop{$infty$:}{
        $i++$;
    }
    Loop{$infty$:}{
        $i++$;
    }
    Loop{$infty$:}{
        $i++$;
    }
    Loop{$infty$:}{
        $i++$;
    }
    Return{V};
    caption{{sc someAlgorithm.}}
    label{algo:Algorithm}
    end{algorithm}
    Text After:newline
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec sem ex, rhoncus id mattis sit amet, vehicula sed magna. Sed lacus libero, cursus ac mi at, ornare mattis orci. Sed aliquet felis non scelerisque pulvinar. Maecenas congue volutpat neque sit amet placerat. Sed ultricies magna urna, nec egestas quam accumsan in. Nulla finibus quam dolor, at aliquet mauris tristique a. Aenean ultrices fermentum ante, a dignissim libero vehicula ac. Aenean ornare ullamcorper molestie. Nunc sagittis risus dolor, auctor sodales quam vestibulum a. Morbi tincidunt auctor odio. Sed feugiat diam nulla, commodo tincidunt lectus euismod vel. Aliquam quis maximus nunc, at cursus lectus. Vestibulum posuere aliquam diam, in malesuada nisi tincidunt id. Curabitur aliquam sapien cursus vestibulum tempor. Cras malesuada aliquet sapien et aliquet. Aliquam nibh metus, cursus at pharetra sit amet, tincidunt tincidunt ante.
end{document}

最新更新