The file tpcmfont.fdd for use with L^{A}TEX 2ε.^{∗}

Timo Knuutila

1994/12/02

1 Introduction

This file contains the external font information needed to load those of the Computer Modern fonts that are also found from the sauter package and all the DC fonts. Fontshapes are declared in true point sizes instead of the traditional scaled versions.

Lot of the suff here has been copied from Mittelbach’s and Schoepf’s original cmfonts.fdd. The structure of this file follows the original, and the discussion occurring in cmfonts.fdd applies unless otherwise stated (it has been mostly omitted here). The lines that have been copied are preceded by M&S (for Mittelbach and Schoepf).

2 The docstrip modules

The following modules are used to direct docstrip in generating external files. Note that the following modules are not replaced: OMLcmr, OMScmr, OMLccm,

OT1ccr, OT2cmr, and OT2cmss.

∗This file has version number v1.0, dated 1994/12/02.

driver  produce a documentation driver file
fd  produce a font definition file
OMLcmm make Computer Modern Math italic
OMScmsy make Computer Modern Symbols
OMXcmex make Computer Modern large Symbols
OT1cmdh make Computer Modern Dunhill (old encoding)
OT1cmfib make Computer Modern Fibonacci (old encoding)
OT1cmfr make Computer Modern Funny (old encoding)
OT1cmr  make Computer Modern Roman (old encoding)
OT1cmss make Computer Modern Sans (old encoding)
OT1cmtt make Computer Modern Typewriter (old encoding)
T1ccr  make Concrete Roman (Cork encoding)
T1cmdh  make Computer Modern Dunhill (Cork encoding)
T1cmfib  make Computer Modern Fibonacci (Cork encoding)
T1cmfr  make Computer Modern Funny (Cork encoding)
T1cmr  make Computer Modern Roman (Cork encoding)
T1cmss  make Computer Modern Sans (Cork encoding)
T1cmtt  make Computer Modern Typewriter (Cork encoding)
Ucmr  make Computer Modern Roman (unknown encoding)
Ucmss  make Computer Modern Sans (unknown encoding)
Ucmtt  make Computer Modern Typewriter (unknown encoding)

3 The font definition files

The basic macro below is used whenever a full set of fonts is available. For some strange reason only the ugly code below seems to work appropriately. The macro is copied to all .fd files created. 1 ⟨∗fd⟩

2 \providecommand*{\tp@family}[5]{%
3 \DeclareFontShape{#1}{#2}{#4}{#5}{%
4 <5> #35 <6> #36 <7> #37 <8> #38 <9> #39 <10> #310
5 <10.95> #311 <12> #312 <14.4> #314 <17.28> #317 <20.74> #320 <24.88> #325
6 }{}%
7 }

8 ⟨/fd⟩

3.1 Fonts with Cork encoding (T1)

The DC-fonts are Computer Modern fonts reimplemented by Norbert Schwarz. You can get them from TEX archives and from TEX organizations. Schwarz’s implementation allows you to easily create fonts for all point sizes you ever want to (mfnfss contains the metafont sources for Computer Concrete). With the converntional CM-fonts one needs the sauter fonts (found from CTAN, too).

3.1.1 The Computer Modern Roman

Available in the shapes n, sl, it, sc, and u. Also bold series b (with normal shape only), and bol extended bx with shapes n, sl, and it. 9 ⟨∗T1cmr⟩

10 \DeclareFontFamily{T1}{cmr}{}{}

11 \tp@family{T1}{cmr}{dcr}{m}{n}
12 \tp@family{T1}{cmr}{dcsl}{m}{sl}
13 \tp@family{T1}{cmr}{dcti}{m}{it}
14 \tp@family{T1}{cmr}{dccsc}{m}{sc}
15 \tp@family{T1}{cmr}{dcu}{m}{u}
16 \tp@family{T1}{cmr}{dcb}{b}{n}
17 \tp@family{T1}{cmr}{dcbx}{bx}{n}
18 \tp@family{T1}{cmr}{dcbxsl}{bx}{sl}
19 \tp@family{T1}{cmr}{dcbxti}{bx}{it}

20 ⟨/T1cmr⟩

3.1.2 Computer Modern Fibonacci

Don Knuth’s experiment. 21 ⟨∗T1cmfib⟩

22 \DeclareFontFamily{T1}{cmfib}{}
23 \tp@family{T1}{cmfib}{dcfib}{m}{n}

24 ⟨/T1cmfib⟩

3.1.3 Computer Modern Funny (Roman)

Another Don Knuth’s experiment. 25 ⟨∗T1cmfr⟩

26 \DeclareFontFamily{T1}{cmfr}{}
27 \tp@family{T1}{cmfr}{dcff}{m}{n}
28 \tp@family{T1}{cmfr}{dcfi}{m}{it}

