Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

How do I vertically center a table in the remaining part of a page? Specifically, I want to put a large table on a single page but I also want to have a subsection title line at the top. However, using the below code

\documentclass{article}
\usepackage{fontspec}
\setmainfont{TeX Gyre Termes}

\begin{document}
\subsection{Title}
\begin{figure}[p]\centering\begin{tabular}{c}
test\\
\end{tabular}\end{figure}
\end{document}

puts the table vertically centered, but on a new page.

Of course, others may want to have several paragraphs followed by a single float centered vertically in the remaining area of the page. So one wonders if there is a way to easily accomplish this?

share|improve this question
    
the [p] option for figure always goes to a new page, and doesn't allow anything else on that page. [b] will move the float to the bottom of the page, so that's not what you want either. in this case, you should probably try using just \begin{center} ... \end{center} and not treat it as a float at all, but add vertical space manually as necessary. –  barbara beeton Apr 15 '13 at 12:38
    
What about \vfill\begin{figure}\centering ... \end{figure}\vfill or am I missing something? –  Svend Tveskæg Apr 15 '13 at 12:50
    
That does not work (for me). It puts the table at the top with the subsection title following right after. –  laissezfaire Apr 15 '13 at 13:04
1  
Have you tried replacing \vfill with \vspace*{\fill}? –  AndreasT Apr 15 '13 at 13:22
    
That actually does the same as \vfill, at least for me. –  laissezfaire Apr 15 '13 at 13:24

1 Answer 1

up vote 7 down vote accepted

A float environment is hardly warranted here, since you seem to require a specific location for your tabular environment. Why not just do the following?

See this for more details on what floats are used for.

enter image description here

\documentclass{article}

\usepackage{caption}
\usepackage{lipsum}

\begin{document}

\section{Foobar}

Please refer to Table~\ref{fig:mytable} for more details.

\lipsum[1]

\vspace*{\fill}
{
\centering
\begin{tabular}{c|c|c|c} 
  28 & 1 & (1)(28) & 28 \\
  27 & 0 & (0)(27) &  0 \\
  26 & 1 & (1)(26) & 26 \\
  25 & 2 & (2)(25) & 50 \\
  24 & 3 & (3)(24) & 72 \\
\end{tabular}
\captionof{table}{A magnificent table}
\label{fig:mytable}
}
\vspace*{\fill}
\clearpage

\end{document}
share|improve this answer
    
two problems here: if any text comes after this, it will be centered unless \centering is turned off or "buried" in a group; also, if the following text, or the first paragraph, would fit on the page, it will go on the same page. it would be good to add \clearpage or \newpage after the second fill. –  barbara beeton Apr 15 '13 at 17:39
    
@barbarabeeton Good points. Thanks. –  Jubobs Apr 15 '13 at 17:44

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.