垂直居中标题页

Posted

技术标签:

【中文标题】垂直居中标题页【英文标题】:Vertically centering a title page 【发布时间】:2011-03-09 16:11:28 【问题描述】:

我正在尝试使用乳胶在自定义大小的页面上垂直居中标题。我编写了以下代码,但由于某种原因它没有居中。有人可以指出我有什么问题吗?

谢谢!

\documentclassarticle
\setlength\pdfpagewidth88.184mm
\setlength\pdfpageheight113.854mm

\usepackage[margin=0.5cm, paperwidth=88.184mm, paperheight=113.854mm]geometry

\title[[title]]
\date[[date]]
\author[[author]]

\begindocument
    \vspace\fill
    \maketitle
    \vspace\fill

    \newpage

    [[text]]
\enddocument

【问题讨论】:

【参考方案1】:

您的代码中有两个小错误。

首先,如果您希望 \vspace 在页面的开头或结尾起作用,您应该使用加星标的版本 (\vspace*)。

这可行,但\maketitle 是一个非常复杂的宏,如果像在您的示例中那样使用,它只会将标题放在第二页。您可以使用titlepage 环境,它可以让您更好地控制标题页的外观——包括间距。例如,您可以使用以下代码:

\documentclassarticle
\setlength\pdfpagewidth88.184mm
\setlength\pdfpageheight113.854mm

\usepackage[margin=0.5cm, paperwidth=88.184mm, paperheight=113.854mm]geometry

\begindocument
  \begintitlepage
    \vspace*\fill
    \begincenter
      Huge [[title]]\\[0.5cm]
      Large [[author\\[0.4cm]
      [[date]]
    \endcenter
    \vspace*\fill
  \endtitlepage

  [[text]]
\enddocument

【讨论】:

【参考方案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

【讨论】:

这太棒了。我创建了大约 50 个文档(这些文档相对重要)并使用了此代码;每次都工作。【参考方案3】:

如果你想让所有的东西都工作,即使\maketitle 把你的\vspace*\fill 放在第一个和最后一个属性中,exp:

 \title**\vspace*\fill**[[title]]

 \date[[date]]

 \author[[author]]**\vspace*\fill**[[

 \begindocument

    \maketitle

    \newpage

   [[text]]

\enddocument

【讨论】:

【参考方案4】:

正如 finrod 的回答,\maketitle 是一个非常复杂的宏,这就是我不想自己重写它的原因 (\renewcommand\maketitle...)。不过,复制、粘贴和编辑article.cls documentclass 的第 170-201 行,我可以添加一个新的自定义 (\newcommand\mymaketitle...),如下所示:

\documentclassarticle
\setlength\pdfpagewidth88.184mm
\setlength\pdfpageheight113.854mm

\usepackage[margin=0.5cm, paperwidth=88.184mm, paperheight=113.854mm]geometry

\titleTitle
\dateDate
\authorAuthor

\makeatletter
\newcommand\mymaketitle%
  \begintitlepage
    \null\vfil\vskip 40\p@
    \begincenter
      \LARGE \@title \par
      \vskip 2.5em
      \large \lineskip .75em \@author \par
      \vskip 1.5em
      \large \@date \par
    \endcenter\par
    \@thanks
    \vfil\null
  \endtitlepage

\makeatother

\begindocument
\mymaketitle

Text
\enddocument

输出:

【讨论】:

以上是关于垂直居中标题页的主要内容,如果未能解决你的问题,请参考以下文章

垂直居中

我如何在乳胶中垂直和水平居中报价?

垂直和水平居中的flexbox [重复]

垂直和水平div居中和高效css

CSS的水平居中与垂直居中

css 以下是在nuvo-express中水平和垂直居中页脚块所需的完整代码。包含浏览器前缀!超级帮助