29 ⟨/T1cmfr⟩

3.1.4 Computer Modern Sans

Don Knuth’s sans serif font (normal, semibold and bold extended series). 30 ⟨∗T1cmss⟩

31 \DeclareFontFamily{T1}{cmss}{}
32 \tp@family{T1}{cmss}{dcss}{m}{n}
33 \DeclareFontShape{T1}{cmss}{m}{it}
34  {<->sub*cmss/m/sl}{}
35 \tp@family{T1}{cmss}{dcssi}{m}{sl}
36 \DeclareFontShape{T1}{cmss}{m}{sc}
37  {<->sub*cmr/m/sc}{}
38 \tp@family{T1}{cmss}{dcssdc}{sbc}{n}
39 \tp@family{T1}{cmss}{dcssbx}{bx}{n}

40 ⟨/T1cmss⟩

3.1.5 Computer Modern Typewriter

41 ⟨∗T1cmtt⟩

42 \DeclareFontFamily{T1}{cmtt}{\hyphenchar \font\m@ne}
43 \tp@family{T1}{cmtt}{dctt}{m}{n}
44 \tp@family{T1}{cmtt}{dcitt}{m}{it}
45 \tp@family{T1}{cmtt}{dcsltt}{m}{sl}
46 \tp@family{T1}{cmtt}{dctcsc}{m}{sc}

47 ⟨/T1cmtt⟩ 3.1.6 Computer Modern Dunhill

48 ⟨∗T1cmdh⟩

49 \DeclareFontFamily{T1}{cmdh}{}
50 \tp@family{T1}{cmdh}{dcdunh}{m}{n}

51 ⟨/T1cmdh⟩

3.1.7 Concrete Roman

52 ⟨∗T1ccr⟩

53 \DeclareFontFamily{T1}{ccr}{}{}
54 \tp@family{T1}{ccr}{dccr}{m}{n}
55 \tp@family{T1}{ccr}{dcti}{m}{it}
56 \tp@family{T1}{ccr}{dccsc}{m}{sc}
57 \tp@family{T1}{ccr}{dcslc}{c}{sl}
58 \DeclareFontShape{T1}{ccr}{bx}{sl}{
59 ⟨−nowarn⟩  <->sub * cmr/bx/it
60 ⟨+nowarn⟩  <->ssub * cmr/bx/it
61 }{}
62 \DeclareFontShape{T1}{ccr}{bx}{n}{
63 ⟨−nowarn⟩  <->sub * cmr/bx/n
64 ⟨+nowarn⟩  <->ssub * cmr/bx/n
65 }{}
66 \DeclareFontShape{T1}{ccr}{bx}{it}{
67 ⟨−nowarn⟩  <->sub * cmr/bx/it
68 ⟨+nowarn⟩  <->ssub * cmr/bx/it
69 }{}

70 ⟨/T1ccr⟩

3.2 Fonts with the old TEX text encoding (OT1)

3.2.1 Computer Modern Roman (OT1)

M&S: Beside the OT1 encoding we also define the same family as U encoded which is used for accepting old sources with stuff like \newmathalphabet in it. 71 ⟨∗OT1cmr, Ucmr⟩

72 ⟨+OT1cmr⟩\DeclareFontFamily{OT1}{cmr}{}
73 ⟨+Ucmr⟩\DeclareFontFamily{U}{cmr}{}
74 ⟨+OT1cmr⟩\tp@family{OT1}{cmr}{cmr}{m}{n}
75 ⟨+Ucmr⟩\tp@family{U}{cmr}{cmr}{m}{n}
76 ⟨+OT1cmr⟩\tp@family{OT1}{cmr}{cmsl}{m}{sl}
77 ⟨+Ucmr⟩\tp@family{U}{cmr}{cmsl}{m}{sl}
78 ⟨+OT1cmr⟩\tp@family{OT1}{cmr}{cmti}{m}{it}
79 ⟨+Ucmr⟩\tp@family{U}{cmr}{cmti}{m}{it}
80 ⟨+OT1cmr⟩\tp@family{OT1}{cmr}{cmcsc}{m}{sc}
81 ⟨+Ucmr⟩\tp@family{U}{cmr}{cmcsc}{m}{sc}

M&S: Here we try to cure the famous $ → £ bug:

82 ⟨+OT1cmr⟩\tp@family{OT1}{cmr}{cmu}{m}{ui}
83 ⟨+Ucmr⟩\tp@family{U}{cmr}{cmu}{m}{ui}
84 ⟨+OT1cmr, Ucmr⟩%%%%%%% bold series
85 ⟨+OT1cmr⟩\tp@family{OT1}{cmr}{cmb}{b}{n}
86 ⟨+Ucmr⟩\tp@family{U}{cmr}{cmb}{b}{n}
87 ⟨+OT1cmr, Ucmr⟩%%%%%%%% bold extended series
88 ⟨+OT1cmr⟩\tp@family{OT1}{cmr}{cmbx}{bx}{n}

 89 ⟨+Ucmr⟩\tp@family{U}{cmr}{cmbx}{bx}{n}
 90 ⟨+OT1cmr⟩\tp@family{OT1}{cmr}{cmbxsl}{bx}{sl}
 91 ⟨+Ucmr⟩\tp@family{U}{cmr}{cmbxsl}{bx}{sl}
 92 ⟨+OT1cmr⟩\tp@family{OT1}{cmr}{cmbxti}{bx}{it}
 93 ⟨+Ucmr⟩\tp@family{U}{cmr}{cmbxti}{bx}{it}
 94 ⟨+OT1cmr⟩\DeclareFontShape{OT1}{cmr}{bx}{ui}
 95 ⟨+Ucmr⟩\DeclareFontShape{U}{cmr}{bx}{ui}
 96 ⟨+nowarn⟩ {<->sub * cmr/m/ui}{}
 97 ⟨−nowarn⟩ {<->ssub * cmr/m/ui}{}

98 ⟨/OT1cmr, Ucmr⟩

3.2.2 Computer Modern Sans (OT1)

99 ⟨∗OT1cmss, Ucmss⟩

100 ⟨+OT1cmss⟩\DeclareFontFamily{OT1}{cmss}{}
101 ⟨+Ucmss⟩\DeclareFontFamily{U}{cmss}{}
102 ⟨+OT1cmss⟩\tp@family{OT1}{cmss}{cmss}{m}{n}
103 ⟨+Ucmss⟩\tp@family{U}{cmss}{cmss}{m}{n}
104 ⟨+OT1cmss, Ucmss⟩% Font undefined, therefore substituted
105 ⟨+OT1cmss⟩\DeclareFontShape{OT1}{cmss}{m}{it}
106 ⟨+Ucmss⟩\DeclareFontShape{U}{cmss}{m}{it}
107 ⟨−nowarn⟩ {<->sub*cmss/m/sl}{}
108 ⟨+nowarn⟩ {<->ssub*cmss/m/sl}{}
109 ⟨+OT1cmss⟩\tp@family{OT1}{cmss}{cmssi}{m}{sl}
110 ⟨+Ucmss⟩\tp@family{U}{cmss}{cmssi}{m}{sl}
111 ⟨+OT1cmss, Ucmss⟩%%%%%%% Font/shape undefined, therefore substituted
112 ⟨+OT1cmss⟩\DeclareFontShape{OT1}{cmss}{m}{sc}
113 ⟨+Ucmss⟩\DeclareFontShape{U}{cmss}{m}{sc}
114  {<->sub*cmr/m/sc}{}
115 ⟨+OT1cmss, Ucmss⟩%%%%%%% Font/shape undefined, therefore substituted
116 ⟨+OT1cmss⟩\DeclareFontShape{OT1}{cmss}{m}{ui}
117 ⟨+Ucmss⟩\DeclareFontShape{U}{cmss}{m}{ui}
118  {<->sub*cmr/m/ui}{}
119 ⟨+OT1cmss, Ucmss⟩%%%%%%%% semibold condensed series
120 ⟨+OT1cmss⟩\tp@family{OT1}{cmss}{cmssdc}{sbc}{n}
121 ⟨+Ucmss⟩\tp@family{U}{cmss}{cmssdc}{sbc}{n}
122 ⟨+OT1cmss, Ucmss⟩%%%%%%%%% bold extended series
123 ⟨+OT1cmss⟩\tp@family{OT1}{cmss}{cmssbx}{bx}{n}
124 ⟨+Ucmss⟩\tp@family{U}{cmss}{cmssbx}{bx}{n}
125 ⟨+OT1cmss, Ucmss⟩%%%%%%% Font/shape undefined, therefore substituted
126 ⟨+OT1cmss⟩\DeclareFontShape{OT1}{cmss}{bx}{ui}
127 ⟨+Ucmss⟩\DeclareFontShape{U}{cmss}{bx}{ui}
128  {<->sub*cmr/bx/ui}{}

129 ⟨/OT1cmss, Ucmss⟩

3.2.3 Computer Modern Typewriter (OT1)

We use here no substitutions (outside the cmtt family), so the discussion in the original cmfonts.fdd can be forgotten. 130 ⟨∗OT1cmtt, Ucmtt⟩

131 ⟨+OT1cmtt⟩\DeclareFontFamily{OT1}{cmtt}{\hyphenchar \font\m@ne}
132 ⟨+Ucmtt⟩\DeclareFontFamily{U}{cmtt}{\hyphenchar \font\m@ne}
133 ⟨+OT1cmtt⟩\tp@family{OT1}{cmtt}{cmtt}{m}{n}
134 ⟨+Ucmtt⟩\tp@family{U}{cmtt}{cmtt}{m}{n}

135 ⟨+OT1cmtt, Ucmtt⟩%%%%%% make sure subst shapes are available
136 ⟨+OT1cmtt⟩\tp@family{OT1}{cmtt}{cmitt}{m}{it}
137 ⟨+Ucmtt⟩\tp@family{U}{cmtt}{cmitt}{m}{it}
138 ⟨+OT1cmtt⟩\tp@family{OT1}{cmtt}{cmsltt}{m}{sl}
139 ⟨+Ucmtt⟩\tp@family{U}{cmtt}{cmsltt}{m}{sl}
140 ⟨+OT1cmtt⟩\tp@family{OT1}{cmtt}{cmtcsc}{m}{sc}
141 ⟨+Ucmtt⟩\tp@family{U}{cmtt}{cmtcsc}{m}{sc}
142 ⟨+OT1cmtt⟩\DeclareFontShape{OT1}{cmtt}{m}{ui}
143 ⟨+Ucmtt⟩\DeclareFontShape{U}{cmtt}{m}{ui}
144 ⟨−nowarn⟩ {<->sub * cmtt/m/it}{}
145 ⟨+nowarn⟩ {<->ssub * cmtt/m/it}{}
146 ⟨+OT1cmtt⟩\DeclareFontShape{OT1}{cmtt}{bx}{n}
147 ⟨+Ucmtt⟩\DeclareFontShape{U}{cmtt}{bx}{n}
148 ⟨−nowarn⟩ {<->sub * cmtt/m/n}{}
149 ⟨+nowarn⟩ {<->ssub * cmtt/m/n}{}
150 ⟨+OT1cmtt⟩\DeclareFontShape{OT1}{cmtt}{bx}{it}
151 ⟨+Ucmtt⟩\DeclareFontShape{U}{cmtt}{bx}{it}
152 ⟨−nowarn⟩ {<->sub * cmtt/m/it}{}
153 ⟨+nowarn⟩ {<->ssub * cmtt/m/it}{}
154 ⟨+OT1cmtt⟩\DeclareFontShape{OT1}{cmtt}{bx}{ui}
155 ⟨+Ucmtt⟩\DeclareFontShape{U}{cmtt}{bx}{ui}
156 ⟨−nowarn⟩ {<->sub * cmtt/m/it}{}
157 ⟨+nowarn⟩ {<->ssub * cmtt/m/it}{}

158 ⟨/OT1cmtt, Ucmtt⟩

3.2.4 Computer Modern Funny (OT1)

159 ⟨∗OT1cmfr⟩

160 \DeclareFontFamily{OT1}{cmfr}{}
161 \tp@family{OT1}{cmfr}{cmff}{m}{n}
162 \tp@family{OT1}{cmfr}{cmfi}{m}{it}

163 ⟨/OT1cmfr⟩

3.2.5 Computer Modern Dunhill (OT1)

164 ⟨∗OT1cmdh⟩

165 \DeclareFontFamily{OT1}{cmdh}{}
166 \tp@family{OT1}{cmdh}{cmdunh}{m}{n}

167 ⟨/OT1cmdh⟩

3.2.6 Computer Modern Fibonacci (OT1)

168 ⟨∗OT1cmfib⟩

169 \DeclareFontFamily{OT1}{cmfib}{}
170 \tp@family{OT1}{cmfib}{cmfib}{m}{n}

171 ⟨/OT1cmfib⟩

3.3 Math fonts

3.3.1 Computer Modern Math italics

172 ⟨∗OMLcmm⟩

173 \DeclareFontFamily{OML}{cmm}{\skewchar\font'177}
174 \tp@family{OML}{cmm}{cmmi}{m}{it}

175 \tp@family{OML}{cmm}{cmmib}{b}{it}
176 \DeclareFontShape{OML}{cmm}{bx}{it}
177 {<-> ssub * cmm/b/it}{}

178 ⟨/OMLcmm⟩

3.3.2 Computer Modern Math symbols

179 ⟨∗OMScmsy⟩

180 \DeclareFontFamily{OMS}{cmsy}{\skewchar\font'60}
181 \tp@family{OMS}{cmsy}{cmsy}{m}{n}
182 \tp@family{OMS}{cmsy}{cmbsy}{b}{n}

183 ⟨/OMScmsy⟩

3.3.3 Computer Modern large symbols

184 ⟨∗OMXcmex⟩

185 \DeclareFontFamily{OMX}{cmex}{}{}
186 \tp@family{OMX}{cmex}{cmex}{m}{n}

187 ⟨/OMXcmex⟩

188 \endinput