Подтвердить что ты не робот

Вертикальное центрирование титульной страницы

Я пытаюсь вертикально центрировать заголовок на странице нестандартного размера с латексом. Я написал следующий код, но по какой-то причине он не центрируется. Может ли кто-нибудь указать мне, что с ним не так?

Спасибо!

\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}
4b9b3361

Ответ 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}