summaryrefslogtreecommitdiff
path: root/tex/context/base/font-ini.mkiv
diff options
context:
space:
mode:
authorMarius <mariausol@gmail.com>2010-11-20 00:20:11 +0200
committerMarius <mariausol@gmail.com>2010-11-20 00:20:11 +0200
commitb4b58bbfe882406b09b2548e7aa55d238987f894 (patch)
tree346fdd16f41f0d24406a64e7167d4dade8e1b325 /tex/context/base/font-ini.mkiv
parentc59707ed27b62aa6d05dccba192d134de4ec24f6 (diff)
downloadcontext-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.mkiv99
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