*** empty log message ***
[m17n/m17n-db.git] / FLT / TEL2-OTF.flt
1 ;; TEL2-OTF.flt -- Font Layout Table for tel2 OpenType fonts
2 ;; Copyright (C) 2010 AIST (H15PRO112)
3 ;; See the end for copying conditions.
4
5 (font layouter tel2-otf nil
6       (version "1.6.0")
7       (font (nil nil unicode-bmp :otf=tel2)))
8
9 ;;; <li> TEL2-OTF.flt
10 ;;;
11 ;;; For tel2 OpenType fonts to draw the Telugu script.
12
13 ;; gautami.ttf requires the following glyph order to layout the Telugu script.
14 ;; 1. base consonant
15 ;; 2. above matra (0C3E..0C42, 0C46, 0C47, 0C4A, 0C4C)
16 ;; 3. below matra (0C56)
17 ;; 4. blwf consonants
18 ;; 5. post matra (0C43, 0C44)
19 ;; 6. candrabindu (0C01), anusvara (0C02), visarga(0C03)
20
21 ;; 0C62 and 0C63, which should be below matras, are not yet implemented.
22
23 (category
24  (0x0C00 0x0C7F ?X)                     ; generic
25  (0x0C01 0x0C03 ?A)                     ; SIGN CANDRABINDU .. VISARGA
26  (0x0C05 0x0C14 ?V)                     ; LETTER A .. AU
27  (0x0C15 0x0C39 ?C)                     ; LETTER KA .. HA
28  (0x0C3E 0x0C42 ?u)                     ; VOWEL SIGN AA .. II
29  (0x0C43 0x0C44 ?p)                     ; VOWEL SIGN U .. VOCALIC RR
30  (0x0C46 0x0C47 ?u)                     ; VOWEL SIGN E .. EE
31  (0x0C4A 0x0C4C ?u)                     ; VOWEL SIGN O .. AU
32  (0x0C4D        ?H)                     ; SIGN VIRAMA
33  (0x0C55        ?u)                     ; LENGTH MARK
34  (0x0C56        ?b)                     ; AI LENGTH MARK
35  (0x0C58 0x0C59 ?C)                     ; LETTER TSA .. DZA
36  (0x0C60 0x0C61 ?V)                     ; LETTER VOCALIC RR .. VOCALIC LL
37  (0x0C62 0x0C63 ?b)                     ; VOWEL SIGN VOCALIC L .. VOCALIC LL
38
39  (0x200C        ?N)                     ; ZWNJ
40  (0x200D        ?J)                     ; ZWJ
41  (0x25CC        ?X)                     ; DOTTED CIRCLE
42
43  (blwf          ?B)
44  )
45
46 ;; Stage 0
47 ;; Preprocessing
48 (generator
49  (0
50   (cond
51    ;; Decompose two-part vowel signs.
52    ((0x0C48)
53     0x0C46 0x0C56)
54
55    ("." =))
56   *))
57
58 ;; Stage 1
59 ;; Syllable identification and basic shaping forms
60 (generator
61  (0
62   (cond
63    ;; Consonant-based syllables
64    ;;12          3              4
65    ("((CJ?HJ?)*C)(H[NJ]?|u?b?p?)(A)?"
66     < | (1 :otf=tel2=locl,akhn,blwf,cjct+) (3 = *) (4 =) | >)
67
68    ;; Syllables with an independent vowel
69    ;;1  2      3
70    ("(V)(J?HC)?(u?b?p?A?)"
71     < | (1 =) (2 :otf=tel2=locl,blwf+) (3 = *) | >)
72
73    ;; Two-part vowel signs
74    ((0x0C46 0x0C56)
75     (cond
76      ((font-facility 0x25CC) < 0x25CC 0x0C46 0x0C56 >)
77      (".+" < 0x0C48 >)))
78
79    ;; Combining marks are displayed with a DOTTED CIRCLE.
80    ("[HubpA]"
81     (cond
82      ((font-facility 0x25CC) < 0x25CC = >)
83      ("." [ = ])))
84    ("JHC"
85     (cond
86      ((font-facility 0x25CC) < 0x25CC :otf=tel2=blwf+ >)
87      (".+" [ :otf=tel2=blwf+ ])))
88
89    ("." =))
90   *))
91
92 ;; Stage 2
93 ;; Move subscript glyphs
94 (generator
95  (0
96   (cond
97    (" ([^B ]*[^BJ])J?(B*)(ub?|b)([^ ]*) "
98     | (1 = *) (3 = *) (2 = *) (4 = *) |)
99
100    ("." =))
101   *))
102
103 ;; Stage 3
104 ;; Presentation forms
105 (generator
106  (0
107   (cond
108    (" ([^ ]+) "
109     | (1 :otf=tel2=pres,abvs,blws,psts,haln,calt+) |)
110
111    ("." =))
112   *))
113
114 ;; Stage 4
115 ;; Remove ZWNJ/ZWJ
116 (generator
117  (0
118   (cond
119    ("[NJ]")
120
121    ("." =))
122   *))
123
124 ;; Stage 5
125 ;; GPOS processing
126 (generator
127  (0
128   (cond
129    (" ([^ ]+) "
130     (1 :otf=tel2=+kern,dist,abvm,blwm))
131
132    ("." =))
133   *))
134
135 ;; Copyright (C) 2010
136 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
137 ;;   Registration Number H15PRO112
138
139 ;; This file is part of the m17n database; a sub-part of the m17n
140 ;; library.
141
142 ;; The m17n library is free software; you can redistribute it and/or
143 ;; modify it under the terms of the GNU Lesser General Public License
144 ;; as published by the Free Software Foundation; either version 2.1 of
145 ;; the License, or (at your option) any later version.
146
147 ;; The m17n library is distributed in the hope that it will be useful,
148 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
149 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
150 ;; Lesser General Public License for more details.
151
152 ;; You should have received a copy of the GNU Lesser General Public
153 ;; License along with the m17n library; if not, write to the Free
154 ;; Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
155 ;; Boston, MA 02110-1301, USA.
156
157 ;; Local Variables:
158 ;; mode: emacs-lisp
159 ;; End: