18

I use algorithm/algorithmic packages to write some pseudocode. The width of the box spans across the entire page and I was wondering if there is any way to constrain it (since the actual code doesn't exceed the mid of the page). Practically, I want to wrap text around my pseudocode.

ps: I tried wrapfig package, but I had some problems. Would be also helpful if anyone could verify whether this approach works.

Any ideas ?

Paulo Cereda
  • 44,220
  • Don't forget about [tex.se]; LaTeX is odd enough that you'd be better served asking in a community dedicated to LaTeX and TeX. (I've flagged for moderator attention to migrate, but in case the mod doesn't migrate -- we do have LaTeX questions here, in any case -- just know it's available.) –  Dec 12 '11 at 08:27
  • Welcome to TeX.sx! Your question was migrated here from another StackExchange site. Please register on this site, too, and make sure that both accounts are associated with each other, otherwise you won't be able to comment on or accept answers or edit your question. :) – Paulo Cereda Dec 12 '11 at 10:28

2 Answers2

19

You can put the algorithm inside of a minipage, put that inside of the wrapfigure, and it should work like a charm.

\documentclass{article}
\usepackage{algorithmic}
\usepackage{algorithm}
\usepackage{wrapfig}
\usepackage{lipsum}
\begin{document}
  \lipsum[1]
  \begin{wrapfigure}{L}{0.5\textwidth}
    \begin{minipage}{0.5\textwidth}
      \begin{algorithm}[H]
        \caption{assignment algorithm}
        \begin{algorithmic}
          \STATE i $\leftarrow$ j
        \end{algorithmic}
      \end{algorithm}
    \end{minipage}
  \end{wrapfigure}
  \lipsum
\end{document}

And the result:

Wrapped algorithm

You might want to tweak the alignment modifier on the minipage to get vertical alignment to work out a little better. Alternatively, you can play with the optionial lineheight of wrapfigure.

Roelof Spijker
  • 17,663
  • 5
  • 55
  • 63
5

You can achieve the same result using algorithm2e package and without minipage.

\documentclass{article}
\usepackage{wrapfig}
\usepackage{lipsum}
\usepackage[ruled]{algorithm2e}
\begin{document}
  \lipsum[1]
  \begin{wrapfigure}[6]{L}{0.5\textwidth} %<-- Wrapfigure covers 6 lines
      \begin{algorithm}[H]                %<-- Remove float environment
        \SetCustomAlgoRuledWidth{0.45\textwidth}  %<-- For aesthetics  
        \caption{assignment algorithm}
           i $\leftarrow$ j
      \end{algorithm}
  \end{wrapfigure}
  \lipsum
\end{document}

Wrapped pseudo using algorithm2e

Mahmoud Elfar
  • 181
  • 1
  • 6