考虑
\documentclass{article}
\usepackage[tworuled]{algorithm2e}%%% v5.1 or v5.2. Could not find v5.3 for download.
\usepackage{lipsum}
\begin{document}
\lipsum[1]
\begin{algorithm}[H]
TEST1
\end{algorithm}
\begin{enumerate}
\item \lipsum[2]
\begin{algorithm}[H]
TEST2
\end{algorithm}
\end{enumerate}
\begin{algorithm}[H]
TEST3
\end{algorithm}
\end{document}
在输出中
TEST2 周围的水平线太长。如果我们在 TEST2 中添加更多文本,它也会超出右边框进入边距。是否有可能让 TEST2 或多或少自动在右文本边框处结束?
答案1
这是因为algorithm
s 是用来浮动的,而宽度方面没有任何限制(通常是\textwidth
)。如果您希望algorithm
s 内联(而不是浮动;通过使用[H]
ere float 说明符),那么您必须将其设置在minipage
预先指定的宽度内 -\linewidth
在这种情况下:
\documentclass{article}
\usepackage[tworuled]{algorithm2e}
\usepackage{lipsum}
\begin{document}
\lipsum[1]
\begin{algorithm}[H]
TEST1
\end{algorithm}
\begin{enumerate}
\item \lipsum[2]
\begin{minipage}{\linewidth}%
\begin{algorithm}[H]
TEST2
\end{algorithm}
\end{minipage}
\end{enumerate}
\begin{algorithm}[H]
TEST3
\end{algorithm}
\end{document}