summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/generic/ofs/ofsdef.tex
blob: c207308e2c0ac1b260a0384cb23c951b0fd42461 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
% OFS: The default text families + math families
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Jun 2001                            Petr Olsak

% You cannot \input this file because this file is \inputted automatically.
% See ofsdoc.tex for more details

\ifx\ofsdeclarefamily\undefined 
  \errmessage{You can't \string\input\space the file ofssdef.tex 
              directly from your document%
  }  
  \endinput \fi

\protectreading ofsdef.tex % This is part of OFS package

%%% Computer Roman family %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


\def\defaultextraenc{8c} % You can re-define this macro before 
                         % \setfonts in order to change
                         % extra encoding of default families

\ofsputfamlist {^^Jdefaults:}

\ofsdeclarefamily [CMRoman] {% ------------ Computer Modern Roman
   \loadtextfam cmr\fotenc;%
                cmbx\fotenc;%
                cmti\fotenc;%
                cmbxti\fotenc;\defaultextraenc;%
   \newvariant8 \sl   (Slanted)     cmsl\fotenc;\defaultextraenc;%
   \newvariant9 \bxsl (BoldSlanted) cmbxsl\fotenc;\defaultextraenc;%
   \modifyenc 8z:csfont;%
}
\registerenc: 8z  \registerenc: 8t
\registerenc: 6a

\ofsdeclarefamily [CMSans] {% ------------- Computer Modern Sans Serif
   \loadtextfam cmss\fotenc;%
                cmssbx\fotenc;%
                cmssi\fotenc;%
                cmssbxti\fotenc;\defaultextraenc;%
   \modifyenc 8z:csfont;%
}
\registerenc: 8z  \registerenc: 8t
\registerenc: 6a

\ofsdeclarefamily [CMTypewriter] {% ------- Computer Modern Typewriter
   \loadtextfam cmtt\fotenc;%
                cmttbx\fotenc;%  
                cmitt\fotenc;%
                cmttbxti\fotenc;\defaultextraenc;% 
   \newvariant8 \sl (Slanted) cmsltt\fotenc;\defaultextraenc;%
   \modifyenc 8z:csfont;%
   \modifyenc 8z:nocrossL;%
}
\registerenc: 8z  \registerenc: 8t
\registerenc: 6a


%%%% Math fonts %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\registertfm cmsy    -      cmsy10
\registertfm cmsy 0pt-6pt   cmsy5
\registertfm cmsy 6pt-7pt   cmsy6
\registertfm cmsy 7pt-8pt   cmsy7
\registertfm cmsy 8pt-9pt   cmsy8
\registertfm cmsy 9pt-10pt  cmsy9
\registertfm cmsy 10pt-*    cmsy10

\registertfm cmmi    -      cmmi10
\registertfm cmmi 0pt-6pt   cmmi5
\registertfm cmmi 6pt-7pt   cmmi6
\registertfm cmmi 7pt-8pt   cmmi7
\registertfm cmmi 8pt-9pt   cmmi8
\registertfm cmmi 9pt-10pt  cmmi9
\registertfm cmmi 10pt-12pt cmmi10
\registertfm cmmi 12pt-*    cmmi12

%%%% CSfonts (encoding: 8z) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\registertfm cmr8z     -      csr10
\registertfm cmr8z  0pt-6pt   csr5
\registertfm cmr8z  6pt-7pt   csr6
\registertfm cmr8z  7pt-8pt   csr7
\registertfm cmr8z  8pt-9pt   csr8
\registertfm cmr8z  9pt-10pt  csr9
\registertfm cmr8z  10pt-12pt csr10
\registertfm cmr8z  12pt-17pt csr12
\registertfm cmr8z  17pt-*    csr17

\registertfm cmbx8z    -      csbx10
\registertfm cmbx8z 0pt-6pt   csbx5
\registertfm cmbx8z 6pt-7pt   csbx6
\registertfm cmbx8z 7pt-8pt   csbx7
\registertfm cmbx8z 8pt-9pt   csbx8
\registertfm cmbx8z 9pt-10pt  csbx9
\registertfm cmbx8z 10pt-12pt csbx10
\registertfm cmbx8z 12pt-*    csbx12

\registertfm cmti8z    -      csti10
\registertfm cmti8z 0pt-8pt   csti7
\registertfm cmti8z 8pt-9pt   csti8
\registertfm cmti8z 9pt-10pt  csti9
\registertfm cmti8z 10pt-12pt csti10
\registertfm cmti8z 12pt-17pt csti12
\registertfm cmti8z 17pt-*    csti17

