Werken met Hyphenation
Soms is het noodzakelijk om afbreking te gebruiken voor een compactere rangschikking van tekst in een document. Tegelijkertijd is het belangrijk om te begrijpen dat de specifieke kenmerken van woordafbreking voor elke taal kunnen verschillen.
Op dit moment wordt de koppeling niet meer zo vaak gebruikt als vroeger, vooral in Engelse teksten. Niettemin kan het gebruik van deze functie een ernstige impact hebben op gebruikersdocumenten – afbreking heeft invloed op de lay-out en, als gevolg daarvan, het uiterlijk van de uitvoerbestanden, bijvoorbeeld in PDF - indeling.
Voor de juiste splitsing van woorden worden taalspecifieke woordenboeken met afbreking gebruikt. Aspose.Words gebruikt geavanceerde algoritmen om met dergelijke woordenboeken te werken en stelt u in staat om dezelfde afbreking te krijgen als in Microsoft Word.
Afbreekwoordenboeken
Aangezien verschillende talen verschillende normen en regels voor woordafbreking gebruiken, is de optimale oplossing voor een correcte afbreking het gebruik van speciale woordenboeken. Aspose.Words gebruikt OpenOffice woordenboeken.
Voor spellingcontrole gebruikt OpenOffice de Hunspell bibliotheek, een generalisatie van TeX ' s koppelingsalgoritme. Dit algoritme maakt automatische niet-standaard afbreekpatronen mogelijk met behulp van concurrerende standaard-en aangepaste afbreekpatronen. Hunspell gebruikt de Koppelteken voor koppeling.
Afbreekalgoritme
Aspose.Words implementeert het Tex-afbreekalgoritme en kan OpenOffice afbreekwoordenboeken hergebruiken.
De volgende kenmerken van Aspose.Words algoritmen MOETEN in aanmerking worden genomen:
- Parameters van de afbreekafstand (LEFTHYPHENMIN, RIGHTHYPHENMIN, COMPOUNDLEFTHYPHENMIN, COMPOUNDRIGHTHYPHENMIN) gespecificeerd in het afbreekwoordenboek worden genegeerd. Aspose.Words gebruikt zijn eigen set afstandsparameters, afhankelijk van de compatibiliteitsmodus van het document.
- Het afbreekalgoritme in Aspose.Words ondersteunt samengestelde koppeling. Aspose.Words splitst echter Tekenreeksen met gemengde alfabetische en niet-alfabetische tekens in alfabetische delen (woorden) en koppelt ze afzonderlijk af. Merk op dat Microsoft Word logica van afbreking van samengestelde woorden afhankelijk is van de compatibiliteitsmodus van het document.
- Het afbreekalgoritme in Aspose.Words implementeert niet de niet-standaard koppeling. Niet-standaard patronen worden genegeerd.
Afbreekwoordenboeken Laden
Om de afbreekfunctie te gebruiken, moet u eerst een afbreekwoordenboek registreren.Het volgende codevoorbeeld laat zien hoe u afbreekwoordenboeken voor de opgegeven talen uit een bestand kunt laden:
Het volgende codevoorbeeld laat zien hoe u afbreekwoordenboeken voor de opgegeven taal uit een stream kunt laden:
Als alternatief voor het vooraf registreren van afbreekwoordenboeken is het mogelijk om alleen vereiste afbreekwoordenboeken “op verzoek"te registreren. Implementeer hiervoor de IHyphenationCallback interface en gebruik de statische callback Callback.
Het volgende codevoorbeeld laat zien hoe de IHyphenationCallback interface geïmplementeerd moet worden:
Impact van afbreking op Lay-out
Bij het opsplitsen van tekst in regels controleert Aspose.Words elk woord of het volledig in de huidige regel past. Als een ander woord te lang is om aan het einde van de regel te passen, verplaatst Aspose.Words het standaard naar het begin van de volgende regel in plaats van het af te koppelen.
De afbreekfunctie kan echter in Aspose.Words worden gebruikt om afbreekstreepjes in woorden in te voegen om hiaten in uitgevulde tekst te elimineren of om een gelijke lijnlengte in smalle kolommen te behouden. Dit kan uiteraard van invloed zijn op het aantal regels en dus het aantal pagina ' s. Met andere woorden, het gebruik van de afbreekfunctie heeft invloed op de lay-out van het document.
Afbreking en rechtvaardiging (H & J)
Microsoft Word heeft complexe logica voor het kiezen van een breekpunt als tekst is uitgevouwen en afbreking is ingeschakeld. Kortom, Microsoft Word kan de voorkeur geven aan het verkleinen of uitrekken van spaties om regelafbreking te voorkomen. Deze logica is waarschijnlijk gebaseerd op Artikel van Knuth.
Aspose.Words implementeert zijn eigen h&j-algoritme dat hetzelfde resultaat geeft als Microsoft Word en identieke lijnbreuk in het uitvoerdocument biedt.