Mettre un titre au dessus d'un texte

L’auteur de ce sujet a trouvé une solution à son problème.
Auteur du sujet

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.

« La Nature est un livre écrit en langage mathématique », Galilée

+0 -0
Auteur du sujet

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.

« La Nature est un livre écrit en langage mathématique », Galilée

+0 -0

Cette réponse a aidé l’auteur du sujet

Et si tu changes ton premier code comme expliqué sur stackexchange (lien dans mon premier message), ça fonctionne ?

Si tu veux faire avec un tableau, cherches des choses comme "tabular latex percentage width", on trouve un certain package tabularx.

+0 -0
Auteur du sujet

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

`

« La Nature est un livre écrit en langage mathématique », Galilée

+0 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

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