%% This is part of OpTeX project, see http://petr.olsak.net/optex \_codedecl \normalmath {Math fonts CM + AMS preloaded <2020-02-25>} % preloaded in format % Only few text fonts are preloaded: \_def\_normalmath{% \_loadmathfamily 0 cmr % CM Roman \_loadmathfamily 1 cmmi % CM Math Italic \_loadmathfamily 2 cmsy % CM Standard symbols \_loadmathfamily 3 cmex % CM extra symbols \_loadmathfamily 4 msam % AMS symbols A \_loadmathfamily 5 msbm % AMS symbols B \_loadmathfamily 6 rsfs % script \_loadmathfamily 7 eufm % fractur \_loadmathfamily 8 bfsans % sans serif bold \_loadmathfamily 9 bisans % sans serif bold slanted (for vectors) \_setmathfamily 10 \_tentt \_setmathfamily 11 \_tenit \_setmathdimens } \def\_boldmath{% \_loadmathfamily 0 cmbx % CM Roman Bold Extended \_loadmathfamily 1 cmmib % CM Math Italic Bold \_loadmathfamily 2 cmbsy % CM Standard symbols Bold \_loadmathfamily 3 cmexb % CM extra symbols Bold \_loadmathfamily 4 msam % AMS symbols A (bold not available?) \_loadmathfamily 5 msbm % AMS symbols B (bold not available?) \_loadmathfamily 6 rsfs % script (bold not available?) \_loadmathfamily 7 eufb % fractur bold \_loadmathfamily 8 bbfsans % sans serif extra bold \_loadmathfamily 9 bbisans % sans serif extra bold slanted (for vectors) \_setmathfamily 10 \_tentt \_setmathfamily 11 \_tenbi \_setmathdimens } \count18=11 % families declared by \newfam are 12, 13, ... \_chardef\_bffam = 8 \_chardef\_bifam = 9 \_chardef\_ttfam = 10 \_chardef\_itfam = 11 \_protected\_def \_bf {\_tryloadbf \_tenbf \_fam\_bffam} \_protected\_def \_it {\_tryloadit \_tenit \_fam\_itfam} \_protected\_def \_bi {\_tryloadbi \_tenbi \_fam\_bifam} \_protected\_def \_tt {\_tryloadtt \_tentt \_fam\_ttfam} \_protected\_def \_mit {\_fam1 } \_protected\_def \_cal {\_fam2 } \_protected\_def \_bbchar {\_fam5 } % double stroked letters \_protected\_def \_frak {\_fam7 } % fraktur \_protected\_def \_script {\_fam6 } % more extensive script than \cal %% CM math fonts, optical sizes: \_regtfm cmmi 0 cmmi5 5.5 cmmi6 6.5 cmmi7 7.5 cmmi8 8.5 cmmi9 9.5 cmmi10 11.1 cmmi12 * \_regtfm cmmib 0 cmmib5 5.5 cmmib6 6.5 cmmib7 7.5 cmmib8 8.5 cmmib9 9.5 cmmib10 * \_regtfm cmtex 0 cstex8 8.5 cstex9 9.5 cstex10 * \_regtfm cmsy 0 cmsy5 5.5 cmsy6 6.5 cmsy7 7.5 cmsy8 8.5 cmsy9 9.5 cmsy10 * \_regtfm cmbsy 0 cmbsy5 5.5 cmbsy6 6.5 cmbsy7 7.5 cmbsy8 8.5 cmbsy9 9.5 cmbsy10 * \_regtfm cmex 0 cmex7 7.5 cmex8 8.5 cmex9 9.5 cmex10 * \_regtfm cmexb 0 cmexb10 * \_regtfm cmr 0 cmr5 5.5 cmr6 6.5 cmr7 7.5 cmr8 8.5 cmr9 9.5 cmr10 11.1 cmr12 15 cmr17 * \_regtfm cmbx 0 cmbx5 5.5 cmbx6 6.5 cmbx7 7.5 cmbx8 8.5 cmbx9 9.5 cmbx10 11.1 cmbx12 * \_regtfm cmti 0 cmti7 7.5 cmti8 8.5 cmti9 9.5 cmti10 11.1 cmti12 * \_regtfm cmtt 0 cmtt10 11.1 cmtt12 * %% AMS math fonts, optical sizes: \_regtfm msam 0 msam5 5.5 msam6 6.5 msam7 7.5 msam8 8.5 msam9 9.5 msam10 * \_regtfm msbm 0 msbm5 5.5 msbm6 6.5 msbm7 7.5 msbm8 8.5 msbm9 9.5 msbm10 * %% fraktur, rsfs, optical sizes: \_regtfm eufm 0 eufm5 5.5 eufm6 6.5 eufm7 7.5 eufm8 8.5 eufm9 9.5 eufm10 * \_regtfm eufb 0 eufb5 5.5 eufb6 6.5 eufb7 7.5 eufb8 8.5 eufb9 9.5 eufb10 * \_regtfm rsfs 0 rsfs5 6 rsfs7 8.5 rsfs10 * %% bf and bi sansserif math alternatives: \_regtfm bfsans 0 ecsx0500 5.5 ecsx0600 6.5 ecsx0700 7.5 ecsx0800 8.5 ecsx0900 9.5 ecsx1000 11.1 ecsx1200 * \_regtfm bisans 0 ecso0500 5.5 ecso0600 6.5 ecso0700 7.5 ecso0800 8.5 ecso0900 9.5 ecso1000 11.1 ecso1200 * \_regtfm bbfsans 0 ecsx0500 5.5 ecsx0600 6.5 ecsx0700 7.5 ecsx0800 8.5 ecsx0900 9.5 ecsx1000 11.1 ecsx1200 * \_regtfm bbisans 0 ecso0500 5.5 ecso0600 6.5 ecso0700 7.5 ecso0800 8.5 ecso0900 9.5 ecso1000 11.1 ecso1200 * %% macros: \_def\_corrmsizes{\_ptmunit=1\_ptunit\_relax} % for corrections of sizes in diferent fomts \_def\_loadmathfamily #1 #2 {\_chardef\_tmp#1\_corrmsizes \_edef\_optsizesave{\_the\_optsize}% \_optsize=\_sizemtext \_font\_mF=\_whichtfm{#2} at\_optsize \_textfont#1=\_mF \_optsize=\_sizemscript \_font\_mF=\_whichtfm{#2} at\_optsize \_scriptfont#1=\_mF \_optsize=\_sizemsscript \_font\_mF=\_whichtfm{#2} at\_optsize \_scriptscriptfont#1=\_mF \_optsize=\_optsizesave \_relax } \_def\_setmathfamily #1 #2{\_let\_mF=#2\_chardef\_tmp#1\_corrmsizes \_edef\_optsizesave{\_the\_optsize}% \_optsize=\_sizemtext \_fontlet#2=#2 at\_optsize \_textfont#1=#2% \_optsize=\_sizemscript \_fontlet#2=#2 at\_optsize \_scriptfont#1=#2% \_optsize=\_sizemsscript \_fontlet#2=#2 at\_optsize \_scriptscriptfont#1=#2% \_optsize=\_optsizesave \_let#2=\_mF } \_def\_setmathdimens{% PlainTeX sets these dimens for 10pt size only: \_delimitershortfall=0.5\_fontdimen6\_textfont3 \_nulldelimiterspace=0.12\_fontdimen6\_textfont3 \_scriptspace=0.05\_fontdimen6\_textfont3 \_skewchar\_textfont1=127 \_skewchar\_scriptfont1=127 \_skewchar\_scriptscriptfont1=127 \_skewchar\_textfont2=48 \_skewchar\_scriptfont2=48 \_skewchar\_scriptscriptfont2=48 } %% \setmathsizes: \_def\_setmathsizes[#1/#2/#3]{% \_def\_sizemtext{#1\_ptmunit}\_def\_sizemscript{#2\_ptmunit}% \_def\_sizemsscript{#3\_ptmunit}% } \_newdimen\_ptunit \_ptunit=1pt \_newdimen\_ptmunit \_ptmunit=1\_ptunit \_suppressfontnotfounderror=1 \_setmathsizes[10/7/5]\_normalmath \_suppressfontnotfounderror=0 \_public \setmathsizes \bf \it \bi \tt \mit \cal \bbchar \frak \script \ptunit ; \_def \normalmath {\_normalmath} \_def\boldmath {\_boldmath} \_endcode %--------------------------------------------------- The Computer Modern and AMS fonts are preloaded here in classical math-fam concept, where each math family includes three fonts with max 256 characters. On the other hand, when `\fontfam` macro is used in the document then text font family and appropriate math family is loaded with unicoded fonts, i.e. unicoded math is used. The code here is inspired by `ams-math.tex file`.