Ich versuche, zwei Algorithmen nebeneinander auf einer Seite zu platzieren, damit man ihre Unterschiede leicht vergleichen kann. Ich verwende die acm
Vorlage, algorithm2e
das Paket und minipage
die Umgebung. Aber ich erhalte diesen Fehler:
! LaTeX Error: [H] in two columns mode is not allowed for algorithms.
Ich habe die Schritte in diesem Beitrag befolgt, aber es hat bei mir nicht funktioniert.mehrere Algorithm2e-Algorithmen in zweispaltigen Dokumenten
Weiß jemand, wie ich zwei Algorithmen nebeneinander stellen kann?
Dies ist mein Beispielcode. Er funktioniert auf einer einspaltigen Seite einwandfrei, aber nicht auf einer zweispaltigen Seite.
\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}
Antwort1
Das Paket algorithm2e
erlaubt keinen H
Zweispaltenmodus, egal ob Einzel- oder Doppelfloat. Ein kleiner Auszug aus der Paketdatei:
\if@twocolumn\@latex@error{[H] in two columns mode is not allowed for algorithms}\fi% TODO: SCREAM if H in two colums!
Das Schlimme ist, dass aus irgendeinem Grund zwei Untertitel in einer algorithm
Umgebung nicht funktionieren. Die Lösung kann ein schneller Hack sein, bei dem ein
figure
Algorithmus verwendet wird, der einen nachahmt. Sie müssensehrSeien Sie bei der Reihenfolge Ihrer Algorithmen vorsichtig. Es besteht eine ziemlich hohe Wahrscheinlichkeit, dass die Nummerierung durcheinander gerät.
Es könnte eine viel bessere und sauberere Lösung geben.
\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}