File: hyph.html

package info (click to toggle)
texlive-lang 2016.20170123-5
  • links: PTS
  • area: main
  • in suites: stretch
  • size: 1,093,148 kB
  • ctags: 15,901
  • sloc: perl: 46,074; xml: 29,603; makefile: 5,248; sh: 3,179; python: 2,949; ansic: 2,846; ruby: 945; lisp: 726; awk: 636; java: 159; sed: 142; cpp: 12
file content (476 lines) | stat: -rw-r--r-- 20,755 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-2">
<meta http-equiv="Content-language" content="pl">
<meta name="Author" content="Wodzimierz Macewicz">
<meta name="Keywords" content="tex, dzielenie wyrazw, Wirtualna Akademia">
<title>Tam gdzie minus oznacza dzielenie</title>
</head>
<body bgcolor=#a0F0f0>

<center>
<h2>Tam gdzie minus oznacza dzielenie</h2>

<i></i><p>
<i></i><p>
autor: <i>
Bogusaw Jackowski,
Marek Ryko
</i><p>

<i></i><p>
</center>

<hr>

<i></i><p>
<i></i><p>
<h3>Spis treci</h3>
<dd><b><a href=#r1>Reguy dzielenia wyrazw w jzyku polskim </a></b>
<dd><b><a href=#r2>Jak TeX dzieli wyrazy </a></b>
<dd><b><a href=#r3>Automatyczne tworzenie danych dla algorytmu dzielenia 
        wyrazw</a></b>
<dd><b><a href=#r4>Rczne tworzenie danych dla algorytmu dzielenia 
        wyrazw</a></b>
<dd><b><a href=#r5>Inne aspekty automatycznego dzielenia wyrazw</a></b>
<dd><b><a href=#r6>Uwagi kocowe</a></b>

<i></i><p>
<i></i><p>
<hr>

Ten nieco przewrotny tytu dotyczy oczywicie przenoszenia, czyli inaczej
dzielenia wyrazw, zwyczajowo zaznaczanego w tekstach kresk przypominajc
minus.

<p>
Automatyczne dzielenie wyrazw naley do podstawowych zada
wykonywanych przez programy komputerowe suce do skadania tekstw.

<p>
Jednym z najciekawszych algorytmw dzielenia wyrazw, a przy tym 
dokadnie opisanych i udokumentowanych, posuguje si system TeX. 
Jego ,,ciekawo'' polega na tym, e jest to
algorytm uniwersalny, tzn. dajcy si przystosowa do dzielenia wyrazw
w rnych jzykach, a jednoczenie zdumiewajco prosty i efektywny
w implementacji. Warto si temu algorytmowi przyjrze.

<h3><a name=r1>Reguy dzielenia wyrazw w jzyku polskim</a></h3>

eby zrozumie, jak trudne zadanie postawi przed sob Knuth, zajmijmy si
przez chwil reguami dzielenia wyrazw w jzyku polskim. M. Szymczak
(,,Sownik ortograficzny jzyka polskiego'', PWN, Warszawa, 1986) pisze:


<p>
,,(...) Dzielenie wyrazw przy przenoszeniu wyrazw z jednego wiersza do
nastpnego opiera si w ortografii polskiej na dwch kryteriach: fonetycznym
i morfologicznym. Kryterium fonetyczne nakazuje przenoszenie czci wyrazu
z jednego wiersza do drugiego zgodnie z podzielnoci na sylaby,
np. "bu&nbsp;rza", "nie&nbsp;wy trzy&nbsp;ma&nbsp;nie", "li&nbsp;to",
"po&nbsp;na&nbsp;pi&nbsp;sy&nbsp;wa&nbsp;li&nbsp;by", "za&nbsp;nie&nbsp;po&nbsp;ko&nbsp;jo&nbsp;ny", "wy&nbsp;so&nbsp;ko", "le&nbsp;piej",
"te&nbsp;go", "prze&nbsp;ciw". Kryterium morfologiczne nakazuje przenoszenie
czci wyrazu z jednego wiersza do drugiego zgodnie z podzielnoci na
przedrostek i rdze, a w wyrazach zoonych --- w miejscu zoenia,
np. "przed&nbsp;murze", "pod&nbsp;punkt", "wy&nbsp;brzee", "roz&nbsp;ka",
"od&nbsp;dwik", "przy&nbsp;kad", "za&nbsp;pata", "na&nbsp;trafi", "wy&nbsp;cigi",
"o&nbsp;brona", "bez&nbsp;wstyd", "u&nbsp;kadowy", "po&nbsp;dr", "pod&nbsp;oficer",
"pod&nbsp;oddzia", "na&nbsp;przd", "pod&nbsp;o&nbsp;pieczny", "po&nbsp;dmuch", "noc&nbsp;leg",
"konio&nbsp;krad". (...)''

