Travailler avec la césure

Parfois, il est nécessaire d’utiliser la césure pour une disposition plus compacte du texte dans un document. Dans le même temps, il est important de comprendre que les spécificités de la césure des mots peuvent différer pour chaque langue.

À l’heure actuelle, la césure n’est plus utilisée aussi souvent qu’avant, notamment dans les textes anglais. Néanmoins, l’utilisation de cette fonctionnalité peut avoir un impact sérieux sur les documents utilisateur: la césure affecte la mise en page et, par conséquent, l’apparence des fichiers de sortie, par exemple au format PDF.

Pour diviser correctement les mots, des dictionnaires de césure spécifiques à la langue sont utilisés. Aspose.Words utilise des algorithmes avancés pour travailler avec de tels dictionnaires et vous permet d’obtenir la même césure que dans Microsoft Word.

Dictionnaires de césure

Étant donné que différentes langues utilisent des normes et des règles différentes pour la césure des mots, la solution optimale pour une césure correcte consiste à utiliser des dictionnaires spéciaux. Aspose.Words utilise des dictionnaires OpenOffice.

Pour la vérification orthographique, OpenOffice utilise Bibliothèque Hunspell, qui est une généralisation de l’algorithme de césure de TeX. Cet algorithme permet une césure automatique non standard à l’aide de modèles de césure standard et personnalisés concurrents. Hunspell utilise le Trait d’union pour la césure.

Algorithme de césure

Aspose.Words implémente l’algorithme de césure TeX et peut réutiliser les dictionnaires de césure OpenOffice.

Les caractéristiques suivantes des algorithmes Aspose.Words doivent être prises en compte:

  • Les paramètres de distance de césure (LEFTHYPHENMIN, RIGHTHYPHENMIN, COMPOUNDLEFTHYPHENMIN, COMPOUNDRIGHTHYPHENMIN) spécifiés dans le dictionnaire de césure sont ignorés. Aspose.Words utilise son propre ensemble de paramètres de distance en fonction du mode de compatibilité du document.
  • L’algorithme de césure dans Aspose.Words prend en charge césure composite. Cependant, Aspose.Words divise les séquences de caractères contenant un mélange de caractères alphabétiques et non alphabétiques en parties (mots) uniquement alphabétiques et les coupe séparément. Notez que la logique Microsoft Word de césure des mots composés dépend du mode de compatibilité du document.
  • L’algorithme de césure dans Aspose.Words n’implémente pas le césure non standard. Les modèles non standard sont ignorés.

Chargement des dictionnaires de césure

Pour utiliser la fonctionnalité de césure, enregistrez d’abord un dictionnaire de césure. L’exemple de code suivant montre comment charger des dictionnaires de césure pour les langues spécifiées à partir d’un fichier:

L’exemple de code suivant montre comment charger des dictionnaires de césure pour la langue spécifiée à partir d’un flux:

Au lieu de pré-enregistrer les dictionnaires de césure, il est possible d’enregistrer uniquement les dictionnaires de césure requis “sur demande”. Pour y parvenir, implémentez l’interface IHyphenationCallback et utilisez le rappel statique Callback.

L’exemple de code suivant montre comment implémenter l’interface IHyphenationCallback:

Impact de la césure sur la mise en page

Lors de la division du texte en lignes, Aspose.Words vérifie chaque mot s’il s’inscrit entièrement dans la ligne actuelle. Si un autre mot est trop long pour tenir à la fin de la ligne, Aspose.Words le déplace par défaut au début de la ligne suivante au lieu de le couper.

Cependant, la fonction de césure peut être utilisée dans Aspose.Words pour insérer des traits d’union dans des mots afin d’éliminer les espaces dans le texte justifié ou pour maintenir une longueur de ligne régulière dans des colonnes étroites. Cela peut évidemment affecter le nombre de lignes et donc le nombre de pages. En d’autres termes, l’utilisation de la fonction de césure affecte la présentation du document.

Césure et justification (H&J)

Microsoft Word a une logique complexe pour choisir un point d’arrêt si le texte est justifié et la césure est activée. En bref, Microsoft Word préférera peut-être réduire ou étirer les espaces pour éviter la césure des lignes. Très probablement, cette logique est basée sur L’article de Knuth.

Aspose.Words implémente son propre algorithme H&J qui donne le même résultat que Microsoft Word et fournit des sauts de ligne identiques dans le document de sortie.

Voir également