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

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

谢谢!

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

【问题讨论】:

    标签: latex vertical-alignment


    【解决方案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
      

      【讨论】:

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

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

       \title{**\vspace*{\fill}**[[title]]}
      
       \date{[[date]]}
      
       \author{[[author]]**\vspace*{\fill}**[[}
      
       \begin{document}
      
          \maketitle
      
          \newpage
      
         [[text]]
      
      \end{document}
      

      【讨论】:

        【解决方案4】:

        正如 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}
        

        输出:

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-11-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-12-02
          • 2021-05-16
          相关资源
          最近更新 更多