Forum Linux.général LaTeX me joue des tours....

Posté par  .
Étiquettes : aucune
0
23
mar.
2005
Hello !
J'ai rédigé une petite extention personnelle qui me permet d'avoir des documents au format a4 auxquels je peux passer quelques options. Je l'ai appelée A4fr.
En voici le préambule :

\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{A4fr}[2005/23/03 v1.0a Extention a4 générique basée sur la classe report]
\LoadClass[10pt,a4paper]{report}
\DeclareOption{openright}{%
\PassOptionsToPackage{openright}{report}}
\DeclareOption{twoside}{%
\PassOptionsToPackage{twoside}{report}}
\ProcessOptions\relax


Lorsque je créé un document pour lequel je veux utiliser ma classe définie ci-dessus, je procède comme suit :

\documentclass[openright,twoside]{A4fr}

Et mes options sont bien passées au package report.
Ce qui me chagrine, c'est que pour qu'une nouvelle partie d'un document commence sur une page impaire, il faut la qualifier de chapter, mais cette commande ne me convient pas. La police de caractère est trop grosse, la mise en page de la page contenant le titre de chapitre n'est pas compatible avec la classe fancy (en tout cas, mes marges et mes en-têtes et pieds de pages disparaissent). Je voudrais donc utiliser un autre niveau de découpage.
Section me plait bien, mais il refuse de commencer sur une page impaire.
Quelqu'un aurait-il une solution à mon problème ?
Faut-il que je redéfinisse la commande chapter ou section ? Comment faire pour ne laisser une page blanche (style empty) avant la définition d'un nouveau niveau de découpage ? Tout est au même niveau, je n'ai pas de sous-parties, ni de sous-sous partie, etc.
Place aux experts, et merci par avance !
  • # Quelques réponses...

    Posté par  . Évalué à 2.

    Concernant la police de caractère tros grosse des titres de chapitre, le plus simple est de redéfinir la commande de chapitre en changeant la taille. C'est pas plus dur qu'un copier-coller.

    Concernant la classe fancy, c'est tout à fait normal car la mise en page des premières pages de chapitre est forcément différente. Avoir un en-tête au-dessus du titre de chapitre, c'est vraiment laid.

    Pour faire débuter ta section sur une page impaire, je pense que ça doit pas être très difficile non plus en redéfinissant la commande section. J'ai pas le report.cls sous la main, mais regarde comment ils font dedans pour les chapitres, après il suffit de copier. A mon avis, il teste simplement si le numéro de page courant est pair ou impair et il ajoute un saut de page en fonction.

    En revanche je comprends pas trop ce que tu entends par "tout est au même niveau".

    Ton extension te sers à faire des rapports ? Parce qu'à entendre ce que tu veux, j'ai l'impression que tu ne comptes pas faire de gros chapitres, il y a peut-être des classes plus adaptées que la classe report (article par exemple) à modifier.
    • [^] # Re: Quelques réponses...

      Posté par  . Évalué à 2.

      Merci tout plein. Même si tu ne m'as pas donné la solution, tu m'as donné les moyen de la trouver.
      D'abord, pour éclairer ta lanterne, le genre d'édition que je produit est tout bête.
      On a un en-tête de page sur chaque page qui identifie la société dans laquelle je travaille : nom, adresse et téléphone. Au centre, nous avons le titre de l'édition, et à droite la date de l'édition. En pied de page, nous avons la pagination à droite (page n/N). Dans le corps, nous avons plusieurs tableaux qui me posent bien souvent des problèmes, mais ce n'est pas systématique. J'y reviendrais ultérieurement.
      Avant ces tableaux (des fois, ce ne sont pas des tableaux, mais peu importe), j'ai parfois besoin de placer un "titre".
      Par exemple :
      Réglementation de machin
      ...
      ...
      ...
      Réglementation de truc
      ...
      ...
      ...
      Ce que je voulais faire, lors de mon post initial, c'était d'avoir ce Réglementation qui commence toujours sur une page impaire, sans me sacquer ma pagination ou ma mise en page. En fait, il me suffit de faire précéder mon \section* d'un \cleardoublepage pour arriver à mes fins (solution trouvée dans report.cls, grâce à toi).

      Parfois, ce n'est pas une réglementation, mais un tableau, une liste d'établissements, par exemple. Dans ce cas, et c'est là ce que je voulais évoquer comme problème avec les tableaux, j'ai une ligne complexe par établissement : certaines cases sont réparties sur plusieures lignes, d'autres sur plusieures colonnes, parfois elles le sont sur les deux, parfois elles ne sont absolument pas fusionnées.
      Si mon tableau était sur une page, et fait à la main, j'y arriverais sans (trop) de problèmes, mais ce n'est jamais le cas. J'utilise des scripts php pour récupérer les informations dans des bases de données et produire le fichier tex. Je ne peux donc prévoir les sauts de pages, etc.
      Une classe qui ne fonctionne pas trop mal, c'est xtabular. On peut faire des tableaux sur plusieures pages, avec des en-têtes répétés sur certaines pages, idem pour les pieds de tableaux et pleins d'autres choses.
      Le soucis, c'est que si ce package se comporte bien avec multirow, il n'en est pas de même avec multicolumn.... Et c'est bien ça le soucis, je ne connais pas de package me permettant de faire exactement ce que je voudrais, de manière universelle, et je ne m'y connais pas suffisement pour rédiger une classe aussi complexe.
      J'ai bien cherché le ctan, j'ai trouvé quelques truc (longtable, par ex), mais j'ai toujours plus ou moins le même problème : soit les sauts de pages sont cahotiques, soit mes lignes multiples sont coupées entre deux pages en fin de tableau, etc.
      Voilà, comme tu sembles t'y connaitre, certainement bien plus que moi visiblement, tu sais maintenant pourquoi j'utilise tex (c'est la seule solution gratuite, libre, "simple" et de qualité que j'aie trouvé pour produite des fichiers pdf depuis php).
      En tout cas merci pour ton aide, et désolé pour ce monologue un peu long, qui sera finalement lu par peu de gens, mais j'avais envie de taper ce matin !

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.