我正在使用算法环境编写一个算法,并且无论我做什么,Latex 都会不断将其推到最后一页,这只是一个简短的示例。
\documentclass[a4paper,10pt, twoside]{book}
\usepackage{algorithm}
\usepackage{algorithmic}
\usepackage[utf8]{inputenc}
\begin{document}
\begin{algorithm}[h]
\caption{my algorithm}
\label{alg:example}
\begin{algorithmic}
\STATE \REQUIRE \(F, G, j\)
\STATE \(B_{1} = \{b_{1}[1],\dots,b_{1}[|g_r|]\}\)
\STATE \(B_{1}\)
\FOR{\(i=1\) \TO \(n\)}
\STATE DO smoething...
\STATE
\ENDFOR
\ENDFOR
\end{algorithmic}
\end{algorithm}
\end{document}
问题是算法只有一页长,所以我尝试放置 h 参数,然后在算法后面放置 \newpage,这样其他所有内容都会排在它后面。但无论我怎么尝试,它仍然会忽略我的所有命令并将其放在最后一页 :S
答案1
在您的代码中替换\begin{algorithm}[h]
为。\begin{algorithm}[H]
它会将浮点精确地(而不是近似地)放置在 LATEX 代码中的位置。请参阅浮点说明符。
请注意,使用 [H] 说明符时可能会出现一些缺点[H] 说明符的缺点。但是,它在我的代码中运行没有任何问题(根据问题的性质,代码太长,无法在这里附加)。
或者,说明符 [!htbp] 也可以工作,并且不会浪费算法位置之前的任何页面区域。
这两个说明符在我的代码中均可正常运行,没有任何错误。