The answer to the question in the title is that you do not need the float
package or \restylefloat
. The package is a good package and has several useful extensions to the built in float features, but you do not need it (and it does not affect the float position, just formatting).
"Float" here is unrelated to floating point numbers, it refers to the traditional typesetting technique of moving tables and figures and other unbreakable objects to help with page breaking.
You may be used to a system that can not do that, You can of course have non-floating tables in latex:
text text text
\begin{center}
\begin{tabular}{cc}
aaa &bbb\\
ccc&ddd
\end{tabular}
\end{center}
text text
The table will just come between the paragraphs.
However this is usually not a good idea, if the table takes up (say) half a page height and the first paragraph is already more than half way down the page, then there will have to be a forced page break and an ugly white space.
For this reason typeset works almost always take tables and figures as inserts that are not in the main document flow but inserted at a convenient place and always referenced indirectly from the text, so not "the table below" but "table 5 on page 4" or whatever.
The table
environment implements this feature (and does nothing else). Despite its name it can contain any content, not just a tabular
and it re-inserts it in one of 4 places. h
(at its location in the source, if it fits there) t
(at the top of a page) b
(at the bottom of a page) or p
on a page that just consists of floats.
In the standard classes the default position is [tbp]
so if you want it to possibly be placed mid-page then use the option [htbp]
to allow h
. Avoid using h
on its own as that gives latex very few places to place the float.
The float package adds an option [H]
which makes the table a non-float and works as you indicated that you wanted, it always appears at its position in the source. This can be convenient to take manual control sometimes, but as noted above this positioning will typically produce ugly page breaks as it disables the float mechanism which is trying to avoid these bad breaks.
table
environment is to allow latex to move it to help with page breaking. If you just usetabular
without thetable
environment then it will not float (but beware this usually produces poor typesetting)!
says to ignore those constraints.float
package adds some useful features but you don't need it for anything you mention here apart fromH
and you\restylefloat
isn't needed fro anything you mention here.t
float area) (there are other constraints for bottom, or total on page and fraction of the page height etc. topnumber was just an example of one of the constraints that is ignored if you use ! (basically you should never use ! until final tweaks of the document when all editing done)