Mettre un titre au dessus d'un texte

Le problème exposé dans ce sujet a été résolu.

Salut à tous,

j’essaye actuellement de faire une classe latex pour mes fiches de bac de français mais j’ai un problème sur la mise en forme.

État actuel du maketitle

En fait, comme on peut le voir, au niveau des trois éléments siècle, genre et mouvement, l’élément mouvement est légèrement plus haut que les autres items ce qui est très perturbant de plus mon code par rapport à ces éléments est pas top.

Voici le code source en question :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
% Header
\newtcolorbox{@titlebox}[1]{%
    tikznode boxed title,
    enhanced,
    boxrule=1pt,
    arc=0mm,
    interior style={white},
    halign=center,
    attach boxed title to top center= {yshift=-\tcboxedtitleheight/2},
    fonttitle=\scshape\large,
    colbacktitle=white,coltitle=black,
    boxed title style={size=normal,colframe=white,boxrule=0pt},
    title={#1}}

\newtcolorbox{@elembox}[1]{%
  tikznode boxed title,
  enhanced,
  boxrule=0pt,
  colframe=white,
  arc=0mm,
  interior style={white},
  width=\linewidth/4,
  halign=center,
  attach boxed title to top center= {yshift=-\tcboxedtitleheight/2},
  fonttitle=\scshape\normalsize,
  colbacktitle=white,coltitle=black,
  boxed title style={size=title,colframe=white,boxrule=0pt},
  title={#1}}

\newcommand*{\oeuvre}[1]{\gdef\@oeuvre{#1}}
\newcommand*{\@oeuvre}{}

\newcommand*{\objet}[1]{\gdef\@objet{#1}}
\newcommand*{\@objet}{\texttt{\string\objet} currently not
  set. Please fix this.}

\newcommand*{\siecle}[1]{\gdef\@siecle{#1}}
\newcommand*{\@siecle}{}

\newcommand*{\textenumero}[1]{\gdef\@textenumero{#1}}
\newcommand*{\@textenumero}{}

\newcommand*{\genre}[1]{\gdef\@genre{#1}}
\newcommand*{\@genre}{}

\newcommand*{\mouv}[1]{\gdef\@mouv{#1}}
\newcommand*{\@mouv}{}

\renewcommand*{\maketitle}{
  \noindent
  \begin{@titlebox}{Texte \@textenumero}
    \vspace{0.5em}
    {\scshape\normalsize\@objet\par}
    {\LARGE\@title\unskip\strut\par}
    {\itshape\Large\@oeuvre\unskip\par}
    {\large\@date\strut\par}
    {\Large\@author\strut\par}
    \begin{tabular}{ccc}
      \begin{@elembox}{Siècle}
        \@siecle
      \end{@elembox} &
      \begin{@elembox}{Genre}
        \@genre
      \end{@elembox} &
      \begin{@elembox}{Mouvement}
        \@mouv
      \end{@elembox}
    \end{tabular}
  \end{@titlebox}
  \vspace{1.5cm}
  }

J’espère que vous pourrez m’aider et je vous en remercie d’avance.

+0 -0

Mais peut-être qu’un tableau est mieux adapté.

blo yhg

Ok, j’ai trouvé ça avec les tableaux, du coup le code est

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
% […]

\newcolumntype{C}{>{\centering}m{0.25\linewidth}}

% […]

\renewcommand*{\maketitle}{
  \noindent
  \begin{@titlebox}{Texte \@textenumero}
    \vspace{0.5em}
    {\scshape\normalsize\@objet\par}
    {\LARGE\@title\unskip\strut\par}
    {\itshape\Large\@oeuvre\unskip\par}
    {\large\@date\strut\par}
    {\Large\@author\strut\par}
    \begin{tabular}{CCC}
      \scshape Siècle & \scshape Genre & \scshape Mouvement \\
      \@siecle & \@genre & \@mouv
    \end{tabular}
  \end{@titlebox}
  \vspace{1.5cm}
  }

Mais mouvement fait encore plus n’importe quoi.

Yolo

À noter que j’ai une erreur à la compilation

1
2
3
4
! Extra alignment tab has been changed to \cr.
<recently read> \endtemplate 

l.14 \maketitle

mais j’ai rien trouvé sur Duckduckgo.

+0 -0

Ok, merci beaucoup blo yhg, j’ai trouvé la solution ici. Le code final :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
% […]
\RequirePackage{tabu}

% […]

\renewcommand*{\maketitle}{
  \noindent
  \begin{@titlebox}{Texte \@textenumero}
    \vspace{0.5em}
    {\scshape\normalsize\@objet\par}
    {\LARGE\@title\unskip\strut\par}
    {\itshape\Large\@oeuvre\unskip\par}
    {\large\@date\strut\par}
    {\Large\@author\strut\par}
    \begin{tabu} to \linewidth {*3{X[c]}}
      {\scshape Siècle} & {\scshape Genre} & {\scshape Mouvement} \\
      \@siecle & \@genre & \@mouv
    \end{tabu}
  \end{@titlebox}
  \vspace{1.5cm}
  }

`
+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte