Woordsplitsing - Universiteit Gent

Download Report

Transcript Woordsplitsing - Universiteit Gent

Slide 1

Documentverwerking
P04
Paragraafverwerker & Woordsplitsing

Prof.Dr.ir. Patrick P. Bergmans
Faculteit IngenieursWetenschappen
Universiteit Gent


Slide 2

ParagraafVerwerker (1)


De ParagraafVerwerker (“typographic engine” of
ook nog “text engine”) krijgt als input:


Een rij karakters (tekens), bestaande uit woorden
gescheiden door “wit” (= spaties)
• meervoudige spaties -> één spatie
• spaties in ‘t begin en op ‘t einde vervallen



De breedtetafel van de gebruikte lettersoort in
een bepaald eenhedenstelsel



De breedte van de te produceren tekstregels



Een aantal verwerkingsparameters (links, rechts,
center of uitgevuld)

2


Slide 3

ParagraafVerwerker (2)






De ParagraafVerwerker produceert als output:


De tekst “versneden” in tekstregels



Voor elke tekstregel, de positie van het eerste
karakter



Voor elke tekstregel, de waarde van het variabel
wit (spatie)

Deze tekstregels worden ofwel direct
uitgebracht, ofwel opgeslagen voor verdere
verwerking
Het outputformaat van de PV is dikwijls
enigszins gestandaardiseerd

3


Slide 4

ParagraafVerwerker (3)




De ParagraafVerwerker werkt


Regel per regel, of



Globaal op de hele paragraaf (TeX)



Wij zullen slechts de eerste vorm bestuderen

Woordsplitsing is een inherente functie van de
PV, maar is dikwijls uitgevoerd als een
afzonderlijke module


Vormt een onderwerp op zichzelf



Is dikwijls heel complex

4


Slide 5

ParagraafVerwerker (4)




Paragraafverwerking versnijdt een paragraaf in
een aantal tekstregels
Paragraafverwerking is één van de begrippen van
algemene tekstverwerking
Hierbij worden de volgende elementen
aangewend


Algemene gegevens, specifiek voor het document



Verwerkingparameters, die de stijl bepalen
• Van het gehele document
• Paragraaf per paragraaf
• Of soms veranderlijk zijn binnen een paragraaf



Lettersoorten (“fonts”) en lettersoorttabellen

5


Slide 6

ParagraafVerwerker (5)
Algemene gegevens
Verwerkingparameters
Lettersoorten (fonts)

Abc def ghi klm nop qrs x¶Bac fed ghi kl wyz¶

Paragraafverwerker

Abc def ghi
klm
nop
qrs x¶
Bac fed ghi
kl wyz¶

6


Slide 7

ParagraafVerwerker (6)


Een belangrijk inwendig begrip is de
“geaccumuleerde zetbreedte” (GZ)



Wordt op 0 gezet in het begin van elke nieuwe
regel
Bij elk nieuw input karakter wordt de GZ
vermeerderd met de breedte van het karakter,
afgeleid uit (behandeling van spaties, zie verder)
• De breedtetafel
• De korpsgrootte



Wanneer de GZ in de buurt van de kolombreedte komt, moeten bepaalde beslissingen
genomen worden

7


Slide 8

ParagraafVerwerker (7)


Behandeling van woordspaties bij de berekening
van de GZ





Woordspaties krijgen een nominaal aantal
eenheden (NORGAP)
Deze waarde wordt gebruikt bij de doorlopende
berekening van de GZ, telkens een spatie
voorkomt

Daarnaast worden nog twee waarden opgegeven,
de minimale waarde (MINGAP) en de maximale
waarde (MAXGAP)


Die waarden worden gebruikt bij einderegelberekeningen

8


Slide 9

ParagraafVerwerker (8)



Voor de gevallen L(inks), C(enter) en R(echts)
Zodra op ‘t einde van een woord, de GZ groter
is dan de kolombreedte


Wordt het woord weggelaten



Wordt het “overtollige wit” (OW) berekend, en
• Rechts gelaten, Links/Rechts verdeeld, Links
geplaatst, naargelang de parameter (L, C of R)
• Hiermee wordt de positie van het eerste karakter
bepaald



