diff options
author | Marius <mariausol@gmail.com> | 2011-12-31 14:40:26 +0200 |
---|---|---|
committer | Marius <mariausol@gmail.com> | 2011-12-31 14:40:26 +0200 |
commit | 11dde3f4c6c0584ff20070edc1b1aad0b9013d30 (patch) | |
tree | aa8df33f2319e97b9d1634f042504433110941fb /tex/context/base/font-ini.mkiv | |
parent | 90cec652f5ae1daee6d4c252c5caa6a39ad719fc (diff) | |
download | context-11dde3f4c6c0584ff20070edc1b1aad0b9013d30.tar.gz |
beta 2011.12.31 13:16
Diffstat (limited to 'tex/context/base/font-ini.mkiv')
-rw-r--r-- | tex/context/base/font-ini.mkiv | 364 |
1 files changed, 197 insertions, 167 deletions
diff --git a/tex/context/base/font-ini.mkiv b/tex/context/base/font-ini.mkiv index 14376b733..4f0c40e7f 100644 --- a/tex/context/base/font-ini.mkiv +++ b/tex/context/base/font-ini.mkiv @@ -144,14 +144,14 @@ % % \dostepwiserecurse{2}{15}{1} % {{\switchtobodyfont[\recurselevel pt]\crap test}\endgraf} - + % adapted, else wrong interlinespace \unexpanded\def\setfontparameters {\synchronizefontsfalse \the\everybodyfont \synchronizefontstrue} - + % handy \newcounter\pushedfont @@ -452,19 +452,12 @@ %D We define some (very private) constants to improve speed, %D memory usage and consistency. -\def\@size@ {@f@si@} % bodyfont size prefix (12pt etc) -\def\@style@ {@f@st@} % full style prefix (roman etc) -\def\@shortstyle@ {@f@sh@} % short style prefix (rm etc) -\def\@letter@ {@f@le@} % first alternative typeface -\def\@noletter@ {@f@no@} % second alternative typeface -\def\@fontclass@ {@f@cl@} % fontclass - -% \edef\@size@ {\??fh:b:} % bodyfont size prefix (12pt etc) -% \edef\@style@ {\??fh:f:} % full style prefix (roman etc) -% \edef\@shortstyle@ {\??fh:s:} % short style prefix (rm etc) -% \edef\@letter@ {\??fh:l:} % first alternative typeface -% \edef\@noletter@ {\??fh:n:} % second alternative typeface -% \edef\@fontclass@ {\??fh:c:} % fontclass +\installcorenamespace {fontfile} % file synonyms +\installcorenamespace {fontsize} % bodyfont size prefix (12pt etc) +\installcorenamespace {fontstyle} % full style prefix (roman etc) +\installcorenamespace {fontshortstyle} % short style prefix (rm etc) +\installcorenamespace {fontclassyes} % fontclass +\installcorenamespace {fontclassnop} % nofontclass %D \macros %D {fontclass, defaultfontclass} @@ -477,6 +470,24 @@ \let\fontclass \empty \let\defaultfontclass\empty +\def\fontclassname#1#2% + {\ifcsname\??fontfile#1#2\endcsname + \fontclassname{#1}{\csname\??fontfile#1#2\endcsname}% + \else\ifcsname\??fontfile#2\endcsname + \fontclassname{#1}{\csname\??fontfile#2\endcsname}% + \else + #2% + \fi\fi} + +\def\defineclassfontsynonym + {\dotripleargument\dodefineclassfontsynonym} + +\def\dodefineclassfontsynonym[#1][#2][#3]% + {\definefontsynonym[#1][\fontclassname{#2}{#3}]} + +%\definefontsynonym [KopFont] [\fontclassname{officina}{SerifBold}] +% +%\defineclassfontsynonym [KopFont] [officina] [SerifBold] %D \macros %D {textonly} %D @@ -761,24 +772,27 @@ \ifconditional\pseudoboldmathstate\plussix\else\plusthree\fi \fi} -\letvalue{\??ff:\c!mr:\c!tf }\synchronizemathfamilymr -\letvalue{\??ff:\c!mr:\c!sl }\synchronizemathfamilymr -\letvalue{\??ff:\c!mr:\c!it }\synchronizemathfamilymr -\letvalue{\??ff:\c!mr:\c!bf }\synchronizemathfamilymb -\letvalue{\??ff:\c!mr:\c!bs }\synchronizemathfamilymb -\letvalue{\??ff:\c!mr:\c!bi }\synchronizemathfamilymb -\letvalue{\??ff:\c!mr:\empty}\synchronizemathfamilymr +\installcorenamespace{fontmathsynchronizer} +\installcorenamespace{fontmathstoredstrategy} + +\letvalue{\??fontmathsynchronizer\c!tf }\synchronizemathfamilymr +\letvalue{\??fontmathsynchronizer\c!sl }\synchronizemathfamilymr +\letvalue{\??fontmathsynchronizer\c!it }\synchronizemathfamilymr +\letvalue{\??fontmathsynchronizer\c!bf }\synchronizemathfamilymb +\letvalue{\??fontmathsynchronizer\c!bs }\synchronizemathfamilymb +\letvalue{\??fontmathsynchronizer\c!bi }\synchronizemathfamilymb +\letvalue{\??fontmathsynchronizer\empty}\synchronizemathfamilymr \def\synchronizemathfamily - {\csname\??ff:\c!mr:\ifcsname\??ff:\c!mr:\fontalternative\endcsname\fontalternative\fi\endcsname} + {\csname\??fontmathsynchronizer\ifcsname\??fontmathsynchronizer\fontalternative\endcsname\fontalternative\fi\endcsname} -\ifdefined\fontid +\ifdefined \fontid \appendtoks \ifnum\fontid\textfont\zerocount=\fontid\textfont\plusthree - \letvalue{\??ff:ms:\fontclass}\dosetmathpartialboldstrategy % enables partial bold math + \letvalue{\??fontmathstoredstrategy\fontclass}\dosetmathpartialboldstrategy % enables partial bold math \else - \letvalue{\??ff:ms:\fontclass}\dosetmathfullboldstrategy % enables full bold math + \letvalue{\??fontmathstoredstrategy\fontclass}\dosetmathfullboldstrategy % enables full bold math \fi \to \mathstrategies @@ -788,15 +802,15 @@ \edef\currentmathfontmr{\fontname\textfont\zerocount}% \edef\currentmathfontmb{\fontname\textfont\plusthree}% \ifx\currentmathfontmr\currentmathfontmb - \letvalue{\??ff:ms:\fontclass}\dosetmathpartialboldstrategy % enables partial bold math + \letvalue{\??fontmathstoredstrategy\fontclass}\dosetmathpartialboldstrategy % enables partial bold math \else - \letvalue{\??ff:ms:\fontclass}\dosetmathfullboldstrategy % enables full bold math + \letvalue{\??fontmathstoredstrategy\fontclass}\dosetmathfullboldstrategy % enables full bold math \fi \to \mathstrategies \fi -\def\synchronizemathboldstrategy {\csname\??ff:ms:\fontclass\endcsname} +\def\synchronizemathboldstrategy {\csname\??fontmathstoredstrategy\fontclass\endcsname} \newconditional\pseudoboldmathstate @@ -990,7 +1004,7 @@ % sets \scaledfontmode and \somefontname and \somefontsize \ifcase\scaledfontmode\relax % none, avoid the designsize if possible - \scaledfontsize-1000\scaledpoint + \scaledfontsize-\plusthousand\scaledpoint \or % at \scaledfontsize\somefontsize @@ -1058,40 +1072,40 @@ % resolve \def\@@thefeaturesyes#1% - {\ifcsname\??ff\fontclass#1\s!features \endcsname\@EA\let\@EA\@@fontfeatures \csname\??ff\fontclass#1\s!features \endcsname\else - \ifcsname\??ff #1\s!features \endcsname\@EA\let\@EA\@@fontfeatures \csname\??ff #1\s!features \endcsname\else - \ifcsname\??ff\fontclass #1\endcsname\@EA \@@thefeaturesyes \csname\??ff\fontclass #1\endcsname\else - \ifcsname\??ff #1\endcsname\@EA \@@thefeaturesyes \csname\??ff #1\endcsname\else - \let \@@fontfeatures \empty \fi\fi\fi\fi} + {\ifcsname\??fontfile\fontclass#1\s!features \endcsname\@EA\let\@EA\@@fontfeatures \csname\??fontfile\fontclass#1\s!features \endcsname\else + \ifcsname\??fontfile #1\s!features \endcsname\@EA\let\@EA\@@fontfeatures \csname\??fontfile #1\s!features \endcsname\else + \ifcsname\??fontfile\fontclass #1\endcsname\@EA \@@thefeaturesyes \csname\??fontfile\fontclass #1\endcsname\else + \ifcsname\??fontfile #1\endcsname\@EA \@@thefeaturesyes \csname\??fontfile #1\endcsname\else + \let \@@fontfeatures \empty \fi\fi\fi\fi} \def\@@thefallbacksyes#1% - {\ifcsname\??ff\fontclass#1\s!fallbacks\endcsname\@EA\let\@EA\@@fontfallbacks \csname\??ff\fontclass#1\s!fallbacks\endcsname\else - \ifcsname\??ff #1\s!fallbacks\endcsname\@EA\let\@EA\@@fontfallbacks \csname\??ff #1\s!fallbacks\endcsname\else - \ifcsname\??ff\fontclass #1\endcsname\@EA \@@thefallbacksyes\csname\??ff\fontclass #1\endcsname\else - \ifcsname\??ff #1\endcsname\@EA \@@thefallbacksyes\csname\??ff #1\endcsname\else - \let \@@fontfallbacks \empty \fi\fi\fi\fi} + {\ifcsname\??fontfile\fontclass#1\s!fallbacks\endcsname\@EA\let\@EA\@@fontfallbacks \csname\??fontfile\fontclass#1\s!fallbacks\endcsname\else + \ifcsname\??fontfile #1\s!fallbacks\endcsname\@EA\let\@EA\@@fontfallbacks \csname\??fontfile #1\s!fallbacks\endcsname\else + \ifcsname\??fontfile\fontclass #1\endcsname\@EA \@@thefallbacksyes\csname\??fontfile\fontclass #1\endcsname\else + \ifcsname\??fontfile #1\endcsname\@EA \@@thefallbacksyes\csname\??fontfile #1\endcsname\else + \let \@@fontfallbacks \empty \fi\fi\fi\fi} \def\@@thegoodiesyes#1% - {\ifcsname\??ff\fontclass#1\s!goodies \endcsname\@EA\let\@EA\@@fontgoodies \csname\??ff\fontclass#1\s!goodies \endcsname\else - \ifcsname\??ff #1\s!goodies \endcsname\@EA\let\@EA\@@fontgoodies \csname\??ff #1\s!goodies \endcsname\else - \ifcsname\??ff\fontclass #1\endcsname\@EA \@@thegoodiesyes \csname\??ff\fontclass #1\endcsname\else - \ifcsname\??ff #1\endcsname\@EA \@@thegoodiesyes \csname\??ff #1\endcsname\else - \let \@@fontgoodies \empty \fi\fi\fi\fi} + {\ifcsname\??fontfile\fontclass#1\s!goodies \endcsname\@EA\let\@EA\@@fontgoodies \csname\??fontfile\fontclass#1\s!goodies \endcsname\else + \ifcsname\??fontfile #1\s!goodies \endcsname\@EA\let\@EA\@@fontgoodies \csname\??fontfile #1\s!goodies \endcsname\else + \ifcsname\??fontfile\fontclass #1\endcsname\@EA \@@thegoodiesyes \csname\??fontfile\fontclass #1\endcsname\else + \ifcsname\??fontfile #1\endcsname\@EA \@@thegoodiesyes \csname\??fontfile #1\endcsname\else + \let \@@fontgoodies \empty \fi\fi\fi\fi} \def\@@thefeaturesnop#1% - {\ifcsname\??ff#1\s!features \endcsname\@EA\let\@EA\@@fontfeatures \csname\??ff#1\s!features \endcsname\else - \ifcsname\??ff #1\endcsname\@EA \@@thefeaturesnop \csname\??ff #1\endcsname\else - \let \@@fontfeatures \empty \fi\fi} + {\ifcsname\??fontfile#1\s!features \endcsname\@EA\let\@EA\@@fontfeatures \csname\??fontfile#1\s!features \endcsname\else + \ifcsname\??fontfile #1\endcsname\@EA \@@thefeaturesnop \csname\??fontfile #1\endcsname\else + \let \@@fontfeatures \empty \fi\fi} \def\@@thefallbacksnop#1% - {\ifcsname\??ff#1\s!fallbacks\endcsname\@EA\let\@EA\@@fontfallbacks \csname\??ff#1\s!fallbacks\endcsname\else - \ifcsname\??ff #1\endcsname\@EA \@@thefallbacksnop\csname\??ff #1\endcsname\else - \let \@@fontfallbacks \empty \fi\fi} + {\ifcsname\??fontfile#1\s!fallbacks\endcsname\@EA\let\@EA\@@fontfallbacks \csname\??fontfile#1\s!fallbacks\endcsname\else + \ifcsname\??fontfile #1\endcsname\@EA \@@thefallbacksnop\csname\??fontfile #1\endcsname\else + \let \@@fontfallbacks \empty \fi\fi} \def\@@thegoodiesnop#1% - {\ifcsname\??ff#1\s!goodies \endcsname\@EA\let\@EA\@@fontgoodies \csname\??ff#1\s!goodies \endcsname\else - \ifcsname\??ff #1\endcsname\@EA \@@thegoodiesnop \csname\??ff #1\endcsname\else - \let \@@fontgoodies \empty \fi\fi} + {\ifcsname\??fontfile#1\s!goodies \endcsname\@EA\let\@EA\@@fontgoodies \csname\??fontfile#1\s!goodies \endcsname\else + \ifcsname\??fontfile #1\endcsname\@EA \@@thegoodiesnop \csname\??fontfile #1\endcsname\else + \let \@@fontgoodies \empty \fi\fi} \def\updatefontparametersyes {\@@thefeaturesyes \somefontname @@ -1260,11 +1274,11 @@ \fi} \def\dodefinefontsynonymnop - {\@EA\let\csname\??ff\@@fontname\endcsname\@@fontfile % maybe just #1 #3, saves expansion + {\@EA\let\csname\??fontfile\@@fontname\endcsname\@@fontfile % maybe just #1 #3, saves expansion \doifnextoptionalelse\dododefinefontsynonymnop\nonodefinefontsynonymnop} \def\dodefinefontsynonymyes - {\@EA\let\csname\??ff\fontclass\@@fontname\endcsname\@@fontfile % maybe just #1 #3, saves expansion + {\@EA\let\csname\??fontfile\fontclass\@@fontname\endcsname\@@fontfile % maybe just #1 #3, saves expansion \doifnextoptionalelse\dododefinefontsynonymyes\nonodefinefontsynonymyes} \def\dododefinefontsynonymnop[#1]% @@ -1305,24 +1319,24 @@ % end of helpers \def\nonodefinefontsynonymnop - {\@EA\let\csname\??ff\@@fontname\s!features \endcsname\undefined - \@EA\let\csname\??ff\@@fontname\s!fallbacks\endcsname\undefined - \@EA\let\csname\??ff\@@fontname\s!goodies \endcsname\undefined} + {\@EA\let\csname\??fontfile\@@fontname\s!features \endcsname\undefined + \@EA\let\csname\??fontfile\@@fontname\s!fallbacks\endcsname\undefined + \@EA\let\csname\??fontfile\@@fontname\s!goodies \endcsname\undefined} \def\nonodefinefontsynonymyes - {\global\@EA\let\csname\??ff\fontclass\@@fontname\s!features \endcsname\undefined - \global\@EA\let\csname\??ff\fontclass\@@fontname\s!fallbacks\endcsname\undefined - \global\@EA\let\csname\??ff\fontclass\@@fontname\s!goodies \endcsname\undefined} + {\global\@EA\let\csname\??fontfile\fontclass\@@fontname\s!features \endcsname\undefined + \global\@EA\let\csname\??fontfile\fontclass\@@fontname\s!fallbacks\endcsname\undefined + \global\@EA\let\csname\??fontfile\fontclass\@@fontname\s!goodies \endcsname\undefined} \def\dodododefinefontsynonymnop - {\@EA\let\csname\??ff\@@fontname\s!features \endcsname\@@ff@@features - \@EA\let\csname\??ff\@@fontname\s!fallbacks\endcsname\@@ff@@fallbacks - \@EA\let\csname\??ff\@@fontname\s!goodies \endcsname\@@ff@@goodies} + {\@EA\let\csname\??fontfile\@@fontname\s!features \endcsname\@@ff@@features + \@EA\let\csname\??fontfile\@@fontname\s!fallbacks\endcsname\@@ff@@fallbacks + \@EA\let\csname\??fontfile\@@fontname\s!goodies \endcsname\@@ff@@goodies} \def\dodododefinefontsynonymyes - {\global\@EA\let\csname\??ff\fontclass\@@fontname\s!features \endcsname\@@ff@@features - \global\@EA\let\csname\??ff\fontclass\@@fontname\s!fallbacks\endcsname\@@ff@@fallbacks - \global\@EA\let\csname\??ff\fontclass\@@fontname\s!goodies \endcsname\@@ff@@goodies} + {\global\@EA\let\csname\??fontfile\fontclass\@@fontname\s!features \endcsname\@@ff@@features + \global\@EA\let\csname\??fontfile\fontclass\@@fontname\s!fallbacks\endcsname\@@ff@@fallbacks + \global\@EA\let\csname\??fontfile\fontclass\@@fontname\s!goodies \endcsname\@@ff@@goodies} \let\definefontfile\definefontsynonym % dedicated to Taco Hoekwater @@ -1336,23 +1350,23 @@ {\@EA\dotruefontname#1*\empty*\relax} \def\dotruefontname#1*#2#3*#4\relax - {\ifcsname\??ff\fontclass#1\endcsname + {\ifcsname\??fontfile\fontclass#1\endcsname \ifx#2\empty - \@EA\truefontname\csname\??ff\fontclass#1\endcsname + \@EA\truefontname\csname\??fontfile\fontclass#1\endcsname \else - \@EA\redotruefontname\csname\??ff\fontclass#1\endcsname*#2#3% + \@EA\redotruefontname\csname\??fontfile\fontclass#1\endcsname*#2#3% \fi - \else\ifcsname\??ff\defaultfontclass#1\endcsname + \else\ifcsname\??fontfile\defaultfontclass#1\endcsname \ifx#2\empty - \@EA\truefontname\csname\??ff\defaultfontclass#1\endcsname + \@EA\truefontname\csname\??fontfile\defaultfontclass#1\endcsname \else - \@EA\redotruefontname\csname\??ff\defaultfontclass#1\endcsname*#2#3% + \@EA\redotruefontname\csname\??fontfile\defaultfontclass#1\endcsname*#2#3% \fi - \else\ifcsname\??ff#1\endcsname + \else\ifcsname\??fontfile#1\endcsname \ifx#2\empty - \@EA\truefontname\csname\??ff#1\endcsname + \@EA\truefontname\csname\??fontfile#1\endcsname \else - \@EA\redotruefontname\csname\??ff#1\endcsname*#2#3% + \@EA\redotruefontname\csname\??fontfile#1\endcsname*#2#3% \fi \else #1\ifx#2\empty\else*#2#3\fi @@ -1362,27 +1376,27 @@ {\@EA\dodotruefontname#1*\relax} \def\dodotruefontname#1*#2\relax - {\ifcsname\??ff\fontclass#1\endcsname - \@EA\redotruefontname\csname\??ff\fontclass#1\endcsname - \else\ifcsname\??ff\defaultfontclass#1\endcsname - \@EA\redotruefontname\csname\??ff\defaultfontclass#1\endcsname - \else\ifcsname\??ff#1\endcsname - \@EA\redotruefontname\csname\??ff#1\endcsname + {\ifcsname\??fontfile\fontclass#1\endcsname + \@EA\redotruefontname\csname\??fontfile\fontclass#1\endcsname + \else\ifcsname\??fontfile\defaultfontclass#1\endcsname + \@EA\redotruefontname\csname\??fontfile\defaultfontclass#1\endcsname + \else\ifcsname\??fontfile#1\endcsname + \@EA\redotruefontname\csname\??fontfile#1\endcsname \else #1% \fi\fi\fi} \def\expandfontsynonym#1#2% #2 := onelevelexpansion(#1) - {\ifcsname\??ff\fontclass#2\endcsname - \expandafter\def\expandafter#1\expandafter{\csname\??ff\fontclass#2\endcsname}% - \else\ifcsname\??ff\defaultfontclass#2\endcsname - \expandafter\def\expandafter#1\expandafter{\csname\??ff\defaultfontclass#2\endcsname}% + {\ifcsname\??fontfile\fontclass#2\endcsname + \expandafter\def\expandafter#1\expandafter{\csname\??fontfile\fontclass#2\endcsname}% + \else\ifcsname\??fontfile\defaultfontclass#2\endcsname + \expandafter\def\expandafter#1\expandafter{\csname\??fontfile\defaultfontclass#2\endcsname}% \fi\fi} \def\doifelsefontsynonym#1% - {\ifcsname\??ff\fontclass#1\endcsname + {\ifcsname\??fontfile\fontclass#1\endcsname \expandafter\firstoftwoarguments - \else\ifcsname\??ff\defaultfontclass#1\endcsname + \else\ifcsname\??fontfile\defaultfontclass#1\endcsname \doubleexpandafter\firstoftwoarguments \else \doubleexpandafter\secondoftwoarguments @@ -1417,10 +1431,10 @@ %D A goody: \def\tracedfontname#1% - {#1\ifcsname\??ff\fontclass#1\endcsname - \@EA\tracedfontname\csname\??ff\fontclass#1\endcsname - \else\ifcsname\??ff#1\endcsname - \@EA\tracedfontname\csname\??ff#1\endcsname + {#1\ifcsname\??fontfile\fontclass#1\endcsname + \@EA\tracedfontname\csname\??fontfile\fontclass#1\endcsname + \else\ifcsname\??fontfile#1\endcsname + \@EA\tracedfontname\csname\??fontfile#1\endcsname \fi\fi} %D \macros @@ -1817,11 +1831,11 @@ %\@@endfontdef % new code, see remark \ifproductionrun - \ifcsname\@size@#1\endcsname + \ifcsname\??fontsize#1\endcsname % only once \else % prevent loop (hence \empty) - \letvalueempty{\@size@#1}% + \letvalueempty{\??fontsize#1}% \pushmacro\fontclass % new per 26102009 \edef\fontclass{#2}% % new per 26102009 \defineunknownfont{#1}% @@ -1829,7 +1843,7 @@ \fi \fi % so far - \setvalue{\@size@#1}{\docompletefontswitch[#1]}} + \setvalue{\??fontsize#1}{\docompletefontswitch[#1]}} %D {\bf Remark:} We need to cover the following cases, %D otherwise users can get confused: @@ -1880,15 +1894,15 @@ [\??ft#1\tempbodyfontsize][\??ft\s!default] [\c!interlinespace,\c!em]% %\ifproductionrun - \ifcsname\@size@\tempbodyfontsize\endcsname \else - \letvalueempty{\@size@\tempbodyfontsize}% prevent loop + \ifcsname\??fontsize\tempbodyfontsize\endcsname \else + \letvalueempty{\??fontsize\tempbodyfontsize}% prevent loop \pushmacro\fontclass \edef\fontclass{#1}% \normalexpanded{\defineunknownfont{\tempbodyfontsize}}% we can also inherit here \popmacro\fontclass \fi %\fi - \setevalue{\@size@#1}{\noexpand\docompletefontswitch[#1]}% + \setevalue{\??fontsize#1}{\noexpand\docompletefontswitch[#1]}% \@@endfontdef} % this one already catches both define/setup @@ -2035,10 +2049,10 @@ \else % Maybe there are default dependencies defined which we can use ([unknown]) and % if not, then we have at least to make sure some basics are set up. - \ifcsname\@size@#1\endcsname \else + \ifcsname\??fontsize#1\endcsname \else \defineunknownfont{#1}% \fi - \ifcsname\@size@#1\endcsname \else + \ifcsname\??fontsize#1\endcsname \else \definebodyfont[#1][\c!rm][]% \fi \fi\fi} @@ -2174,7 +2188,7 @@ \fi} \def\dodefineunknownsubfont#1#2% - {\ifcsname\@size@\csname\??ft#1#2\endcsname\endcsname + {\ifcsname\??fontsize\csname\??ft#1#2\endcsname\endcsname \else \donetrue \defineunknownfont{\csname\??ft#1#2\endcsname}% @@ -2194,7 +2208,7 @@ {\dodefineunknownbodyfont{#1}}% \ifdone \donefalse - \setvalue{\@size@#1}{\docompletefontswitch[#1]}% + \setvalue{\??fontsize#1}{\docompletefontswitch[#1]}% \ifdefiningunknownfont \else \definingunknownfonttrue \processcommacommand[\fontrelativesizelist]{\dodefineunknownsubfont{#1}}% @@ -2314,12 +2328,12 @@ {\normalexpanded{\dodoswitchpoints{#1}}} \unexpanded\def\dodoswitchpoints#1% - {\ifcsname\@size@#1\endcsname \else + {\ifcsname\??fontsize#1\endcsname \else \defineunknownfont{#1}% \fi% %\defineunknownfontstyles{#1}% - \ifcsname\@size@#1\endcsname - \csname\@size@#1\endcsname + \ifcsname\??fontsize#1\endcsname + \csname\??fontsize#1\endcsname \localbodyfontsize#1\relax % \edef\fontbody{\fontbody}% to be tested but we can clean up mkiv further \edef\normalizedbodyfontsize{\thenormalizedbodyfontsize\localbodyfontsize}% @@ -2329,8 +2343,8 @@ \fi} \unexpanded\def\doswitchstyle[#1]% - {\ifcsname\@style@#1\endcsname - \csname\@style@#1\endcsname + {\ifcsname\??fontstyle#1\endcsname + \csname\??fontstyle#1\endcsname \edef\fontstyle{#1}% \ifmmode\mr\fi % in order to be compatible with \rm in math mode % \the\everybodyfont % cleaner, in setting size as well as style @@ -2526,7 +2540,7 @@ \let\fontstyle\empty % new 31/7/2006 \let\fontsize \empty \else - \ifcsname\@style@\expandedfontthing\endcsname + \ifcsname\??fontstyle\expandedfontthing\endcsname \let\fontstyle\expandedfontthing \else \setcurrentfontclass\expandedfontthing @@ -2547,10 +2561,10 @@ \def\dodododosetfont#1#2#3% #1 = set/switch state {\edef\normalizedsetfont{\thenormalizedbodyfontsize{#2}}% - \ifcsname\@size@\normalizedsetfont\endcsname \else + \ifcsname\??fontsize\normalizedsetfont\endcsname \else \defineunknownfont{#2}% \fi - \ifcsname\@size@\normalizedsetfont\endcsname + \ifcsname\??fontsize\normalizedsetfont\endcsname \localbodyfontsize\normalizedsetfont \let\normalizedbodyfontsize\normalizedsetfont \else @@ -2592,14 +2606,12 @@ % we need to check the fontclass \def\registerfontclass#1% - {\letgvalue{\@fontclass@#1}\v!yes} % global ? - -\edef\@no@fontclass@{\@fontclass@:?:} + {\letgvalue{\??fontclassyes#1}\v!yes} % global ? \def\setcurrentfontclass#1% - {\ifcsname\@fontclass@#1\endcsname + {\ifcsname\??fontclassyes#1\endcsname \edef\fontclass{#1}% - \else\ifcsname\@no@fontclass@#1\endcsname + \else\ifcsname\??fontclassnop#1\endcsname % already tried \else % too messy: \ifcase\currentgrouplevel % (unpredictable) \trycurrentfontclass{#1}% @@ -2618,23 +2630,23 @@ {\ifconditional\autotypescripts % try to load typescript #1 \usetypescript[#1]% - \ifcsname\@fontclass@#1\endcsname + \ifcsname\??fontclassyes#1\endcsname \edef\fontclass{#1}% \else % try to load type-#1.mkiv \usetypescriptfile[\f!typeprefix#1]% % try to load typescript #1 \usetypescript[#1]% - \ifcsname\@fontclass@#1\endcsname + \ifcsname\??fontclassyes#1\endcsname \edef\fontclass{#1}% \else % todo: message - \letvalueempty{\@no@fontclass@#1}% + \letvalueempty{\??fontclassnop#1}% \fi \fi \else % todo: message - \letvalueempty{\@no@fontclass@#1}% + \letvalueempty{\??fontclassnop#1}% \fi} \let\defaultfontstyle \c!rm @@ -2987,8 +2999,8 @@ %D \stoptyping \def\dododefinefontstyle#1#2% - {\setvalue{\@shortstyle@#2}{#1}% - \setvalue{\@style@#2}{\csname#1\endcsname}} + {\setvalue{\??fontshortstyle#2}{#1}% + \setvalue{\??fontstyle #2}{\csname#1\endcsname}} \def\dodefinefontstyle[#1][#2]% {\rawdoifinsetelse{#2}{\fontstylelist}{}{\addtocommalist{#2}\fontstylelist}% @@ -3091,12 +3103,12 @@ \def\fastswitchtobodyfont#1% {\ifcsname\??ft\normalizedbodyfontsize#1\endcsname \edef\futurebodyfontsize{\csname\??ft\normalizedbodyfontsize#1\endcsname}% - \ifcsname\@size@\futurebodyfontsize\endcsname - \csname\@size@\futurebodyfontsize\endcsname + \ifcsname\??fontsize\futurebodyfontsize\endcsname + \csname\??fontsize\futurebodyfontsize\endcsname \localbodyfontsize\futurebodyfontsize\relax \fi \fi - \csname\@style@\fontstyle\endcsname + \csname\??fontstyle\fontstyle\endcsname \the\everybodyfont} %D \starttyping @@ -3345,7 +3357,7 @@ {\complexswitchstyleonly[\checkedstrippedcsname#1]} \def\complexswitchstyleonly[#1]% todo : check - {\setcurrentfontstyle{\csname\@shortstyle@#1\endcsname}% + {\setcurrentfontstyle{\csname\??fontshortstyle#1\endcsname}% \the\everybodyfont} % needed ? %D \macros @@ -4019,37 +4031,37 @@ \s!Serif \fi\fi\fi} % potential generalization: - -% \letvalue{\??ff:t:\c!rm}\s!Serif -% \letvalue{\??ff:t:\c!ss}\s!Sans -% \letvalue{\??ff:t:\c!tt}\s!Mono % -% \letvalue{\??ff:s:\c!bf}\s!Bold -% \letvalue{\??ff:s:\c!sl}\s!Slanted -% \letvalue{\??ff:s:\c!it}\s!Italic -% \letvalue{\??ff:s:\c!bs}\s!BoldSlanted -% \letvalue{\??ff:s:\c!bi}\s!BoldItalic +% \letvalue{\??fontfile:t:\c!rm}\s!Serif +% \letvalue{\??fontfile:t:\c!ss}\s!Sans +% \letvalue{\??fontfile:t:\c!tt}\s!Mono % -% \letvalue{\??ff:a:\c!rm}\s!Regular -% \letvalue{\??ff:a:\c!ss}\s!Support -% \letvalue{\??ff:a:\c!tt}\s!Type +% \letvalue{\??fontfile:s:\c!bf}\s!Bold +% \letvalue{\??fontfile:s:\c!sl}\s!Slanted +% \letvalue{\??fontfile:s:\c!it}\s!Italic +% \letvalue{\??fontfile:s:\c!bs}\s!BoldSlanted +% \letvalue{\??fontfile:s:\c!bi}\s!BoldItalic % -% \def\fontstringA{\executeifdefined{\??ff:t:\fontstyle}\s!Serif} -% \def\fontstringB{\executeifdefined{\??ff:a:\fontstyle}\s!Serif} -% \def\fontstringC{\executeifdefined{\??ff:s:\fontstyle}\empty} -% \def\fontstringD{\executeifdefined{\??ff:t:\csname\??tf\fontclass\s!default\endcsname}\s!Serif} +% \letvalue{\??fontfile:a:\c!rm}\s!Regular +% \letvalue{\??fontfile:a:\c!ss}\s!Support +% \letvalue{\??fontfile:a:\c!tt}\s!Type +% +% \def\fontstringA{\executeifdefined{\??fontfile:t:\fontstyle}\s!Serif} +% \def\fontstringB{\executeifdefined{\??fontfile:a:\fontstyle}\s!Serif} +% \def\fontstringC{\executeifdefined{\??fontfile:s:\fontstyle}\empty} +% \def\fontstringD{\executeifdefined{\??fontfile:t:\csname\??tf\fontclass\s!default\endcsname}\s!Serif} \def\glyphfontfile#1% {#1% - \ifcsname\??ff#1\fontstringA\fontstringC\endcsname + \ifcsname\??fontfile#1\fontstringA\fontstringC\endcsname \fontstringA\fontstringC - \else\ifcsname\??ff#1\fontstringB\fontstringC\endcsname + \else\ifcsname\??fontfile#1\fontstringB\fontstringC\endcsname \fontstringB\fontstringC - \else\ifcsname\??ff#1\fontstringA\endcsname + \else\ifcsname\??fontfile#1\fontstringA\endcsname \fontstringA - \else\ifcsname\??ff#1\fontstringB\endcsname + \else\ifcsname\??fontfile#1\fontstringB\endcsname \fontstringB - \else\ifcsname\??ff#1\fontstringC\endcsname + \else\ifcsname\??fontfile#1\fontstringC\endcsname \fontstringC \fi\fi\fi\fi\fi} @@ -4071,36 +4083,38 @@ %D Since we know what scaling it to be applied, we can %D implement a much faster alternative: +\installcorenamespace {symbolfont} + \let\thedefinedfont\relax \def\setscaledstyledsymbolicfont#1#2#3% quite a slowdown, glyphfontfile {\edef\askedsymbolfont{\truefontname{\glyphfontfile{#3}} at \the\dimexpr#2\dimexpr\currentfontbodyscale\dimexpr#1}% - \ifcsname\??ss->\askedsymbolfont\endcsname - \csname\??ss->\askedsymbolfont\endcsname + \ifcsname\??symbolfont\askedsymbolfont\endcsname + \csname\??symbolfont\askedsymbolfont\endcsname \else \dodefinesymbolicfont \fi} \def\setscaleddirectsymbolicfont#1#2#3% quite a slowdown, glyphfontfile {\edef\askedsymbolfont{\truefontname{#3} at \the\dimexpr#2\dimexpr\currentfontbodyscale\dimexpr#1}% - \ifcsname\??ss->\askedsymbolfont\endcsname - \csname\??ss->\askedsymbolfont\endcsname + \ifcsname\??symbolfont\askedsymbolfont\endcsname + \csname\??symbolfont\askedsymbolfont\endcsname \else \dodefinesymbolicfont \fi} \def\setstyledsymbolicfont#1% quite a slowdown, glyphfontfile {\edef\askedsymbolfont{\truefontname{\glyphfontfile{#1}} at \the\dimexpr\currentfontbodyscale\dimexpr\fontbody}% - \ifcsname\??ss->\askedsymbolfont\endcsname - \csname\??ss->\askedsymbolfont\endcsname + \ifcsname\??symbolfont\askedsymbolfont\endcsname + \csname\??symbolfont\askedsymbolfont\endcsname \else \dodefinesymbolicfont \fi} \def\setdirectsymbolicfont#1% {\edef\askedsymbolfont{\truefontname{#1} at \the\dimexpr\currentfontbodyscale\dimexpr\fontbody}% - \ifcsname\??ss->\askedsymbolfont\endcsname - \csname\??ss->\askedsymbolfont\endcsname + \ifcsname\??symbolfont\askedsymbolfont\endcsname + \csname\??symbolfont\askedsymbolfont\endcsname \else \dodefinesymbolicfont \fi} @@ -4108,7 +4122,7 @@ \def\dodefinesymbolicfont {\definefont[currentsymbolfont][\askedsymbolfont]% \currentsymbolfont - \global\expandafter\let\csname\??ss->\askedsymbolfont\endcsname\lastrawfontcall} + \global\expandafter\let\csname\??symbolfont\askedsymbolfont\endcsname\lastrawfontcall} \unexpanded\def\getnamedglyphstyled#1#2{{\setstyledsymbolicfont{#1}\ctxcommand{fontchar("#2")}}} \unexpanded\def\getnamedglyphdirect#1#2{{\setdirectsymbolicfont{#1}\ctxcommand{fontchar("#2")}}} @@ -4490,31 +4504,47 @@ % definitions .. no tagging here -\installcommandhandler \??cf {style} \??cf +\installcorenamespace{style} +\installcorenamespace{stylecheck} + +\installcommandhandler \??style {style} \??style \appendtoks - \letvalue{\??cf\currentstyle\s!check}\relax - \setuevalue{\e!start\currentstyle}{\begingroup\use_defined_style{\currentstyle}}% - \setuevalue{\e!stop \currentstyle}{\endgroup}% - \setuevalue {\currentstyle}{\groupedcommand{\use_defined_style{\currentstyle}}{}}% + \letvalue{\??stylecheck\currentstyle}\relax + \setuevalue{\e!start\currentstyle}{\apply_style_start{\currentstyle}}% + \setuevalue{\e!stop \currentstyle}{\apply_style_stop}% + \setuevalue {\currentstyle}{\apply_style_grouped{\currentstyle}}% no longer groupedcommand here \to \everydefinestyle +\unexpanded\def\apply_style_start#1% + {\begingroup + \use_defined_style{#1}} + +\unexpanded\def\apply_style_stop + {\endgroup} + +\unexpanded\def\apply_style_grouped#1% assumes that the next is { or \bgroup + {\bgroup + \def\g_style{\use_defined_style{#1}}% + \afterassignment\g_style + \let\nexttoken} + \unexpanded\def\use_defined_style#1% {\edef\currentstyle{#1}% \usestylestyleandcolor\c!style\c!color} \unexpanded\def\use_generic_style#1% - {\getparameters[\??cf][\c!style=,\c!color=,#1]% - \dousestyleparameter\@@cfstyle - \dousecolorparameter\@@cfcolor} + {\let\currentstyle\s!unknown % reasonable generic tag + \setupcurrentstyle[\c!style=,\c!color=,#1]% + \usestylestyleandcolor\c!style\c!color} % commands -\unexpanded\def\style[#1]% +\unexpanded\def\style[#1]% as this is can be a switch we use groupedcommand {\csname style_% \ifcsname#1\endcsname nop% - \else\ifcsname\??cf#1\s!check\endcsname + \else\ifcsname\??stylecheck#1\endcsname use% \else yes% @@ -4534,7 +4564,7 @@ \csname start_style_% \ifcsname#1\endcsname nop% - \else\ifcsname\??cf#1\s!check\endcsname + \else\ifcsname\??stylecheck#1\endcsname use% \else yes% |