fsel.tex 61 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704
  1. %
  2. % These are in Texinfo.
  3. %
  4. % We never want plain's \outer definition of \+ in Texinfo.
  5. % For @tex, we can use \tabalign.
  6. \let\+ = \relax
  7. %
  8. \def\gobble#1{}%
  9. \def\linenumber{l.\the\inputlineno:\space}%
  10. \newlinechar = `^^J
  11. % Set the baselineskip to #1, and the lineskip and strut size
  12. % correspondingly. There is no deep meaning behind these magic numbers
  13. % used as factors; they just match (closely enough) what Knuth defined.
  14. %
  15. \def\lineskipfactor{.08333}%
  16. \def\strutheightpercent{.70833}%
  17. \def\strutdepthpercent {.29167}%
  18. %
  19. \def\setleading#1{%
  20. \normalbaselineskip = #1\relax
  21. \normallineskip = \lineskipfactor\normalbaselineskip
  22. \normalbaselines
  23. \setbox\strutbox =\hbox{%
  24. \vrule width0pt height\strutheightpercent\baselineskip
  25. depth \strutdepthpercent \baselineskip
  26. }%
  27. }%
  28. %
  29. % End of Texinfo defs.
  30. %
  31. % Specify amount and type of font-related logging:
  32. % 0 notifications and warnings go to the log file only;
  33. % 1 only warning go to the console;
  34. % 2 notifications and warnings go to the console;
  35. % 3 notifications go to the console, all warnings are made into errors.
  36. %
  37. % In all cases notifications and warnings go to the log file.
  38. \newcount\tracingfonts
  39. \tracingfonts1
  40. %
  41. \def\fontnotify{%
  42. \ifcase\tracingfonts
  43. \expandafter\wlog
  44. \or % 1
  45. \expandafter\wlog
  46. \else % 2-...
  47. \expandafter\message
  48. \fi
  49. }%
  50. %
  51. \def\fontwarn{%
  52. \ifcase\tracingfonts
  53. \expandafter\wlog
  54. \or % 1
  55. \expandafter\message
  56. \or % 2
  57. \expandafter\message
  58. \else % 3-...
  59. \expandafter\errmessage
  60. \fi
  61. }%
  62. %
  63. % We will sometimes temporarily turn these off (e.g., to avoid
  64. % \message and \setbox interfering with \accent).
  65. \let\@setleading\setleading
  66. \let\@fontnotify\fontnotify
  67. \let\@fontwarn\fontwarn
  68. % Font and shape identification strings.
  69. \def\shape@string{\f@encoding/\f@family/\f@series/\f@shape}%
  70. \def\font@string{\shape@string/\f@size:\base@fntscale}%
  71. %
  72. % \declarefontfamily FAMILY FACTOR LINESKIP
  73. %
  74. % Declare font FAMILY, and set it's scale FACTOR (relative to the
  75. % Computer Modern family) and LINESKIP factor (which will be applied
  76. % to the current font size to obtain basic baseline skip). Every font
  77. % family must be declared before any font declaration \declarefont
  78. % using that family.
  79. \def\declarefontfamily#1 #2 #3 {%
  80. % Warn if the family has already been declared.
  81. \expandafter \ifx \csname fam@scale/#1\endcsname\relax \else
  82. \fontwarn{^^JWarning: redeclaring font family `#1'.}%
  83. \fi
  84. \expandafter\def\csname fam@scale/#1\endcsname{#2}%
  85. \expandafter\def\csname fam@lskip/#1\endcsname{#3}%
  86. % Initialize the family's encoding list to an empty list.
  87. \expandafter\let \csname fam@enc@list/#1\endcsname \empty
  88. }%
  89. %
  90. % \declaremathfontfamily FAMILY FACTOR LINESKIP TEXTENC L-SKEW S-SKEW
  91. %
  92. % Declare math font family. Parameters:
  93. %
  94. % FAMILY font family name;
  95. % FACTOR scale factor (relative to the Computer Modern family);
  96. % LINESKIP lineskip factor (which will be applied to the current
  97. % font size to obtain basic baseline skip);
  98. % TEXTENC font encoding to use for the family 0 (this is to
  99. % distinguish fonts with T1 and OT1 encodings for the
  100. % `text' font, since T1 and OT1 have accents in
  101. % different slots);
  102. % L-SKEW skew char for family 1 (math letters);
  103. % S-SKEW skew char for family 2 (math symbols).
  104. \def\declaremathfontfamily#1 #2 #3 #4 #5 #6 {%
  105. \declarefontfamily #1 #2 #3
  106. \expandafter\def\csname fam@textenc/#1\endcsname{#4}%
  107. \expandafter\def\csname fam@ml-sc/#1\endcsname{#5}%
  108. \expandafter\def\csname fam@ms-sc/#1\endcsname{#6}%
  109. }%
  110. %
  111. % \mathfontfamilyhook FAMILY {TEXT}
  112. %
  113. % Define a hook to be called every time the fonts for math FAMILY are
  114. % set up.
  115. \def\mathfontfamilyhook#1 #2{%
  116. \expandafter\def\csname fmath@hook@#1\endcsname{#2}%
  117. }%
  118. %
  119. % \mathfontfamilyprehook FAMILY {TEXT}
  120. %
  121. % Define a hook to be called when the math FAMILY is loaded.
  122. \def\mathfontfamilyprehook#1 #2{%
  123. \expandafter\def\csname fmath@pre-hook@#1\endcsname{#2}%
  124. }%
  125. %
  126. % \mathfontfamilyposthook FAMILY {TEXT}
  127. %
  128. % Define a hook to be called when the math FAMILY is unloaded.
  129. \def\mathfontfamilyposthook#1 #2{%
  130. \expandafter\def\csname fmath@post-hook@#1\endcsname{#2}%
  131. }%
  132. %
  133. % \fontbasefamily FAMILY
  134. %
  135. % Declare FAMILY as the "base" family, which means that its fonts
  136. % will be displayed at their "natural" sizes, and all other families
  137. % will be scaled to match FAMILY.
  138. \def\fontbasefamily#1 {%
  139. % Check that the family has been declared.
  140. \expandafter \ifx \csname fam@scale/#1\endcsname\relax
  141. \errmessage{Error: setting base family to an unknown family `#1'}%
  142. \fi
  143. \edef\base@fntscale{\csname fam@scale/#1\endcsname}%
  144. % Reload the current font (it may change if the base factor changed).
  145. \selectfont
  146. }%
  147. %
  148. % \fontfamily STYLE FAMILY
  149. %
  150. % FIXME doc.
  151. \def\mathword{math}%
  152. \let\f@family@math\empty % Avoid `Undefined' errors in \csname the first time.
  153. \def\fontfamily#1 #2 {%
  154. \edef\temp{#1}%
  155. \ifx\temp\mathword
  156. % Call post-hook for the old math family.
  157. \csname fmath@post-hook@\f@family@math\endcsname
  158. \expandafter\edef \csname f@family@\mathword\endcsname{#2}%
  159. % Define accents for the encoding of the \fam0 font.
  160. \expandafter\csname \csname fam@textenc/#2\endcsname @math@textenc\endcsname
  161. % FIXME Need to call \resetmathfonts now, or call pre-hook after
  162. % the first call to \resetmathfonts, otherwise errors are possible
  163. % about undefined glyphs.
  164. % Call pre-hook for the new math family.
  165. \csname fmath@pre-hook@#2\endcsname
  166. \else
  167. \expandafter\edef \csname f@family@#1\endcsname{#2}%
  168. \fi
  169. }%
  170. %
  171. % FIXME Rename.
  172. \def\selectfont@style#1{%
  173. \expandafter\let\expandafter \f@family \csname f@family@#1\endcsname
  174. \selectfont
  175. }%
  176. %
  177. % \declarefont ENC FAMILY SER SH L-U SZ FONT
  178. %
  179. % Declare a FAMILY font in ENC encoding, SER series and SH shape, for
  180. % the size range L-U. SZ is the design size of the font, FONT is the
  181. % font file name. L-U defines the size range as [L,U). All sizes (L,
  182. % U, SZ) may contain optional unit specifier; if it is missing, `pt'
  183. % is assumed.
  184. \def\declarefont #1 #2 #3 #4 #5-#6 #7 #8 {%
  185. % Check that FAMILY has been declared.
  186. \expandafter \ifx \csname fam@scale/#2\endcsname\relax
  187. \errmessage{Error: declaring font `#8' for an unknown family `#2'}%
  188. \fi
  189. % Convert all sizes into integers, scaled 10 times.
  190. \fnt@size@to@int{#5}\edef\tempa{\number\dimen@}% L
  191. \fnt@size@to@int{#6}\edef\tempb{\number\dimen@}% U
  192. \fnt@size@to@int{#7}\edef\tempc{\number\dimen@}% SZ
  193. % Construct internal font shape name as \sh/ENC/FAMILY/SER/SH.
  194. \expandafter\def\expandafter\temp\expandafter{%
  195. \csname sh/#1/#2/#3/#4\endcsname
  196. }%
  197. % Add the font specification as the quad L U SZ FONT to the
  198. % beginning of the font list for this shape.
  199. \expandafter\ifx\temp\relax
  200. \let\tempd\empty
  201. \else
  202. \edef\tempd{\temp}% Previous def of the shape name.
  203. \fi
  204. \expandafter\edef\temp{\tempa\space\tempb\space\tempc\space#8 \tempd}%
  205. % Add the encoding to the list of encodings for this family, if it's
  206. % not been added yet.
  207. \expandafter\ifx \csname fam@enc/#2/#1\endcsname \relax
  208. \expandafter\let\expandafter\temp \csname fam@enc@list/#2\endcsname
  209. \expandafter\edef \csname fam@enc@list/#2\endcsname{\temp\space #1}%
  210. \fi
  211. % Set the flag that this family supports this encoding.
  212. \expandafter\let\csname fam@enc/#2/#1\endcsname\empty
  213. }%
  214. %
  215. % \fontmap ENC1 FAM1 SER1 SH1 > ENC2 FAM2 SER2 SH2
  216. %
  217. % Define font mapping. Ideally, any of the attributes can be an `*',
  218. % but only a useful subset is currently supported for the first half
  219. % (see \search@font@map). It should be easy to extend this subset if
  220. % need be.
  221. %
  222. % If an `*' appears in the first half (`from-attributes'), its
  223. % meaning is "apply this map to fonts having anything for this
  224. % attribute". If an `*' appears in the second half (`to-attributes'),
  225. % its meaning is "leave this attribute unchanged from the respective
  226. % from-attribute".
  227. %
  228. % E1 F1 S1 s1 > E2 F2 S2 s2
  229. \def\fontmap#1 #2 #3 #4 > #5 #6 #7 #8 {%
  230. \expandafter\def\csname fmap/#1/#2/#3/#4\endcsname{#5/#6/#7/#8}%
  231. }%
  232. %
  233. % \fontmapshape FAMILY1 SH1 > FAMILY2 SH2
  234. %
  235. % Define generic shape mapping: requests for FAMILY1 fonts in shape
  236. % SH1 and any encoding and series will be redirected to FAMILY2 fonts
  237. % in shape SH2 and the same encoding and series.
  238. \def\fontmapshape#1 #2 > #3 #4 {%
  239. \fontmap * #1 * #2 > * #3 * #4
  240. }%
  241. %
  242. % \fontmapseries FAMILY1 SER1 > FAMILY2 SER2
  243. %
  244. % Define generic series mapping: requests for FAMILY1 fonts in series
  245. % SER1 and any encoding and shape will be redirected to FAMILY2 fonts
  246. % in series SER2 and the same encoding and shape.
  247. \def\fontmapseries#1 #2 > #3 #4 {%
  248. \fontmap * #1 #2 * > * #3 #4 *
  249. }%
  250. %
  251. % \fontmapfamily FAMILY1 ENC FAMILY2
  252. %
  253. % Define family mapping: requests for FAMILY1 fonts in encoding ENC
  254. % will be redirected to FAMILY2 fonts in the same encoding.
  255. \def\fontmapfamily#1 #2 #3 {%
  256. \fontmap #2 #1 * * > * #3 * *
  257. % Remember that this family supports this encoding.
  258. \expandafter\let\csname fam@enc/#1/#2\endcsname\empty
  259. }%
  260. %
  261. % Take a dimension or a number (in which case assume `pt' units) and
  262. % convert it into an integer (in \dimen@) ten times the dimension's
  263. % representation in points. We attempt to round properly, to the
  264. % extent that TeX's integer arithmetics allows. Note that we take
  265. % 0.1pt = 6554 (6553.6 rounded to the nearest integer), but maybe
  266. % 6553 would have been better because it rounds the 100ths of a point
  267. % better (e.g., in 10.85pt), for which we care more than for the
  268. % 1000ths / 10000ths of a point (e.g., in 10.849pt).
  269. \def\fnt@size@to@int#1{%
  270. \get@dimen{#1}%
  271. \advance\dimen@ by.05pt % 0.1pt / 2.
  272. \divide\dimen@ by6554 % = 0.1pt = (Xpt / 0.1pt * 0.1pt) * 10 / 1pt.
  273. }%
  274. % Take a dimension or a number, and save it in \dimen@. In case of a
  275. % number, assume `pt' units.
  276. \def\get@dimen#1{%
  277. \afterassignment\gobble@to@finish
  278. \dimen@#1pt \finish
  279. }%
  280. \def\gobble@to@finish#1\finish{}%
  281. %
  282. % These generally should not be used by the end user. To actually
  283. % select the font specified by one or several of the following, say
  284. % \selectfont.
  285. \def\setfontencoding{\edef\f@encoding}%
  286. \def\setfontfamily{\edef\f@family}%
  287. \def\setfontseries{\edef\f@series}%
  288. \def\setfontshape{\edef\f@shape}%
  289. \def\setfontsize#1{\fnt@size@to@int{#1}\edef\f@size{\number\dimen@}}%
  290. % User-space commands to set (some of) the above.
  291. \def\mdseries{\setfontseries{m}\selectfont}%
  292. \def\bfseries{\setfontseries{bx}\selectfont}%
  293. \def\upshape{\setfontshape{n}\selectfont}%
  294. \def\itshape{\setfontshape{it}\selectfont}%
  295. \def\slshape{\setfontshape{sl}\selectfont}%
  296. \def\scshape{\setfontshape{sc}\selectfont}%
  297. %
  298. % Scale \f@size.
  299. \def\scale@f@size#1{%
  300. \scalecount\f@size{#1}%
  301. \edef\f@size{\number\count@}%
  302. }%
  303. % Scale the current font. #1 is the magnification factor.
  304. \def\scalefont#1{%
  305. \scale@f@size{#1}%
  306. \selectfont
  307. }%
  308. % Scale current font size by #1. Result in \dimen@ (in points).
  309. % Clobbers \dimen@.
  310. \def\scalefontsize#1{%
  311. \scalecount\f@size{#1}%
  312. \dimen@=\count@\p@
  313. \divide\dimen@ by10
  314. }%
  315. % Scale integer #1 by #2, taking care of the rounding. Result in
  316. % \count@.
  317. \def\scalecount#1#2{%
  318. \count@#1%
  319. \multiply\count@ by#2%
  320. \advance\count@ by500%
  321. \divide\count@ by1000
  322. }%
  323. %
  324. % Parameters for math fonts.
  325. %
  326. % FIXME These parameters probably have to be per-font-family.
  327. \def\mf@scr@factor{700 }%
  328. \def\mf@scrscr@factor{500 }%
  329. % Theoretically, these have to be per-font-family, but practically
  330. % plain TeX settings work with most families; and for families with
  331. % which these don't work (PXMath, TXMath, CharterMath, ArevMath) these
  332. % settings are still the best possible -- do these families have a bug
  333. % (or maybe some weird design decisions)?
  334. \def\big@factor{850 }%
  335. \def\Big@factor{1150 }%
  336. \def\bigg@factor{1450 }%
  337. \def\Bigg@factor{1750 }%
  338. %
  339. % Setup math fonts. This is called for every math mode switch from
  340. % \everymath. Texinfo doesn't use display math, so we don't bother
  341. % with \everydisplay. NOTE: One alternative to setting math fonts at
  342. % the beginning of every math mode is to set them at every change of a
  343. % font attribute which affects math fonts (i.e., size, series, but
  344. % _not_ shape). This would mean that lots of fonts will be loaded,
  345. % while in most cases the user will never use math with those settings.
  346. \everymath{\resetmathfonts}%
  347. \def\resetmathfonts{%
  348. % Save all current font attributes -- we'll clobber them.
  349. \let\reset@f@encoding\f@encoding
  350. \let\reset@f@family\f@family
  351. \let\reset@f@series\f@series
  352. \let\reset@f@shape\f@shape
  353. \let\reset@f@size\f@size
  354. \let\reset@fontwarn\@fontwarn
  355. % Don't report non-existent fonts -- we'll ignore them and hope that
  356. % the user won't use them.
  357. \let\@fontwarn\gobble
  358. % Set math families for the style switches.
  359. \selectmathfont@style{roman}\rmfam
  360. \selectmathfont@style{sans}\sffam
  361. \selectmathfont@style{mono}\ttfam
  362. \let\f@family\reset@f@family
  363. \itshape \setup@m@family\itfam
  364. \slshape \setup@m@family\slfam
  365. \setfontshape{n}\bfseries \setup@m@family\bffam
  366. % Restore warnings.
  367. \let\@fontwarn\reset@fontwarn
  368. % Now set the math fonts. The shape is always a `.'.
  369. \let\f@family\f@family@math
  370. \let\f@series\reset@f@series
  371. \def\f@shape{.}%
  372. % Text size.
  373. \setup@m@families\textfont
  374. % Script size.
  375. \scale@f@size\mf@scr@factor
  376. \setup@m@families\scriptfont
  377. % Script-script size.
  378. \let\f@size\reset@f@size
  379. \scale@f@size\mf@scrscr@factor
  380. \setup@m@families\scriptscriptfont
  381. % Call the fonts hook for this family.
  382. \let\f@size\reset@f@size
  383. \csname fmath@hook@\f@family@math\endcsname
  384. % Restore font attributes.
  385. \let\f@encoding\reset@f@encoding
  386. \let\f@family\reset@f@family
  387. \let\f@series\reset@f@series
  388. \let\f@shape\reset@f@shape
  389. \let\f@size\reset@f@size
  390. \selectfont
  391. }%
  392. %
  393. % Select style #1 and set math family #2 to the font. FIXME Rename.
  394. \def\selectmathfont@style#1#2{%
  395. \selectfont@style{#1}%
  396. \setup@m@family{#2}%
  397. }%
  398. % Set \textfont of math family #1 to \c@font@command, unless the
  399. % font command is \relax.
  400. \def\setup@m@family#1{%
  401. \expandafter\ifx\c@font@command\relax\else
  402. \textfont#1=\c@font@command
  403. \fi
  404. }%
  405. % Set up #1 (\textfont, \scriptfont or \scriptscriptfont) fonts for
  406. % families 0, 1, 2 and 3 with the current size. \f@family must be set
  407. % to the math font family.
  408. \def\setup@m@families#1{%
  409. \setfontencoding{\csname fam@textenc/\f@family\endcsname}\search@font
  410. #10=\c@font@command
  411. \setfontencoding{OML}\search@font #11 = \c@font@command
  412. \skewchar\c@font@command = \csname fam@ml-sc/\f@family\endcsname
  413. \setfontencoding{OMS}\search@font #12 = \c@font@command
  414. \skewchar\c@font@command = \csname fam@ms-sc/\f@family\endcsname
  415. \setfontencoding{OMX}\search@font #13 = \c@font@command
  416. }%
  417. %
  418. % We need separate \rmfam -- math fonts define their own "text" fonts
  419. % which they use for the accents, and the user's "roman" family should
  420. % not interfere with that.
  421. \newfam\rmfam
  422. \def\rm{\selectfont@style{roman}\fam=\rmfam}%
  423. \newfam\sffam % \sffam is not in plain TeX.
  424. \def\sf{\selectfont@style{sans}\fam=\sffam}%
  425. \let\li = \sf % Sometimes we call it \li, not \sf.
  426. \def\tt{\selectfont@style{mono}\fam=\ttfam}%
  427. \def\it{\itshape \fam=\itfam}%
  428. \def\sl{\slshape \fam=\slfam}%
  429. \def\bf{\bfseries \fam=\bffam}%
  430. % We don't need math for this font style.
  431. \def\ttsl{\setfontshape{sl}\selectfont@style{mono}}%
  432. %
  433. \def\@big#1#2{%
  434. {\hbox{$
  435. \expandafter\scalefontsize \csname#1@factor\endcsname
  436. \left#2\vbox to\dimen@{}\right.\n@space
  437. $}}%
  438. }%
  439. \def\big{\@big{big}}%
  440. \def\Big{\@big{Big}}%
  441. \def\bigg{\@big{bigg}}%
  442. \def\Bigg{\@big{Bigg}}%
  443. %
  444. % The accents are in different slots in OT1 and T1, so these will
  445. % redefine the accents (see \setfontfamily).
  446. \expandafter\def\csname OT1@math@textenc\endcsname{%
  447. \def\acute{\mathaccent"7013 }%
  448. \def\grave{\mathaccent"7012 }%
  449. \def\ddot{\mathaccent"707F }%
  450. \def\tilde{\mathaccent"707E }%
  451. \def\bar{\mathaccent"7016 }%
  452. \def\breve{\mathaccent"7015 }%
  453. \def\check{\mathaccent"7014 }%
  454. \def\hat{\mathaccent"705E }%
  455. \def\dot{\mathaccent"705F }%
  456. }%
  457. \expandafter\def\csname T1@math@textenc\endcsname{%
  458. \def\acute{\mathaccent"7001 }%
  459. \def\grave{\mathaccent"7000 }%
  460. \def\ddot{\mathaccent"7004 }%
  461. \def\tilde{\mathaccent"7003 }%
  462. \def\bar{\mathaccent"7009 }%
  463. \def\breve{\mathaccent"7008 }%
  464. \def\check{\mathaccent"7007 }%
  465. \def\hat{\mathaccent"7002 }%
  466. \def\dot{\mathaccent"700A }%
  467. }%
  468. %
  469. % We keep track of the combinations of current encoding list (set by
  470. % @documentencoding) and current font family encoding list, for the
  471. % sake of glyph caching.
  472. \newcount\enclist@curr
  473. \newcount\enclist@count
  474. %
  475. \def\update@enclist@index{%
  476. \expandafter\let\expandafter\temp \csname fam@enc@list/\f@family\endcsname
  477. \edef\temp{\f@encoding/\cur@fenc@list/\temp}%
  478. \expandafter\ifx \csname el@\temp\endcsname \relax
  479. \global\advance \enclist@count by1
  480. \expandafter\xdef \csname el@\temp\endcsname {\the\enclist@count}%
  481. \enclist@curr=\enclist@count\relax
  482. \else
  483. \enclist@curr=\csname el@\temp\endcsname\relax
  484. \fi
  485. }%
  486. %
  487. % \selectfont
  488. %
  489. % Select the font as specified by the values of \f@... and set line
  490. % skip and strut box for the font's size.
  491. \def\selectfont{%
  492. \search@font
  493. \c@font@command % Select the font.
  494. \update@enclist@index % For proper glyph caching.
  495. % Set strutbox and line skips accordingly.
  496. \ifx\temp\relax\else
  497. % The code below only produces lineskips which are multiples of
  498. % 0.1pt. The maximum dimension it can deal with is 214.7pt. This
  499. % means that, for a font with the relative factor of 1000 and the
  500. % lineskip factor of 1200, the maximum font size is 178.9pt (which
  501. % is 214.7pt / 1.2), which should be more than enough for Texinfo.
  502. \count@\csname fam@lskip/\f@family\endcsname % This family's lineskip factor.
  503. \multiply\count@ by\f@size % Requested font size (in pt, x10).
  504. \multiply\count@ by\csname fam@scale/\f@family\endcsname % This family's factor.
  505. \divide\count@ by\base@fntscale % Base factor.
  506. \advance\count@ by500 % For the rounding.
  507. \divide\count@ by1000
  508. \dimen@\count@ pt
  509. \divide\dimen@ by10
  510. \@fontnotify{^^J\linenumber Setting line skip to \the\dimen@.}%
  511. \@setleading\dimen@
  512. \fi
  513. }%
  514. %
  515. \def\search@font{%
  516. % Expand \font@string once now, we might use it several times.
  517. \edef\c@font@string{\font@string}%
  518. % Also define a shortcut for the corresponding font command.
  519. \edef\c@font@command{\expandafter\noexpand \csname\c@font@string\endcsname}%
  520. % First check if the requested font is in the cache.
  521. \expandafter\let\expandafter \temp \c@font@command
  522. \ifx\temp\relax
  523. % No, it's not in the cache, search for the font.
  524. \search@font@size
  525. \expandafter\let\expandafter \temp \c@font@command
  526. \ifx\temp\relax
  527. % The font is not found, check whether it is mapped.
  528. \search@font@map
  529. \expandafter\let\expandafter \temp \c@font@command
  530. \ifx\temp\relax
  531. % No, it's not mapped either, issue a warning.
  532. \@fontwarn{^^J\linenumber Warning: font \c@font@string\space
  533. is not declared, leaving the font unchanged.}%
  534. \fi
  535. \fi
  536. \else
  537. % The font is in the cache, report it.
  538. \@fontnotify{^^J\linenumber In font cache: \c@font@string\space
  539. (\fontname\csname\c@font@string\endcsname).}%
  540. \fi
  541. }%
  542. %
  543. % Search for the font as specified by the values of \f@... If it's
  544. % found, load it and add it to the cache.
  545. \def\search@font@size{%
  546. % Check that there's a definition for the requested font shape
  547. % (declared by \declarefont).
  548. \expandafter\let\expandafter \temp \csname sh/\shape@string\endcsname
  549. \ifx\temp\relax \else
  550. % The shape was defined. It should contain mapping of size ranges
  551. % to fonts. Search the font for the requested size.
  552. \expandafter\parse@font@range\temp\finish
  553. \fi
  554. }%
  555. % L U SZ FN the-rest-of-the-list
  556. \def\parse@font@range#1 #2 #3 #4 #5\finish{%
  557. % See if we have not yet reached the end of the list.
  558. \def\temp{#5}%
  559. \ifx\temp\empty
  560. \let\next\gobble % Yeah, the end, gobble \finish below.
  561. \else
  562. \let\next\parse@font@range % No, continue recursively.
  563. \fi
  564. % If \f@size belongs in [#1,#2), we have found our range.
  565. \ifnum\f@size<#1 \else \ifnum\f@size<#2
  566. \load@font{#4}{#3}%
  567. \let\next\gobble@to@finish % Stop the recursive list search.
  568. \fi\fi
  569. \next#5\finish
  570. }%
  571. %
  572. % Load the font as specified by \f@... and add it to the cache. #1 is
  573. % the font file name, #2 is the design size.
  574. \def\load@font#1#2{%
  575. % Calculate the scale factor for this font. Because of the way we
  576. % do this, the maximum possible font size, for a font with the
  577. % relative factor of 1000, is 214.7pt, which should be more than
  578. % enough for Texinfo.
  579. \count@ \csname fam@scale/\f@family\endcsname % This family's factor.
  580. \multiply\count@ by\f@size % Requested size.
  581. \multiply\count@ by1000
  582. \divide\count@ by#2 % This font's design size.
  583. \divide\count@ by\base@fntscale % Base factor.
  584. % Report the font.
  585. \@fontnotify{^^J\linenumber Adding to font cache:
  586. \c@font@string \space -> #1 scaled \the\count@.}%
  587. % Load it. The name we define will be used in "cache" lookups of
  588. % this font.
  589. \global\expandafter\font \c@font@command #1 scaled \count@\relax
  590. }%
  591. %
  592. % Search font mappings for the requested font (as per the \f@...
  593. % macros) and set \c@font@command if it's found. Mappings can contain
  594. % globbing characters (`*'), but for the from-attributes, we only
  595. % support a subset of possible combinations, see the comments below.
  596. % To-attributes can have any combination of `*'s.
  597. \def\search@font@map{%
  598. % * F1 * s1
  599. \if\fmap@exists *\f@family*\f@shape
  600. \else
  601. % * F1 S1 *
  602. \if\fmap@exists *\f@family\f@series*%
  603. \else
  604. % ENC F1 S1 *
  605. \if\fmap@exists \f@encoding\f@family\f@series*%
  606. \else
  607. % ENC F1 * *
  608. \if\fmap@exists \f@encoding\f@family**%
  609. \fi
  610. \fi
  611. \fi
  612. \fi
  613. }%
  614. %
  615. % Note: calls \font@apply@map if the map exists.
  616. \def\fmap@exists#1#2#3#4{%
  617. TT\fi % Cancel out the preceding \if -- we'll roll our own.
  618. \expandafter\let\expandafter\@fmap \csname fmap/#1/#2/#3/#4\endcsname
  619. \ifx\@fmap\relax
  620. \fmap@exists@false
  621. \else
  622. \@fontnotify{^^J\linenumber Mapping font: #1/#2/#3/#4 -> \@fmap.}%
  623. \expandafter\font@apply@map \@fmap\finish
  624. \fmap@exists@true
  625. \fi
  626. }%
  627. \def\fmap@exists@false{\expandafter\iffalse}%
  628. \def\fmap@exists@true{\expandafter\iftrue}%
  629. %
  630. \def\font@apply@map#1/#2/#3/#4\finish{%
  631. \begingroup % Save the \f@... and \c@font@... macros.
  632. \font@set@attrib \f@encoding{#1}%
  633. \font@set@attrib \f@family {#2}%
  634. \font@set@attrib \f@series {#3}%
  635. \font@set@attrib \f@shape {#4}%
  636. \selectfont
  637. \global\expandafter\let\expandafter \gtemp \c@font@command
  638. \endgroup % Restore the \f@... and \c@font@... macros.
  639. % Define the font selection command for the new font.
  640. \global\expandafter\let \c@font@command \gtemp
  641. }%
  642. %
  643. \def\asteriskword{*}%
  644. %
  645. \def\font@set@attrib#1#2{%
  646. \edef\temp{#2}%
  647. \ifx\temp\asteriskword
  648. % Leave the attribute unchanged.
  649. \else
  650. \let#1\temp
  651. \fi
  652. }%
  653. %
  654. % Computer Modern Roman.
  655. %
  656. \declarefontfamily CMRoman 1000 1200
  657. % Medium weight.
  658. % Upright. ser sh [l,u) sz font
  659. \declarefont OT1 CMRoman m n 0-5.5 5 cmr5
  660. \declarefont OT1 CMRoman m n 5.5-6.5 6 cmr6
  661. \declarefont OT1 CMRoman m n 6.5-7.5 7 cmr7
  662. \declarefont OT1 CMRoman m n 7.5-8.5 8 cmr8
  663. \declarefont OT1 CMRoman m n 8.5-9.5 9 cmr9
  664. \declarefont OT1 CMRoman m n 9.5-10.5 10 cmr10
  665. \declarefont OT1 CMRoman m n 10.5-14 12 cmr12
  666. \declarefont OT1 CMRoman m n 14-10000 17 cmr17
  667. % Italic.
  668. \declarefont OT1 CMRoman m it 0-7.5 7 cmti7
  669. \declarefont OT1 CMRoman m it 7.5-8.5 8 cmti8
  670. \declarefont OT1 CMRoman m it 8.5-9.5 9 cmti9
  671. \declarefont OT1 CMRoman m it 9.5-10.5 10 cmti10
  672. \declarefont OT1 CMRoman m it 10.5-10000 12 cmti12
  673. % Slanted.
  674. \declarefont OT1 CMRoman m sl 0-6.8 6 cmsl6 % from cmextra
  675. \declarefont OT1 CMRoman m sl 6.8-8.5 8 cmsl8
  676. \declarefont OT1 CMRoman m sl 8.5-9.5 9 cmsl9
  677. \declarefont OT1 CMRoman m sl 9.5-10.5 10 cmsl10
  678. \declarefont OT1 CMRoman m sl 10.5-10000 12 cmsl12
  679. % Caps and small caps.
  680. \declarefont OT1 CMRoman m sc 0-10000 10 cmcsc10
  681. % Unslanted italic (for slanted pound sterling).
  682. \declarefont OT1 CMRoman m ui 0-10000 10 cmu10
  683. %
  684. % Bold weight.
  685. \declarefont OT1 CMRoman b n 0-10000 10 cmb10
  686. \fontmapseries CMRoman b > * bx
  687. %
  688. % Bold extended.
  689. % Upright. ser sh [l,u) sz font
  690. \declarefont OT1 CMRoman bx n 0-5.5 5 cmbx5
  691. \declarefont OT1 CMRoman bx n 5.5-6.5 6 cmbx6
  692. \declarefont OT1 CMRoman bx n 6.5-7.5 7 cmbx7
  693. \declarefont OT1 CMRoman bx n 7.5-8.5 8 cmbx8
  694. \declarefont OT1 CMRoman bx n 8.5-9.5 9 cmbx9
  695. \declarefont OT1 CMRoman bx n 9.5-10.5 10 cmbx10
  696. \declarefont OT1 CMRoman bx n 10.5-10000 12 cmbx12
  697. % Italic.
  698. \declarefont OT1 CMRoman bx it 0-8.5 7 cmbxti7 % from cmextra
  699. \declarefont OT1 CMRoman bx it 8.5-11 10 cmbxti10
  700. \declarefont OT1 CMRoman bx it 11-10000 12 cmbxti12 % from cmextra
  701. % Slanted.
  702. \declarefont OT1 CMRoman bx sl 0-10000 10 cmbxsl10
  703. %
  704. % Math letters.
  705. \fontmap OML CMRoman m * > * * * n
  706. \fontmap OML CMRoman bx * > * * * n
  707. \fontmap OML CMRoman b * > * * bx *
  708. % Medium weight. ser sh [l,u) sz font
  709. \declarefont OML CMRoman m n 0-5.5 5 cmmi5
  710. \declarefont OML CMRoman m n 5.5-6.5 6 cmmi6
  711. \declarefont OML CMRoman m n 6.5-7.5 7 cmmi7
  712. \declarefont OML CMRoman m n 7.5-8.5 8 cmmi8
  713. \declarefont OML CMRoman m n 8.5-9.5 9 cmmi9
  714. \declarefont OML CMRoman m n 9.5-10.5 10 cmmi10
  715. \declarefont OML CMRoman m n 10.5-10000 12 cmmi12
  716. % Bold extended.
  717. \declarefont OML CMRoman bx n 0-5.5 5 cmmib5
  718. \declarefont OML CMRoman bx n 5.5-6.5 6 cmmib6
  719. \declarefont OML CMRoman bx n 6.5-7.5 7 cmmib7
  720. \declarefont OML CMRoman bx n 7.5-8.5 8 cmmib8
  721. \declarefont OML CMRoman bx n 8.5-9.5 9 cmmib9
  722. \declarefont OML CMRoman bx n 9.5-10000 10 cmmib10
  723. %
  724. % Math symbols.
  725. \fontmap OMS CMRoman m * > * * * n
  726. \fontmap OMS CMRoman bx * > * * * n
  727. \fontmap OMS CMRoman b * > * * bx *
  728. % Medium weight. ser sh [l,u) sz font
  729. \declarefont OMS CMRoman m n 0-5.5 5 cmsy5
  730. \declarefont OMS CMRoman m n 5.5-6.5 6 cmsy6
  731. \declarefont OMS CMRoman m n 6.5-7.5 7 cmsy7
  732. \declarefont OMS CMRoman m n 7.5-8.5 8 cmsy8
  733. \declarefont OMS CMRoman m n 8.5-9.5 9 cmsy9
  734. \declarefont OMS CMRoman m n 9.5-10000 10 cmsy10
  735. % Bold extended.
  736. \declarefont OMS CMRoman bx n 0-5.5 5 cmbsy5
  737. \declarefont OMS CMRoman bx n 5.5-6.5 6 cmbsy6
  738. \declarefont OMS CMRoman bx n 6.5-7.5 7 cmbsy7
  739. \declarefont OMS CMRoman bx n 7.5-8.5 8 cmbsy8
  740. \declarefont OMS CMRoman bx n 8.5-9.5 9 cmbsy9
  741. \declarefont OMS CMRoman bx n 9.5-10000 10 cmbsy10
  742. %
  743. % Computer Modern Sans.
  744. %
  745. \declarefontfamily CMSans 1000 1200
  746. \fontmapshape CMSans it > * sl
  747. \fontmapseries CMSans b > * bx
  748. \fontmapfamily CMSans OML CMRoman
  749. \fontmapfamily CMSans OMS CMRoman
  750. % Medium weight.
  751. % Upright. ser sh [l,u) sz font
  752. \declarefont OT1 CMSans m n 0-8.5 8 cmss8
  753. \declarefont OT1 CMSans m n 8.5-9.5 9 cmss9
  754. \declarefont OT1 CMSans m n 9.5-10.5 10 cmss10
  755. \declarefont OT1 CMSans m n 10.5-14 12 cmss12
  756. \declarefont OT1 CMSans m n 14-10000 17 cmss17
  757. % Slanted.
  758. \declarefont OT1 CMSans m sl 0-8.5 8 cmssi8
  759. \declarefont OT1 CMSans m sl 8.5-9.5 9 cmssi9
  760. \declarefont OT1 CMSans m sl 9.5-10.5 10 cmssi10
  761. \declarefont OT1 CMSans m sl 10.5-14 12 cmssi12
  762. \declarefont OT1 CMSans m sl 14-10000 17 cmssi17
  763. %
  764. % Bold extended.
  765. \declarefont OT1 CMSans bx n 0-10000 10 cmssbx10
  766. \declarefont OT1 CMSans bx sl 0-10000 10 cmssbxo10 % from cmextra
  767. %
  768. % Computer Modern Typewriter.
  769. %
  770. \declarefontfamily CMMono 1000 1200
  771. \fontmapfamily CMMono OML CMRoman
  772. \fontmapfamily CMMono OMS CMRoman
  773. % Medium weight.
  774. % Upright. ser sh [l,u) sz font
  775. \declarefont OT1 CMMono m n 0-8.5 8 cmtt8
  776. \declarefont OT1 CMMono m n 8.5-9.5 9 cmtt9
  777. \declarefont OT1 CMMono m n 9.5-10.5 10 cmtt10
  778. \declarefont OT1 CMMono m n 10.5-10000 12 cmtt12
  779. % Italic.
  780. \declarefont OT1 CMMono m it 0-9.5 9 cmitt9 % from cmextra
  781. \declarefont OT1 CMMono m it 9.5-10.5 10 cmitt10
  782. \declarefont OT1 CMMono m it 10.5-10000 12 cmitt12 % from cmextra
  783. % Slanted.
  784. \declarefont OT1 CMMono m sl 0-9.5 9 cmsltt9 % from cmextra
  785. \declarefont OT1 CMMono m sl 9.5-10000 10 cmsltt10
  786. %
  787. % Latin Modern Roman.
  788. %
  789. \declarefontfamily LMRoman 1000 1200
  790. % Medium weight.
  791. % Upright. ser sh [l,u) sz font
  792. \declarefont T1 LMRoman m n 0-5.5 5 ec-lmr5
  793. \declarefont T1 LMRoman m n 5.5-6.5 6 ec-lmr6
  794. \declarefont T1 LMRoman m n 6.5-7.5 7 ec-lmr7
  795. \declarefont T1 LMRoman m n 7.5-8.5 8 ec-lmr8
  796. \declarefont T1 LMRoman m n 8.5-9.5 9 ec-lmr9
  797. \declarefont T1 LMRoman m n 9.5-10.5 10 ec-lmr10
  798. \declarefont T1 LMRoman m n 10.5-14 12 ec-lmr12
  799. \declarefont T1 LMRoman m n 14-10000 17 ec-lmr17
  800. \declarefont TS1 LMRoman m n 0-5.5 5 ts1-lmr5
  801. \declarefont TS1 LMRoman m n 5.5-6.5 6 ts1-lmr6
  802. \declarefont TS1 LMRoman m n 6.5-7.5 7 ts1-lmr7
  803. \declarefont TS1 LMRoman m n 7.5-8.5 8 ts1-lmr8
  804. \declarefont TS1 LMRoman m n 8.5-9.5 9 ts1-lmr9
  805. \declarefont TS1 LMRoman m n 9.5-10.5 10 ts1-lmr10
  806. \declarefont TS1 LMRoman m n 10.5-14 12 ts1-lmr12
  807. \declarefont TS1 LMRoman m n 14-10000 17 ts1-lmr17
  808. % Italic.
  809. \declarefont T1 LMRoman m it 0-7.5 7 ec-lmri7
  810. \declarefont T1 LMRoman m it 7.5-8.5 8 ec-lmri8
  811. \declarefont T1 LMRoman m it 8.5-9.5 9 ec-lmri9
  812. \declarefont T1 LMRoman m it 9.5-10.5 10 ec-lmri10
  813. \declarefont T1 LMRoman m it 10.5-10000 12 ec-lmri12
  814. \declarefont TS1 LMRoman m it 0-7.5 7 ts1-lmri7
  815. \declarefont TS1 LMRoman m it 7.5-8.5 8 ts1-lmri8
  816. \declarefont TS1 LMRoman m it 8.5-9.5 9 ts1-lmri9
  817. \declarefont TS1 LMRoman m it 9.5-10.5 10 ts1-lmri10
  818. \declarefont TS1 LMRoman m it 10.5-10000 12 ts1-lmri12
  819. % Slanted.
  820. \declarefont T1 LMRoman m sl 6.8-8.5 8 ec-lmro8
  821. \declarefont T1 LMRoman m sl 8.5-9.5 9 ec-lmro9
  822. \declarefont T1 LMRoman m sl 9.5-10.5 10 ec-lmro10
  823. \declarefont T1 LMRoman m sl 10.5-14 12 ec-lmro12
  824. \declarefont T1 LMRoman m sl 14-10000 17 ec-lmro17
  825. \declarefont TS1 LMRoman m sl 6.8-8.5 8 ts1-lmro8
  826. \declarefont TS1 LMRoman m sl 8.5-9.5 9 ts1-lmro9
  827. \declarefont TS1 LMRoman m sl 9.5-10.5 10 ts1-lmro10
  828. \declarefont TS1 LMRoman m sl 10.5-14 12 ts1-lmro12
  829. \declarefont TS1 LMRoman m sl 14-10000 17 ts1-lmro17
  830. % Caps and small caps.
  831. \declarefont T1 LMRoman m sc 0-10000 10 ec-lmcsc10
  832. \declarefont TS1 LMRoman m sc 0-10000 10 ts1-lmcsc10
  833. %
  834. % Bold weight.
  835. \declarefont T1 LMRoman b n 0-10000 10 ec-lmb10
  836. \fontmapseries LMRoman b > * bx % For the `it' shape.
  837. \declarefont T1 LMRoman b sl 0-10000 10 ec-lmbo10
  838. \declarefont TS1 LMRoman b n 0-10000 10 ts1-lmb10
  839. \declarefont TS1 LMRoman b sl 0-10000 10 ts1-lmbo10
  840. %
  841. % Bold extended.
  842. % Upright. ser sh [l,u) sz font
  843. \declarefont T1 LMRoman bx n 0-5.5 5 ec-lmbx5
  844. \declarefont T1 LMRoman bx n 5.5-6.5 6 ec-lmbx6
  845. \declarefont T1 LMRoman bx n 6.5-7.5 7 ec-lmbx7
  846. \declarefont T1 LMRoman bx n 7.5-8.5 8 ec-lmbx8
  847. \declarefont T1 LMRoman bx n 8.5-9.5 9 ec-lmbx9
  848. \declarefont T1 LMRoman bx n 9.5-10.5 10 ec-lmbx10
  849. \declarefont T1 LMRoman bx n 10.5-10000 12 ec-lmbx12
  850. \declarefont TS1 LMRoman bx n 0-5.5 5 ts1-lmbx5
  851. \declarefont TS1 LMRoman bx n 5.5-6.5 6 ts1-lmbx6
  852. \declarefont TS1 LMRoman bx n 6.5-7.5 7 ts1-lmbx7
  853. \declarefont TS1 LMRoman bx n 7.5-8.5 8 ts1-lmbx8
  854. \declarefont TS1 LMRoman bx n 8.5-9.5 9 ts1-lmbx9
  855. \declarefont TS1 LMRoman bx n 9.5-10.5 10 ts1-lmbx10
  856. \declarefont TS1 LMRoman bx n 10.5-10000 12 ts1-lmbx12
  857. % Italic.
  858. \declarefont T1 LMRoman bx it 0-10000 10 ec-lmbxi10
  859. \declarefont TS1 LMRoman bx it 0-10000 10 ts1-lmbxi10
  860. % Slanted.
  861. \declarefont T1 LMRoman bx sl 0-10000 10 ec-lmbxo10
  862. \declarefont TS1 LMRoman bx sl 0-10000 10 ts1-lmbxo10
  863. %
  864. % Latin Modern Sans.
  865. %
  866. \declarefontfamily LMSans 1000 1200
  867. \fontmapshape LMSans it > * sl
  868. \fontmapseries LMSans b > * bx
  869. % Medium weight.
  870. % Upright. ser sh [l,u) sz font
  871. \declarefont T1 LMSans m n 0-8.5 8 ec-lmss8
  872. \declarefont T1 LMSans m n 8.5-9.5 9 ec-lmss9
  873. \declarefont T1 LMSans m n 9.5-10.5 10 ec-lmss10
  874. \declarefont T1 LMSans m n 10.5-14 12 ec-lmss12
  875. \declarefont T1 LMSans m n 14-10000 17 ec-lmss17
  876. % Slanted.
  877. \declarefont T1 LMSans m sl 0-8.5 8 ec-lmsso8
  878. \declarefont T1 LMSans m sl 8.5-9.5 9 ec-lmsso9
  879. \declarefont T1 LMSans m sl 9.5-10.5 10 ec-lmsso10
  880. \declarefont T1 LMSans m sl 10.5-14 12 ec-lmsso12
  881. \declarefont T1 LMSans m sl 14-10000 17 ec-lmsso17
  882. %
  883. % Bold extended.
  884. \declarefont T1 LMSans bx n 0-10000 10 ec-lmssbx10
  885. \declarefont T1 LMSans bx sl 0-10000 10 ec-lmssbo10
  886. %
  887. % Latin Modern Typewriter.
  888. %
  889. \declarefontfamily LMMono 1000 1200
  890. % Medium weight.
  891. % Upright. ser sh [l,u) sz font
  892. \declarefont T1 LMMono m n 0-8.5 8 ec-lmtt8
  893. \declarefont T1 LMMono m n 8.5-9.5 9 ec-lmtt9
  894. \declarefont T1 LMMono m n 9.5-10.5 10 ec-lmtt10
  895. \declarefont T1 LMMono m n 10.5-10000 12 ec-lmtt12
  896. % Italic.
  897. \declarefont T1 LMMono m it 0-10000 10 ec-lmtti10
  898. % Slanted.
  899. \declarefont T1 LMMono m sl 0-10000 10 ec-lmtto10
  900. %
  901. % Computer Modern Bright.
  902. %
  903. \declarefontfamily CMBright 1000 1250
  904. \fontmapshape CMBright it > * sl
  905. \fontmapseries CMBright bx > * sb
  906. % Medium weight.
  907. % Upright. ser sh [l,u) sz font
  908. \declarefont T1 CMBright m n 0-8.5 8 ebmr8
  909. \declarefont T1 CMBright m n 8.5-9.5 9 ebmr9
  910. \declarefont T1 CMBright m n 9.5-14 10 ebmr10
  911. \declarefont T1 CMBright m n 14-10000 17 ebmr17
  912. % Slanted.
  913. \declarefont T1 CMBright m sl 0-8.5 8 ebmo8
  914. \declarefont T1 CMBright m sl 8.5-9.5 9 ebmo9
  915. \declarefont T1 CMBright m sl 9.5-14 10 ebmo10
  916. \declarefont T1 CMBright m sl 14-10000 17 ebmo17
  917. %
  918. % Semi-bold weight.
  919. % Upright.
  920. \declarefont T1 CMBright sb n 0-8.5 8 ebsr8
  921. \declarefont T1 CMBright sb n 8.5-9.5 9 ebsr9
  922. \declarefont T1 CMBright sb n 9.5-14 10 ebsr10
  923. \declarefont T1 CMBright sb n 14-10000 17 ebsr17
  924. % Slanted.
  925. \declarefont T1 CMBright sb sl 0-8.5 8 ebso8
  926. \declarefont T1 CMBright sb sl 8.5-9.5 9 ebso9
  927. \declarefont T1 CMBright sb sl 9.5-14 10 ebso10
  928. \declarefont T1 CMBright sb sl 14-10000 17 ebso17
  929. %
  930. % Bold extended.
  931. \declarefont T1 CMBright bx n 0-10000 10 ebbx10
  932. %
  933. % Computer Modern Bright Typewriter.
  934. %
  935. \declarefontfamily CMBrightMono 1000 1250
  936. \fontmapshape CMBrightMono it > * sl
  937. % Medium weight. ser sh [l,u) sz font
  938. \declarefont T1 CMBrightMono m n 0-10000 10 ebtl10
  939. \declarefont T1 CMBrightMono m sl 0-10000 10 ebto10
  940. %
  941. % European Concrete Roman.
  942. %
  943. \declarefontfamily ConcreteRoman 1000 1250
  944. \fontmapseries ConcreteRoman b > LMSans b
  945. \fontmapseries ConcreteRoman bx > LMSans bx
  946. % Medium weight.
  947. % Upright. ser sh [l,u) sz font
  948. \declarefont T1 ConcreteRoman m n 0-5.5 5 eorm5
  949. \declarefont T1 ConcreteRoman m n 5.5-6.5 6 eorm6
  950. \declarefont T1 ConcreteRoman m n 6.5-7.5 7 eorm7
  951. \declarefont T1 ConcreteRoman m n 7.5-8.5 8 eorm8
  952. \declarefont T1 ConcreteRoman m n 8.5-9.5 9 eorm9
  953. \declarefont T1 ConcreteRoman m n 9.5-10000 10 eorm10
  954. % Italic.
  955. \declarefont T1 ConcreteRoman m it 0-10000 10 eoti10
  956. % Slanted.
  957. \declarefont T1 ConcreteRoman m sl 0-5.5 5 eosl5
  958. \declarefont T1 ConcreteRoman m sl 5.5-6.5 6 eosl6
  959. \declarefont T1 ConcreteRoman m sl 6.5-7.5 7 eosl7
  960. \declarefont T1 ConcreteRoman m sl 7.5-8.5 8 eosl8
  961. \declarefont T1 ConcreteRoman m sl 8.5-9.5 9 eosl9
  962. \declarefont T1 ConcreteRoman m sl 9.5-10000 10 eosl10
  963. % Caps and small caps.
  964. \declarefont T1 ConcreteRoman m sc 0-10000 10 eocc10
  965. %
  966. % LH Roman.
  967. %
  968. \declarefontfamily LHRoman 1000 1200
  969. \fontmapfamily LHRoman T1 LMRoman
  970. \fontmapfamily LHRoman TS1 LMRoman
  971. % Medium weight.
  972. % Upright. ser sh [l,u) sz font
  973. \declarefont T2A LHRoman m n 0-5.5 5 larm0500
  974. \declarefont T2A LHRoman m n 5.5-6.5 6 larm0600
  975. \declarefont T2A LHRoman m n 6.5-7.5 7 larm0700
  976. \declarefont T2A LHRoman m n 7.5-8.5 8 larm0800
  977. \declarefont T2A LHRoman m n 8.5-9.5 9 larm0900
  978. \declarefont T2A LHRoman m n 9.5-10.4 10 larm1000
  979. \declarefont T2A LHRoman m n 10.4-11.4 10.95 larm1095
  980. \declarefont T2A LHRoman m n 11.4-13.1 12 larm1200
  981. \declarefont T2A LHRoman m n 13.1-15.6 14.4 larm1440
  982. \declarefont T2A LHRoman m n 15.6-18.8 17.28 larm1728
  983. \declarefont T2A LHRoman m n 18.8-22.5 20.74 larm2074
  984. \declarefont T2A LHRoman m n 22.5-27 24.88 larm2488
  985. \declarefont T2A LHRoman m n 27-32.5 29.86 larm2986
  986. \declarefont T2A LHRoman m n 32.5-10000 35.83 larm3583
  987. % Bold weight. ser sh [l,u) sz font
  988. \declarefont T2A LHRoman b n 0-5.5 5 larb0500
  989. \declarefont T2A LHRoman b n 5.5-6.5 6 larb0600
  990. \declarefont T2A LHRoman b n 6.5-7.5 7 larb0700
  991. \declarefont T2A LHRoman b n 7.5-8.5 8 larb0800
  992. \declarefont T2A LHRoman b n 8.5-9.5 9 larb0900
  993. \declarefont T2A LHRoman b n 9.5-10.4 10 larb1000
  994. \declarefont T2A LHRoman b n 10.4-11.4 10.95 larb1095
  995. \declarefont T2A LHRoman b n 11.4-13.1 12 larb1200
  996. \declarefont T2A LHRoman b n 13.1-15.6 14.4 larb1440
  997. \declarefont T2A LHRoman b n 15.6-18.8 17.28 larb1728
  998. \declarefont T2A LHRoman b n 18.8-22.5 20.74 larb2074
  999. \declarefont T2A LHRoman b n 22.5-27 24.88 larb2488
  1000. \declarefont T2A LHRoman b n 27-32.5 29.86 larb2986
  1001. \declarefont T2A LHRoman b n 32.5-10000 35.83 larb3583
  1002. % Bold extended. ser sh [l,u) sz font
  1003. \declarefont T2A LHRoman bx n 0-5.5 5 labx0500
  1004. \declarefont T2A LHRoman bx n 5.5-6.5 6 labx0600
  1005. \declarefont T2A LHRoman bx n 6.5-7.5 7 labx0700
  1006. \declarefont T2A LHRoman bx n 7.5-8.5 8 labx0800
  1007. \declarefont T2A LHRoman bx n 8.5-9.5 9 labx0900
  1008. \declarefont T2A LHRoman bx n 9.5-10.4 10 labx1000
  1009. \declarefont T2A LHRoman bx n 10.4-11.4 10.95 labx1095
  1010. \declarefont T2A LHRoman bx n 11.4-13.1 12 labx1200
  1011. \declarefont T2A LHRoman bx n 13.1-15.6 14.4 labx1440
  1012. \declarefont T2A LHRoman bx n 15.6-18.8 17.28 labx1728
  1013. \declarefont T2A LHRoman bx n 18.8-22.5 20.74 labx2074
  1014. \declarefont T2A LHRoman bx n 22.5-27 24.88 labx2488
  1015. \declarefont T2A LHRoman bx n 27-32.5 29.86 labx2986
  1016. \declarefont T2A LHRoman bx n 32.5-10000 35.83 labx3583
  1017. %
  1018. % Bera Roman (Bitstream Vera Serif).
  1019. %
  1020. \declarefontfamily BeraRoman 900 1375
  1021. \fontmapshape BeraRoman it > * sl
  1022. \fontmapseries BeraRoman b > * bx
  1023. % Medium weight. ser sh [l,u) sz font
  1024. \declarefont T1 BeraRoman m n 0-10000 10 fver8t
  1025. \declarefont T1 BeraRoman m sl 0-10000 10 fvero8t
  1026. % Bold extended.
  1027. \declarefont T1 BeraRoman bx n 0-10000 10 fveb8t
  1028. \declarefont T1 BeraRoman bx sl 0-10000 10 fvebo8t
  1029. %
  1030. % Bera Sans (Bitstream Vera Sans).
  1031. %
  1032. \declarefontfamily BeraSans 900 1375
  1033. \fontmapshape BeraSans it > * sl
  1034. \fontmapseries BeraSans b > * bx
  1035. % Medium weight. ser sh [l,u) sz font
  1036. \declarefont T1 BeraSans m n 0-10000 10 fvsr8t
  1037. \declarefont T1 BeraSans m sl 0-10000 10 fvsro8t
  1038. % Bold extended.
  1039. \declarefont T1 BeraSans bx n 0-10000 10 fvsb8t
  1040. \declarefont T1 BeraSans bx sl 0-10000 10 fvsbo8t
  1041. %
  1042. % Bera Mono (Bitstream Vera Mono).
  1043. %
  1044. \declarefontfamily BeraMono 900 1375
  1045. \fontmapshape BeraMono it > * sl
  1046. \fontmapseries BeraMono bx > * b
  1047. % Medium weight. ser sh [l,u) sz font
  1048. \declarefont T1 BeraMono m n 0-10000 10 fvmr8t
  1049. \declarefont T1 BeraMono m sl 0-10000 10 fvmro8t
  1050. % Bold weight.
  1051. \declarefont T1 BeraMono b n 0-10000 10 fvmb8t
  1052. \declarefont T1 BeraMono b sl 0-10000 10 fvmbo8t
  1053. %
  1054. % Bitstream Charter.
  1055. %
  1056. \declarefontfamily Charter 1000 1275
  1057. \fontmapseries Charter b > * bx
  1058. % Medium weight. ser sh [l,u) sz font
  1059. \declarefont T1 Charter m n 0-10000 10 bchr8t
  1060. \declarefont T1 Charter m it 0-10000 10 bchri8t
  1061. \declarefont T1 Charter m sl 0-10000 10 bchro8t
  1062. \declarefont T1 Charter m sc 0-10000 10 bchrc8t
  1063. % Bold extended.
  1064. \declarefont T1 Charter bx n 0-10000 10 bchb8t
  1065. \declarefont T1 Charter bx it 0-10000 10 bchbi8t
  1066. \declarefont T1 Charter bx sl 0-10000 10 bchbo8t
  1067. \declarefont T1 Charter bx sc 0-10000 10 bchbc8t
  1068. %
  1069. % URW Nimbus Roman (Times) + TeX Gyre Termes.
  1070. %
  1071. \declarefontfamily NimbusRoman 1000 1200
  1072. \fontmapseries NimbusRoman b > * bx
  1073. \fontmapshape NimbusRoman sl > * it % For TS1.
  1074. \fontmapshape NimbusRoman sc > * n % For TS1.
  1075. % Medium weight. ser sh [l,u) sz font
  1076. \declarefont T1 NimbusRoman m n 0-10000 10 ptmr8t
  1077. \declarefont TS1 NimbusRoman m n 0-10000 10 ts1-qtmr
  1078. \declarefont T1 NimbusRoman m it 0-10000 10 ptmri8t
  1079. \declarefont TS1 NimbusRoman m it 0-10000 10 ts1-qtmri
  1080. \declarefont T1 NimbusRoman m sl 0-10000 10 ptmro8t
  1081. \declarefont T1 NimbusRoman m sc 0-10000 10 ptmrc8t
  1082. % Bold extended.
  1083. \declarefont T1 NimbusRoman bx n 0-10000 10 ptmb8t
  1084. \declarefont TS1 NimbusRoman bx n 0-10000 10 ts1-qtmb
  1085. \declarefont T1 NimbusRoman bx it 0-10000 10 ptmbi8t
  1086. \declarefont TS1 NimbusRoman bx it 0-10000 10 ts1-qtmbi
  1087. \declarefont T1 NimbusRoman bx sl 0-10000 10 ptmbo8t
  1088. \declarefont T1 NimbusRoman bx sc 0-10000 10 ptmbc8t
  1089. %
  1090. % URW Nimbus Sans (Helvetica).
  1091. %
  1092. \declarefontfamily NimbusSans 950 1250
  1093. \fontmapshape NimbusSans it > * sl
  1094. \fontmapseries NimbusSans b > * bx
  1095. % Medium weight. ser sh [l,u) sz font
  1096. \declarefont T1 NimbusSans m n 0-10000 10 phvr8t
  1097. \declarefont T1 NimbusSans m sl 0-10000 10 phvro8t
  1098. \declarefont T1 NimbusSans m sc 0-10000 10 phvrc8t
  1099. % Bold extended.
  1100. \declarefont T1 NimbusSans bx n 0-10000 10 phvb8t
  1101. \declarefont T1 NimbusSans bx sl 0-10000 10 phvbo8t
  1102. \declarefont T1 NimbusSans bx sc 0-10000 10 phvbc8t
  1103. %
  1104. % URW Nimbus Mono (Courier).
  1105. %
  1106. \declarefontfamily NimbusMono 1000 1200
  1107. \fontmapshape NimbusMono it > * sl
  1108. \fontmapseries NimbusMono bx > * b
  1109. % Medium weight. ser sh [l,u) sz font
  1110. \declarefont T1 NimbusMono m n 0-10000 10 pcrr8t
  1111. \declarefont T1 NimbusMono m sl 0-10000 10 pcrro8t
  1112. \declarefont T1 NimbusMono m sc 0-10000 10 pcrrc8t
  1113. % Bold weight.
  1114. \declarefont T1 NimbusMono b n 0-10000 10 pcrb8t
  1115. \declarefont T1 NimbusMono b sl 0-10000 10 pcrbo8t
  1116. \declarefont T1 NimbusMono b sc 0-10000 10 pcrbc8t
  1117. %
  1118. % URW Palladio (Palatino) + TeX Gyre Pagella.
  1119. %
  1120. \declarefontfamily URWPalladio 1000 1275
  1121. \fontmapseries URWPalladio b > * bx
  1122. \fontmapshape URWPalladio sl > * it % For TS1.
  1123. \fontmapshape URWPalladio sc > * n % For TS1.
  1124. % Medium weight. ser sh [l,u) sz font
  1125. \declarefont T1 URWPalladio m n 0-10000 10 pplr8t
  1126. \declarefont TS1 URWPalladio m n 0-10000 10 ts1-qplr
  1127. \declarefont T1 URWPalladio m it 0-10000 10 pplri8t
  1128. \declarefont TS1 URWPalladio m it 0-10000 10 ts1-qplri
  1129. \declarefont T1 URWPalladio m sl 0-10000 10 pplro8t
  1130. \declarefont T1 URWPalladio m sc 0-10000 10 pplrc8t
  1131. % Bold extended.
  1132. \declarefont T1 URWPalladio bx n 0-10000 10 pplb8t
  1133. \declarefont TS1 URWPalladio bx n 0-10000 10 ts1-qplb
  1134. \declarefont T1 URWPalladio bx it 0-10000 10 pplbi8t
  1135. \declarefont TS1 URWPalladio bx it 0-10000 10 ts1-qplbi
  1136. \declarefont T1 URWPalladio bx sl 0-10000 10 pplbo8t
  1137. \declarefont T1 URWPalladio bx sc 0-10000 10 pplbc8t
  1138. %
  1139. % URW Bookman.
  1140. %
  1141. \declarefontfamily URWBookman 1000 1260
  1142. \fontmapshape URWBookman it > * sl
  1143. \fontmapseries URWBookman bx > * b
  1144. % Medium weight. ser sh [l,u) sz font
  1145. \declarefont T1 URWBookman m n 0-10000 10 pbkl8t
  1146. \declarefont T1 URWBookman m sl 0-10000 10 pbklo8t
  1147. \declarefont T1 URWBookman m sc 0-10000 10 pbklc8t
  1148. % Bold weight.
  1149. \declarefont T1 URWBookman b n 0-10000 10 pbkd8t
  1150. \declarefont T1 URWBookman b sl 0-10000 10 pbkdo8t
  1151. \declarefont T1 URWBookman b sc 0-10000 10 pbkdc8t
  1152. %
  1153. % URW Century Schoolbook.
  1154. %
  1155. \declarefontfamily CenturySchoolbook 1000 1300
  1156. \fontmapseries CenturySchoolbook b > * bx
  1157. % Medium weight. ser sh [l,u) sz font
  1158. \declarefont T1 CenturySchoolbook m n 0-10000 10 pncr8t
  1159. \declarefont T1 CenturySchoolbook m it 0-10000 10 pncri8t
  1160. \declarefont T1 CenturySchoolbook m sl 0-10000 10 pncro8t
  1161. \declarefont T1 CenturySchoolbook m sc 0-10000 10 pncrc8t
  1162. % Bold extended.
  1163. \declarefont T1 CenturySchoolbook bx n 0-10000 10 pncb8t
  1164. \declarefont T1 CenturySchoolbook bx it 0-10000 10 pncbi8t
  1165. \declarefont T1 CenturySchoolbook bx sl 0-10000 10 pncbo8t
  1166. \declarefont T1 CenturySchoolbook bx sc 0-10000 10 pncbc8t
  1167. %
  1168. % Antykwa Torunska.
  1169. %
  1170. \declarefontfamily AntykwaTorunska 1000 1280
  1171. \fontmapshape AntykwaTorunska sl > * it
  1172. \fontmapseries AntykwaTorunska b > * bx
  1173. % Medium weight. ser sh [l,u) sz font
  1174. \declarefont T1 AntykwaTorunska m n 0-10000 10 ec-anttr
  1175. \declarefont T1 AntykwaTorunska m it 0-10000 10 ec-anttri
  1176. \declarefont T1 AntykwaTorunska m sc 0-10000 10 ec-anttrcap
  1177. % Bold extended.
  1178. \declarefont T1 AntykwaTorunska bx n 0-10000 10 ec-anttb
  1179. \declarefont T1 AntykwaTorunska bx it 0-10000 10 ec-anttbi
  1180. \declarefont T1 AntykwaTorunska bx sc 0-10000 10 ec-anttbcap
  1181. %
  1182. % Iwona.
  1183. %
  1184. \declarefontfamily Iwona 1000 1200
  1185. \fontmapshape Iwona it > * sl
  1186. \fontmapseries Iwona bx > * b
  1187. % Light weight. ser sh [l,u) sz font
  1188. \declarefont T1 Iwona l n 0-10000 10 ec-iwonal
  1189. \declarefont T1 Iwona l sl 0-10000 10 ec-iwonali
  1190. \declarefont T1 Iwona l sc 0-10000 10 ec-iwonalcap
  1191. % Light condensed.
  1192. \declarefont T1 Iwona lc n 0-10000 10 ec-iwonacl
  1193. \declarefont T1 Iwona lc sl 0-10000 10 ec-iwonacli
  1194. \declarefont T1 Iwona lc sc 0-10000 10 ec-iwonaclcap
  1195. % Medium weight.
  1196. \declarefont T1 Iwona m n 0-10000 10 ec-iwonar
  1197. \declarefont T1 Iwona m sl 0-10000 10 ec-iwonari
  1198. \declarefont T1 Iwona m sc 0-10000 10 ec-iwonarcap
  1199. % Medium condensed.
  1200. \declarefont T1 Iwona c n 0-10000 10 ec-iwonacr
  1201. \declarefont T1 Iwona c sl 0-10000 10 ec-iwonacri
  1202. \declarefont T1 Iwona c sc 0-10000 10 ec-iwonacrcap
  1203. % Semi-bold weight.
  1204. \declarefont T1 Iwona sb n 0-10000 10 ec-iwonam
  1205. \declarefont T1 Iwona sb sl 0-10000 10 ec-iwonami
  1206. \declarefont T1 Iwona sb sc 0-10000 10 ec-iwonamcap
  1207. % Semi-bold condensed. ser sh [l,u) sz font
  1208. \declarefont T1 Iwona sbc n 0-10000 10 ec-iwonacm
  1209. \declarefont T1 Iwona sbc sl 0-10000 10 ec-iwonacmi
  1210. \declarefont T1 Iwona sbc sc 0-10000 10 ec-iwonacmcap
  1211. % Bold weight.
  1212. \declarefont T1 Iwona b n 0-10000 10 ec-iwonab
  1213. \declarefont T1 Iwona b sl 0-10000 10 ec-iwonabi
  1214. \declarefont T1 Iwona b sc 0-10000 10 ec-iwonabcap
  1215. % Bold condensed.
  1216. \declarefont T1 Iwona bc n 0-10000 10 ec-iwonacb
  1217. \declarefont T1 Iwona bc sl 0-10000 10 ec-iwonacbi
  1218. \declarefont T1 Iwona bc sc 0-10000 10 ec-iwonacbcap
  1219. % Extra bold weight.
  1220. \declarefont T1 Iwona eb n 0-10000 10 ec-iwonah
  1221. \declarefont T1 Iwona eb sl 0-10000 10 ec-iwonahi
  1222. \declarefont T1 Iwona eb sc 0-10000 10 ec-iwonahcap
  1223. % Extra bold condensed.
  1224. \declarefont T1 Iwona ebc n 0-10000 10 ec-iwonach
  1225. \declarefont T1 Iwona ebc sl 0-10000 10 ec-iwonachi
  1226. \declarefont T1 Iwona ebc sc 0-10000 10 ec-iwonachcap
  1227. %
  1228. % URW Gothic (AvantGarde).
  1229. %
  1230. \declarefontfamily URWGothic 900 1450
  1231. \fontmapshape URWGothic it > * sl
  1232. \fontmapseries URWGothic bx > * b
  1233. % Medium weight. ser sh [l,u) sz font
  1234. \declarefont T1 URWGothic m n 0-10000 10 pagk8t
  1235. \declarefont T1 URWGothic m sl 0-10000 10 pagko8t
  1236. \declarefont T1 URWGothic m sc 0-10000 10 pagkc8t
  1237. % Bold weight.
  1238. \declarefont T1 URWGothic b n 0-10000 10 pagd8t
  1239. \declarefont T1 URWGothic b sl 0-10000 10 pagdo8t
  1240. \declarefont T1 URWGothic b sc 0-10000 10 pagdc8t
  1241. %
  1242. % URW Chancery.
  1243. %
  1244. \declarefontfamily URWChancery 1150 1150
  1245. % Medium weight. ser sh [l,u) sz font
  1246. \declarefont T1 URWChancery m it 0-10000 10 pzcmi8t
  1247. %
  1248. % Eurosym. The T1 encoding we use is just a stub.
  1249. %
  1250. \declarefontfamily Eurosym 1000 1200
  1251. \fontmapshape Eurosym it > * sl
  1252. \fontmapshape Eurosym sc > * n
  1253. \fontmapseries Eurosym bx > * b
  1254. % Medium weight. ser sh [l,u) sz font
  1255. \declarefont T1 Eurosym m n 0-10000 10 feymr10
  1256. \declarefont T1 Eurosym m sl 0-10000 10 feymo10
  1257. % Bold weight.
  1258. \declarefont T1 Eurosym b n 0-10000 10 feybr10
  1259. \declarefont T1 Eurosym b sl 0-10000 10 feybo10
  1260. %
  1261. % Math fonts.
  1262. %
  1263. % Macros to restore some plain TeX math defs, needed by post-hooks of
  1264. % some math font families, e.g., Belleek and EulerMath. `\cm@...'
  1265. % are "action" macros; `\@cm@...' are saved plain TeX defs. We only
  1266. % restore the defs which can be clobbered by the pre-hooks; add new
  1267. % ones as they become needed.
  1268. \def\cm@digits{%
  1269. \mathcode`0"7030
  1270. \mathcode`1"7031
  1271. \mathcode`2"7032
  1272. \mathcode`3"7033
  1273. \mathcode`4"7034
  1274. \mathcode`5"7035
  1275. \mathcode`6"7036
  1276. \mathcode`7"7037
  1277. \mathcode`8"7038
  1278. \mathcode`9"7039
  1279. }%
  1280. %
  1281. \def\cm@upper@greek{%
  1282. \let\Gamma\@cm@Gamma
  1283. \let\Delta\@cm@Delta
  1284. \let\Theta\@cm@Theta
  1285. \let\Lambda\@cm@Lambda
  1286. \let\Xi\@cm@Xi
  1287. \let\Pi\@cm@Pi
  1288. \let\Sigma\@cm@Sigma
  1289. \let\Upsilon\@cm@Upsilon
  1290. \let\Phi\@cm@Phi
  1291. \let\Psi\@cm@Psi
  1292. \let\Omega\@cm@Omega
  1293. }%
  1294. \let\@cm@Gamma\Gamma
  1295. \let\@cm@Delta\Delta
  1296. \let\@cm@Theta\Theta
  1297. \let\@cm@Lambda\Lambda
  1298. \let\@cm@Xi\Xi
  1299. \let\@cm@Pi\Pi
  1300. \let\@cm@Sigma\Sigma
  1301. \let\@cm@Upsilon\Upsilon
  1302. \let\@cm@Phi\Phi
  1303. \let\@cm@Psi\Psi
  1304. \let\@cm@Omega\Omega
  1305. \let\@cm@varsigma\varsigma
  1306. \let\@cm@varrho\varrho
  1307. %
  1308. \def\cm@lower@greek{%
  1309. \let\varsigma\@cm@varsigma
  1310. \let\varrho\@cm@varrho
  1311. }%
  1312. \let\@cm@varsigma\varsigma
  1313. \let\@cm@varrho\varrho
  1314. %
  1315. \def\cm@ordinary{%
  1316. \mathcode`!"5021 % Why the heck is this a closing delimiter?
  1317. \let\infty\@cm@infty
  1318. \let\Re\@cm@Re
  1319. \let\Im\@cm@Im
  1320. }%
  1321. \let\@cm@infty\infty
  1322. \let\@cm@Re\Re
  1323. \let\@cm@Im\Im
  1324. %
  1325. \def\cm@binary{%
  1326. \mathcode`+="202B
  1327. \let\triangleleft\@cm@triangleleft
  1328. \let\triangleright\@cm@triangleright
  1329. }%
  1330. \let\@cm@triangleleft\triangleleft
  1331. \let\@cm@triangleright\triangleright
  1332. %
  1333. \def\cm@relations{%
  1334. \mathcode`:"303A
  1335. \mathcode`="303D
  1336. \let\relbar\@cm@relbar
  1337. \let\Relbar\@cm@Relbar
  1338. }%
  1339. \let\@cm@relbar\relbar
  1340. \let\@cm@Relbar\Relbar
  1341. %
  1342. \def\cm@delims{%
  1343. \mathcode`("4028 \delcode`("028300
  1344. \mathcode`)"5029 \delcode`)"029301
  1345. \mathcode`["405B \delcode`["05B302
  1346. \mathcode`]"505D \delcode`]"05D303
  1347. \delcode`/"02F30E
  1348. }%
  1349. %
  1350. \def\cm@vec{\let\vec\@cm@vec}%
  1351. \let\@cm@vec\vec
  1352. %
  1353. {\catcode`'\active
  1354. \gdef\cm@prime{\let'\@cm@prime}%
  1355. \global\let\@cm@prime'%
  1356. \gdef\def@active@prime{\def'}%
  1357. }%
  1358. %
  1359. \def\cm@fillarrows{%
  1360. \let\rightarrowfill\@cm@rightarrowfill
  1361. \let\leftarrowfill\@cm@leftarrowfill
  1362. }%
  1363. \let\@cm@rightarrowfill\rightarrowfill
  1364. \let\@cm@leftarrowfill\leftarrowfill
  1365. %
  1366. % Computer Modern Math.
  1367. %
  1368. \declaremathfontfamily CMMath 1000 1200 OT1 127 48
  1369. \fontmap OT1 CMMath * * > * CMRoman * n
  1370. \fontmapseries CMMath b > * bx
  1371. \fontmap OMX CMMath bx * > * * m *
  1372. % Math letters.
  1373. % Medium weight. ser sh [l,u) sz font
  1374. \declarefont OML CMMath m . 0-5.5 5 cmmi5
  1375. \declarefont OML CMMath m . 5.5-6.5 6 cmmi6
  1376. \declarefont OML CMMath m . 6.5-7.5 7 cmmi7
  1377. \declarefont OML CMMath m . 7.5-8.5 8 cmmi8
  1378. \declarefont OML CMMath m . 8.5-9.5 9 cmmi9
  1379. \declarefont OML CMMath m . 9.5-10.5 10 cmmi10
  1380. \declarefont OML CMMath m . 10.5-10000 12 cmmi12
  1381. %
  1382. % Bold extended.
  1383. \declarefont OML CMMath bx . 0-5.5 5 cmmib5
  1384. \declarefont OML CMMath bx . 5.5-6.5 6 cmmib6
  1385. \declarefont OML CMMath bx . 6.5-7.5 7 cmmib7
  1386. \declarefont OML CMMath bx . 7.5-8.5 8 cmmib8
  1387. \declarefont OML CMMath bx . 8.5-9.5 9 cmmib9
  1388. \declarefont OML CMMath bx . 9.5-10000 10 cmmib10
  1389. %
  1390. % Math symbols.
  1391. % Medium weight. ser sh [l,u) sz font
  1392. \declarefont OMS CMMath m . 0-5.5 5 cmsy5
  1393. \declarefont OMS CMMath m . 5.5-6.5 6 cmsy6
  1394. \declarefont OMS CMMath m . 6.5-7.5 7 cmsy7
  1395. \declarefont OMS CMMath m . 7.5-8.5 8 cmsy8
  1396. \declarefont OMS CMMath m . 8.5-9.5 9 cmsy9
  1397. \declarefont OMS CMMath m . 9.5-10000 10 cmsy10
  1398. % Bold extended.
  1399. \declarefont OMS CMMath bx . 0-5.5 5 cmbsy5
  1400. \declarefont OMS CMMath bx . 5.5-6.5 6 cmbsy6
  1401. \declarefont OMS CMMath bx . 6.5-7.5 7 cmbsy7
  1402. \declarefont OMS CMMath bx . 7.5-8.5 8 cmbsy8
  1403. \declarefont OMS CMMath bx . 8.5-9.5 9 cmbsy9
  1404. \declarefont OMS CMMath bx . 9.5-10000 10 cmbsy10
  1405. %
  1406. % Math operators.
  1407. % Medium weight.
  1408. \declarefont OMX CMMath m . 0-7.5 7 cmex7
  1409. \declarefont OMX CMMath m . 7.5-8.5 8 cmex8
  1410. \declarefont OMX CMMath m . 8.5-9.5 9 cmex9
  1411. \declarefont OMX CMMath m . 9.5-10000 10 cmex10
  1412. %
  1413. % Computer Modern Bright Math.
  1414. %
  1415. \declaremathfontfamily CMBrightMath 1000 1250 OT1 127 48
  1416. \fontmapseries CMBrightMath bx > * m
  1417. \fontmapfamily CMBrightMath OMX CMMath
  1418. % ser sh [l,u) sz font
  1419. \declarefont OT1 CMBrightMath m . 0-8.5 8 cmbr8
  1420. \declarefont OT1 CMBrightMath m . 8.5-9.5 9 cmbr9
  1421. \declarefont OT1 CMBrightMath m . 9.5-14 10 cmbr10
  1422. \declarefont OT1 CMBrightMath m . 14-10000 17 cmbr17
  1423. \declarefont OML CMBrightMath m . 0-8.5 8 cmbrmi8
  1424. \declarefont OML CMBrightMath m . 8.5-9.5 9 cmbrmi9
  1425. \declarefont OML CMBrightMath m . 9.5-10000 10 cmbrmi10
  1426. \declarefont OMS CMBrightMath m . 0-8.5 8 cmbrsy8
  1427. \declarefont OMS CMBrightMath m . 8.5-9.5 9 cmbrsy9
  1428. \declarefont OMS CMBrightMath m . 9.5-10000 10 cmbrsy10
  1429. %
  1430. % Belleek.
  1431. %
  1432. \declaremathfontfamily Belleek 1000 1200 OT1 45 -1
  1433. \fontmapseries Belleek bx > * m
  1434. \mathfontfamilyprehook Belleek {%
  1435. % Uppercase Greek letters.
  1436. \mathchardef\Gamma"130
  1437. \mathchardef\Delta"131
  1438. \mathchardef\Theta"132
  1439. \mathchardef\Lambda"133
  1440. \mathchardef\Xi"134
  1441. \mathchardef\Pi"135
  1442. \mathchardef\Sigma"136
  1443. \mathchardef\Upsilon"137
  1444. \mathchardef\Phi"138
  1445. \mathchardef\Psi"139
  1446. \mathchardef\Omega"17F
  1447. % Binary operations.
  1448. \mathchardef\triangleleft"2247
  1449. \mathchardef\triangleright"2246
  1450. % Relations.
  1451. \mathchardef\Relbar"3248
  1452. % Delimiters.
  1453. \mathcode`("412E \delcode`(="12E300
  1454. \mathcode`)"512F \delcode`)="12F301
  1455. % Accents.
  1456. \def\vec{\mathaccent"0245 }%
  1457. % FIXME Other glyphs: mtmi: \tieaccent
  1458. }%
  1459. \mathfontfamilyposthook Belleek {%
  1460. \cm@upper@greek
  1461. \cm@binary
  1462. \cm@relations
  1463. \cm@delims
  1464. \cm@vec
  1465. }%
  1466. \declarefont OT1 Belleek m . 0-10000 10 ptmr7t
  1467. \declarefont OT1 Belleek bx . 0-10000 10 ptmb7t
  1468. \declarefont OML Belleek m . 0-10000 10 mtmi
  1469. \declarefont OMS Belleek m . 0-10000 10 mtsy
  1470. \declarefont OMX Belleek m . 0-10000 10 mtex
  1471. %
  1472. % Pazo Math.
  1473. %
  1474. \declaremathfontfamily PazoMath 1000 1275 OT1 127 48
  1475. \fontmapseries PazoMath bx > * b
  1476. \fontmap OMX PazoMath b * > * * m *
  1477. % ser sh [l,u) sz font
  1478. \declarefont OT1 PazoMath m . 0-10000 10 zplmr7t
  1479. \declarefont OT1 PazoMath b . 0-10000 10 zplmb7t
  1480. \declarefont OML PazoMath m . 0-10000 10 zplmr7m
  1481. \declarefont OML PazoMath b . 0-10000 10 zplmb7m
  1482. \declarefont OMS PazoMath m . 0-10000 10 zplmr7y
  1483. \declarefont OMS PazoMath b . 0-10000 10 zplmb7y
  1484. \declarefont OMX PazoMath m . 0-10000 10 zplmr7v
  1485. %
  1486. % PX Fonts Math.
  1487. %
  1488. \declaremathfontfamily PXFontsMath 1000 1275 OT1 127 48
  1489. \fontmapseries PXFontsMath bx > * b
  1490. \declarefont OT1 PXFontsMath m . 0-10000 10 pxr
  1491. \declarefont OT1 PXFontsMath b . 0-10000 10 pxb
  1492. \declarefont OML PXFontsMath m . 0-10000 10 pxmi
  1493. \declarefont OML PXFontsMath b . 0-10000 10 pxbmi
  1494. \declarefont OMS PXFontsMath m . 0-10000 10 pxsy
  1495. \declarefont OMS PXFontsMath b . 0-10000 10 pxbsy
  1496. \declarefont OMX PXFontsMath m . 0-10000 10 pxex
  1497. \declarefont OMX PXFontsMath b . 0-10000 10 pxbex
  1498. %
  1499. % TX Fonts Math.
  1500. %
  1501. \declaremathfontfamily TXFontsMath 1000 1200 OT1 127 48
  1502. \fontmapseries TXFontsMath bx > * b
  1503. \declarefont OT1 TXFontsMath m . 0-10000 10 txr
  1504. \declarefont OT1 TXFontsMath b . 0-10000 10 txb
  1505. \declarefont OML TXFontsMath m . 0-10000 10 txmi
  1506. \declarefont OML TXFontsMath b . 0-10000 10 txbmi
  1507. \declarefont OMS TXFontsMath m . 0-10000 10 txsy
  1508. \declarefont OMS TXFontsMath b . 0-10000 10 txbsy
  1509. \declarefont OMX TXFontsMath m . 0-10000 10 txex
  1510. \declarefont OMX TXFontsMath b . 0-10000 10 txbex
  1511. %
  1512. % Charter Math (from Math Design).
  1513. %
  1514. \declaremathfontfamily CharterMath 1000 1275 OT1 127 48
  1515. \fontmapseries CharterMath b > * bx
  1516. \declarefont OT1 CharterMath m . 0-10000 10 mdbchr7t
  1517. \declarefont OT1 CharterMath bx . 0-10000 10 mdbchb7t
  1518. \declarefont OML CharterMath m . 0-10000 10 mdbchri7m
  1519. \declarefont OML CharterMath bx . 0-10000 10 mdbchbi7m
  1520. \declarefont OMS CharterMath m . 0-10000 10 mdbchr7y
  1521. \declarefont OMS CharterMath bx . 0-10000 10 mdbchb7y
  1522. \declarefont OMX CharterMath m . 0-10000 10 mdbchr7v
  1523. \declarefont OMX CharterMath bx . 0-10000 10 mdbchb7v
  1524. %
  1525. % Arev Math.
  1526. %
  1527. % FIXME LaTeX has 127 for \textfont0. What's it for?
  1528. \declaremathfontfamily ArevMath 900 1375 OT1 127 48
  1529. \fontmapseries ArevMath b > * bx
  1530. \fontmapseries ArevMath bx > * m
  1531. \fontmapfamily ArevMath OMX CharterMath
  1532. \declarefont OT1 ArevMath m . 0-10000 10 zavmr7t
  1533. \declarefont OT1 ArevMath bx . 0-10000 10 zavmb7t
  1534. \declarefont OML ArevMath m . 0-10000 10 zavmri7m
  1535. \declarefont OML ArevMath bx . 0-10000 10 zavmbi7m
  1536. \declarefont OMS ArevMath m . 0-10000 10 zavmr7y
  1537. %
  1538. % Iwona Math.
  1539. %
  1540. \declaremathfontfamily IwonaMath 1000 1200 OT1 -1 -1
  1541. \fontmapseries IwonaMath bx > * b
  1542. \declarefont OT1 IwonaMath l . 0-10000 10 rm-iwonal
  1543. \declarefont OT1 IwonaMath lc . 0-10000 10 rm-iwonacl
  1544. \declarefont OT1 IwonaMath m . 0-10000 10 rm-iwonar
  1545. \declarefont OT1 IwonaMath c . 0-10000 10 rm-iwonacr
  1546. \declarefont OT1 IwonaMath sb . 0-10000 10 rm-iwonam
  1547. \declarefont OT1 IwonaMath sbc . 0-10000 10 rm-iwonacm
  1548. \declarefont OT1 IwonaMath b . 0-10000 10 rm-iwonab
  1549. \declarefont OT1 IwonaMath bc . 0-10000 10 rm-iwonacb
  1550. \declarefont OT1 IwonaMath eb . 0-10000 10 rm-iwonah
  1551. \declarefont OT1 IwonaMath ebc . 0-10000 10 rm-iwonach
  1552. % Math letters.
  1553. \declarefont OML IwonaMath l . 0-10000 10 mi-iwonali
  1554. \declarefont OML IwonaMath lc . 0-10000 10 mi-iwonacli
  1555. \declarefont OML IwonaMath m . 0-10000 10 mi-iwonari
  1556. \declarefont OML IwonaMath c . 0-10000 10 mi-iwonacri
  1557. \declarefont OML IwonaMath sb . 0-10000 10 mi-iwonami
  1558. \declarefont OML IwonaMath sbc . 0-10000 10 mi-iwonacmi
  1559. \declarefont OML IwonaMath b . 0-10000 10 mi-iwonabi
  1560. \declarefont OML IwonaMath bc . 0-10000 10 mi-iwonacbi
  1561. \declarefont OML IwonaMath eb . 0-10000 10 mi-iwonahi
  1562. \declarefont OML IwonaMath ebc . 0-10000 10 mi-iwonachi
  1563. % Math symbols.
  1564. \declarefont OMS IwonaMath l . 0-10000 10 sy-iwonalz
  1565. \declarefont OMS IwonaMath lc . 0-10000 10 sy-iwonaclz
  1566. \declarefont OMS IwonaMath m . 0-10000 10 sy-iwonarz
  1567. \declarefont OMS IwonaMath c . 0-10000 10 sy-iwonacrz
  1568. \declarefont OMS IwonaMath sb . 0-10000 10 sy-iwonamz
  1569. \declarefont OMS IwonaMath sbc . 0-10000 10 sy-iwonacmz
  1570. \declarefont OMS IwonaMath b . 0-10000 10 sy-iwonabz
  1571. \declarefont OMS IwonaMath bc . 0-10000 10 sy-iwonacbz
  1572. \declarefont OMS IwonaMath eb . 0-10000 10 sy-iwonahz
  1573. \declarefont OMS IwonaMath ebc . 0-10000 10 sy-iwonachz
  1574. % Math operators.
  1575. \declarefont OMX IwonaMath l . 0-10000 10 ex-iwonal
  1576. \declarefont OMX IwonaMath lc . 0-10000 10 ex-iwonacl
  1577. \declarefont OMX IwonaMath m . 0-10000 10 ex-iwonar
  1578. \declarefont OMX IwonaMath c . 0-10000 10 ex-iwonacr
  1579. \declarefont OMX IwonaMath sb . 0-10000 10 ex-iwonam
  1580. \declarefont OMX IwonaMath sbc . 0-10000 10 ex-iwonacm
  1581. \declarefont OMX IwonaMath b . 0-10000 10 ex-iwonab
  1582. \declarefont OMX IwonaMath bc . 0-10000 10 ex-iwonacb
  1583. \declarefont OMX IwonaMath eb . 0-10000 10 ex-iwonah
  1584. \declarefont OMX IwonaMath ebc . 0-10000 10 ex-iwonach
  1585. %
  1586. % Euler Math.
  1587. %
  1588. \declaremathfontfamily EulerMath 1000 1250 T1 127 176
  1589. \fontmapseries EulerMath bx > * m
  1590. % Text font.
  1591. \declarefont T1 EulerMath m . 0-5.5 5 eorm5
  1592. \declarefont T1 EulerMath m . 5.5-6.5 6 eorm6
  1593. \declarefont T1 EulerMath m . 6.5-7.5 7 eorm7
  1594. \declarefont T1 EulerMath m . 7.5-8.5 8 eorm8
  1595. \declarefont T1 EulerMath m . 8.5-9.5 9 eorm9
  1596. \declarefont T1 EulerMath m . 9.5-10000 10 eorm10
  1597. % Math letters.
  1598. \declarefont OML EulerMath m . 0-6 5 zeurm5
  1599. \declarefont OML EulerMath m . 6-8 7 zeurm7
  1600. \declarefont OML EulerMath m . 8-10000 10 zeurm10
  1601. \declarefont OML EulerMath bx . 0-6 5 zeurb5
  1602. \declarefont OML EulerMath bx . 6-8 7 zeurb7
  1603. \declarefont OML EulerMath bx . 8-10000 10 zeurb10
  1604. % Math symbols.
  1605. \declarefont OMS EulerMath m . 0-6 5 zeusm5
  1606. \declarefont OMS EulerMath m . 6-8 7 zeusm7
  1607. \declarefont OMS EulerMath m . 8-10000 10 zeusm10
  1608. \declarefont OMS EulerMath bx . 0-6 5 zeusb5
  1609. \declarefont OMS EulerMath bx . 6-8 7 zeusb7
  1610. \declarefont OMS EulerMath bx . 8-10000 10 zeusb10
  1611. % Extra math operators.
  1612. \declarefont OMX EulerMath m . 0-10000 10 zeuex10
  1613. % Hooks. Based on gkpmac.tex and eulervm.sty.
  1614. \mathfontfamilyprehook EulerMath {%
  1615. % Digits.
  1616. \mathcode`0"7130
  1617. \mathcode`1"7131
  1618. \mathcode`2"7132
  1619. \mathcode`3"7133
  1620. \mathcode`4"7134
  1621. \mathcode`5"7135
  1622. \mathcode`6"7136
  1623. \mathcode`7"7137
  1624. \mathcode`8"7138
  1625. \mathcode`9"7139
  1626. % Uppercase Greek letters.
  1627. \mathchardef\Gamma"100
  1628. \mathchardef\Delta"101
  1629. \mathchardef\Theta"102
  1630. \mathchardef\Lambda"103
  1631. \mathchardef\Xi"104
  1632. \mathchardef\Pi"105
  1633. \mathchardef\Sigma"106
  1634. \mathchardef\Upsilon"107
  1635. \mathchardef\Phi"108
  1636. \mathchardef\Psi"109
  1637. \mathchardef\Omega"10A
  1638. % Euler doesn't have these.
  1639. \let\varsigma\sigma
  1640. \let\varrho\rho
  1641. % Ordinary.
  1642. \mathcode`!"02A1
  1643. \mathchardef\infty"0399
  1644. \mathchardef\Re"023C
  1645. \mathchardef\Im"023D
  1646. % Binary operations.
  1647. \mathcode`+"22AB
  1648. % Relations.
  1649. \mathcode`:"32BA
  1650. \mathcode`="32BD
  1651. \mathchardef\bar@minus"181
  1652. \def\relbar{\mathrel{\smash\bar@minus}}%
  1653. \mathchardef\Relbar"3182
  1654. % Delimiters.
  1655. \mathcode`("42A8 \delcode`("2A8300
  1656. \mathcode`)"52A9 \delcode`)"2A9301
  1657. \mathcode`["42DB \delcode`["2DB302
  1658. \mathcode`]"52DD \delcode`]"2DD303
  1659. \delcode`/"13D30E
  1660. % Miscellaneous.
  1661. \def@active@prime{^\bgroup\mskip2mu\prim@s}%
  1662. \def\rightarrowfill{$\m@th\bar@minus\mkern-6mu%
  1663. \cleaders\hbox{$\mkern-2mu\bar@minus\mkern-2mu$}\hfill
  1664. \mkern-6mu\mathord\rightarrow$}%
  1665. \def\leftarrowfill{$\m@th\mathord\leftarrow\mkern-6mu%
  1666. \cleaders\hbox{$\mkern-2mu\bar@minus\mkern-2mu$}\hfill
  1667. \mkern-6mu\bar@minus$}%
  1668. }%
  1669. %
  1670. \mathfontfamilyposthook EulerMath {%
  1671. \cm@digits
  1672. \cm@upper@greek
  1673. \cm@lower@greek
  1674. \cm@ordinary
  1675. \cm@binary
  1676. \cm@relations
  1677. \cm@delims
  1678. \cm@prime
  1679. \cm@fillarrows
  1680. }%
  1681. %
  1682. % FIXME TeX-Gyre, Kerkis, Fourier-GUTenberg, Antykwa Torunska.
  1683. %
  1684. % Defaults.
  1685. \setfontencoding{OT1}%
  1686. \setfontfamily{CMRoman}%
  1687. \setfontseries{m}%
  1688. \setfontshape{n}%
  1689. \setfontsize{11}%
  1690. % Set some internal parameters for bootstrapping.
  1691. \expandafter\let\expandafter\cur@fenc@list
  1692. \csname denc@fenc@list/US-ASCII\endcsname
  1693. \fontbasefamily CMRoman % This calls \selectfont.
  1694. %
  1695. \fontfamily roman CMRoman
  1696. \fontfamily sans CMSans
  1697. \fontfamily mono CMMono
  1698. \fontfamily math CMMath
  1699. %
  1700. \documentencoding US-ASCII
  1701. %
  1702. \endinput