# Vertically center text on a page

How do I vertically center the text on a page?

The memoir document class provides, among a lot of other excellent things, the vplace environment.

Try:

\documentclass{memoir}
\begin{document}
\begin{vplace}[0.7]
This is some text to be centered vertically.
\end{vplace}
\end{document}


[0.7] is an optional parameter specifying the ratio of space above to space below. The default value is [1].

• This is great! I am using memoir, so I prefer this solution. Aug 27, 2010 at 7:05
• Fantastic! I think we ought to start a memoir fanclub... Aug 27, 2010 at 11:49
• I haven't tried your code above. But I am not sure your code will produce an exact vertically-centered object since I notice your code does not specify \topskip0pt right before \begin{vplace}[1]. For more details, see tex.stackexchange.com/questions/7286/… Dec 23, 2010 at 2:30
• Perhaps the anonymous down-voter would care to share his/her reasons here, so that I, and others, can learn and improve? Oct 19, 2014 at 12:37
• @Nikos That's because it isn't a package but a documentclass type. So instead of \documentclass{article} you can use documentclass{memoir}. Jun 2, 2019 at 3:17

This is what I found:

\begin{document}
\topskip0pt
\vspace*{\fill}
text
\vspace*{\fill}
%
\end{document}

• Very useful for stuff that does not take the placement modifiers, like equations. thanks
– rll
Jan 8, 2016 at 11:17
• With this suggestion, I get a perfect vertically center text on a page, but I get several blank pages in other areas of the document. Jan 21, 2016 at 11:12
• How do you solve the problem with extra blank pages like @Jh0an1Uzca73gu1 mentioned? Jan 21, 2016 at 15:24
• I use the following code, suggestion of other tex.stackexchange.com thread: \clearpage \vspace*{\fill} \begin{center} \begin{minipage}{\textwidth} \centering{This is some text to be centred vertically.} \end{minipage} \end{center} \vfill % equivalent to \vspace{\fill} \clearpage Jan 22, 2016 at 11:39
• Jan 22, 2016 at 15:54

This did the job for me:

\pagebreak
\hspace{0pt}
\vfill
Centered text.
\vfill
\hspace{0pt}
\pagebreak

• why do you also need the hspace{0pt} ? Mar 15, 2018 at 2:40
• I want to know that, too. It seems to be required, though.
– Mars
Nov 22, 2018 at 0:33
• I really don’t know/remember either, but as Mars said it’s required. @CiprianTomoiagă Nov 22, 2018 at 8:51
• \hspace{0pt} is required because vertical space is removed on the start of a document (e.g. pagebreak). May 23, 2019 at 12:00
• Of all solutions proposed here, this is the one that worked for me. Dec 5, 2020 at 10:45

In ConTeXt MkIV you use standardmakeup. For horizontal centering add the additional key align=middle as in the example below.

\starttext
\startstandardmakeup[align=middle]
Centered text!
\stopstandardmakeup
\stoptext


Very simple way, like described here.

Text at the top of the page.

\vspace{5mm} %5mm vertical space

This text still at the top, 5mm below the first paragraph.

\vspace{25mm} %25mm vertical space

This text is somewhere in the middle.

\vfill

Text at the bottom of the page.

• you should provide an example of document (regardless that op didn't) which show vertical centering of text on page. Feb 22, 2018 at 1:36