<p>

przy czym

<p>
,,(...) kryterium morfologiczne jest nadrzdne w stosunku do kryterium
fonetycznego (...)''


<p>
Zasady oglne wygldaj prosto i przejrzycie. Omwienie zasad szczegowych
zajmuje Szymczakowi pi stron i o ile czowiekowi mogoby to wystarczy,
to jednak zalecenia takie jak:

<p>

,,(...) Jeeli przejrzysto podziau na przedrostek i rdze jest w <i><b>
dzisiejszej wiadomoci jzykowej zatarta</b></i> (podkr. aut.), grupy
spgoskowe znajdujce si na granicy czstek dzielimy dowolnie,
np. "o&nbsp;bok" a. "ob&nbsp;ok", "o&nbsp;trby" a. "ot&nbsp;rby", (...)''

<p>
bardzo trudno zalgorytmizowa.

<p>
Sprbujmy si zastanowi, czy nie ma takich zasad, od ktrych nie
byoby wyjtkw.

<p>
Dobrym kandydatem wydawa by si moga regua niedzielenia gosek "cz",
"dz", "rz" oraz "sz". Niestety, s wyjtki od tej reguy:
"tysic&nbsp;zotowy", "pod&nbsp;zwrotnikowy", "mar&nbsp;zn" i "em&nbsp;es&nbsp;zet".
Podobnie mikkie "ni" moe ulec rozbiciu, na przykad w sowie
"in&nbsp;iekcja".

<p>
To moe chocia da si ustali, e sylaba nie moe skada si z samych
spgosek? Jest to w zasadzie dobra regua, ale ma (co najmniej) jeden
wyjtek: szkocki przedrostek "Mc" wolno oddzieli. Na przykad nazwisko
"McMillan" wolno podzieli "Mc-Millan". Oczywicie implikuje to kopoty
z rzymskim zapisem liczb --- rok "MCMXCII" komputer mgby uzna za
szkockie nazwisko.

<p>
W takim razie moe istniej nie zakazy, a nakazy dzielenia, od ktrych nie ma
wyjtkw? Np. nakaz rozdzielania par identycznych spgosek ("wiec&nbsp;cy",
"Jagie&nbsp;o", "am&nbsp;my", "pan&nbsp;na", "ar&nbsp;ras", "las&nbsp;so", "get&nbsp;to" itp.).
Odpowied, jak atwo byo przewidzie, brzmi: ,,nie''.  Np. kryterium
morfologiczne nakazuje podzia "ode&nbsp;ssie", a nie "odes&nbsp;sie", chyba e chodzi
o "Odess". A jeli si zgodzi, e przedrostek rodzimy musi by oddzielony,
to bdzie kopot ze sowem "zeppelin", bo jak komputer miaby si domyli,
e w tym przypadku nie chodzi o przedrostek "ze"? Mgby wprawdzie
wiedzie, e adne sowo w jzyku polskim nie zaczyna si od "pp" (chocia
jest sowo zaczynajce si od trzech spgosek, z czego dwie pierwsze to
"ww" --- prosz zgadn jakie to sowo). Ale jeli jaki autor chciaby
odda mow jkajcego si bohatera piszc np. "zeppsuuty", to co wtedy?

