J'essaie de centrer verticalement un titre sur une page de taille personnalisée en latex. J'ai écrit le code suivant, mais pour une raison quelconque, il n'est pas centré. Est-ce que quelqu'un pourrait m'indiquer ce qui ne va pas?
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}
Il y a deux petits bugs dans votre code.
Premièrement, 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 fonctionnerait, mais \maketitle
est une macro assez compliquée, et si elle est utilisée comme dans votre exemple, elle place simplement le titre à la deuxième page. Vous pouvez utiliser l'environnement titlepage
, qui vous donne beaucoup plus de contrôle sur l'apparence de la page de titre, 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}
\null % Empty line
\nointerlineskip % No skip for prev line
\vfill
\let\snewpage \newpage
\let\newpage \relax
\maketitle
\let \newpage \snewpage
\vfill
\break % page break
Si vous voulez que tout fonctionne même avec \maketitle
, insérez votre \vspace*{\fill}
dans les premier et dernier attributs, exp:
\title{**\vspace*{\fill}**[[title]]}
\date{[[date]]}
\author{[[author]]**\vspace*{\fill}**[[}
\begin{document}
\maketitle
\newpage
[[text]]
\end{document}
Comme dans la réponse de finrod, \maketitle
est une macro assez compliquée, c'est pourquoi je n'ai pas eu envie de l'écraser moi-même (\renewcommand\maketitle{
...). Néanmoins, en copiant, en collant et en modifiant les lignes 170 à 201 de article.cls documentclass , je pourrais en ajouter un nouveau à personnaliser (\newcommand\mymaketitle{
...) comme suit:
\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}
Le résultat: