diff options
Diffstat (limited to 'fonts/greek/greektex/gehyphw.gr')
-rw-r--r-- | fonts/greek/greektex/gehyphw.gr | 412 |
1 files changed, 412 insertions, 0 deletions
diff --git a/fonts/greek/greektex/gehyphw.gr b/fonts/greek/greektex/gehyphw.gr new file mode 100644 index 0000000000..a7fa2f7ab3 --- /dev/null +++ b/fonts/greek/greektex/gehyphw.gr @@ -0,0 +1,412 @@ +% gehyphw.gr
+% Greek hyphenation and lccode, uccode assignment. Y. Moschovakis
+% 9/9/1990, named gehyphen.gr
+% Corrected 11/7/90
+% Adjusted version, August 1993
+% Adjusted to the clr coding, July 1994
+% Adjusted to the wclr coding and renamed, September 2001
+% =========================================================
+
+% This file takes a practical approach to the hyphenation problem
+% which will yield enough correct hyphenations to deal with most
+% manuscripts and should not introduce errors. The basic idea is
+% the following.
+%
+% Conversion to lowercase is ambiguous in Greek because of the accents
+% which cannot be reproduced, so that (it is hoped) no useful macros
+% will use it. We assign the same lccode (1) to all vowels.
+% This simplifies (and shortens) greatly the statement of the basic
+% vowel\-consonsnt|vowel greek hyphenation rule.
+%
+% The hyphenation (syllabisation) rules for Greek are quite standard.
+% For the monotoniko system, they are listed as follows in the dictionary
+% Ôï ÌåãÜëï Ëåîéêü ôçò ÍåïåëëçíéêÞò ãëþóóáò, ôïõ Á. ÃåùñãïðáðáäÜêïõ.
+%
+% (a) v1\-cv2 is always allowed
+% (b) v1\c1c2v2 is allowed when there is a Greek word
+% beginning with c1c2. There are exactly 51 such combinations c1c2
+% in this dictionary, some of them involving only foreign or
+% unusual words.
+% (c) v1\-c1c2c3v2 is allowed when there is a Greek word
+% beginning with c1c2 or c1c2c3
+% (d) The combinations ìð, íô, ãê do not split
+% (e) Compound words obey the same rules
+% (f) Diphthongs and other two-vowel combinations which are pronounced
+% as one do not split. These include áé, åé, ïé, õé, ïõ, áõ, åõ,
+% etc.
+%
+% I am interpreting this to mean that in the other cases splitting is
+% allowed, e.g. in the canonical ì\-ì, ë\-ë etc.
+%
+% To bring the number of cases down to a reasonable few I have combined
+% (a), (b) and (c) into the rules "v15cv2", "v13c1c2" and "4c1c2."
+% when some word begins with c1c2, together with some of the most common
+% cases of "v1c13c2v2" when no word begins with c1c2. I have also added
+% ".á4" to inhibit splitting after just one
+% letter, something which is done in Greek but is not very pretty, as
+% well as "c4." to inhibit splitting with just one letter to go, a rule
+% which is implicit above.
+%
+% These rules still allow some desirable v1\-c1c2c3
+% combinations as in óöõ\-ñß\-÷ôñá, and will not introduce
+% errors unless there are words which end in three consonants. There may
+% be some (presumably) foreign words like this, but I could not think
+% of any. The rules may do funny things with foreign words, although
+% ðÜñêéíãê e.g., comes out as ðáñ\-êéíãê. I believe (for reasons which
+% have nothing to do with mechanical hyphenation) that such words should
+% be spelled in the Latin alphabet.
+%
+% The most glaring incompleteness of these rules is that they do not
+% allow for any vowel-vowel splits which are quite common in Greek,
+% e.g. çëéêé\-ùìÝíïò. The system does not seem to need these, however,
+% and I have been trying it without them.
+%
+% The choice of 5's and 3's is quite arbitrary and should be reviewed
+% after some practice.
+
+% ============================================================
+
+% lc vowels have lccode 1
+
+\lccode`á=1
+\lccode`Ü=1
+\lccode`^^a1=1 % .á
+\lccode`^^a5=1 % á`
+\lccode`^^a6=1 % á=
+\lccode`^^a7=1 % >á
+\lccode`^^a8=1 % <á
+\lccode`^^a9=1 % >á'
+\lccode`^^aa=1 % <á'
+\lccode`å=1
+\lccode`Ý=1
+\lccode`^^ab=1 % å`
+\lccode`^^80=1 % >å
+\lccode`^^81=1 % <å
+\lccode`^^82=1 % >å'
+\lccode`^^83=1 % <å'
+\lccode`ç=1
+\lccode`Þ=1
+\lccode`^^bb=1 % .ç
+\lccode`^^84=1 % ç`
+\lccode`^^85=1 % ç=
+\lccode`^^86=1 % >ç
+\lccode`^^87=1 % <ç
+\lccode`^^88=1 % >ç'
+\lccode`^^a0=1 % <ç'
+\lccode`é=1
+\lccode`ß=1
+\lccode`ú=1
+\lccode`^^c0=1 % é with diairesis and oxeia
+\lccode`^^89=1 % é`
+\lccode`^^8a=1 % é=
+\lccode`^^8b=1 % >é
+\lccode`^^8c=1 % <é
+\lccode`^^8d=1 % >é'
+\lccode`^^8e=1 % <é'
+\lccode`^^b6=1 % >=é
+\lccode`^^bd=1 % <=é
+\lccode`ï=1
+\lccode`ü=1
+\lccode`^^8f=1 % ï`
+\lccode`^^90=1 % >ï
+\lccode`^^91=1 % <ï
+\lccode`^^92=1 % >ï'
+\lccode`^^93=1 % <ï'
+\lccode`õ=1
+\lccode`û=1
+\lccode`ý=1
+\lccode`^^e0=1 % õ with diaer and oxeia
+\lccode`^^94=1 % õ`
+\lccode`^^95=1 % õ=
+\lccode`^^96=1 % >õ
+\lccode`^^97=1 % <õ
+\lccode`^^98=1 % >õ'
+\lccode`^^99=1 % <õ'
+\lccode`ù=1
+\lccode`þ=1
+\lccode`^^ff=1 % .ù
+\lccode`^^9a=1 % ù`
+\lccode`^^9b=1 % ù=
+\lccode`^^9c=1 % >ù
+\lccode`^^9d=1 % <ù
+\lccode`^^9e=1 % >ù'
+\lccode`^^9f=1 % <ù'
+
+% Consonants and capitals
+% Capital vowels get 1 to ensure hyphenation of all-capital text
+
+\lccode`â=`â
+\lccode`ã=`ã
+\lccode`ä=`ä
+\lccode`æ=`æ
+\lccode`è=`è
+\lccode`ê=`ê
+\lccode`ë=`ë
+\lccode`ì=`ì
+\lccode`í=`í
+\lccode`î=`î
+\lccode`ð=`ð
+\lccode`ñ=`ñ
+\lccode`ó=`ó
+\lccode`ò=`ò
+\lccode`ô=`ô
+\lccode`ö=`ö
+\lccode`÷=`÷
+\lccode`ø=`ø
+\lccode`Á=1
+\lccode`^^a2=1 % 'Á
+\lccode`Â=`â
+\lccode`Ã=`ã
+\lccode`Ä=`ä
+\lccode`Å=1
+\lccode`^^b8=1 % 'E
+\lccode`Æ=`æ
+\lccode`Ç=1
+\lccode`^^b9=1 % 'Ç
+\lccode`È=`è
+\lccode`É=1
+\lccode`^^ba=1 % 'É
+\lccode`^^da=1 % "É
+\lccode`Ê=`ê
+\lccode`Ë=`ë
+\lccode`Ì=`ì
+\lccode`Í=`í
+\lccode`Î=`î
+\lccode`Ï=1
+\lccode`^^bc=1 % 'Ï
+\lccode`Ð=`ð
+\lccode`Ñ=`ñ
+\lccode`Ó=`ó
+\lccode`Ô=`ô
+\lccode`Õ=`õ
+\lccode`^^be=1 % 'Õ
+\lccode`^^db=1 % "Õ
+\lccode`Ö=`ö
+\lccode`×=`÷
+\lccode`Ø=`ø
+\lccode`Ù=1
+\lccode`^^bf=1 % 'Ù
+
+% =================================================================
+
+\patterns{%
+á5âå % Rule (1) v1\-cv2
+á5ãå
+á5äå
+á5æå
+á5èå
+á5êå
+á5ëå
+á5ìå
+á5íå
+á5îå
+á5ðå
+á5ñå
+á5óå
+á5ôå
+á5öå
+á5÷å
+á5øå % End or rule (1)
+á5âã % Rule (2) v1\-c1c2v2 is split only when some Greek words
+á5âä % begins with c1c2
+á5âë
+á5âñ
+á5ãä
+á5ãê
+á5ãë
+á5ãí
+á5ãñ
+á5äñ
+á5æâ
+á5èë
+á5èí
+á5èñ
+% á5êâ % Foreign words only
+á5êë
+á5êí
+á5êñ
+á5êô
+á5ìí
+á5ìð
+á5íô
+á5ðë
+á5ðí
+á5ðñ
+á5ðô
+á5óâ
+á5óã
+á5óè
+á5óê
+% á5óë % Foreign words only
+á5óì
+% á5óí % Foreign words only
+á5óð
+á5óô
+á5óö
+á5ó÷
+á5ôæ
+á5ôì
+á5ôñ
+á5ôó
+á5öè
+% á5öê % Few words only, like öêéÜíù
+á5öë
+á5öñ
+á5öô
+á5÷è
+á5÷ë
+á5÷í
+á5÷ñ
+á5÷ô % End of exceptional rule (2)
+ã5ã % Some common cases of c1-c2 where no word begins by c1c2
+ã5ì % This is the list which can be improved with time
+è5ì
+ê5ä
+ë5ë
+ì5â
+ì5ì
+ì5ö % 12/92 óýì-öùíá
+í5ä % 11/91 ïðïéïí\-äÞðïôå
+í5è
+í5í
+ñ5â
+ñ5è
+ñ5ê % 12/92 áñ-êåôÜ
+ñ5ì
+ñ5ñ
+ñ5í
+ñ5î % 6/90 õðáñ-îéóôÞò
+ñ5ô % 1/93 óõíÜñ-ôçóç
+ñ5ö % 1/93 åðéìïñ-öéóìüò
+ñ5÷
+ó5ä % 11/90 ïðùó-äÞðïôå
+ó5ó
+ô5ô
+í6ô % The three explicit "modern" prohibitions
+ì6ð
+ã6ê
+}
+
+% ==============================================================
+
+% uccodes forget the accents and iota subscripts
+% they preserve the diaeresis
+% this cannot handle ligatures
+% including the initial, accented cap ligatures
+% but it makes \uppercase work when accented, initial capitals
+% are entered in hexagesimal notation
+% 'Á=^^a2, 'Å=^^b8, 'Ç=^^b9, 'É=^^ba, 'Ï=^^bc, 'Õ=^^be, 'Ù=^^bf
+% or using the appropriate extended keyboard program
+
+\uccode`á=`Á
+\uccode`Ü=`Á
+\uccode`^^a1=`Á % á|
+\uccode`^^a5=`Á % á`
+\uccode`^^a6=`Á % á=
+\uccode`^^a7=`Á % >á
+\uccode`^^a8=`Á % <á
+\uccode`^^a9=`Á % >á'
+\uccode`^^aa=`Á % <á'
+\uccode`â=`Â
+\uccode`ã=`Ã
+\uccode`ä=`Ä
+\uccode`å=`Å
+\uccode`Ý=`Å
+\uccode`^^ab=`Å % å`
+\uccode`^^80=`Å % >å
+\uccode`^^81=`Å % <å
+\uccode`^^82=`Å % >å'
+\uccode`^^83=`Å % <å'
+\uccode`æ=`Æ
+\uccode`ç=`Ç
+\uccode`Þ=`Ç
+\uccode`^^bb=`Ç % ±
+\uccode`^^84=`Ç % ç`
+\uccode`^^85=`Ç % ç=
+\uccode`^^86=`Ç % >ç
+\uccode`^^87=`Ç % <ç
+\uccode`^^88=`Ç % >ç'
+\uccode`^^a0=`Ç % <ç'
+\uccode`è=`È
+\uccode`é=`É
+\uccode`ß=`É
+\uccode`ú=`^^da
+\uccode`^^c0=`^^da % "'é
+\uccode`^^89=`É % é`
+\uccode`^^8a=`É % é=
+\uccode`^^8b=`É % >é
+\uccode`^^8c=`É % <é
+\uccode`^^8d=`É % >é'
+\uccode`^^8e=`É % <é'
+\uccode`ê=`Ê
+\uccode`ë=`Ë
+\uccode`ì=`Ì
+\uccode`í=`Í
+\uccode`î=`Î
+\uccode`ï=`Ï
+\uccode`ü=`Ï
+\uccode`^^8f=`Ï % ï`
+\uccode`^^90=`Ï % >ï
+\uccode`^^91=`Ï % <ï
+\uccode`^^92=`Ï % >ï'
+\uccode`^^93=`Ï % <ï'
+\uccode`ð=`Ð
+\uccode`ñ=`Ñ
+\uccode`ó=`Ó
+\uccode`ò=`Ó
+\uccode`ô=`Ô
+\uccode`õ=`Õ
+\uccode`ý=`Õ
+\uccode`û=`^^db
+\uccode`^^e0=`^^db % "'õ
+\uccode`^^94=`Õ % õ`
+\uccode`^^95=`Õ % õ=
+\uccode`^^96=`Õ % >õ
+\uccode`^^97=`Õ % <õ
+\uccode`^^98=`Õ % >õ'
+\uccode`^^99=`Õ % <õ'
+\uccode`ö=`Ö
+\uccode`÷=`×
+\uccode`ø=`Ø
+\uccode`ù=`Ù
+\uccode`þ=`Ù
+\uccode`^^ff=`Ù % .ù
+\uccode`^^9a=`Ù % ù`
+\uccode`^^9b=`Ù % ù=
+\uccode`^^9c=`Ù % >ù
+\uccode`^^9d=`Ù % <ù
+\uccode`^^9e=`Ù % >ù'
+\uccode`Á=`Á
+\uccode`^^a2=`^^a2 % 'A
+\uccode`Â=`Â
+\uccode`Ã=`Ã
+\uccode`Ä=`Ä
+\uccode`Å=`Å
+\uccode`^^b8=`^^b8 % 'E
+\uccode`Æ=`Æ
+\uccode`Ç=`Ç
+\uccode`^^b9=`^^b9 % 'H
+\uccode`È=`È
+\uccode`É=`É
+\uccode`^^ba=`^^ba % 'I
+\uccode`^^da=`^^da % "I
+\uccode`Ê=`Ê
+\uccode`Ë=`Ë
+\uccode`Ì=`Ì
+\uccode`Í=`Í
+\uccode`Î=`Î
+\uccode`Ï=`Ï
+\uccode`^^bc=`^^bc % 'O
+\uccode`Ð=`Ð
+\uccode`Ñ=`Ñ
+\uccode`Ó=`Ó
+\uccode`Ô=`Ô
+\uccode`Õ=`Õ
+\uccode`^^be=`^^be % 'Y
+\uccode`^^db=`^^db % "Y
+\uccode`Ö=`Ö
+\uccode`×=`×
+\uccode`Ø=`Ø
+\uccode`Ù=`Ù
+\uccode `^^bf=`^^bf % 'Ù
+% =============================================================
|