8 \ofsputfamlist{^^JLatinModern:}
10 \def\LMfeat#1{:mode=base;script=latn;+tlig}
11 \def\LMMonofeat#1{:mode=base;script=latn}
15 \ofsdeclarefamily [LMRoman] {%
20 \newvariant 8 \sl (Slanted) lmsl;;%
21 \newvariant 9 \bxsl (BoldSlanted) lmbxsl;;%
22 \newvariant a \bo (BoldNormal) lmb;;%
23 \newvariant b \bosl (BoldNormalSlanted) lmbsl;;%
24 \newvariant c \csc (CapsAndSmallCaps) lmcsc;;%
27 \registertfm lmr - LMRoman10-Regular\LMfeat{}
28 \registertfm lmr 0pt-6pt LMRoman5-Regular\LMfeat{}
29 \registertfm lmr 6pt-7pt LMRoman6-Regular\LMfeat{}
30 \registertfm lmr 7pt-8pt LMRoman7-Regular\LMfeat{}
31 \registertfm lmr 8pt-9pt LMRoman8-Regular\LMfeat{}
32 \registertfm lmr 9pt-10pt LMRoman9-Regular\LMfeat{}
33 \registertfm lmr 10pt-12pt LMRoman10-Regular\LMfeat{}
34 \registertfm lmr 12pt-17pt LMRoman12-Regular\LMfeat{}
35 \registertfm lmr 17pt-* LMRoman17-Regular\LMfeat{}
37 \registertfm lmbx - LMRoman10-Bold\LMfeat{}
38 \registertfm lmbx 0pt-6pt LMRoman5-Bold\LMfeat{}
39 \registertfm lmbx 6pt-7pt LMRoman6-Bold\LMfeat{}
40 \registertfm lmbx 7pt-8pt LMRoman7-Bold\LMfeat{}
41 \registertfm lmbx 8pt-9pt LMRoman8-Bold\LMfeat{}
42 \registertfm lmbx 9pt-10pt LMRoman9-Bold\LMfeat{}
43 \registertfm lmbx 10pt-12pt LMRoman10-Bold\LMfeat{}
44 \registertfm lmbx 12pt-* LMRoman12-Bold\LMfeat{}
46 \registertfm lmti - LMRoman10-Italic\LMfeat{}
47 \registertfm lmti 0pt-8pt LMRoman7-Italic\LMfeat{}
48 \registertfm lmti 8pt-9pt LMRoman8-Italic\LMfeat{}
49 \registertfm lmti 9pt-10pt LMRoman9-Italic\LMfeat{}
50 \registertfm lmti 10pt-12pt LMRoman10-Italic\LMfeat{}
51 \registertfm lmti 12pt-* LMRoman12-Italic\LMfeat{}
53 \registertfm lmbxti - LMRoman10-BoldItalic\LMfeat{}
55 \registertfm lmsl - LMRomanSlant10-Regular\LMfeat{}
56 \registertfm lmsl 0pt-9pt LMRomanSlant8-Regular\LMfeat{}
57 \registertfm lmsl 9pt-10pt LMRomanSlant9-Regular\LMfeat{}
58 \registertfm lmsl 10pt-12pt LMRomanSlant10-Regular\LMfeat{}
59 \registertfm lmsl 12pt-17pt LMRomanSlant12-Regular\LMfeat{}
60 \registertfm lmsl 17pt-* LMRomanSlant17-Regular\LMfeat{}
62 \registertfm lmbxsl - LMRomanSlant10-Bold\LMfeat{}
64 \registertfm lmb - LMRomanDemi10-Regular\LMfeat{}
66 \registertfm lmbsl - LMRomanDemi10-Oblique\LMfeat{}
68 \registertfm lmcsc - LMRomanCaps10-Regular\LMfeat{}
74 \ofsdeclarefamily [LMSans] {%
81 \registertfm lmss - LMSans10-Regular\LMfeat{}
82 \registertfm lmss 0pt-9pt LMSans8-Regular\LMfeat{}
83 \registertfm lmss 9pt-10pt LMSans9-Regular\LMfeat{}
84 \registertfm lmss 10pt-12pt LMSans10-Regular\LMfeat{}
85 \registertfm lmss 12pt-17pt LMSans12-Regular\LMfeat{}
86 \registertfm lmss 17pt-* LMSans17-Regular\LMfeat{}
88 \registertfm lmssbx - LMSans10-Bold\LMfeat{}
90 \registertfm lmsso - LMSans10-Oblique\LMfeat{}
91 \registertfm lmsso 0pt-9pt LMSans8-Oblique\LMfeat{}
92 \registertfm lmsso 9pt-10pt LMSans9-Oblique\LMfeat{}
93 \registertfm lmsso 10pt-12pt LMSans10-Oblique\LMfeat{}
94 \registertfm lmsso 12pt-17pt LMSans12-Oblique\LMfeat{}
95 \registertfm lmsso 17pt-* LMSans17-Oblique\LMfeat{}
97 \registertfm lmssbo - LMSans10-BoldOblique\LMfeat{}
101 \ofsdeclarefamily [LMSansDC] {%
102 \loadtextfam lmssdc;%
108 \registertfm lmssdc - LMSansDemiCond10-Regular\LMfeat{}
110 \registertfm lmssdo - LMSansDemiCond10-Oblique\LMfeat{}
114 \ofsdeclarefamily [LMMono] {%
119 \newvariant 8 \sl (Slanted) lmtto;;%
120 \newvariant 9 \bxsl (BoldSlanted) lmtko;;%
121 \newvariant c \csc (CapsAndSmallCaps) lmtcsc;;%
124 \registertfm lmtt - LMMono10-Regular\LMMonofeat{}
125 \registertfm lmtt 0pt-9pt LMMono8-Regular\LMMonofeat{}
126 \registertfm lmtt 9pt-10pt LMMono9-Regular\LMMonofeat{}
127 \registertfm lmtt 10pt-12pt LMMono10-Regular\LMMonofeat{}
128 \registertfm lmtt 12pt-* LMMono12-Regular\LMMonofeat{}
130 \registertfm lmtk - LMMonoLt10-Bold\LMMonofeat{}
132 \registertfm lmtti - LMMono10-Italic\LMMonofeat{}
134 \registertfm lmtto - LMMonoSlant10-Regular\LMMonofeat{}
136 \registertfm lmtko - LMMonoLt10-BoldOblique\LMMonofeat{}
138 \registertfm lmtcsc - LMMonoCaps10-Regular\LMMonofeat{}
141 \loadmathfam\ttfam[/LMMono10-Regular\LMMonofeat{}]
143 %%% LMMonoCondensed %%%
145 \ofsdeclarefamily [LMMonoCondensed] {%
152 \registertfm lmtlc - LMMonoLtCond10-Regular\LMMonofeat{}
154 \registertfm lmtlco - LMMonoLtCond10-Oblique\LMMonofeat{}
156 %%% UCW extensions %%%
158 \ofsputfamlist{^^JUCW:}
160 \ofsdeclarefamily [BlackboardBold] {%
167 \registertfm bbm - bbm10
168 \registertfm bbm 0pt-6pt bbm5
169 \registertfm bbm 6pt-7pt bbm6
170 \registertfm bbm 7pt-8pt bbm7
171 \registertfm bbm 8pt-9pt bbm8
172 \registertfm bbm 9pt-10pt bbm9
173 \registertfm bbm 10pt-12pt bbm10
174 \registertfm bbm 12pt-17pt bbm12
175 \registertfm bbm 17pt-* bbm17
177 % \bb - blackboard bold math font
183 \loadmathfam\bbfam[/bbm]%
187 %%% Font size switches %%%
189 % Recalculate line spacing for a given point size of the font (assuming CM-like metrics).
190 % Also sets \strut and \topskip.
191 \def\setbaselines#1{%
194 \normalbaselineskip=1.2\dimen0
195 \normallineskip=0.1\dimen0
196 \setbox\strutbox=\hbox{\vrule height 0.85\dimen0 depth 0.35\dimen0 width 0pt}%
201 % Switch to a specified font size (including math, line spacing etc.)
209 \def\twelvepoint{\settextsize{12}}
211 %%% Various hacks %%%
213 % Re-define \tt, so that it works in both text and math mode
214 \def\tt{\ifmmode\fam\ttfam\else\setfonts[LMMono/]\fi}
216 % Re-define ucwmac's \footfont