Estoy intentando colocar dos algoritmos uno al lado del otro en una página para que sea fácil comparar sus diferencias. Estoy usando la acm
plantilla, algorithm2e
el paquete y minipage
el entorno. pero me sale este error:
! LaTeX Error: [H] in two columns mode is not allowed for algorithms.
He seguido estos pasos en esta publicación, pero no me funciona.Múltiples algoritmos de Algoritm2e en documentos de dos columnas.
¿Alguien sabe cómo puedo poner dos algoritmos uno al lado del otro?
Este es mi código de muestra. Funciona bien en una página de una columna, pero no funciona en una página de dos columnas.
\begin{minipage}[t]{8cm}
\null
\begin{algorithm}[H]
% \caption{Algo 1}
\SetKwData{Left}{left}\SetKwData{This}{this}\SetKwData{Up}{up}
\SetKwFunction{Union}{Union}\SetKwFunction{FindCompress}{FindCompress}
\SetKwInOut{Input}{Generation step}\SetKwInOut{Output}{Initialization step}
\Input{\color{blue} Generate }
\Output{ $K$}
\BlankLine
\Output{\color{blue}***,**}
\emph{\bf{\color{blue} 444}}\;
\emph{\color{blue} 2222}\;
\emph{\color{blue}11111\;}
\emph{\color{blue}111\;}
\emph{###\;
}
\BlankLine
\emph{\bf{\color{blue} Received $ID$}}\;
\For{\color {blue} each node that receives a ID}{
\If{\color {blue} ##}{\color {blue} Add value to the list
}
\BlankLine
\For{Each $received ID$}{
Find *,$s$\;
\eIf{$s$ $>$ ID$}{do nothing}{Replace #}
}
}
\BlankLine
Find the smallest element on the list, $s$\;
\eIf{$s$ $=$ $0$}{###}{*** }\BlankLine
\BlankLine
\caption{DNE Algorithm}\label{DNE Algorithm}
\end{algorithm}
\end{minipage}%
\removelatexerror
\begin{minipage}[t]{8cm}
\null
\begin{algorithm}[H]
\emph{**}\;
% \Output{***}
\emph{**}\;
\emph{** size to 1}\;
\BlankLine
\emph{\bf{Broadcast}}\;
\emph{broadcast it}\;
\BlankLine
\emph{\bf{Estimation}}\;
\For{each ID$}{
Find the smallest ,$s$\;
\eIf{$s$ $>$ $received ID$}{do nothing}{Replace $s$ }
}
\BlankLine
Find the smallest element on the list, $s$\;
\eIf{$s$ $=$ $0$}{1111}{ab}\BlankLine
\caption{Algorithm}\label{DNE-Algorithm}
\end{algorithm}
\end{minipage}
Respuesta1
El paquete algorithm2e
no permite H
el modo de dos columnas, independientemente de si es flotante simple o doble. Un pequeño extracto del archivo del paquete:
\if@twocolumn\@latex@error{[H] in two columns mode is not allowed for algorithms}\fi% TODO: SCREAM if H in two colums!
Lo malo es que, por alguna razón, dos subtítulos en un algorithm
entorno no funcionan. La solución puede ser un truco rápido, utilizando un
figure
algoritmo de imitación. Tienes que sermuyTenga cuidado con el orden de sus algoritmos de esa manera. Existe una probabilidad bastante alta de que la numeración se estropee.
Podría haber una solución mucho mejor y más limpia.
\documentclass[twocolumn
]{article}
\usepackage{blindtext}
\usepackage{algorithm2e}
\begin{document}
\blindtext[5]
\begin{algorithm*}%[H]
\begin{minipage}{0.45\textwidth}
\rule{\linewidth}{2cm}
\caption{left side of a pretty pretty long long
long very very long caption}
\end{minipage}\hfill
\begin{minipage}{0.45\textwidth}
\rule{\linewidth}{4cm}
\caption{right side of a pretty pretty long long
long very very long caption}
\end{minipage}
\end{algorithm*}
\blindtext
\begin{figure*}
\makeatletter
\def\@captype{algocf}
\makeatother
\begin{minipage}{0.45\textwidth}
\rule{.5\linewidth}{2cm}
\caption{left side of a pretty pretty long long
long very very long caption}
\end{minipage}\hfill
\begin{minipage}{0.45\textwidth}
\rule{\linewidth}{4cm}
\caption{right side}
\end{minipage}
\end{figure*}
\blindtext[5]
\end{document}