(too long for a comment, hence posted as an answer)
As barbara beeton has already pointed out in a comment, LaTeX must "encounter" the code for the figure*
environment before the start of the page on which the float is supposed to be placed. This condition is satisfied in the following example:
\documentclass[twocolumn]{article}
\usepackage{lipsum} % for filler text
\usepackage[demo]{graphicx} % omit 'demo' option in real doc.
\begin{document}
\lipsum[1-3] % filler text -- starts and ends on p. 1
\begin{figure*} % this float will be placed at top of p. 2
\includegraphics[width=\textwidth]{Structure_dimensions.eps}
\caption{Dimensions of cube}
\label{fig_dimensions}
\end{figure*}
\lipsum[4-12] % more filler text -- starts on p. 1, continues to p. 2
\end{document}
The LaTeX kernel provides a parameter called \dbltopfraction
; its default value is 0.7
, which means that in a two-column document only up to 70% of the (top of the) page may be occupied by floats. Should your figure*
env. be taller than this, LaTeX will either try to place the float on a page all by itself or, if that's somehow disabled, place the float at the end of the document. Is your figure*
document possibly taller than 0.7\textheight
?
figure*
located in the file? it must be present before latex starts processing the second page; the input code should preferably be placed between two paragraphs.\textwidth
, the\centering
instruction is redundant and may be omitted.