\registertfm cmbxti8z    -      csbxti10
\registertfm cmbxti8z 0pt-12pt  csbxti10
\registertfm cmbxti8z 12pt-17pt csbxti12
\registertfm cmbxti8z 17pt-*    csbxti17

\registertfm cmsl8z     -      cssl10
\registertfm cmsl8z  0pt-6pt   cssl5
\registertfm cmsl8z  6pt-7pt   cssl6
\registertfm cmsl8z  7pt-8pt   cssl7
\registertfm cmsl8z  8pt-9pt   cssl8
\registertfm cmsl8z  9pt-10pt  cssl9
\registertfm cmsl8z  10pt-12pt cssl10
\registertfm cmsl8z  12pt-17pt cssl12
\registertfm cmsl8z  17pt-*    cssl17

\registertfm cmbxsl8z  -      csbxsl10
\registertfm cmsltt8z  -      cssltt10

\registertfm cmss8z    -      csss10
\registertfm cmss8z 0pt-9pt   csss8
\registertfm cmss8z 9pt-10pt  csss9
\registertfm cmss8z 10pt-12pt csss10
\registertfm cmss8z 12pt-17pt csss12
\registertfm cmss8z 17pt-*    csss17

\registertfm cmssbx8z   -      csssbx10

\registertfm cmssi8z    -      csssi10
\registertfm cmssi8z 0pt-9pt   csssi8
\registertfm cmssi8z 9pt-10pt  csssi9
\registertfm cmssi8z 10pt-12pt csssi10
\registertfm cmssi8z 12pt-17pt csssi12
\registertfm cmssi8z 17pt-*    csssi17

\registertfm cmtt8z    -      cstt10
\registertfm cmtt8z 0pt-9pt   cstt8
\registertfm cmtt8z 9pt-10pt  cstt9
\registertfm cmtt8z 10pt-12pt cstt10
\registertfm cmtt8z 12pt-*    cstt12

\registertfm cmitt8z    -      csitt10

%%% unavailable in cm*8z  :-(

\registertfm cmssbxti8z    -   -
\registertfm cmttbx8z      -   -
\registertfm cmttbxti8z    -   -


%%%% EC fonts %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\def\registerECfont #1 #2 {%
   \registertfm #1     -             #21000
   \registertfm #1  0pt-6pt          #20500
   \registertfm #1  6pt-7pt          #20600
   \registertfm #1  7pt-8pt          #20700
   \registertfm #1  8pt-9pt          #20800
   \registertfm #1  9pt-10pt         #20900
   \registertfm #1  10pt-10.95pt     #21000
   \registertfm #1  10.95pt-12pt     #21095
   \registertfm #1  12pt-14.4pt      #21200
   \registertfm #1  14.4pt-17.28pt   #21440
   \registertfm #1  17.28pt-20.74pt  #21728
   \registertfm #1  20.74pt-24.88pt  #22074
   \registertfm #1  24.88pt-29.86pt  #22488
   \registertfm #1  29.86pt-35.83pt  #22986
   \registertfm #1  35.83pt-*        #23583
}
\def\registerECTTfont #1 #2 {%
   \registertfm #1     -             #21000
   \registertfm #1  0pt-9pt          #20800
   \registertfm #1  9pt-10pt         #20900
   \registertfm #1  10pt-10.95pt     #21000
   \registertfm #1  10.95pt-12pt     #21095
   \registertfm #1  12pt-14.4pt      #21200
   \registertfm #1  14.4pt-17.28pt   #21440
   \registertfm #1  17.28pt-20.74pt  #21728
   \registertfm #1  20.74pt-24.88pt  #22074
   \registertfm #1  24.88pt-29.86pt  #22488
   \registertfm #1  29.86pt-35.83pt  #22986
   \registertfm #1  35.83pt-*        #23583
}

\registerECfont    cmr8t       ecrm
\registerECfont    cmbx8t      ecbx
\registerECfont    cmti8t      ecti
\registerECfont    cmbxti8t    ecbi
\registerECfont    cmsl8t      ecsl
\registerECfont    cmbxsl8t    ecbl

\registerECfont    cmss8t      ecss
\registerECfont    cmssbx8t    ecsx
\registerECfont    cmssi8t     ecsi
\registerECfont    cmssbxti8t  ecso

\registerECTTfont  cmtt8t      ectt
\registerECTTfont  cmitt8t     ecit
\registerECTTfont  cmsltt8t    ecst

\registertfm       cmttbx8t    -  -
\registertfm       cmttbxti8t  -  -

\registerECfont    cmr8c       tcrm
\registerECfont    cmbx8c      tcbx
\registerECfont    cmti8c      tcti
\registerECfont    cmbxti8c    tcbi
\registerECfont    cmsl8c      tcsl
\registerECfont    cmbxsl8c    tcbl

\registerECfont    cmss8c      tcss
\registerECfont    cmssbx8c    tcsx
\registerECfont    cmssi8c     tcsi
\registerECfont    cmssbxti8c  tcso

\registerECTTfont  cmtt8c      tctt
\registerECTTfont  cmitt8c     tcit
\registerECTTfont  cmsltt8c    tcst


%%%% Times, Helvetica, Courier %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\def\setfontshook {\let\TeX=\origTeX}
\let\origTeX=\TeX
\let\plainL=\L  % used in ofs-8z.tex

\ofsdeclarefamily [Times] {% -------------- Times Roman
   \loadtextfam (Roman) ptmr\fotenc;%
                        ptmb\fotenc;%
                        ptmri\fotenc;%
                        ptmbi\fotenc;\defaultextraenc;%
   \def\TeX{T\kern-.1667em\lower.3333ex\hbox{E}\kern-.125emX}%
   \modifyenc 8z:badaccents;%
   \modifyenc 8t:losschars;%
   \modifyenc 8c:poor;%
}
\registerenc: 8z  \registerenc: 8t

\ofsdeclarefamily [Helvetica] {% ---------- Helvetica
   \loadtextfam               phvr\fotenc;%
                              phvb\fotenc;%
                (Oblique)     phvro\fotenc;%
                (BoldOblique) phvbo\fotenc;\defaultextraenc;%
   \newvariant0 \nrm (Narrow)            phvr\fotenc n;;%
   \newvariant1 \nbf (NarrowBold)        phvb\fotenc n;;%
   \newvariant2 \nit (NarrowOblique)      phvro\fotenc n;;%
   \newvariant3 \nbi (NarrowBoldOblique)  phvbo\fotenc n;;%
   \def\TeX{T\kern-.12em\lower.4ex\hbox{E}\kern-0.09emX}%
   \modifyenc 8z:badaccents;%
   \modifyenc 8t:losschars;%
   \modifyenc 8c:poor;%
}
\registerenc: 8z  \registerenc: 8t

\registertfm  phvr8zn   -  phvrn8z   %% There is a bug in cspsfonts:
\registertfm  phvb8zn   -  phvbn8z   %% standard metric name: phvr8zn
\registertfm  phvro8zn  -  phvron8z  %% real metric name: phvrn8z
\registertfm  phvbo8zn  -  phvbon8z

\ofsdeclarefamily [Courier] {% ------------ Courier
   \loadtextfam               pcrr\fotenc;%
                              pcrb\fotenc;%
                (Oblique)     pcrro\fotenc;%
                (BoldOblique) pcrbo\fotenc;\defaultextraenc;%
   \let\TeX=\origTeX
   \modifyenc 8z:badaccents;%
   \modifyenc 8t:losschars;%
   \modifyenc 8c:poor;%
}
\registerenc: 8z  \registerenc: 8t

\registertfm  pcrr8z   -  pcrr8u
\registertfm  pcrb8z   -  pcrb8u
\registertfm  pcrro8z  -  pcrro8u
\registertfm  pcrbo8z  -  pcrbo8u


%%%% Math families %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\def\loadPSnormalmath{%
  \loadmathfam 0[-rm/]%                Actual Roman font
  \loadmathfam 1[-it/]%                Actual Italic font
  \defaultskewchar=48
  \loadmathfam 2[/cmsy]%               Standard symbols from CM
  \defaultskewchar=-1
  \noindexsize\loadmathfam 3[tenex/]%  Standard extra symbols from CM
  \chardef\symbfam  4
  \loadmathfam \symbfam [/psyr]%       PostScript Symbol
  \chardef\symbofam 5
  \loadmathfam \symbofam [/psyro]%     PostScript Symbol Oblique
  \chardef\bffam    6
  \loadmathfam \bffam [-bf/]%          Actual Bold font
  \chardef\bifam    7 
  \loadmathfam \bifam [-bi/]%          Actual Bold Italic  
  \lastfam = 7  
  \chardef\itfam    1 
  \let\slfam\undefined \let\ttfam\undefined
  \setfosize \tmpa mag1.44:%
  \font \bigsymbofont=psyr \tmpa%      Big variant for \displaysize          
  \fontloadmessage{bigsymbofont}{psyr\space\tmpa}%
}
\def\loadPSboldmath{%
  \loadmathfam 0[-bf/]%                Actual Bold font
  \loadmathfam 1[-bi/]%                Actual Bold-Italic font
  \defaultskewchar=48
  \loadmathfam 2[/cmbsy]%              Bold symbols from CM
  \defaultskewchar=-1
  \noindexsize\loadmathfam 3[tenex/]%  Standard extra symbols from CM
  \chardef\symbfam  4
  \loadmathfam \symbfam [/psyr]%       PostScript Symbol
  \chardef\symbofam 5
  \loadmathfam \symbofam [/psyro]%     PostScript Symbol Oblique
  \lastfam = 7  % needs to be the same as in normal version
  \chardef\itfam    1 
  \chardef\bifam    1
  \chardef\bffam    0  
  \let\slfam\undefined \let\ttfam\undefined
  \setfosize \tmpa mag1.44:%
  \font \bigsymbofont=psyr \tmpa%      Big variant for \displaysize          
  \fontloadmessage{bigsymbofont}{psyr\space\tmpa}%
}
\def\loadCMnormalmath{%
  \loadmathfam 0[/cmr8z]%                    Roman font
  \defaultskewchar=128
  \loadmathfam 1[/cmmi]%                     Math Italic font
  \defaultskewchar=48
  \loadmathfam 2[/cmsy]%                     Standard symbols from CM
  \defaultskewchar=-1
  \noindexsize\loadmathfam 3[/cmex]%         Standard extra symbols from CM
  \chardef\itfam   4
  \noindexsize\loadmathfam \itfam [/cmti\fotenc]% Text Italic
  \chardef\slfam   5
  \noindexsize\loadmathfam \slfam [/cmsl\fotenc]% Slanted
  \chardef\bffam   6
  \loadmathfam \bffam [/cmbx\fotenc]%             Bold font
  \chardef\ttfam   7
  \noindexsize\loadmathfam \ttfam [/cmtt\fotenc]% TypeWriter
  \lastfam =7
}
\def\loadCMboldmath{%
  \loadmathfam 0[/cmbx8z]%                     Roman font
  \defaultskewchar=127
  \loadmathfam 1[/cmmib]%                      Math Italic font
  \defaultskewchar=48
  \loadmathfam 2[/cmbsy]%                      Standard symbols from CM
  \defaultskewchar=-1
  \noindexsize\loadmathfam 3[/cmex]%           Standard extra symbols from CM
  \chardef\itfam   4
  \noindexsize\loadmathfam \itfam [/cmbxti\fotenc]% Text Italic
  \chardef\slfam   5
  \noindexsize\loadmathfam \slfam [/cmbxsl\fotenc]% Slanted
  \chardef\bffam   6
  \loadmathfam \bffam [/cmbx\fotenc]%               Bold font
  \chardef\ttfam   7
  \noindexsize\loadmathfam \ttfam [/cmtt\fotenc]%   TypeWriter
  \lastfam =7
}
\def\setPSmathchars{\mathencread ofs-ps;}
\let\setCMmathchars=\relax  % We need not do any work

%% No size differences in standard CM fonts:

\registertfm   cmbsy  -  cmbsy10
\registertfm   cmex   -  cmex10
\registertfm   cmmib  -  cmmib10

%%%% Math defaults %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\ifx \fomenc\undefined \def\fomenc{PS}\fi 
\def\mathversion{normal}
\def\defaultmathfonts{%
   \expandafter \ifx \csname load\fomenc\mathversion math\endcsname \relax
      \message{\ofsmessageheader WARNING:
               \string\fomenc=\fomenc\space -- undeclared font-set, 
               I use \string\def\string\fomenc{PS}}
      \def\fomenc{PS}%
   \fi
   \csname load\fomenc\mathversion math\endcsname}
\def\defaultmathchars{\csname set\fomenc mathchars\endcsname}
\let\mathcharsback=\relax
\def\mathfonts{\defaultmathfonts}
\def\mathchars{\defaultmathchars}

%%%% \ofshexbox is more intelligent alternative to \mathhexbox

\ofshexboxdef 2 {cmsy}{cmbsy10}{cmsy}{cmbsy10}
     % only fam2 is declared because only \mathhexbox2.. is used in plain

\def\ofscopyright{{\ooalign{\hfil\raise.07ex\hbox{c}\hfil\crcr\ofshexbox20D}}}


%%%% \dots macro (is defined via math mode in original plain) %%%%

\def\dots{.%  this dot may be kerned with previous character and it
   \ifmmode         % protects the \dots macro in \halign data
      \mathinner{\ldotp\ldotp}%
   \else
      \ifdim\fontdimen3\font=0pt % may be non-proporcional font
         ..%
      \else
          \kern.5\fontdimen2\font
         .\kern.5\fontdimen2\font
         .\kern.5\fontdimen2\font
   \fi\fi
}

\endinput