Mise à jour et mise en page — Les-mathematiques.net The most powerful custom community solution in the world

Mise à jour et mise en page

Bonjour,

Après avoir mis à jour Miktex et texmaker, j'observe de petites différences dans la mise en page :

en compilant (pdflatex) un même document qui avant tenait sur 8 pages, il tient désormais sur 9 pages après la mise à jour avec des sauts de page qui interviennent plus tôt dans le texte.

Je précise que c'est exactement le même fichier *.tex compilé avant et après.

A quoi est dûe cette différence? Y a-t-il un paramètre pour agir sur ce phénomène?

Réponses

  • Pas facile, avec ces éléments, de dire à quoi est due cette différence... Cela pourrait être une histoire de police, de package ou éventuellement de césure.

    Pour évacuer le dernier point, regarder les coupures de mots dans chacun des documents. Peut-être les motifs sont-ils mal réglés avant ou après la mise à jour.

    Les polices utilisées dans le document sont écrites à la fin de la sortie textuelle de LaTeX (au moins avec pdfTeX). Autrement, on peut utiliser pdffonts. Par le jeu des font substitutions, si par exemple une police est apparue ou a été supprimée dans la distribution, il se pourrait qu'à un certain endroit, elle apparaisse dans un document et pas dans l'autre. Les substitutions sont généralement indiquées dans la sortie textuelle de LaTeX. Il y a aussi eu des changements dans la gestion des polices de LaTeX (NFSS) lors de la mise à jour du 2 février dernier. Cela dit, je crois que la compatibilité a été préservée dans la plupart des cas. Les détails sont expliqués dans la LaTeX2e News Issue 31 disponible sur la page consacrée aux évolutions de LaTeX2e.

    Enfin, il y a les packages. Ce n'est pas très fréquent, mais il peut arriver qu'une nouvelle version d'un package change la place prise par tel ou tel élément qu'il fabrique... tout est possible, en principe ; c'est le mainteneur du package qui décide.

    Le noyau LaTeX permet de remonter dans le temps (i.e., réclamer le comportement que le noyau LaTeX et/ou les packages avaient à telle ou telle date) avec une syntaxe telle que \RequirePackage[2018-01-01]{latexrelease}. Cela doit toujours marcher pour le noyau depuis que ce système a été mis en place ; pour les packages, je pense que c'est beaucoup plus rare, bien qu'une façon de faire soit assez simple :
    \NeedsTeXFormat{LaTeX2e}[2018-04-01]
    \DeclareRelease{api1}{2010-04-01}{monpackage-2010-04-01.sty}
    ...
    \DeclareRelease{api4}{2010-11-14}{monpackage-2010-11-14.sty}
    \DeclareCurrentRelease{api5}{2010-12-01}
    \ProvidesPackage{monpackage}[2010/12/15 v0.7 Bla bla, etc.]
    
    Grâce à ça, mes vieux documents utilisant des APIs toutes pourries de mon premier package peuvent toujours être compilés avec un simple \usepackage{monpackage}[=api1], par exemple. Si un mainteneur de package utilise cette technique (ou l'autre plus délicate), alors on peut remonter dans le temps avec (a) \usepackage lors du chargement de ce package ou (b) globalement avec par exemple \RequirePackage[2018-01-01]{latexrelease}.

    On dispose de la granularité maximale avec les arguments optionnels de \documentclass et de \usepackage. Voir ici pour les détails (Frank Mittelbach, A rollback concept for packages and classes, in TUGboat, Volume 39 (2018), No. 2).
  • Merci pour cette réponse détaillée et pour les liens.

    j'ai réussi à identifier une différence précise : lors de l'utilisation de \limits, l'espacement vertical est augmenté par rapport à avant.

    Rien de grave de toute façon, c'était surtout pour savoir.
  • et je suis toujours aussi admiratif de ce langage d'édition scientifique!
Connectez-vous ou Inscrivez-vous pour répondre.
Success message!