How do I vertically center the text on a page?
5 Answers
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]
.
-
1
-
4
-
3I 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 -
2Perhaps 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
-
2@Nikos That's because it isn't a package but a documentclass type. So instead of
\documentclass{article}
you can usedocumentclass{memoir}
. Jun 2, 2019 at 3:17
This is what I found:
\begin{document}
\topskip0pt
\vspace*{\fill}
text
\vspace*{\fill}
%
\end{document}
-
5Very useful for stuff that does not take the placement modifiers, like equations. thanks– rllJan 8, 2016 at 11:17
-
9With 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
-
4How do you solve the problem with extra blank pages like @Jh0an1Uzca73gu1 mentioned? Jan 21, 2016 at 15:24
-
2I 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
-
1
This did the job for me:
\pagebreak
\hspace{0pt}
\vfill
Centered text.
\vfill
\hspace{0pt}
\pagebreak
-
7
-
1
-
I really don’t know/remember either, but as Mars said it’s required. @CiprianTomoiagă Nov 22, 2018 at 8:51
-
4
\hspace{0pt}
is required because vertical space is removed on the start of a document (e.g. pagebreak). May 23, 2019 at 12:00 -
2Of 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.
-
1you should provide an example of document (regardless that op didn't) which show vertical centering of text on page.– ZarkoFeb 22, 2018 at 1:36