diff options
Diffstat (limited to 'tex/context/base/font-mat.mkvi')
-rw-r--r-- | tex/context/base/font-mat.mkvi | 68 |
1 files changed, 38 insertions, 30 deletions
diff --git a/tex/context/base/font-mat.mkvi b/tex/context/base/font-mat.mkvi index 85a10bf3a..4ecb9d082 100644 --- a/tex/context/base/font-mat.mkvi +++ b/tex/context/base/font-mat.mkvi @@ -15,6 +15,12 @@ \unprotect +%D Be nice: + +\ifdefined\??fontinstanceready \else \installcorenamespace{fontinstanceready} \fi +\ifdefined\??fontinstancebasic \else \installcorenamespace{fontinstancebasic} \fi +\ifdefined\??fontinstanceclass \else \installcorenamespace{fontinstanceclass} \fi + %D \macros %D {textonly} %D @@ -76,44 +82,44 @@ % for bold. \def\font_helpers_set_math_family_a - {\ifcsname\fontclass \fontbody\s!mm\fontfamily\fontsize\currentmathsize\endcsname \setfalse\font_auto_font_size - \csname\fontclass \fontbody\s!mm\fontfamily\fontsize\currentmathsize\endcsname \else - \ifcsname\fontclass \fontbody\s!mm\fontfamily \currentmathsize\endcsname \settrue\font_auto_font_size - \csname\fontclass \fontbody\s!mm\fontfamily \currentmathsize\endcsname \else + {\ifcsname\??fontinstanceready\fontclass -\fontbody-\s!mm-\fontfamily-\fontsize\endcsname \setfalse\c_font_auto_size + \csname\??fontinstanceready\fontclass -\fontbody-\s!mm-\fontfamily-\fontsize\endcsname \else + \ifcsname\??fontinstanceready\fontclass -\fontbody-\s!mm-\fontfamily \endcsname \settrue \c_font_auto_size + \csname\??fontinstanceready\fontclass -\fontbody-\s!mm-\fontfamily \endcsname \else \font_helpers_set_math_family_b \fi\fi} \def\font_helpers_set_math_family_b - {\ifcsname\defaultfontclass\fontbody\s!mm\fontfamily\fontsize\currentmathsize\endcsname \setfalse\font_auto_font_size - \csname\defaultfontclass\fontbody\s!mm\fontfamily\fontsize\currentmathsize\endcsname \else - \ifcsname\defaultfontclass\fontbody\s!mm\fontfamily \currentmathsize\endcsname \settrue\font_auto_font_size - \csname\defaultfontclass\fontbody\s!mm\fontfamily \currentmathsize\endcsname \else + {\ifcsname\??fontinstanceready\defaultfontclass-\fontbody-\s!mm-\fontfamily-\fontsize\endcsname \setfalse\c_font_auto_size + \csname\??fontinstanceready\defaultfontclass-\fontbody-\s!mm-\fontfamily-\fontsize\endcsname \else + \ifcsname\??fontinstanceready\defaultfontclass-\fontbody-\s!mm-\fontfamily \endcsname \settrue \c_font_auto_size + \csname\??fontinstanceready\defaultfontclass-\fontbody-\s!mm-\fontfamily \endcsname \else \font_helpers_set_math_family_c \fi\fi} \def\font_helpers_set_math_family_c - {\ifcsname \fontbody\s!mm\fontfamily\fontsize\currentmathsize\endcsname \setfalse\font_auto_font_size - \csname \fontbody\s!mm\fontfamily\fontsize\currentmathsize\endcsname \else - \ifcsname \fontbody\s!mm\fontfamily \currentmathsize\endcsname \settrue\font_auto_font_size - \csname \fontbody\s!mm\fontfamily \currentmathsize\endcsname \else - \nullfont \settrue\font_auto_font_size + {\ifcsname\??fontinstanceready \fontbody-\s!mm-\fontfamily-\fontsize\endcsname \setfalse\c_font_auto_size + \csname\??fontinstanceready \fontbody-\s!mm-\fontfamily-\fontsize\endcsname \else + \ifcsname\??fontinstanceready \fontbody-\s!mm-\fontfamily \endcsname \settrue \c_font_auto_size + \csname\??fontinstanceready \fontbody-\s!mm-\fontfamily \endcsname \else + \nullfont \settrue \c_font_auto_size \fi\fi} \def\font_helpers_set_math_family_indeed#mrtag#family% \currentmathsize etc are also used later on {\let\savedfontbody\fontbody \let\fontfamily#family% - \let\currentmathsize\!!plusthree\let\fontbody\scriptscriptface\font_helpers_set_math_family_a\scriptscriptfont#mrtag\font - \let\currentmathsize\!!plustwo \let\fontbody\scriptface \font_helpers_set_math_family_a\scriptfont #mrtag\font - \let\currentmathsize\!!plusone \let\fontbody\textface \font_helpers_set_math_family_a\textfont #mrtag\font + \let\currentmathsize\!!plusthree\font_helpers_set_math_family_a\scriptscriptfont#mrtag\font + \let\currentmathsize\!!plustwo \font_helpers_set_math_family_a\scriptfont #mrtag\font + \let\currentmathsize\!!plusone \font_helpers_set_math_family_a\textfont #mrtag\font \let\currentmathsize\empty \let\fontbody\savedfontbody - \setfalse\font_auto_font_size} + \setfalse\c_font_auto_size} \def\font_helpers_set_math_family_bold_a#font#mbfam#mrfam% - {\ifcsname\fontclass\fontbody\s!mm\fontfamily\fontsize\currentmathsize\endcsname \setfalse\font_auto_font_size - \csname\fontclass\fontbody\s!mm\fontfamily\fontsize\currentmathsize\endcsname #font#mbfam\font \else - \ifcsname\fontclass\fontbody\s!mm\fontfamily \currentmathsize\endcsname \settrue\font_auto_font_size - \csname\fontclass\fontbody\s!mm\fontfamily \currentmathsize\endcsname #font#mbfam\font \else + {\ifcsname\??fontinstanceready\fontclass-\fontbody-\s!mm-\fontfamily-\fontsize\endcsname \setfalse\c_font_auto_size + \csname\??fontinstanceready\fontclass-\fontbody-\s!mm-\fontfamily-\fontsize\endcsname #font#mbfam\font \else + \ifcsname\??fontinstanceready\fontclass-\fontbody-\s!mm-\fontfamily \endcsname \settrue \c_font_auto_size + \csname\??fontinstanceready\fontclass-\fontbody-\s!mm-\fontfamily \endcsname #font#mbfam\font \else #font#mbfam#font#mrfam% \fi\fi} @@ -122,13 +128,13 @@ \let\defaultfontclass\fontclass % else truefontname falls back on the wrong one \let\savedfontbody\fontbody \let\fontfamily#familytag% - \let\currentmathsize\!!plusthree\let\fontbody\scriptscriptface\font_helpers_set_math_family_bold_a\scriptscriptfont#mbfam#mrfam% - \let\currentmathsize\!!plustwo \let\fontbody\scriptface \font_helpers_set_math_family_bold_a\scriptfont #mbfam#mrfam% - \let\currentmathsize\!!plusone \let\fontbody\textface \font_helpers_set_math_family_bold_a\textfont #mbfam#mrfam% + \let\currentmathsize\!!plusthree\font_helpers_set_math_family_bold_a\scriptscriptfont#mbfam#mrfam% + \let\currentmathsize\!!plustwo \font_helpers_set_math_family_bold_a\scriptfont #mbfam#mrfam% + \let\currentmathsize\!!plusone \font_helpers_set_math_family_bold_a\textfont #mbfam#mrfam% \let\currentmathsize\empty \let\fontbody\savedfontbody \let\defaultfontclass\savedfontclass - \setfalse\font_auto_font_size} + \setfalse\c_font_auto_size} % optimized: math fonts are never changed (10K \bfa $x$: 3.2 => 2.5 (baseline 1.0)) % @@ -141,9 +147,11 @@ \def\font_helpers_set_math_family#mrfam#familytag% {\ifconditional\optimizemathfontdefinitions - \ifcsname\??fontinstanceclass\fontclass\textface\s!mm#familytag1\fontsize1\endcsname + \ifcsname\??fontinstanceclass\fontclass-\fontbody-\s!mm-#familytag-\fontsize-1\endcsname + % \writestatus{fonts}{math: reusing \fontclass\fontbody\s!mm#familytag\fontsize1}% \font_helpers_preset_math_family_indeed#mrfam#familytag% \else + % \writestatus{fonts}{math: defining \fontclass\fontbody\s!mm#familytag\fontsize1}% \font_helpers_set_math_family_indeed#mrfam#familytag% \fi \else @@ -152,7 +160,7 @@ \def\font_helpers_set_math_family_bold#mbfam#familytag#mrfam% {\ifconditional\optimizemathfontdefinitions - \ifcsname\??fontinstanceclass\fontclass\textface\s!mm#familytag1\fontsize1\endcsname + \ifcsname\??fontinstanceclass\fontclass-\textface-\s!mm-#familytag-\fontsize-1\endcsname \font_helpers_preset_math_family_indeed#mbfam#familytag% \else \font_helpers_set_math_family_bold_indeed#mbfam#familytag#mrfam% @@ -162,9 +170,9 @@ \fi} \def\font_helpers_preset_math_family_indeed#fam#familytag% - {\scriptscriptfont#fam\csname\??fontinstanceclass\fontclass\scriptscriptface\s!mm#familytag3\fontsize3\endcsname - \scriptfont #fam\csname\??fontinstanceclass\fontclass\scriptface \s!mm#familytag2\fontsize2\endcsname - \textfont #fam\csname\??fontinstanceclass\fontclass\textface \s!mm#familytag1\fontsize1\endcsname} + {\scriptscriptfont#fam\csname\??fontinstanceclass\fontclass-\fontbody-\s!mm-#familytag-\fontsize-3\endcsname + \scriptfont #fam\csname\??fontinstanceclass\fontclass-\fontbody-\s!mm-#familytag-\fontsize-2\endcsname + \textfont #fam\csname\??fontinstanceclass\fontclass-\fontbody-\s!mm-#familytag-\fontsize-1\endcsname} \let\font_helpers_reset_fontclass_math_families\gobbleoneargument |