Combina dos algoritmos en un flotante

Combina dos algoritmos en un flotante

Considere el siguiente 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}

Quiero combinar dos (o potencialmente más) algoritmos en un objeto flotante. La única solución para esto que encontré es usar dos minipáginas y agregar un nuevo entorno de algoritmo dentro. El problema con la solución es que agrega algo de espacio encima del algoritmo. Esto es claramente visible al redactar el documento. Hay algo de espacio encima de los algoritmos combinados en la columna de la izquierda. ¿El algoritmo único de la columna de la derecha aparece correctamente?

¿Cómo puedo eliminar el espacio adicional o existe alguna solución mejor para combinar dos algoritmos en un flotante?

Respuesta1

Hay un \baselineskipque quitar.

\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}

ingrese la descripción de la imagen aquí

No es necesario \noindent, porque la sangría se establece en cero en el interior figure.

información relacionada