我使用algorithm
/algorithmic
包编写了一些伪代码。框的宽度横跨整个页面,我想知道是否有任何方法可以限制它(因为实际代码不超过页面的中间)。实际上,我想将文本环绕在伪代码周围。
附言:我尝试了wrapfig
打包,但遇到了一些问题。如果有人能验证这种方法是否有效,那也会很有帮助。
有任何想法吗 ?
答案1
您可以将其放在algorithm
迷你页面的内部,并将其放在包装图的内部,它应该会像魔法一样起作用。
\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}
结果如下:
您可能需要调整 上的对齐修饰符,minipage
以使垂直对齐效果更好一些。或者,您可以使用lineheight
的可选项wrapfigure
。
答案2
algorithm2e
您可以使用包和而不使用来实现相同的结果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}