Lavorare con la sillabazione
A volte è necessario utilizzare la sillabazione per una disposizione più compatta del testo in un documento. Allo stesso tempo, è importante capire che le specifiche della sillabazione delle parole possono differire per ciascuna lingua.
Attualmente la sillabazione non viene utilizzata così spesso come in passato, soprattutto nei testi inglesi. Tuttavia, l’utilizzo di questa funzionalità può avere un grave impatto sui documenti dell’utente: la sillabazione influisce sul layout e, di conseguenza, sull’aspetto dei file di output, ad esempio in formato PDF.
Per una corretta suddivisione delle parole vengono utilizzati dizionari di sillabazione specifici della lingua. Aspose.Words utilizza algoritmi avanzati per funzionare con tali dizionari e consente di ottenere la stessa sillabazione di Microsoft Word.
Dizionari di sillabazione
Poiché lingue diverse utilizzano norme e regole diverse per la sillabazione delle parole, la soluzione ottimale per una corretta sillabazione è utilizzare dizionari speciali. Aspose.Words utilizza i dizionari OpenOffice.
Per il controllo ortografico, OpenOffice utilizza Libreria Hunspell, che è una generalizzazione dell’algoritmo di sillabazione di TeX. Questo algoritmo consente la sillabazione automatica non standard utilizzando modelli di sillabazione standard e personalizzati concorrenti. Hunspell utilizza l'Trattino per la sillabazione.
Algoritmo di sillabazione
Aspose.Words implementa l’algoritmo di sillabazione di TeX e può riutilizzare i dizionari di sillabazione di OpenOffice.
Dovrebbero essere prese in considerazione le seguenti caratteristiche degli algoritmi Aspose.Words:
- I parametri della distanza di sillabazione (LEFTHYPHENMIN, RIGHTHYPHENMIN, COMPOUNDLEFTHYPHENMIN, COMPOUNDRIGHTHYPHENMIN) specificati nel dizionario di sillabazione vengono ignorati. Aspose.Words utilizza il proprio set di parametri di distanza a seconda della modalità di compatibilità del documento.
- L’algoritmo di sillabazione in Aspose.Words supporta sillabazione composita. Tuttavia, Aspose.Words divide le sequenze di caratteri contenenti caratteri misti alfabetici e non alfabetici in parti solo alfabetiche (parole) e le sillaba separatamente. Tieni presente che la logica Microsoft Word della sillabazione delle parole composte dipende dalla modalità di compatibilità del documento.
- L’algoritmo di sillabazione in Aspose.Words non implementa sillabazione non standard. I modelli non standard vengono ignorati.
Caricamento dei dizionari di sillabazione
Per utilizzare la funzione di sillabazione, registrare prima un dizionario di sillabazione. Il seguente esempio di codice mostra come caricare i dizionari di sillabazione per le lingue specificate da un file:
Il seguente esempio di codice mostra come caricare i dizionari di sillabazione per la lingua specificata da un flusso:
In alternativa alla preregistrazione dei dizionari di sillabazione, è possibile registrare “su richiesta” solo i dizionari di sillabazione necessari. Per raggiungere questo obiettivo, implementare l’interfaccia IHyphenationCallback e utilizzare il callback statico Callback.
Il seguente esempio di codice mostra come implementare l’interfaccia IHyphenationCallback:
Impatto della sillabazione sul layout
Quando si suddivide il testo in righe, Aspose.Words controlla se ogni parola si adatta completamente alla riga corrente. Se un’altra parola è troppo lunga per stare alla fine della riga, per impostazione predefinita Aspose.Words la sposta all’inizio della riga successiva invece di sillabarla.
Tuttavia, la funzione di sillabazione può essere utilizzata in Aspose.Words per inserire trattini nelle parole per eliminare gli spazi vuoti nel testo giustificato o per mantenere una lunghezza di riga uniforme in colonne strette. Ciò può ovviamente influenzare il numero di righe e quindi il numero di pagine. In altre parole, l’utilizzo della funzione di sillabazione influisce sul layout del documento.
Sillabazione e giustificazione (H&J)
Microsoft Word ha una logica complessa per la scelta di un punto di interruzione se il testo è giustificato e la sillabazione è abilitata. In breve, Microsoft Word potrebbe preferire ridurre o allungare gli spazi per evitare la sillabazione delle righe. Molto probabilmente questa logica è basata su L’articolo di Knuth.
Aspose.Words implementa il proprio algoritmo H&J che fornisce lo stesso risultato di Microsoft Word e fornisce interruzioni di riga identiche nel documento di output.