2 つのアルゴリズムを 1 つのページに並べて、違いを簡単に比較できるようにしようとしています。acm
テンプレート、algorithm2e
パッケージ、minipage
環境を使用していますが、次のエラーが発生します。
! LaTeX Error: [H] in two columns mode is not allowed for algorithms.
この投稿の手順に従いましたが、うまくいきませんでした。2列のドキュメント内の複数のアルゴリズム2eアルゴリズム
2 つのアルゴリズムを並べて配置する方法を知っている人はいますか?
これは私のサンプル コードですが、1 列のページでは正常に動作しますが、2 列のページでは動作しません。
\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}
答え1
パッケージは、シングル フロートかダブル フロートかに関係なく、2 列モードではalgorithm2e
許可されませんH
。パッケージ ファイルからの抜粋:
\if@twocolumn\@latex@error{[H] in two columns mode is not allowed for algorithms}\fi% TODO: SCREAM if H in two colums!
残念なことに、何らかの理由で、1つのalgorithm
環境で2つのキャプションが機能しません。解決策は、
figure
アルゴリズムを模倣した簡単なハックを使用することです。とてもアルゴリズムの順序には注意してください。番号付けが乱れる可能性がかなり高くなります。
もっと良い、よりクリーンな解決策があるかもしれません。
\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}