From 424eae2baf89faf226859b12e649fed94e466b8d Mon Sep 17 00:00:00 2001 From: Marius Date: Fri, 16 Dec 2011 01:00:13 +0200 Subject: beta 2011.12.15 23:39 --- tex/context/base/colo-ini.mkiv | 29 +++- tex/context/base/cont-new.mkii | 2 +- tex/context/base/cont-new.mkiv | 2 +- tex/context/base/context-version.pdf | Bin 4075 -> 4074 bytes tex/context/base/context-version.png | Bin 106211 -> 106151 bytes tex/context/base/context.mkii | 2 +- tex/context/base/context.mkiv | 2 +- tex/context/base/font-ini.mkiv | 146 +++++++++++++-------- tex/context/base/spac-fnt.mkiv | 2 +- tex/context/base/status-files.pdf | Bin 24019 -> 24024 bytes tex/context/base/status-lua.pdf | Bin 169698 -> 169695 bytes tex/generic/context/luatex/luatex-fonts-merged.lua | 2 +- 12 files changed, 123 insertions(+), 64 deletions(-) diff --git a/tex/context/base/colo-ini.mkiv b/tex/context/base/colo-ini.mkiv index 411ff9fbb..76bd14f09 100644 --- a/tex/context/base/colo-ini.mkiv +++ b/tex/context/base/colo-ini.mkiv @@ -759,12 +759,31 @@ % Since we couple definitions, we could stick to one test. Todo. Same for mpcolor. +% : in currentpalet, maybe not, ugly (some day at the lua end) + \letvalueempty{(cs:-} \letvalueempty{(ts:-} -\unexpanded\def\doactivatecolor#1% : in currentpalet, maybe not, ugly (some day at the lua end) +% \unexpanded\def\doactivatecolor#1% : in currentpalet, maybe not, ugly (some day at the lua end) +% {\edef\currentcolorname{#1}% +% \ifcsname(cs:\currentpalet\currentcolorname)\endcsname +% \csname(cs:\currentpalet\currentcolorname)\endcsname +% \csname(ts:\currentpalet\currentcolorname)\endcsname +% \else\ifcsname(cs:\currentcolorname)\endcsname +% \csname(cs:\currentcolorname)\endcsname +% \csname(ts:\currentcolorname)\endcsname +% \fi\fi} + +\unexpanded\def\doactivatecolor#1% not that much faster but less tracing {\edef\currentcolorname{#1}% - \ifcsname(cs:\currentpalet\currentcolorname)\endcsname + \ifx\currentpalet\empty + \expandafter\doactivatecolor_nop + \else + \expandafter\doactivatecolor_yes + \fi} + +\unexpanded\def\doactivatecolor_yes + {\ifcsname(cs:\currentpalet\currentcolorname)\endcsname \csname(cs:\currentpalet\currentcolorname)\endcsname \csname(ts:\currentpalet\currentcolorname)\endcsname \else\ifcsname(cs:\currentcolorname)\endcsname @@ -772,6 +791,12 @@ \csname(ts:\currentcolorname)\endcsname \fi\fi} +\unexpanded\def\doactivatecolor_nop + {\ifcsname(cs:\currentcolorname)\endcsname + \csname(cs:\currentcolorname)\endcsname + \csname(ts:\currentcolorname)\endcsname + \fi} + \let\normaldoactivatecolor\doactivatecolor % new: diff --git a/tex/context/base/cont-new.mkii b/tex/context/base/cont-new.mkii index 7f31e795b..4e98dde32 100644 --- a/tex/context/base/cont-new.mkii +++ b/tex/context/base/cont-new.mkii @@ -11,7 +11,7 @@ %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. -\newcontextversion{2011.12.15 13:56} +\newcontextversion{2011.12.15 23:39} %D This file is loaded at runtime, thereby providing an %D excellent place for hacks, patches, extensions and new diff --git a/tex/context/base/cont-new.mkiv b/tex/context/base/cont-new.mkiv index d9d2817ec..a4e0b7497 100644 --- a/tex/context/base/cont-new.mkiv +++ b/tex/context/base/cont-new.mkiv @@ -11,7 +11,7 @@ %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. -\newcontextversion{2011.12.15 13:56} +\newcontextversion{2011.12.15 23:39} %D This file is loaded at runtime, thereby providing an %D excellent place for hacks, patches, extensions and new diff --git a/tex/context/base/context-version.pdf b/tex/context/base/context-version.pdf index 4dd332d82..67301fb6a 100644 Binary files a/tex/context/base/context-version.pdf and b/tex/context/base/context-version.pdf differ diff --git a/tex/context/base/context-version.png b/tex/context/base/context-version.png index b67d9988f..55c03e63e 100644 Binary files a/tex/context/base/context-version.png and b/tex/context/base/context-version.png differ diff --git a/tex/context/base/context.mkii b/tex/context/base/context.mkii index d19abf5a7..b29c046ad 100644 --- a/tex/context/base/context.mkii +++ b/tex/context/base/context.mkii @@ -20,7 +20,7 @@ %D your styles an modules. \edef\contextformat {\jobname} -\edef\contextversion{2011.12.15 13:56} +\edef\contextversion{2011.12.15 23:39} %D For those who want to use this: diff --git a/tex/context/base/context.mkiv b/tex/context/base/context.mkiv index 1044d2eb5..62bd4d532 100644 --- a/tex/context/base/context.mkiv +++ b/tex/context/base/context.mkiv @@ -20,7 +20,7 @@ %D your styles an modules. \edef\contextformat {\jobname} -\edef\contextversion{2011.12.15 13:56} +\edef\contextversion{2011.12.15 23:39} %D For those who want to use this: diff --git a/tex/context/base/font-ini.mkiv b/tex/context/base/font-ini.mkiv index 9ccad32d3..14c845793 100644 --- a/tex/context/base/font-ini.mkiv +++ b/tex/context/base/font-ini.mkiv @@ -140,7 +140,7 @@ % adapted, else wrong interlinespace -\def\setfontparameters +\unexpanded\def\setfontparameters {\synchronizefontsfalse \the\everybodyfont \synchronizefontstrue} @@ -149,21 +149,22 @@ \newcounter\pushedfont -\def\savefont +\unexpanded\def\savefont {\edef\savedfont{\the\font}% \pushmacro\savedfont} -\def\restorefont +\unexpanded\def\restorefont {\popmacro\savedfont \savedfont} -\def\pushcurrentfont +\unexpanded\def\pushcurrentfont {\edef\popcurrentfont - {\noexpand\def\noexpand\fontbody{\fontbody}% - \noexpand\def\noexpand\fontstyle{\fontstyle}% - \noexpand\dosetcurrentfontalternative{\fontalternative}% - \noexpand\dosetcurrentfontsize{\fontsize}% - \noexpand\synchronizefont}} + {\def\noexpand\fontbody {\fontbody}% + \def\noexpand\fontstyle {\fontstyle}% + \def\noexpand\fontalternative{\fontalternative}% + \def\noexpand\fontsize {\fontsize}% + \checkbigmathsynchronization + \synchronizefont}} % \definetypeface[one][rm][serif][computer-roman][default] % \definetypeface[two][rm][serif][computer-roman][default][rscale=.9] @@ -1440,16 +1441,44 @@ \the\everyfontswitch \let\rawfontidentifier\oldrawfontidentifier} -\def\xxdododefinefont#1#2#3#4% \autofontsizetrue is set by calling routine - {\edef\lastfontidentifier{#3}% - \ifcsname\newfontidentifier\endcsname\else - \def\localrelativefontsize{#1}% - \def\localabsolutefontsize{#2}% - \lowleveldefinefont{#4}\newfontidentifier - \fi +% \unexpanded\def\xxdododefinefont#1#2#3#4% \autofontsizetrue is set by calling routine +% {\edef\lastfontidentifier{#1}% +% \ifcsname\newfontidentifier\endcsname\else +% \def\localrelativefontsize{#2}% +% \def\localabsolutefontsize{#3}% +% \lowleveldefinefont{#4}\newfontidentifier +% \fi +% \csname\newfontidentifier\endcsname +% \autofontsizefalse +% \ifskipfontcharacteristics \else +% \setfontcharacteristics +% \the\everyfontswitch +% \fi +% \let\newfontidentifier\oldnewfontidentifier} + +\unexpanded\def\xxdododefinefont#1% + {\edef\lastfontidentifier{#1}% + \ifcsname\newfontidentifier\endcsname + \expandafter\xxdododefinefont_nop + \else + \expandafter\xxdododefinefont_yes + \fi} + +\def\xxdododefinefont_yes#1#2#3% \autofontsizetrue is set by calling routine + {\def\localrelativefontsize{#1}% + \def\localabsolutefontsize{#2}% + \lowleveldefinefont{#3}\newfontidentifier \csname\newfontidentifier\endcsname \autofontsizefalse - %\edef\lastfontidentifier{#3}% + \ifskipfontcharacteristics \else + \setfontcharacteristics + \the\everyfontswitch + \fi + \let\newfontidentifier\oldnewfontidentifier} + +\def\xxdododefinefont_nop#1#2#3% \autofontsizetrue is set by calling routine + {\csname\newfontidentifier\endcsname + \autofontsizefalse \ifskipfontcharacteristics \else \setfontcharacteristics \the\everyfontswitch @@ -2018,30 +2047,30 @@ \def\dodefinebodyfontnopxx#1#2[#3#4#5=#6]% style body def {\ifcsname#1#3#4#5\endcsname\else\checkbodyfont{#1}{#3#4}{#5}\fi% not \definefontsize[#5] \@EA\let\csname*#2#1#3#4#5*\endcsname\undefined - \unexpanded\@EA\edef\csname#2#1#3#4#5\endcsname{\noexpand\xxdododefinefont{\number\relativefontsize}{#2}{#2#1#3#4#5}{\normalunexpanded{#6}}}} + \unexpanded\@EA\edef\csname#2#1#3#4#5\endcsname{\xxdododefinefont{#2#1#3#4#5}{\number\relativefontsize}{#2}{\normalunexpanded{#6}}}} \def\dodefinebodyfontyesxx#1#2[#3#4#5=#6]% style body def {\ifcsname#1#3#4#5\endcsname\else\checkbodyfont{#1}{#3#4}{#5}\fi% not \definefontsize[#5] \global\@EA\let\csname*\fontclass#2#1#3#4#5*\endcsname\undefined - \unexpanded\@EA\xdef\csname\fontclass#2#1#3#4#5\endcsname{\noexpand\xxdododefinefont{\number\relativefontsize}{#2}{#2#1#3#4#5}{\normalunexpanded{#6}}}} + \unexpanded\@EA\xdef\csname\fontclass#2#1#3#4#5\endcsname{\xxdododefinefont{#2#1#3#4#5}{\number\relativefontsize}{#2}{\normalunexpanded{#6}}}} \def\dodefinebodyfontnopmm#1#2[#3#4#5=#6]% style body def {\ifcsname#1#3#4#5\endcsname\else\checkbodyfont{#1}{#3#4}{#5}\fi% not \definefontsize[#5] \@EA\let\csname*#2#1#3#4#51*\endcsname\undefined \@EA\let\csname*#2#1#3#4#52*\endcsname\undefined \@EA\let\csname*#2#1#3#4#53*\endcsname\undefined - \unexpanded\@EA\edef\csname#2#1#3#4#51\endcsname{\noexpand\xxdododefinefont{\number\relativefontsize}{#2}{#2#1#3#4#51}{\normalunexpanded{#6}}}% - \unexpanded\@EA\edef\csname#2#1#3#4#52\endcsname{\noexpand\xxdododefinefont{\number\relativefontsize}{#2}{#2#1#3#4#52}{\normalunexpanded{#6}}}% - \unexpanded\@EA\edef\csname#2#1#3#4#53\endcsname{\noexpand\xxdododefinefont{\number\relativefontsize}{#2}{#2#1#3#4#53}{\normalunexpanded{#6}}}} + \unexpanded\@EA\edef\csname#2#1#3#4#51\endcsname{\xxdododefinefont{#2#1#3#4#51}{\number\relativefontsize}{#2}{\normalunexpanded{#6}}}% + \unexpanded\@EA\edef\csname#2#1#3#4#52\endcsname{\xxdododefinefont{#2#1#3#4#52}{\number\relativefontsize}{#2}{\normalunexpanded{#6}}}% + \unexpanded\@EA\edef\csname#2#1#3#4#53\endcsname{\xxdododefinefont{#2#1#3#4#53}{\number\relativefontsize}{#2}{\normalunexpanded{#6}}}} \def\dodefinebodyfontyesmm#1#2[#3#4#5=#6]% style body def {\ifcsname#1#3#4#5\endcsname\else\checkbodyfont{#1}{#3#4}{#5}\fi% not \definefontsize[#5] \global\@EA\let\csname*\fontclass#2#1#3#4#51*\endcsname\undefined \global\@EA\let\csname*\fontclass#2#1#3#4#52*\endcsname\undefined \global\@EA\let\csname*\fontclass#2#1#3#4#53*\endcsname\undefined - \unexpanded\@EA\xdef\csname\fontclass#2#1#3#4#51\endcsname{\noexpand\xxdododefinefont{\number\relativefontsize}{#2}{#2#1#3#4#51}{\normalunexpanded{#6}}}% - \unexpanded\@EA\xdef\csname\fontclass#2#1#3#4#52\endcsname{\noexpand\xxdododefinefont{\number\relativefontsize}{#2}{#2#1#3#4#52}{\normalunexpanded{#6}}}% - \unexpanded\@EA\xdef\csname\fontclass#2#1#3#4#53\endcsname{\noexpand\xxdododefinefont{\number\relativefontsize}{#2}{#2#1#3#4#53}{\normalunexpanded{#6}}}} + \unexpanded\@EA\xdef\csname\fontclass#2#1#3#4#51\endcsname{\xxdododefinefont{#2#1#3#4#51}{\number\relativefontsize}{#2}{\normalunexpanded{#6}}}% + \unexpanded\@EA\xdef\csname\fontclass#2#1#3#4#52\endcsname{\xxdododefinefont{#2#1#3#4#52}{\number\relativefontsize}{#2}{\normalunexpanded{#6}}}% + \unexpanded\@EA\xdef\csname\fontclass#2#1#3#4#53\endcsname{\xxdododefinefont{#2#1#3#4#53}{\number\relativefontsize}{#2}{\normalunexpanded{#6}}}} \def\checkbodyfont#1% tests for ttsl mmbf {\edef\c!!mm{#1}% @@ -2623,7 +2652,7 @@ \let\bigmathfontsize\empty -\def\synchronizebigmath +\unexpanded\def\synchronizebigmath {\ifx\bigmathfontsize\fontsize % already in sync \else @@ -2631,7 +2660,7 @@ \synchronizemath \fi} -\def\checkbigmathsynchronization +\unexpanded\def\checkbigmathsynchronization {\ifcase\synchronizebigmathflag % never \or @@ -2642,22 +2671,23 @@ %D So far for synchronisation. (We can inline the following macros.) -\def\dosetcurrentfontsize#1% +\unexpanded\def\dosetcurrentfontsize#1% {\edef\fontsize{#1}% \checkbigmathsynchronization} -\def\dosetcurrentfontalternative#1% +\unexpanded\def\dosetcurrentfontalternative#1% {\edef\fontalternative{#1}} -\def\setcurrentfont#1#2#3#4% +\unexpanded\def\setcurrentfont#1#2#3#4% {%\message{[1 #1 #2 #3 #4]}% - \edef\fontbody{#1}% - \edef\fontstyle{#2}% - \dosetcurrentfontalternative{#3}% - \dosetcurrentfontsize{#4}% + \edef\fontbody {#1}% + \edef\fontstyle {#2}% + \edef\fontalternative{#3}% \dosetcurrentfontalternative + \edef\fontsize {#4}% + \checkbigmathsynchronization \synchronizefont} -\def\setcurrentfontbody#1% +\unexpanded\def\setcurrentfontbody#1% {%\message{[2 #1]}% \edef\fontbody{#1}% \synchronizefont} @@ -2673,52 +2703,56 @@ % \ifmmode\mr\fi % otherwise \rm not downward compatible % \synchronizefont} -\def\setcurrentfontstyle#1% +\unexpanded\def\setcurrentfontstyle#1% {%\message{[3 #1]}% \edef\fontstyle{#1}% \checkfontclass\fontstyle \ifmmode\mr\fi % otherwise \rm not downward compatible \synchronizefont} -\def\setcurrentfontbodyalternative#1#2% +\unexpanded\def\setcurrentfontbodyalternative#1#2% {%\message{[4 #1 #2]}% - \edef\fontbody{#1}% - \dosetcurrentfontalternative{#2}% + \edef\fontbody {#1}% + \edef\fontalternative{#2}% \synchronizefont} -\def\setcurrentfontalternative#1% +\unexpanded\def\setcurrentfontalternative#1% {%\message{[5 #1]}% - \dosetcurrentfontalternative{#1}% + \edef\fontalternative{#1}% \synchronizefont} -\def\setcurrentfontsize#1% +\unexpanded\def\setcurrentfontsize#1% {%\message{[6 #1]}% - \dosetcurrentfontsize{#1}% + \edef\fontsize{#1}% + \checkbigmathsynchronization \synchronizefont} -\def\setcurrentfontstylealternative#1#2% \rmsl +\unexpanded\def\setcurrentfontstylealternative#1#2% \rmsl {%\message{[7 #1 #2]}% - \edef\fontstyle{#1}% - \dosetcurrentfontalternative{#2}% + \edef\fontstyle {#1}% + \edef\fontalternative{#2}% \synchronizefont} -\def\setcurrentfontstylesize#1#2% \rmsla +\unexpanded\def\setcurrentfontstylesize#1#2% \rmsla {%\message{[8 #1 #2]}% \edef\fontstyle{#1}% - \dosetcurrentfontsize{#2}% + \edef\fontsize {#2}% + \checkbigmathsynchronization \synchronizefont} -\def\setcurrentfontalternativesize#1#2% \sla +\unexpanded\def\setcurrentfontalternativesize#1#2% \sla {%\message{[9 #1 #2]}% - \dosetcurrentfontalternative{#1}% - \dosetcurrentfontsize{#2}% + \edef\fontalternative{#1}% + \edef\fontsize {#2}% + \checkbigmathsynchronization \synchronizefont} -\def\setcurrentfontstylealternativesize#1#2#3% \rmsla +\unexpanded\def\setcurrentfontstylealternativesize#1#2#3% \rmsla {%\message{[10 #1 #2 #3]}% - \edef\fontstyle{#1}% - \dosetcurrentfontalternative{#2}% - \dosetcurrentfontsize{#3}% + \edef\fontstyle {#1}% + \edef\fontalternative{#2}% + \edef\fontsize {#3}% + \checkbigmathsynchronization \synchronizefont} %D In principle one can assign alternative fallback routines. @@ -2729,7 +2763,7 @@ \let\fontstrategy\relax -\def\synchronizefont % we can have dups i.e. no need to let fontstrategy +\unexpanded\def\synchronizefont % we can have dups i.e. no need to let fontstrategy {\tryingfonttrue \ifx\fontclass\empty \applyfontstrategies diff --git a/tex/context/base/spac-fnt.mkiv b/tex/context/base/spac-fnt.mkiv index 873641929..5bfe9aab0 100644 --- a/tex/context/base/spac-fnt.mkiv +++ b/tex/context/base/spac-fnt.mkiv @@ -27,7 +27,7 @@ #4% \endgroup} -\unexpanded\def\dostartattributes#1#2#3#4% nothing is done with #4 any longer +\unexpanded\def\dostartattributes#1#2#3% {\begingroup % geen \bgroup, anders in mathmode lege \hbox \dousestylehashparameter{#1}{#2}% \dousecolorhashparameter{#1}{#3}} diff --git a/tex/context/base/status-files.pdf b/tex/context/base/status-files.pdf index 6fd5f7f54..a1f1bb246 100644 Binary files a/tex/context/base/status-files.pdf and b/tex/context/base/status-files.pdf differ diff --git a/tex/context/base/status-lua.pdf b/tex/context/base/status-lua.pdf index 544fde0a4..f61b2deaa 100644 Binary files a/tex/context/base/status-lua.pdf and b/tex/context/base/status-lua.pdf differ diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua index eac42c455..1aceda930 100644 --- a/tex/generic/context/luatex/luatex-fonts-merged.lua +++ b/tex/generic/context/luatex/luatex-fonts-merged.lua @@ -1,6 +1,6 @@ -- merged file : luatex-fonts-merged.lua -- parent file : luatex-fonts.lua --- merge date : 12/15/11 13:56:19 +-- merge date : 12/15/11 23:39:33 do -- begin closure to overcome local limits and interference -- cgit v1.2.3