Вертикальное центрирование титульной страницы
Я пытаюсь вертикально центрировать заголовок на странице нестандартного размера с латексом. Я написал следующий код, но по какой-то причине он не центрируется. Может ли кто-нибудь указать мне, что с ним не так?
Спасибо!
\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}
Ответы
Ответ 1
В вашем коде есть две небольшие ошибки.
Во-первых, если вы хотите, чтобы \vspace
работал в начале или конце страницы, вы должны использовать звездную версию (\vspace*
).
Это будет работать, но \maketitle
- довольно сложный макрос, и если он используется как в вашем примере, он просто помещает заголовок на вторую страницу. Вы можете использовать среду titlepage
, которая дает вам гораздо больше информации о том, как выглядит титульная страница - включая интервал. Например, вы можете использовать следующий код:
\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}
Ответ 2
\null % Empty line
\nointerlineskip % No skip for prev line
\vfill
\let\snewpage \newpage
\let\newpage \relax
\maketitle
\let \newpage \snewpage
\vfill
\break % page break
Ответ 3
Если вы хотите, чтобы все работало даже с \maketitle
, поместите ваш \vspace*{\fill}
внутри первого и последнего атрибутов, exp:
\title{**\vspace*{\fill}**[[title]]}
\date{[[date]]}
\author{[[author]]**\vspace*{\fill}**[[}
\begin{document}
\maketitle
\newpage
[[text]]
\end{document}