Het weggelaten woord wordt naar de volgende
regel overgebracht


Zonder spatie
9


Slide 10

ParagraafVerwerker (9)
Kolombreedte
GZ

Spatie=NORGAP

OW

L
C
R

X
10


Slide 11

ParagraafVerwerker (10)


Voor geval J (uitvullen of “Justifiëren”)



Wordt eerst geprobeerd het woord in de
beschikbare zetbreedte “samen te drukken”


Hiervoor moet de spatie tussen woorden
verkleind worden, door het “breedte tekort” (BT)
gedeeld door het aantal spaties, van elke
woordspatie af te trekken



Indien deze woordspatie nog groter is dan
MINGAP, wordt het woord op de regel gelaten



Indien niet, wordt het woord naar de volgende
regel overgebracht

11


Slide 12

ParagraafVerwerker (11)


Dan wordt geprobeerd de regel “uit te rekken”


Het overtollige wit (zoals bij L, C, R) wordt
verdeeld over de woordspaties in de regel
• Opgelet: wel één spatie minder







Indien deze nog kleiner is dan MAXGAP, wordt
de regel zó uitgebracht

Soms zijn beide “oplossingen” geldig, en de
volgorde van de testen in het algoritme bepaalt
welke weerhouden wordt
Indien dit nog niet lukt, moet normaal woordsplitsing gebruikt worden


Een routine/procedure wordt opgeroepen om de
“toegelaten” splitsingpunten van het woord te
bekomen
• Hot-ten-tot-ten-ten-ten-ten-toon-stel-ling
12


Slide 13

ParagraafVerwerker (12)
Kolombreedte
GZ
OW

BT

J1

J2

X
13


Slide 14

Woordsplitsing (1)




Er zijn twee criteria voor woordsplitsing


Grammatica



Esthetiek

Woordsplitsingen die correct zijn volgens de
grammatica, zijn niet noodzakelijk aanvaardbaar
wegens een gebrekkige typografische esthetiek


Mede-werker

&

Me-dewerker



Ver-werken

&

Verwer-ken



Appel-moes

&

Ap-pelmoes



Driepunten-methode

&

Drie-puntenmethode

14


Slide 15

Woordsplitsing (2)




Het is soms onmogelijk, zonder de tekst te
“begrijpen”, correct te splitsen


Buur-tje

&

Buurt-je (nl)



Rec-ord

& Re-cord (eng)

Voor talen met samengestelde woorden
(Germaanse talen) is het steeds aangewezen
tussen de samengestelde woorden te splitsen


Al dan niet met koppelteken



Om zoveel mogelijk bij de betekenis te blijven
• Driepuntenmethode



Merk wel: Engels is een taal met weinig
samenstellingen
15


Slide 16

Woordsplitsing (3)


Zelfs wanneer het correct is volgens de
grammatica, splitst men nooit zodanig dat één
of twee letters afgesplitst worden, met
uitzondering van prefixen


Be-werken, maar niet be-delaar
• Hoe splitst men bedelen?




Bij het splitsen zal men dus als volgt te werk
gaan:
Bepalen van de splitsingpunten volgens de
grammatica




Met behulp van regels
Met behulp van tabellen
Met gemengde methodes (regels met tabellen en
uitzonderingen)
16


Slide 17

Woordsplitsing (4)



Een aantal splitsingpunten worden geëlimineerd,
wegens gebrekkige esthetiek
Men kent aan de verschillende splitsingpunten
een gewichtscoëfficiënt toe






Bijvoorbeeld hoogst tussen samengestelde
woorden

Men probeert ook te splitsen daar waar de
spatie het dichtst bij NORGAP zal vallen
Uiteindelijk wordt een compromis gemaakt in
functie van soms tegengestelde eisen
Geen enkel splitsingprogramma is perfect, en
verschillende programma’s, zelfs met dezelfde
PV geven doorgaans verschillende resultaten
17


Slide 18

Woordsplitsing (5)
Kolombreedte
GZ
gap berekeningen
splitsing gewichten

1 2 3

2 1

J

18