<p>
Niejednoznacznoci typu ,,"odessie"'' stanowi dla komputera trudno
praktycznie nie do pokonania. Cho jest ich niewiele, to jednak zdarzaj si
i utrudniaj ycie, np.: "podrowa" --- by w podry lub pokry rem
lica; "odziewa" --- ubiera lub odpowiedzie w taki sam sposb komu, kto
ziewn; "podrobi" --- np. karm ptactwu lub podpis;
"Tarzanie" --- sowo to moe oznacza wzywanie znanego bohatera komiksw
lub czynno tarzania si; "narwali" --- to sowo z kolei mona rozumie
jako czas przeszy dokonany albo dopeniacz liczby mnogiej.

<p>
W sytuacjach tego typu jedynie kontekst semantyczny decyduje o podziale
sowa. Rozsdnie jest nie da zbyt wiele od programw skadajcych teksty
i zostawi czowiekowi moliwo ingerencji w bardziej skomplikowanych
przypadkach.

<p>
Sporo trudnoci  nastrcza dzielenie 
nazwisk  i nazw wasnych. O nazwiskach
szkockich ju bya mowa. Ale i polskie nazwy potrafi sprawi kopot. Na
przykad czy w nazwisku "Utnik" gosk "u" naley traktowa jako
przedrostek, tak jak w sowie "u&nbsp;tnie"? Szczeglnie trudne do podziau s
sowa bdce zbitk dwch lub wicej sw. Zalecany jest oczywicie podzia
w miejscu zoenia: "noc&nbsp;leg", "trzech&nbsp;set&nbsp;letni" itp. Zdarzaj si jednak
czasem bardzo osobliwe nazwy wasne, np. "Wierzch&nbsp;las". Chocia taki wanie
podzia wydaje si uzasadniony, to przecie trudno da gow, e nazwy tej
nie da si wywie od "wierzenia" i "chlastania". Podobnie gdyby jaka
miejscowo nazywaa si "Szynkwas", to nazwa mogaby si wywodzi
ostatecznie --- cho jest to mao prawdopodobne --- od "szyn" i "kwasu".

<p>
"Zeppelin" i "szynkwas" to przykady sw obcych bd obcego
pochodzenia, ktre zadomowiy si w naszym jzyku. Sowa tej kategorii, takie
jak np. "er&nbsp;zac", "jazz&nbsp;man" czy "soft&nbsp;ware", to rdo nowych
utrapie dla kogo, kto chciaby sformalizowa reguy dzielenia wyrazw
w jzyku polskim.


<p>
W tej sytuacji nie dziwi wyniki testw porwnawczych W. Puzy
(W. Puza, praca magisterska pt. ,,Analiza porwnawcza wybranych programw
Desktop Publishing (DTP)'', Instytut Poligrafii Politechniki Warszawskiej),
ktry stwierdzi, co nastpuje:

<p>
,,(...) Test sprawdzajcy poprawno dzielenia polskich sw
wyodrbni 3 rne poziomy skutecznoci testowanych programw:

<ul>
<li>Cyfroset, TeX -- ok. 10% bdw

