Question : Comment lier des paragraphes entre eux pour éviter un saut de page dans une transformation ODT ?

Un des intérêts de la transformation ODT est de produire un document de qualité pour l’impression, ce qui signifie notamment pouvoir contrôler certains sauts de page

Niveau : Scriptage (gabarit et exportation)

Réponse :

On rappelle ici que’un gabarit de transformation ODT possède deux fichiers pour gérer le style : styles.css et styles.xml. Comme son extension l’indique, styles.css suit la syntaxe CSS pour permettre de définir des informations de style. Au moment de la compilation, le contenu de styles.css est traduit dans le format XML d’OpenDocument et inclus dans styles.xml.

La propriété keep-with-next est celle qui nous intéresse en l’occurrence. Il peut avoir les valeurs auto ou always. La valeur always correspond à l’option « Conserver avec le paragraphe suivant » de l’onglet « Enchainement » de la fenêtre de dialogue de définition des styles de LibreOffice. Elle permet donc d’interdire le saut de page juste après le paragraphe en cause. La propriété keep-with-next peut s’appliquer à un paragraphe ou à une table.

p.Faitle {
    keep-with-next: always;
}

table.Signature {
  may-break-between-rows: false;
  keep-with-next: always;
}

Exemples d’un paragraphe et d’une table

Dans l’exemple, la table possède également la propriété may-break-between-rows qui indique avec la valeur false que la coupure ne doit pas se faire au milieu de la table non plus (pour peu que la table ne soit pas trop longue). Cela correspond à l’option « Autoriser le fractionnement des tableaux sur plusieurs pages et colonnes » de l’onglet « Enchainement » de la fenêtre de dialogue des tableaux dans LibreOffice.

Enfin, rappelons que la propriété break-before avec la valeur page permet quant à elle de mettre un saut de page automatiquement avant un paragraphe.

h2 {
break-before: page;
}

Saut de page avant les titres de niveau 2

Questions voisines