2010-06-29 14 views
30

J'essaye de centrer verticalement un titre sur une page de taille personnalisée avec du latex. J'ai écrit le code suivant, mais pour une raison quelconque, il ne centre pas. Quelqu'un pourrait-il me signaler ce qui ne va pas?Centrer verticalement une page de titre

Merci!

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

Répondre

40

Il y a deux petits bugs dans votre code.

Tout d'abord, si vous voulez que le \vspace fonctionne au début ou à la fin d'une page, vous devez utiliser la version étoilée (\vspace*).

Cela fonctionnera, mais \maketitle est une macro assez compliquée, et si elle est utilisée comme dans votre exemple, elle met juste le titre à la deuxième page. Vous pouvez utiliser l'environnement titlepage, qui vous donne beaucoup plus de contrôle sur la façon dont la page de titre ressemble - y compris l'espacement. Par exemple, vous pouvez utiliser le code suivant:

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

Parfait, merci! –

15
\null % Empty line 
\nointerlineskip % No skip for prev line 
\vfill 
\let\snewpage \newpage 
\let\newpage \relax 
\maketitle 
\let \newpage \snewpage 
\vfill 
\break % page break 
+1

C'est excellent. J'ai créé environ 50 documents (qui étaient relativement importants) et utilisé ce code; travaillé à chaque fois. – alexy13

1

Si vous voulez que tout fonctionne même avec \maketitle mettre votre \vspace*{\fill} dans le premier et le dernier attribut, exp:

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

\date{[[date]]} 

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

\begin{document} 

    \maketitle 

    \newpage 

    [[text]] 

\end{document} 
Questions connexes