diff options
author | Marius <mariausol@gmail.com> | 2010-11-20 00:20:11 +0200 |
---|---|---|
committer | Marius <mariausol@gmail.com> | 2010-11-20 00:20:11 +0200 |
commit | b4b58bbfe882406b09b2548e7aa55d238987f894 (patch) | |
tree | 346fdd16f41f0d24406a64e7167d4dade8e1b325 /tex/context/base/font-ini.mkiv | |
parent | c59707ed27b62aa6d05dccba192d134de4ec24f6 (diff) | |
download | context-b4b58bbfe882406b09b2548e7aa55d238987f894.tar.gz |
beta 2010.11.19 22:50
Diffstat (limited to 'tex/context/base/font-ini.mkiv')
-rw-r--r-- | tex/context/base/font-ini.mkiv | 99 |
1 files changed, 40 insertions, 59 deletions
diff --git a/tex/context/base/font-ini.mkiv b/tex/context/base/font-ini.mkiv index 75f59217c..b362b35a0 100644 --- a/tex/context/base/font-ini.mkiv +++ b/tex/context/base/font-ini.mkiv @@ -1481,18 +1481,18 @@ \getparameters[\??ft#2#1][#3]% %\@@endfontdef % new code, see remark - \ifloadingfonts - % only runtime - \else\ifcsname\@size@#1\endcsname - % only once - \else - % prevent loop (hence \empty) - \letvalueempty{\@size@#1}% - \pushmacro\fontclass % new per 26102009 - \edef\fontclass{#2}% % new per 26102009 - \defineunknownfont{#1}% - \popmacro\fontclass % new per 26102009 - \fi\fi + \ifproductionrun + \ifcsname\@size@#1\endcsname + % only once + \else + % prevent loop (hence \empty) + \letvalueempty{\@size@#1}% + \pushmacro\fontclass % new per 26102009 + \edef\fontclass{#2}% % new per 26102009 + \defineunknownfont{#1}% + \popmacro\fontclass % new per 26102009 + \fi + \fi % so far \setvalue{\@size@#1}{\docompletefontswitch[#1]}} @@ -1941,7 +1941,7 @@ \def\doswitchpoints[#1]% {\normalexpanded{\dodoswitchpoints{#1}}} -\unexpanded \def\dodoswitchpoints#1% +\unexpanded\def\dodoswitchpoints#1% {\ifcsname\@size@#1\endcsname \else \defineunknownfont{#1}% \fi% @@ -1956,7 +1956,7 @@ \showmessage\m!fonts4{#1}% \fi} -\unexpanded \def\doswitchstyle[#1]% +\unexpanded\def\doswitchstyle[#1]% {\ifcsname\@style@#1\endcsname \csname\@style@#1\endcsname \edef\fontstyle{#1}% @@ -2005,11 +2005,8 @@ %D we start typesetting. %D %D Therefore we have to signal the font switching macros that -%D we are preloading fonts. As long as the next boolean is, -%D true, no loading is done. - -\newif\ifloadingfonts \loadingfontstrue - +%D we are preloading fonts. +%D %D \macros %D {preloadfonts} %D @@ -2017,9 +2014,6 @@ %D sequence of a session. After the loading job is done, the %D macro relaxes itself and reset the signal. -% \appendtoks -% \to \everysetupdocument - \fontdimen1\nullfont 0\scaledpoint \fontdimen2\nullfont 256377\scaledpoint \fontdimen3\nullfont 128188\scaledpoint @@ -2033,42 +2027,42 @@ \ctxlua{fonts.definers.resetnullfont()}% in luatex 0.70 this will also do the previous \globallet\resetnullfont\relax} -\newconditional\fontsareloaded +% \newconditional\fontsareloaded \def\preloaddefaultfonts - {\usetypescript[modern]% + {\resetpreloadfonts + \usetypescript[modern]% \setuptypeface[modern]% + %\setuptypeface[\s!default]% \showmessage\m!fonts6{\normalizedbodyfontsize\normalspace\fontstyle}} \def\resetpreloadfonts {\global\let\firststagepreloadfonts \relax \global\let\secondstagepreloadfonts\relax \global\let\thirdstagepreloadfonts \relax + \global\let\fourthstagepreloadfonts\relax \resetnullfont} \def\firststagepreloadfonts % see core-def.mkiv - {\global\loadingfontsfalse - \ifconditional\fontsareloaded - \resetpreloadfonts - \else - \doifmodeelse {*nofonts} - {\writestatus\m!fonts{latin modern fonts are not preloaded}} - {\writestatus\m!fonts{preloading latin modern fonts (first stage)}% - \preloaddefaultfonts - \resetpreloadfonts}% - \fi} + {\doifmodeelse{*nofonts} + {%\resetpreloadfonts + \writestatus\m!fonts{latin modern fonts are not preloaded}} + {\preloaddefaultfonts + \writestatus\m!fonts{preloading latin modern fonts (first stage)}}} \def\secondstagepreloadfonts % see core-def.mkiv - {\global\loadingfontsfalse - \ifconditional\fontsareloaded - % nothing - \else - \writestatus\m!fonts{preloading latin modern fonts (second stage)}% + {\writestatus\m!fonts{preloading latin modern fonts (second stage)}% + \preloaddefaultfonts} + +\def\thirdstagepreloadfonts + {\ifx\fontclass\empty + \writestatus\m!fonts{preloading latin modern fonts (third stage)}% \preloaddefaultfonts - \fi - \resetpreloadfonts} + \else + \resetpreloadfonts + \fi} -\def\thirdstagepreloadfonts % see core-def.mkiv +\def\fourthstagepreloadfonts {\begingroup %ifzeropt\fontcharwd\font\number`!\relax \setbox\scratchbox\hbox{context}% @@ -2078,15 +2072,9 @@ \writestatus\m!fonts{!! loaded (maybe due to a missing \string\starttext).}% \writeline \fi + \resetpreloadfonts \endgroup} -% maybe add this to \everystarttext -% -% \ifconditional\fontsareloaded\else -% \usetypescript[modern]% -% \setuptypeface[modern]% -% \fi - %D Here comes the main font switching macros. These macros %D handle changes in size as well as returning to the global %D bodyfont size. @@ -2095,8 +2083,8 @@ {\doifelse{#2}\v!global {\restoreglobalbodyfont} {\processcommacommand[#2]{\dodosetfont{#1}}% ##1 get also passed - \ifloadingfonts\else - \global\settrue\fontsareloaded + \ifproductionrun + \thirdstagepreloadfonts \doswitchpoints[\normalizedbodyfontsize]% \doswitchstyle[\fontstyle]% \ifx\defaultfontclass\empty @@ -2108,11 +2096,6 @@ \def\dodosetfont#1#2% #1 = set/switch state | check fo rempty, else space {\doifsomething{#2}{\dododosetfont{#1}{#2}{\showmessage\m!fonts4{#2}}}} -% % % this can be retrofitted in mkii code % % % - -% \def\normalizebodyfontsize#1\to#2% -% {\@EA\@EA\@EA\donormalizedbodyfontsize\@EA\WITHOUTPT\the\dimexpr#1+\ifcase\fontdigits.5\or.05\or.005\fi\points\relax000\to#2} - \def\dododosetfont#1#2#3% #1 = set/switch state ! ! ! !could also be used for mkii {\doifnumberelse{#2}\dodododosetfont\redododosetfont{#1}{#2}{#3}} @@ -2157,8 +2140,6 @@ #3\dosetsubstitutefont{#1}{#2}% \fi} -% % % - %D When users specify for instance a 13 point bodyfont while no %D such bodyfont is defined, the system automatically tries to %D find a best fit, that is the nearest smaller defined @@ -2689,7 +2670,7 @@ \globalbodyfontsize\localbodyfontsize \normalizebodyfontsize\globalbodyfontsize\to\normalizedglobalbodyfontsize \let\globalfontstyle\fontstyle - \ifloadingfonts\else + \ifproductionrun \the\everybodyfont \the\everyglobalbodyfont \saveinterlinespace |