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]
.
-
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/… – xport Dec 23 '10 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? – Brent.Longborough Oct 19 '14 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}
. – jackw11111 Jun 2 '19 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 – rll Jan 8 '16 at 11:17
-
7With this suggestion, I get a perfect vertically center text on a page, but I get several blank pages in other areas of the document. – Jh0an1 Uzca73gu1 Jan 21 '16 at 11:12
-
4How do you solve the problem with extra blank pages like @Jh0an1Uzca73gu1 mentioned? – Daves Broadley Jan 21 '16 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 – Jh0an1 Uzca73gu1 Jan 22 '16 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ă – Bora M. Alper Nov 22 '18 at 8:51
-
3
\hspace{0pt}
is required because vertical space is removed on the start of a document (e.g. pagebreak). – Mateen Ulhaq May 23 '19 at 12:00 -
1
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. – Zarko Feb 22 '18 at 1:36