]> mj.ucw.cz Git - ucwmac.git/blob - ucw-luaofs.tex
Released as version 2.0 with no functional changes
[ucwmac.git] / ucw-luaofs.tex
1 \ucwdefmodule{luaofs}
2 \ucwdefmodule{ofs}
3
4 \input luaotfload.sty
5 \input ofs.tex
6 \nofontmessages
7
8 \ofsputfamlist{^^JLatinModern:}
9
10 \def\LMfeat#1{:mode=base;script=latn;+tlig}
11
12 %%% LMRoman %%%
13
14 \ofsdeclarefamily [LMRoman] {%
15    \loadtextfam lmr;%
16                 lmbx;%
17                 lmti;%
18                 lmbxti;;%
19    \newvariant 8 \sl   (Slanted)     lmsl;;%
20    \newvariant 9 \bxsl (BoldSlanted) lmbxsl;;%
21    \newvariant a \bo   (BoldNormal)  lmb;;%
22    \newvariant b \bosl (BoldNormalSlanted)  lmbsl;;%
23    \newvariant c \csc  (CapsAndSmallCaps)   lmcsc;;%
24 }
25
26 \registertfm lmr        -      LMRoman10-Regular\LMfeat{}
27 \registertfm lmr     0pt-6pt   LMRoman5-Regular\LMfeat{}
28 \registertfm lmr     6pt-7pt   LMRoman6-Regular\LMfeat{}
29 \registertfm lmr     7pt-8pt   LMRoman7-Regular\LMfeat{}
30 \registertfm lmr     8pt-9pt   LMRoman8-Regular\LMfeat{}
31 \registertfm lmr     9pt-10pt  LMRoman9-Regular\LMfeat{}
32 \registertfm lmr    10pt-12pt  LMRoman10-Regular\LMfeat{}
33 \registertfm lmr    12pt-17pt  LMRoman12-Regular\LMfeat{}
34 \registertfm lmr    17pt-*     LMRoman17-Regular\LMfeat{}
35
36 \registertfm lmbx       -      LMRoman10-Bold\LMfeat{}
37 \registertfm lmbx    0pt-6pt   LMRoman5-Bold\LMfeat{}
38 \registertfm lmbx    6pt-7pt   LMRoman6-Bold\LMfeat{}
39 \registertfm lmbx    7pt-8pt   LMRoman7-Bold\LMfeat{}
40 \registertfm lmbx    8pt-9pt   LMRoman8-Bold\LMfeat{}
41 \registertfm lmbx    9pt-10pt  LMRoman9-Bold\LMfeat{}
42 \registertfm lmbx   10pt-12pt  LMRoman10-Bold\LMfeat{}
43 \registertfm lmbx   12pt-*     LMRoman12-Bold\LMfeat{}
44
45 \registertfm lmti       -      LMRoman10-Italic\LMfeat{}
46 \registertfm lmti    0pt-8pt   LMRoman7-Italic\LMfeat{}
47 \registertfm lmti    8pt-9pt   LMRoman8-Italic\LMfeat{}
48 \registertfm lmti    9pt-10pt  LMRoman9-Italic\LMfeat{}
49 \registertfm lmti   10pt-12pt  LMRoman10-Italic\LMfeat{}
50 \registertfm lmti   12pt-*     LMRoman12-Italic\LMfeat{}
51
52 \registertfm lmbxti     -      LMRoman10-BoldItalic\LMfeat{}
53
54 \registertfm lmsl       -      LMRomanSlant10-Regular\LMfeat{}
55 \registertfm lmsl    0pt-9pt   LMRomanSlant8-Regular\LMfeat{}
56 \registertfm lmsl    9pt-10pt  LMRomanSlant9-Regular\LMfeat{}
57 \registertfm lmsl   10pt-12pt  LMRomanSlant10-Regular\LMfeat{}
58 \registertfm lmsl   12pt-17pt  LMRomanSlant12-Regular\LMfeat{}
59 \registertfm lmsl   17pt-*     LMRomanSlant17-Regular\LMfeat{}
60
61 \registertfm lmbxsl     -      LMRomanSlant10-Bold\LMfeat{}
62
63 \registertfm lmb        -      LMRomanDemi10-Regular\LMfeat{}
64
65 \registertfm lmbsl      -      LMRomanDemi10-Oblique\LMfeat{}
66
67 \registertfm lmcsc      -      LMRomanCaps10-Regular\LMfeat{}
68
69 \setfonts[LMRoman/]
70
71 %%% LMSans %%%
72
73 \ofsdeclarefamily [LMSans] {%
74    \loadtextfam lmss;%
75                 lmssbx;%
76                 lmsso;%
77                 lmssbo;;%
78 }
79
80 \registertfm lmss       -      LMSans10-Regular\LMfeat{}
81 \registertfm lmss    0pt-9pt   LMSans8-Regular\LMfeat{}
82 \registertfm lmss    9pt-10pt  LMSans9-Regular\LMfeat{}
83 \registertfm lmss   10pt-12pt  LMSans10-Regular\LMfeat{}
84 \registertfm lmss   12pt-17pt  LMSans12-Regular\LMfeat{}
85 \registertfm lmss   17pt-*     LMSans17-Regular\LMfeat{}
86
87 \registertfm lmssbx     -      LMSans10-Bold\LMfeat{}
88
89 \registertfm lmsso      -      LMSans10-Oblique\LMfeat{}
90 \registertfm lmsso   0pt-9pt   LMSans8-Oblique\LMfeat{}
91 \registertfm lmsso   9pt-10pt  LMSans9-Oblique\LMfeat{}
92 \registertfm lmsso  10pt-12pt  LMSans10-Oblique\LMfeat{}
93 \registertfm lmsso  12pt-17pt  LMSans12-Oblique\LMfeat{}
94 \registertfm lmsso  17pt-*     LMSans17-Oblique\LMfeat{}
95
96 \registertfm lmssbo     -      LMSans10-BoldOblique\LMfeat{}
97
98 %%% LMSansDC %%%
99
100 \ofsdeclarefamily [LMSansDC] {%
101    \loadtextfam lmssdc;%
102                 ;%
103                 lmssdo;%
104                 ;;%
105 }
106
107 \registertfm lmssdc     -      LMSansDemiCond10-Regular\LMfeat{}
108
109 \registertfm lmssdo     -      LMSansDemiCond10-Oblique\LMfeat{}
110
111 %%% LMMono %%%
112
113 \ofsdeclarefamily [LMMono] {%
114    \loadtextfam lmtt;%
115                 lmtk;%
116                 lmtti;%
117                 ;;%
118    \newvariant 8 \sl   (Slanted)     lmtto;;%
119    \newvariant 9 \bxsl (BoldSlanted) lmtko;;%
120    \newvariant c \csc  (CapsAndSmallCaps)   lmtcsc;;%
121 }
122
123 \registertfm lmtt       -      LMMono10-Regular\LMfeat{}
124 \registertfm lmtt    0pt-9pt   LMMono8-Regular\LMfeat{}
125 \registertfm lmtt    9pt-10pt  LMMono9-Regular\LMfeat{}
126 \registertfm lmtt   10pt-12pt  LMMono10-Regular\LMfeat{}
127 \registertfm lmtt   12pt-*     LMMono12-Regular\LMfeat{}
128
129 \registertfm lmtk       -      LMMonoLt10-Bold\LMfeat{}
130
131 \registertfm lmtti      -      LMMono10-Italic\LMfeat{}
132
133 \registertfm lmtto      -      LMMonoSlant10-Regular\LMfeat{}
134
135 \registertfm lmtko      -      LMMonoLt10-BoldOblique\LMfeat{}
136
137 \registertfm lmtcsc     -      LMMonoCaps10-Regular\LMfeat{}
138
139 \newfam\ttfam
140 \loadmathfam\ttfam[/LMMono10-Regular\LMfeat{}]
141
142 %%% LMMonoCondensed %%%
143
144 \ofsdeclarefamily [LMMonoCondensed] {%
145    \loadtextfam lmtlc;%
146                 ;%
147                 lmtlco;%
148                 ;;%
149 }
150
151 \registertfm lmtlc      -      LMMonoLtCond10-Regular\LMfeat{}
152
153 \registertfm lmtlco     -      LMMonoLtCond10-Oblique\LMfeat{}
154
155 %%% UCW extensions %%%
156
157 \ofsputfamlist{^^JUCW:}
158
159 \ofsdeclarefamily [BlackboardBold] {%
160    \loadtextfam bbm;%
161                 ;%
162                 ;%
163                 ;\defaultextraenc;%
164 }
165
166 \registertfm bbm     -      bbm10
167 \registertfm bbm  0pt-6pt   bbm5
168 \registertfm bbm  6pt-7pt   bbm6
169 \registertfm bbm  7pt-8pt   bbm7
170 \registertfm bbm  8pt-9pt   bbm8
171 \registertfm bbm  9pt-10pt  bbm9
172 \registertfm bbm  10pt-12pt bbm10
173 \registertfm bbm  12pt-17pt bbm12
174 \registertfm bbm  17pt-*    bbm17
175
176 % \bb - blackboard bold math font
177
178 \newfam\bbfam
179 \def\bb{\fam\bbfam}
180
181 \def\loadbbm{%
182         \loadmathfam\bbfam[/bbm]%
183 }
184 \loadbbm
185
186 %%% Font size switches %%%
187
188 % Recalculate line spacing for a given point size of the font (assuming CM-like metrics).
189 % Also sets \strut and \topskip.
190 \def\setbaselines#1{%
191         \dimen0=1pt
192         \dimen0=#1\dimen0
193         \normalbaselineskip=1.2\dimen0
194         \normallineskip=0.1\dimen0
195         \setbox\strutbox=\hbox{\vrule height 0.85\dimen0 depth 0.35\dimen0 width 0pt}%
196         \topskip=1\dimen0
197         \normalbaselines
198 }
199
200 % Switch to a specified font size (including math, line spacing etc.)
201 \def\settextsize#1{%
202         \def\fomenc{CM}%
203         \setfonts[/#1]%
204         \setmath[//]%
205         \setbaselines{#1}%
206         \loadbbm
207 }
208 \def\twelvepoint{\settextsize{12}}
209
210 %%% Various hacks %%%
211
212 % Re-define \tt, so that it works in both text and math mode
213 \def\tt{\ifmmode\fam\ttfam\else\setfonts[LMMono/]\fi}
214
215 % Re-define ucwmac's \fontfont
216 \let\footfont=\tenrm