<li>Dywiz (dedykowany dla Quark'a) -- powyej 20% bdw

<li>Bizon (dedykowany Calamusowi), VP Commander (dedykowany
 Venturze) -- powyej 50% bdw. (...)''
</ul>

Tak wic pozornie trywialny problem okazuje si w praktyce trudnym
orzechem do zgryzienia.


<p>
Mona oczywicie polemizowa z wytycznymi jzykoznawcw. Zalecany przez
Szymczaka podzia "za&nbsp;jrze" lub "po&nbsp;jma" wydaje si dzi anachroniczny.
Pjcie dalej tym tropem, przy rwnoczesnym zasanianiu si ,,wymaganiami
komputerw'', powoduje, e zbyt kuszce staje si maksymalne upraszczanie
regu, oczywicie z uszczerbkiem dla jzyka polskiego.

<p>
Autor TeX-a obra zupenie inn drog: szuka takiego algorytmu, ktry
byby w zasadzie niezaleny od regu dzielenia wyrazw; reguy dzielenia
miayby by okrelone za pomoc danych do tego algorytmu. Algorytm
speniajcy te wymagania skonstruowa F. M. Liang (rozprawa doktorska
pt. ,,Word Hy-phen-a-tion by Com-put-er'', Uniwersytet Stanforda, USA,
1983). Udao mu si nawet co wicej: dane s stosunkowo atwe do
utworzenia, nie jest do tego bynajmniej potrzebna wiedza informatyczna.

<h3><a name=r2>Jak TeX dzieli wyrazy</a></h3>

Algorytm dzielenia wyrazw jest niezwykle prosty. Oczywicie przy zaoeniu,
e odpowiednie dane zostay utworzone. Zamy wic, e te dane mamy.
Skada si na nie zbir cigw utworzonych na przemian z liter
i cyfr, np.: <code>2s0z1z0</code>, <code>2s0z0l0n0</code>, <code>2t10</code> itp. Zamiast cyfry skrajnej moe
wystpi kropka, np.: <code>.w0e3s2</code>, <code>.w0w8</code>, <code>8r0s0z.</code>, <code>8r0z0.</code> itp. Cigi te
nazywa bdziemy wzorcami.

<p>
Przypumy teraz, e mamy dane jakie sowo, np. <code>odkaszln</code>. Najpierw
zamieniamy je na posta tak, jak maj wzorce, wstawiajc pomidzy literami
cyfr <code>0</code>, a na brzegach kropki, otrzymujc <code>.o0d0k0a0s0z0l0n00.</code>
(kropka --- jak std wida --- oznacza skraj sowa). Nastpnie wyszukujemy
w naszym zbiorze danych wszystkie wzorce, ktre na to sowo daj si naoy
w taki sposb, e zgadzaj si pooenia liter i kropek, ale niekoniecznie
cyfr; w szczeglnoci cyfra moe si nakada na kropk, ale nie na liter.
Powiedzmy, e znalelimy nastpujce wzorce: <code>.o2d2</code>, 
<code>.o0d3k2</code>, <code>01</code>,
<code>2d1k0</code>, <code>2l1n0</code>, <code>2s0z1l0</code>, 
<code>2s0z0l0n0</code>, <code>8.</code>, <code>0a1</code>, 
<code>0o1</code>, <code>0s4z0</code>. Jeli
je naoymy na sowo <code>.o0d0k0a0s0z0l0n00.</code> i spord cyfr 
nakadajcych si
na siebie wemiemy najwiksze, to otrzymamy <code>.o2d3k2a2s4z2l1n08.</code> --- i to
ju wszystko. Zgodnie z algorytmem Lianga sowo wolno podzieli jedynie
w takim miejscu, w ktrym pojawia si cyfra nieparzysta. Oznacza to, e
algorytm dopuszcza w tym wypadku dwa punkty podziau: "od-kaszl-n".

<p>
Wzorce przechowywane s w pamici komputera jako struktura drzewiasta
(dokadniej  "trie"; p. D. E. Knuth, ,,The Art of
Computer Programming'', tom 3, ,,Sorting and Searching''). Pozwala to na
znaczne upakowanie danych przy zachowaniu szybkiego dostpu do informacji,
a rwnoczenie struktura danych i algorytm s stosunkowo atwo
implementowalne.

<p>
Warto podkreli, e dziki efektywnoci zastosowanej metody TeX moe
przechowywa w pamici kilka rnych zestaww wzorcw i dzieli wyrazy
w kilku jzykach w obrbie jednego dokumentu (a nawet akapitu).


<p>
Problem jedynie w tym skd wzi wzorce?

<h3><a name=r3>Automatyczne tworzenie danych dla algorytmu dzielenia 
wyrazw</a></h3>

Gwna cz pracy Lianga dotyczya metody tworzenia wzorcw na podstawie
sownika zawierajcego sowa poprawnie podzielone. Przygotowanie takiego
sownika jest oczywicie czaso- i pracochonne, ale za to dalsza cz
zadania jest ju wzgldnie atwa. W najwikszym uproszczeniu algorytm Lianga
mona zapisa nastpujco:

<pre>
 <i>m </i> := maksymalna dugo wzorca
 <b>for</b> <i>c := 1</i> <b>to</b> <i>9</i> <b>do</b>
   <b>begin</b>
        ustal kryteria akceptowalnoci dla wzorcw
     <b>for</b> <i>l:=1</i> <b>to</b> <i>m</i> <b>do</b>
       <b>begin</b>
            dla kadego sowa w sowniku sprawd, czy nie 
	    dostarcza ono informacji o moliwoci wstawienia 
	    cyfry <i>c</i> we wzorcach dugoci <i>l</i> przy 
	    zadanych kryteriach akceptowalnoci
       <b>end</b>
  <b>end</b>
</pre>

Innymi sowy program uzupenia zestaw wzorcw kolejno dla coraz
wikszych cyfr i coraz duszych wzorcw, zostawiajc uytkownikowi na kadym
etapie moliwo ingerencji. Kryteria akceptowalnoci okrela si przez
podanie trzech liczb: wagi dla podziaw poprawnych <i>w<sub>p</sub></i>, 
wagi dla podziaw niepoprawnych <i>w<sub>n</sub></i> i poziomu 
akceptowalnoci <i>p</i>. Wzorzec jest akceptowany,
gdy <i>{k<sub>p</sub>w<sub>p</sub>-k<sub>n</sub>w<sub>n</sub>&gt;= p}</i>, 
gdzie <i>k<sub>p</sub></i> i <i>k<sub>n</sub></i> oznaczaj odpowiednio
liczb poprawnych i niepoprawnych podziaw generowanych przez dany wzorzec.

<p>
W niektrych przypadkach moe si zdarzy, e program nie znajdzie zestawu
wzorcw dzielcego poprawnie wszystkie sowa. Powodem mog by bdne dane
(np. w sowniku moe si znale dwa razy to samo sowo, ale inaczej
podzielone) bd niewaciwy dobr liczb <i>w<sub>p</sub></i>, 
<i>w<sub>n</sub></i> oraz <i>p</i> w kolejnych
iteracjach. Rne strategie dobierania wartoci tych wspczynnikw wpywaj
na objto wynikowego zestawu wzorcw. Minimalizacja liczby wzorcw
w wygenerowanym automatycznie zestawie wymaga pewnej wprawy
i --- oczywicie --- przestudiowania pracy doktorskiej Lianga, gdzie
zagadnienie to jest szczegowo omwione.

<p>
Jak wida ,,nauczenie'' TeX-a zasad dzielenia wyrazw w danym jzyku jest
waciwie kwesti odpowiednio zasobnego sownika podzielonych poprawnie
wyrazw. Dostarczenie takiego sownika to zadanie dla jzykoznawcw.
Natomiast dalszy etap jest ideowo prosty, nie wymaga znajomoci technik
programowania, ani adnych innych specjalnych umiejtnoci. Potrzebna jest
jedynie cierpliwo.

<h3><a name=r4>Rczne tworzenie danych dla algorytmu dzielenia wyrazw</a></h3>

Moliwo automatycznego tworzenia zestawu wzorcw nie wyklucza moliwoci
stworzenia takiego zestawu rcznie. Pocztkowo wydawao si, e jzyk polski
ma na tyle regularne zasady dzielenia wyrazw, e atwiej bdzie utworzy
zestaw wzorcw w ten wanie sposb.

<p>
W 1984 J. D&eacute;sarm&eacute;nienowi udao si zamkn reguy dzielenia 
wyrazw dla
jzyka francuskiego w zestawie liczcym 804 wzorce i dla jzyka woskiego
w zestawie liczcym zaledwie 88 wzorcw, podczas gdy standardowy zestaw
wzorcw dla amerykaskiego TeX-a zawiera ich 4447 
(J. D&eacute;sarm&eacute;nien,
,,The use of TeX in French: hyphenation and
typography'', w: D. Lucarella (ed.), ,,TeX for Scientific Documentation,
Proc. of the First European Conference, Addison-Wesley, 1984). Sukces
podejcia D&eacute;sarm&eacute;niena zainspirowa H. Koodziejsk, ktra
w roku 1987 opublikowaa list 2168 wzorcw dla jzyka polskiego
(H. Koodziejska, ,,Dzielenie wyrazw w systemie TeX'', Sprawozdania
Instytutu Informatyki Uniwersytetu Warszawskiego, nr 165, 1987).

Wynik Koodziejskiej zdawa si potwierdza wstpne zaoenia. Niestety. Po
kilku latach intensywnego testowania (maczali w tym palce m.in. autorzy
niniejszej pracy) wzorcw znacznie przybyo. Po gruntownej przerbce
liczebno zestawu wzorcw wzrosa do 4053 i wolno przypuszcza, e to
jeszcze nie koniec.

<p>
W tych warunkach zasadne staje si pytanie, czy nie naleaoby zrewidowa
zaoenia o regularnoci zasad podziau sw w jzyku polskim. Jest
prawdopodobne, e program Lianga mgby wygenerowa mniej liczny zestaw
wzorcw.

<p>
Tym niemniej, jak wynikao z porwna poczynionych przez Puz (p. wyej),
zestaw wzorcw dla jzyka polskiego w swojej obecnej postaci daje wyniki
zadowalajce. Zwaywszy, e Puza w istocie dysponowa jedn z wersji
porednich zestawu i e zestaw aktualny jest znacznie udoskonalony w stosunku
do tamtej wersji, mona oczekiwa jeszcze lepszych rezultatw.

<p>
Najaktualniejsza wersja tego zestawu wchodzi w skad pakietu MeX (polskiej
adaptacji TeX-a). Pakiet ten jest dystrubuowany w postaci rdowej jako
produkt "public domain" przez
GUST.

<h3><a name=r5>Inne aspekty automatycznego dzielenia wyrazw</a></h3>

Automatyczne znajdowanie miejsc podziau sw nie wyczerpuje spraw zwizanych
z dzieleniem wyrazw do celw skadu komputerowego. Jak zostao ju
wspomniane, czasami ingerencja czowieka staje si niezbdna. Poprawnie
zaprojektowany system skadu tak ingerencj powinien umoliwia. Uytkownik
powinien mie w szczeglnoci moliwo wprowadzenia zakazu dzielenia
niektrych sw.

<p>
W przypadku TeX-a nierozsdne byoby manipulowanie za kadym razem przy
zestawie wzorcw. Uytkownik TeX-a moe podzieli sowo wedug wasnego
uznania na dwa sposoby.

<p>
Pierwszy sposb to umieszczenie go na licie wyjtkw, nadrzdnej w stosunku
do wzorcw. Jest to, niestety, metoda wygodna jedynie w jzykach
niefleksyjnych. W jzyku polskim umieszczenie jakiego sowa na licie
wyjtkw wie si (w przypadku TeX-a) z podaniem od razu wszystkich jego
odmian, co jest raczej nieporczne. Na szczcie problem taki nie pojawia si
zbyt czsto. Gwnym powodem tego typu zabiegw bywaj sowa zoone lub
obcego pochodzenia (bd i jedno, i drugie).

<p>
Drugi sposb polega na wskazaniu w tekcie dodatkowych miejsc podziau
(ang. <em>discretionary hyphens</em>). Wikszo systemw DTP
oferuje tak moliwo uytkownikom. W przypadku TeX-a naley ostronie
posugiwa si t metod, bo mona przeszkodzi TeX-owi w automatycznym
wstawianiu drobnych odstpw midzy znakami (inaczej podci, ang. <em>implicit
kerns</em>).

<p>
TeX oferuje uytkownikowi jeszcze par innych moliwoci, pozwalajcych
na panowanie nad algorytmem podziau wyrazw.

<p>
Zabronienie podziau wyrazu jest w TeX-u spraw trywialn, wystarczy wyraz
,,zamkn'' w tzw. pudeko (TeX-owa komenda <code>\hbox</code>).

<p>
Uytkownik moe te okreli minimaln dugo oddzielonego pocztku
i koca sowa. Domylnie TeX nie podzieli sowa krtszego ni
picioliterowe: pocztek nie moe by krtszy ni dwie litery, koniec --- nie
krtszy ni trzy litery.  Przy skadaniu w wskiej szpalcie moe si pojawi
konieczno zagodzenia tych rygorw, zwaszcza e w jzyku polskim za
dopuszczalne uznaje si oddzielanie pojedynczej samogoski na pocztku sowa
i dwuliterowej sylaby na kocu. Z drugiej strony w skadzie wysokiej jakoci
powinno si unika dzielenia wyrazw w ogle, a tym bardziej na zbyt krtkie
fragmenty.  Moliwo sterowania wielkoci dzielonego sowa jest wic bardzo
przydatna w praktyce.

<p>
Zasady dobrego skadu wymagaj, aby wyrazy dzielone nie pojawiay si
w ssiednich wierszach i by ostatni wiersz na prawej stronie nie zawiera
sowa dzielonego. Skady nie speniajce tych wymogw uwaa si (i susznie)
za brzydkie. TeX dostarcza parametrw pozwalajcych skutecznie utrudnia
brzydkie skadanie. W szczeglnoci mona wrcz zabroni umieszczania sowa
dzielonego w ostatnim wierszu na stronie. Moe to sprawi pewne kopoty
algorytmowi amicemu wiersze na strony, ale to ju zupenie inna historia.

<p>
Zostaje jeszcze problem sw zawierajcych cznik, np. "biao-czerwony".
W jzyku angielskim sowa takie jak "machine-oriented" przenosi si


<pre>
 "machine-"
 "oriented"
</pre>

podczas gdy w jzyku polskim stanowczo zaleca si dostawienie
dodatkowo cznika na pocztku nastpnego wiersza:


<pre>
"biao-"
"-czerwony"
</pre>

TeX pozwala doczy do zestawu komend standardowych komendy definiowane
przez uytkownika. W MeX-u zostaa zdefiniowana komenda <code>\=</code>, 
ktr naley podczas przygotowywania tekstu umieci w miejscu cznika.
Kontynuujc przykad, "biao-czerwony" naleaoby poda TeX-owi jako
<code>biao\=czerwony</code>. Uytkownik musi pamita o konsekwentnym
przestrzeganiu tej zasady, a o reszt zadba ju TeX. Pozostawienie zwykego
cznika oznacza sowo niepodzielne. Jest to przydatne w przypadku takich
sw jak np. "K-202", ktrych oczywicie dzieli nie naley.

<h3><a name=r6>Uwagi kocowe</a></h3>

Jak wida zagadnienie automatycznego dzielenia wyrazw to problem bardzo
obszerny. Wchodz tu w gr zagadnienia jzykoznawcze, typograficzne
i informatyczne.

<p>
Praktyka pokazuje, e bardzo efektywny algorytm automatycznego podziau sw,
w poczeniu z niekoniecznie bardzo wygodnymi moliwociami ingerowania
rcznego, stwarza uytkownikowi moliwo panowania w peni nad procesem
dzielenia sw przez system komputerowego skadu tekstw.

<p>
Wydaje si nam, e rozwizania zastosowane przez Knutha s na tyle
uniwersalne (a do tego sprawdzone w praktyce), e warto je szerzej
rozpropagowa. Mog si okaza szczeglnie przydatne w Polsce, gdzie rynek
software'owy dopiero powstaje i dobre <i>nomen omen</i> wzorce s rzecz nie
do pogardzenia.


<hr>
Zredagowa:
<em>Wodzimierz Macewicz</em>
<hr>
</body>
</html>