37

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

谢谢!

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

4 回答 4

49

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

首先,如果您希望在\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}
于 2010-06-29T15:51:58.587 回答
18
\null  % Empty line
\nointerlineskip  % No skip for prev line
\vfill
\let\snewpage \newpage
\let\newpage \relax
\maketitle
\let \newpage \snewpage
\vfill 
\break % page break
于 2010-06-29T15:48:16.150 回答
3

如果你想让一切正常工作,即使\maketitle将你\vspace*{\fill}的第一个和最后一个属性放在里面,exp:

 \title{**\vspace*{\fill}**[[title]]}

 \date{[[date]]}

 \author{[[author]]**\vspace*{\fill}**[[}

 \begin{document}

    \maketitle

    \newpage

   [[text]]

\end{document}
于 2013-03-19T10:40:15.453 回答
1

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

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

\makeatletter
\newcommand\mymaketitle{%
  \begin{titlepage}
    \null\vfil\vskip 40\p@
    \begin{center}
      {\LARGE \@title \par}
      \vskip 2.5em
      {\large \lineskip .75em \@author \par}
      \vskip 1.5em
      {\large \@date \par}
    \end{center}\par
    \@thanks
    \vfil\null
  \end{titlepage}
}
\makeatother

\begin{document}
\mymaketitle

Text
\end{document}

输出:

输出截图

于 2018-07-01T14:23:19.187 回答