![使 latex 自动选择算法的位置](https://linux22.com/image/294758/%E4%BD%BF%20latex%20%E8%87%AA%E5%8A%A8%E9%80%89%E6%8B%A9%E7%AE%97%E6%B3%95%E7%9A%84%E4%BD%8D%E7%BD%AE.png)
我在一个文件中写下了几种算法,并希望 latex 将它们分散到整个文档中以节省空间。例如,一种算法可能只有 3 或 4 行,而另一种算法可能有 20 到 30 行。那么我该如何告诉 latex 将较小的算法挤进文档中的文本中呢?
\documentclass{llncs}
\usepackage{llncsdoc}
\usepackage{lipsum}
\usepackage[ruled,vlined,linesnumbered,noresetcount]{algorithm2e}
\AlgoDisplayBlockMarkers
\begin{document}
\lipsum
\begin{algorithm}
\caption{alg1\label{1}}
...\;
...\;
...\;
...
\end{algorithm}
\begin{algorithm}
\caption{alg2\label{2}}
...\;
...\;
...
\end{algorithm}
\begin{algorithm}
\caption{alg3\label{3}}
...\;
...\;
...\;
...
\end{algorithm}
\begin{algorithm}
\caption{alg4\label{4}}
...\;
...\;
...\;
...\;
...
\end{algorithm}
\lipsum
\end{document}
答案1
这实际上不是一个答案,但我感觉没有人会很快提出答案。这是对这个问题的先前评论的汇总。
简单的回答是否定的,不可能影响算法的顺序,也不可能优化它们周围的整体空白。
长答案是,正如 Werner 指出的那样,不仅限于algorithms
浮点数,而是更普遍地适用于浮点数。Frank Mittlebach 在他的详尽回答中很好地解释了这一点https://tex.stackexchange.com/a/39020/141947。
为了方便获取我认为与此相关的精确信息,我将仅在此重现他的部分回答:
对于浮点数,这意味着算法是贪婪的,即,当它遇到浮点数时,它会立即尝试放置它,如果成功,它永远不会改变其决定。这意味着它可能会选择一个根据稍后收到的数据可能被视为较差的解决方案。