Gp2mv3 / Syntheses

Synthèses et travaux pour l'EPL
Other
97 stars 220 forks source link

Styling of \section and \subsection is incorrect in epleval-derived classes due to bad titlesec options #841

Open Jimvy opened 4 years ago

Jimvy commented 4 years ago

Ex: the LEPL1803 2016 June exam contains a small unnumbered (starred) section before the questions, where there are some instructions and recaps. In eplbase.cls, we define, using sectsty, the sections, subsections... to have a sans-serif font. In epleval.cls, in order to have the stylish icon for the question number, we use titlesec to change the styling. But titlesec erases the modifications done with sectsty, so the font is back to a serif font, while the subsections are still with a sans-serif font.

This is ridiculously ugly. I can't believe it's by design.

(As I'm working in #840 to insert some special code into \section, I've come across this inconsistency.)

Either we repair the titleformat command to have a sans-serif font again. Or we change the styling of all (sub)sections in epleval.cls to go back to a serif font. Or we give up with the styling question number (which would be my personal preference as it allows a much "cleaner" code for what I'm trying to achieve in #840 ).

Opinions?

(Related to #127 )

Jimvy commented 4 years ago

Newly found bug: actually, in exercises.cls the titles are also in serif, be it \section or \subsubsection... So maybe it's by design?

Jimvy commented 4 years ago

Bon ben va falloir choisir ce qu'on fait alors (je switch en français pour être un peu plus "ouvert"). Je vois quelques options :

  1. On met du sans-serif pour les titres (sections, sous-sections) des synthèses et notes. On met du serif pour les titres des exercices, examens, tests, QCMs (tout ce qui contient des corrections d'étudiants). C'est essentiellement ce qu'il y a actuellement, à part que dans les examens et tests les sous-sections etc sont en sans-serif et ont gardé la taille originale des sous-sections, du coup on a des mini-titres de sections en serif et des gros titres de sous-sections en sans-serif ; et dans les exercices les sous-sous-sections et les paragraphes sont en sans-serif -> on changerait ça.
  2. On met du sans-serif partout, en respectant les tailles. Ca a le mérite que le titre des questions a le même styling que le titre de l'environnement solution (qui est en sans-serif aussi).
  3. Même chose que le 1, sauf que les tailles des sections, sous-sections etc dans les examens et tests sont tous mis à \normalsize et en gras. Ca marche vu qu'idéalement, dans les examens et tests, il n'y a qu'un seul niveau de sections. Mais du coup on a 3 styles différents (summary/notes, exercises/mcqs, eval/exam/test).
  4. Fusion du 2 et du 4, où les examens et tests ont leurs titres en sans-serif mais avec \normalsize et gras ou alors juste \large.

Aussi, pour le moment la majeure partie de ces incohérences vient de l'utilisation de sectsty dans eplbase.cls et de titlesec dans epleval.cls et eplexercises.cls (et eplmcq.cls). Le problème c'est que titlesec écrase les définitions précédentes des \(sub)section, et donc écrase sectsty là où on le modifie (càd, les \section dans epleval.cls et les \section et \subsection dans eplexercises.cls), tout en laissant l'ancienne définition là où on le modifie pas. Et vu qu'on a oublié de mettre le formatage écrasé dans les paramètres de titlesec, ben on le perd. Pour corriger ça, le plus simple ce serait d'arrêter d'utiliser sectsty et de migrer le tout vers \titlesec : ça enlève un package requis, ça uniformise le code, c'est plus explicite et sans doute qu'il y a moyen de configurer \titlesec pour qu'il hérite les définitions précédentes (ou, à tout le moins, cette fonctionnalité pourrait éventuellement arriver dans une version future, donc autant se préparer).

(Pour ma part je suis en faveur du 2 ; le 4 est possible mais franchement les titres sont dégueux car la taille du label avec cette \shadowbox donne vraiment l'impression que le titre qui est à côté est minuscule.)

Pour le contexte : j'essaie de fix #632 et #844 et donc j'ai remarqué cette mocheté.

Jimvy commented 4 years ago

Autre argument en faveur de la dépréciation de sectsty: depuis quelques versions il affiche les messages "Command \underbar has changed" et "Command \underline has changed". Et il n'y a qu'une seule manière de le faire disparaitre, c'est en le bougeant un peu plus tôt dans le chargement des packages. Sauf qu'on sait pas qui a changé la commande, donc avant qui il faut le mettre. ;)