Vertically centering a title page

Clément picture Clément · Jun 29, 2010 · Viewed 96k times · Source

I'm trying to vertically center a title on a custom-sized page with latex. I've written the following code, but for some reason it doesn't center. Could someone please point me to what's wrong with it?

Thanks!

\documentclass{article}
\setlength{\pdfpagewidth}{88.184mm}
\setlength{\pdfpageheight}{113.854mm}

\usepackage[margin=0.5cm, paperwidth=88.184mm, paperheight=113.854mm]{geometry}

\title{[[title]]}
\date{[[date]]}
\author{[[author]]}

\begin{document}
    \vspace{\fill}
    \maketitle
    \vspace{\fill}

    \newpage

    [[text]]
\end{document}

Answer

finrod picture finrod · Jun 29, 2010

There are two small bugs in your code.

First, if you want the \vspace to work at the beginning or end of a page, you should use the starred version (\vspace*).

This would work, but \maketitle is a pretty complicated macro, and if used like in your example, it just puts the title at the second page. You can use the titlepage environment, which gives you much more command over how the title page looks like -- including the spacing. For example, you could use the following code:

\documentclass{article}
\setlength{\pdfpagewidth}{88.184mm}
\setlength{\pdfpageheight}{113.854mm}

\usepackage[margin=0.5cm, paperwidth=88.184mm, paperheight=113.854mm]{geometry}

\begin{document}
  \begin{titlepage}
    \vspace*{\fill}
    \begin{center}
      {Huge [[title]]}\\[0.5cm]
      {Large [[author}\\[0.4cm]
      [[date]]
    \end{center}
    \vspace*{\fill}
  \end{titlepage}

  [[text]]
\end{document}