Ode-jście czy odej-ście? Pode-jrzliwy czy podej-rzliwy? Do-jrzewać czy doj-rzewać? Dzielenie tekstu na sylaby nie zawsze jest sprawą oczywistą. Choć na pierwszy rzut oka wydaje się, że w podanych parach pierwsze pozycje są błędne, sprawa jest dużo bardziej skomplikowana.
UWAGA: Jeśli przejrzystość podziału na przedrostek i rdzeń w dzisiejszej świadomości językowej jest już zatarta, można grupę spółgłosek podzielić w zasadzie dowolnie (por. 54.3.), np. o-dźwierny lub odź-wierny, o-bfity lub ob-fity, o-błok lub ob-łok, o-twór lub ot-wór.
Dopuścić więc też możemy dziś podział: obej-mować, obej-rzeć, doj-rzały, uj-ście obok podziału opartego na zasadzie morfologicznej: obe-jmować, obe-jrzeć, do-jrzały, u-jście.
Jak KombiKor dzieli wyrazy na sylaby
Analizator tekstu wydziela kolejny wyraz z tekstu. Następnie program sprawdza, czy wyraz ten zawiera przynajmniej taką liczbę liter jak zadeklarowano w polu Minimalna liczba liter wyrazu dzielonego w oknie opcji dzielenia. Dalej sprawdzana jest opcja Dziel wyrazy pisane kapitalikami (dostępna w tym samym oknie). Jeśli jest ona wyłączona (co oznacza, że nie należy dzielić takich wyrazów) – program sprawdza, czy wyraz nie składa się z samych wielkich liter. Jeśli tak jest to program przechodzi do następnego wyrazu. Opcję tę stosujemy np. wtedy, gdy w tekście używamy tytułów pisanych kapitalikami i nie chcemy, aby tytuły te były dzielone. Kolejną sprawdzaną opcją jest Nie dziel ostatniego wyrazu w akapicie. Jeśli jest ona aktywna, a po analizowanym wyrazie nie ma już innych wyrazów przed następnym akapitem, to program nie dzieli tego wyrazu. Następnie program sprawdza, czy wyraz znajduje się w bazie słów, a jeżeli tak, to czy słownik, w którym wyraz został znaleziony ma włączoną opcje Użyj do dzielenia. Jeśli tak jest – program buduje tablicę podziałów dla wyrazu. Przy budowaniu tej tablicy najpierw uwzględniane są podziały wskazane przez użytkownika (jeśli użytkownik zakazał dzielenia wyrazu, to program w tym miejscu przechodzi do następnego wyrazu). W drugiej kolejności (jeśli nie było podziałów użytkownika) program porównuje początek wyrazu z listą przedrostków do dzielenia (listę tę można edytować w oknie konfigurowania modułu słownikowego. Jeśli początek wyrazu zostanie dopasowany do jednego z przedrostków, program to zapamiętuje i przechodzi do trzeciego etapu dzielenia, czyli do szukania sylab. Tutaj program poszukuje samogłosek (poczynając od następnej litery po ewentualnym podziale po przedrostku) i wstawia podział między dwie sąsiednie samogłoski lub jeśli są przedzielone jedną spółgłoską – to po pierwszej samogłosce, lub jeśli więcej niż jedną spółgłoską – to po pierwszej spółgłosce (chyba, że rozdzielana para spółgłosek należy do zbioru nie rozdzielanych dwuznaków, np. sz, cz, rz, itd. Listę tę możemy zmieniać w oknie konfigurowania modułu słownikowego). Etap algorytmicznego dzielenia wyrazów znalezionych w słowniku jest pomijany, jeśli słownik ma wyłączoną opcję Dziel algorytmicznie. Jak już wspomniałem jest to na razie tablica podziałów dla wyrazu. Teraz dane z tablicy porównywane są z opcjami Minimalna liczba liter przed pierwszym podziałem oraz Minimalna liczba liter po ostatnim podziale. Obie wartości możemy zmieniać w oknie opcji dzielenia. W tekst wstawiane są tylko te wartości z utworzonej wcześniej tablicy, które spełniają wymienione wcześniej warunki. Jeśli wyraz nie został znaleziony w słowniku – sprawdzany jest stan opcji Dziel tylko wyrazy znalezione w słowniku. Jeśli opcja jest wyłączona, to program realizuje wcześniej omówiony algorytm poczynając od etapu poszukiwania przedrostków. Po podzieleniu całego tekstu sprawdzany jest stan opcji Wstaw podziały bez znaku. Podział bez znaku jest specjalnym podziałem, który stosujemy np. w takich ciągach znaków, jak np.: C:\Kombi\Dokumenty\Moje\Test.kmd. W ciągu tym dozwolone jest przeniesienie po każdym znaku \, ale nie chcemy, aby po tym znaku pojawił się znak przeniesienia (to mogłoby spowodować błędną interpretację adresu). Z drugiej strony, aby umożliwić przeniesienie moglibyśmy po tych znakach wstawić spacje, ale w przypadku niewykorzystania takiego przeniesienia wyglądałoby to brzydko. Podziały bez znaku rozwiązują ten problem. W miejscu wystąpienia takiego podziału wyraz może być przeniesiony, ale znak podziału nie jest przy tym pokazywany. Przy wstawianiu tych podziałów program wykorzystuje listę Podziały bez znaku po znakach, którą edytujemy w oknie konfigurowania modułu słownikowego. Ostatnim etapem dzielenia tekstu jest znalezienie miejsc występowania łączników (np. w połączeniach typu matematyczno-fizyczny) i wstawieniu znaku podziału przed każdy łącznik. Zapewnia to graficznie prawidłową postać podzielenia takiego połączenia, która polega na występowaniu dwóch poziomych kreseczek (dywizów), tj. na końcu wiersza dzielonego i na początku następnego. Wstawienie znaków podziału przed łączniki uzależnione jest od włączenia opcji Wstaw podziały przed łączniki w oknie opcji dzielenia. Dzielenie odbywa się zawsze od miejsca, w którym znajduje się kursor do końca tekstu, chyba że w tekście zaznaczony jest fragment – wtedy dzielony jest tylko zaznaczony fragment tekstu. Omówiony wyżej algorytm dzielenia realizowany jest przez sam moduł dzielący. Na etapie składu (już w programie Kombi) sprawdzane są jeszcze inne warunki dopuszczające (lub nie) podzielenie wyrazu, np. można zabronić podziału na granicy ramek bądź też zadać maksymalną liczbę kolejno dzielonych wierszy. Omówiony wyżej moduł słownikowy może również podzielić na sylaby tekst przygotowywany na stronę internetową (co zapewne zauważyłeś czytając ten tekst) :-) i wcale nie musisz do tego kupować pełnego pakietu Kombi. Tekst podzielisz na sylaby w KombiKorze, którego możesz nabyć jako niezależny program.Zespół 3n, Koszalin, maj 2018
Komentarze: skomentuj tę stronę |