將兩種演算法合併到一個浮點數中

將兩種演算法合併到一個浮點數中

考慮以下 MWE:

\documentclass[twocolumn]{article}

\usepackage{algorithm}
\usepackage{algorithmicx}
\usepackage{algpseudocode}

\begin{document}
\begin{figure}[t]
    \noindent\begin{minipage}{\columnwidth}
        \begin{algorithm}[H]
            \begin{algorithmic}[1]
                \Function{Foo}{parameters}
                \State{Do something}
                \State{\Return result}
                \EndFunction
            \end{algorithmic}
            \caption{Algorithm 1}
        \end{algorithm}
    \end{minipage}
    \noindent\begin{minipage}{\columnwidth}
        \begin{algorithm}[H]
            \begin{algorithmic}[1]
                \Function{Foo}{parameters}
                \State{Do something}
                \State{\Return result}
                \EndFunction
            \end{algorithmic}
            \caption{Algorithm 2}
        \end{algorithm}
    \end{minipage}
\end{figure}

Some text.
Then comes the next algorithm.
\pagebreak
\begin{algorithm}[t]
    \begin{algorithmic}[1]
        \Function{Foo}{parameters}
        \State{Do something}
        \State{\Return result}
        \EndFunction
    \end{algorithmic}
    \caption{Algorithm 3}
\end{algorithm}

And again some text.

\end{document}

我想將兩種(或可能更多)演算法組合在一個浮動物件中。我發現的唯一解決方案是使用兩個小型頁面並在其中添加一個新的演算法環境。該解決方案的問題在於它在演算法之上添加了一些空間。這在編譯文件時清晰可見。左欄中組合演算法上方有一些空間。右列中的單一演算法是否正確顯示?

如何刪除額外的空間,或者是否有更好的解決方案將兩種演算法組合在一個浮點數中?

答案1

有一個\baselineskip要刪除。

\documentclass[twocolumn]{article}

\usepackage{algorithm}
\usepackage{algorithmicx}
\usepackage{algpseudocode}

\begin{document}

\begin{figure}[tp]
\vspace*{-\baselineskip}

\begin{minipage}{\columnwidth}
\begin{algorithm}[H]
  \begin{algorithmic}[1]
    \Function{Foo}{parameters}
    \State{Do something}
    \State{\Return result}
    \EndFunction
  \end{algorithmic}
\caption{Algorithm 1}
\end{algorithm}
\end{minipage}

\begin{minipage}{\columnwidth}
\begin{algorithm}[H]
  \begin{algorithmic}[1]
    \Function{Foo}{parameters}
    \State{Do something}
    \State{\Return result}
    \EndFunction
  \end{algorithmic}
\caption{Algorithm 2}
\end{algorithm}
\end{minipage}

\end{figure}

Some text.
Then comes the next algorithm.

\vfill
\pagebreak

\begin{algorithm}[tp]
\begin{algorithmic}[1]
  \Function{Foo}{parameters}
  \State{Do something}
  \State{\Return result}
  \EndFunction
\end{algorithmic}
\caption{Algorithm 3}
\end{algorithm}

And again some text.

\end{document}

在此輸入影像描述

你不需要\noindent,因為內部縮排設定為零figure

相關內容