diff options
Diffstat (limited to 'Master/texmf-dist/tex/context/base/type-ini.mkiv')
-rw-r--r-- | Master/texmf-dist/tex/context/base/type-ini.mkiv | 173 |
1 files changed, 60 insertions, 113 deletions
diff --git a/Master/texmf-dist/tex/context/base/type-ini.mkiv b/Master/texmf-dist/tex/context/base/type-ini.mkiv index cd65f8abb4a..46b46976dc0 100644 --- a/Master/texmf-dist/tex/context/base/type-ini.mkiv +++ b/Master/texmf-dist/tex/context/base/type-ini.mkiv @@ -13,50 +13,13 @@ \writestatus{loading}{ConTeXt Typescript Macros / Initialization} +\registerctxluafile{type-ini}{1.001} + %D The default fontclass is empty. We could demand always using fontclasses, %D and then make the calling macros simplier (always assume fontclass) but %D apart from downward compatibility issues, it would make global, class %D spanning definitions a pain. Some day we will introduce a default class. -% torture test : proper typefaces (and namespace) -% -% \starttext -% \usetypescript[modern][default] default: \setupbodyfont[modern] \eacute \eogonek \zcaron \acircumflexgrave -% \usetypescript[modern][texnansi] texnansi: \setupbodyfont[modern] \eacute \eogonek \zcaron \acircumflexgrave -% \usetypescript[modern][ec] ec: \setupbodyfont[modern] \eacute \eogonek \zcaron \acircumflexgrave -% \usetypescript[modern][qx] qx: \setupbodyfont[modern] \eacute \eogonek \zcaron \acircumflexgrave -% \usetypescript[modern][t5] t5: \setupbodyfont[modern] \eacute \eogonek \zcaron \acircumflexgrave -% \stoptext -% -% torture test : no typeface, just definitions -% -% \starttext -% {\setupbodyfont[reset] \setupbodyfont[cmr] cmr: \eacute \eogonek \zcaron \acircumflexgrave \endgraf} -% {\setupbodyfont[reset] \setupbodyfont[plr] plr: \eacute \eogonek \zcaron \acircumflexgrave \endgraf} -% {\setupbodyfont[reset] \setupbodyfont[csr] csr: \eacute \eogonek \zcaron \acircumflexgrave \endgraf} -% {\setupbodyfont[reset] \setupbodyfont[vnr] vnr: \eacute \eogonek \zcaron \acircumflexgrave \endgraf} -% {\setupbodyfont[reset] \setupbodyfont[aer] aer: \eacute \eogonek \zcaron \acircumflexgrave \endgraf} -% \stoptext - -% \usetypescript [modern] [texnansi] -% -% normal : 1450 ms -% exa quit : 1300 ms (150 ms) -% preload : 825 ms (635 ms) (40-50%) -% -% \usetypescript [modern] [texnansi] -% \usetypescript [palatino][texnansi] -% \usetypescript [times] [texnansi] -% -% normal : 3200 ms -% exa quit : 2700 ms ( 500 ms) -% preload : 1300 ms (1900 ms) (60-70%) - -% \usetypescript [modern][\defaultencoding] -% \usetypescript [map] [latin-modern-os] [\defaultencoding] -% \setupbodyfont[modern] -% test 1234 test - \unprotect \unexpanded\def\starttypescriptcollection @@ -90,6 +53,8 @@ \newtoks\documenttypescripts +% tricky ... here we push/pop + \chardef\typescriptmethod\plusone % 1: empty==all==true 2: empty==false \chardef\typescriptstate \plustwo % 1: process 2: store @@ -128,11 +93,31 @@ \def\preloadtypescripts{\ifproductionrun\settrue\preloadingtypescripts\fi} +\prependtoks + \preloadtypescripts +\to \everyjob + +% \long\def\xxstarttypescript#1\stoptypescript +% {\global\loadedtypescripts\@EA{\the\loadedtypescripts\starttypescript#1\stoptypescript}} +% +% \long\def\xxstarttypescriptcollection#1\stoptypescriptcollection +% {\global\loadedtypescripts\@EA{\the\loadedtypescripts\starttypescriptcollection#1\stoptypescriptcollection}} + +\newcount\nofpreloadedtypescripts % it's faster to append references than blobs + \long\def\xxstarttypescript#1\stoptypescript - {\global\loadedtypescripts\@EA{\the\loadedtypescripts\starttypescript#1\stoptypescript}} + {\global\advance\nofpreloadedtypescripts\plusone + \edef\currentpreloadedtypescript{\??ts:\the\nofpreloadedtypescripts}% + \setgvalue\currentpreloadedtypescript{\starttypescript#1\stoptypescript}% + %\global\loadedtypescripts\@EAEAEA{\@EA\the\@EA\loadedtypescripts\@EA\getvalue\@EA{\currentpreloadedtypescript}}} + \normalexpanded{\global\loadedtypescripts{\the\@EA\loadedtypescripts\noexpand\csname\currentpreloadedtypescript\endcsname}}} \long\def\xxstarttypescriptcollection#1\stoptypescriptcollection - {\global\loadedtypescripts\@EA{\the\loadedtypescripts\starttypescriptcollection#1\stoptypescriptcollection}} + {\global\advance\nofpreloadedtypescripts\plusone + \edef\currentpreloadedtypescript{\??ts:\the\nofpreloadedtypescripts}% + \setgvalue\currentpreloadedtypescript{\starttypescriptcollection#1\stoptypescriptcollection}% + %\global\loadedtypescripts\@EAEAEA{\@EA\the\@EA\loadedtypescripts\@EA\getvalue\@EA{\currentpreloadedtypescript}}} + \normalexpanded{\global\loadedtypescripts{\the\@EA\loadedtypescripts\noexpand\csname\currentpreloadedtypescript\endcsname}}} \def\dododousetypescriptfile#1% {\setfalse\quittingtypescript @@ -166,14 +151,7 @@ \expandafter\let\csname\??ts:\c!file:\currenttypefile\endcsname\loadedtypescripts} \def\doprocesstypescriptfile - {\startreadingfile - \pushendofline - \unprotect - % we could have something readfilewithMKfallback - \readfile{\currenttypefile.\mksuffix}\donothing{\readfile\currenttypefile\donothing\donothing}% - \protect - \popendofline - \stopreadingfile} + {\ctxcommand{doprocesstypescriptfile("\currenttypefile")}} \def\usetypescriptonce {\dotripleempty\dousetypescriptonce} @@ -334,17 +312,9 @@ \def\loadmapfile{\dosingleempty\doloadmapfile} \def\loadmapline{\dodoubleempty\doloadmapline} -\def\doloadmapfile [#1]{\ctxlua{fonts.map.loadfile("#1")}} -\def\doloadmapline [#1][#2]{\ctxlua{fonts.map.loadline("#1","#2")}} -\def\forgetmapfiles {\ctxlua{fonts.map.reset()}} - -\let\loadallfontmapfiles\relax -\let\allfontmapsfiles \empty -\let\preloadmapfile \loadmapfile -\let\resetmapfiles \forgetmapfiles -\let\disablemapfiles \forgetmapfiles - -\newif\ifautoloadmapfiles +\def\doloadmapfile [#1]{\ctxlua{fonts.mappings.loadfile("#1")}} +\def\doloadmapline [#1][#2]{\ctxlua{fonts.mappings.loadline("#1","#2")}} +\def\forgetmapfiles {\ctxlua{fonts.mappings.reset()}} % \appendtoks % \pdfmapfile{}% somehow does not work at the lua end @@ -398,73 +368,46 @@ % #1=main #2=rm #3=serif #4=fontname #5=size #6=settings -% we can use \rawgetparameters or \rawgeteparameters - -\def\typefaceencoding{\defaultencoding} - -% we need to keep typefaceencoding for a while as it can still be used to filter -% old scripts as we just strip the texnansi- prefix - -% \def\dostarttypefacedefining#1#2% -% {\pushmacro\fontclass -% \setcurrentfontclass{#1}% -% \pushmacro\relativefontsize -% \let\relativefontsize\@@tsrscale % still needed ? -% \savefontclassparameters{#2}\@@tsrscale\@@tsfeatures\@@tsfallbacks} -% -% \def\dostoptypefacedefining -% {\popmacro\relativefontsize -% \popmacro\fontclass} -% -% \def\dodefinetypeface[#1][#2][#3][#4][#5][#6]% -% {\dododefinetypeface[#1][#2]% -% \iffifthargument % sixth is optional, we need to expand since in #6 there can be a \typescripttwo -% % \normalexpanded{\noexpand\getparameters[\??ts][\s!rscale=\plusone,\s!encoding=\defaultencoding,\s!features=,\s!fallbacks=,#6]}% \geteparameters -% \geteparameters[\??ts][\s!rscale=\plusone,\s!encoding=\defaultencoding,\s!features=,\s!fallbacks=,#6]% -% \dostarttypefacedefining{#1}{#2}% -% \pushmacro\typefaceencoding -% \let\typefaceencoding\@@tsencoding -% \iftracetypescripts\writestatus\m!fonts{define: [#1] [#2] [#3] [#4]}\fi -% \ifx\typefaceencoding\t!default -% \usetypescript[#3][#4][\t!name,\t!default]% will be default some day -% \else -% \usetypescript[#3][#4][\t!name,\t!default,\typefaceencoding]% -% \fi -% \usetypescript[#3][#5][\t!size]% -% % -% \dostoptypefacedefining -% % -% \popmacro\typefaceencoding -% \else\iffourthargument -% \definetypeface[#1][#2][#3][#4][\s!default]% -% \else\ifthirdargument -% \getparameters[\??tf#1#2][#3]% -% \fi\fi\fi} +\let\typefaceencoding\s!default % obsolete \def\dostarttypefacedefining#1#2#3% - {\geteparameters[\??ts][\s!rscale=\plusone,\s!features=,\s!fallbacks=,#3]% + {\geteparameters[\??ts][\s!rscale=\plusone,\s!features=,\s!fallbacks=,\s!goodies=,#3]% \pushmacro\fontclass \setcurrentfontclass{#1}% \pushmacro\relativefontsize \let\relativefontsize\@@tsrscale % still needed ? - \savefontclassparameters{#2}\@@tsrscale\@@tsfeatures\@@tsfallbacks} + \savefontclassparameters{#2}\@@tsrscale\@@tsfeatures\@@tsfallbacks\@@tsgoodies} \def\dostoptypefacedefining {\popmacro\relativefontsize \popmacro\fontclass} -\def\dodefinetypeface[#1][#2][#3][#4][#5][#6]% +\def\dofastdefinetypeface#1#2#3#4#5% {\dododefinetypeface[#1][#2]% - \iffifthargument % sixth is optional, we need to expand since in #6 there can be a \typescripttwo + \dostarttypefacedefining{#1}{#2}{#5}% + \usetypescript[#3][#4][\t!size]% + \dostoptypefacedefining} + +\def\dodefinetypeface[#1][#2][#3][#4][#5][#6]% + {\iffifthargument % sixth is optional, we need to expand since in #6 there can be a \typescripttwo \iftracetypescripts\writestatus\m!fonts{define: [#1] [#2] [#3] [#4]}\fi + \dododefinetypeface[#1][#2]% \dostarttypefacedefining{#1}{#2}{#6}% - \usetypescript[#3][#4][\t!name,\t!default]% - \usetypescript[#3][#5][\t!size]% + \usetypescript[#3][#4][\t!name,\t!default]% + \usetypescript[#3][#5][\t!size]% \dostoptypefacedefining \else\iffourthargument - \definetypeface[#1][#2][#3][#4][\s!default]% + \iftracetypescripts\writestatus\m!fonts{define: [#1] [#2] [#3] [#4]}\fi + \dododefinetypeface[#1][#2]% + \dostarttypefacedefining{#1}{#2}{}% + \usetypescript[#3][#4][\t!name,\t!default]% + \usetypescript[#3][\s!default][\t!size]% + \dostoptypefacedefining \else\ifthirdargument + \dododefinetypeface[#1][#2]% \getparameters[\??tf#1#2][#3]% + \else % use definitions in lfg file + \ctxlua{fonts.definetypeface(\!!bs#1\!!es,\!!bs#2\!!es)}% \fi\fi\fi} \def\dododefinetypeface[#1][#2]% saveguard against redefinition @@ -500,9 +443,13 @@ \fi \fi \fi \ifmmode\mr\else\tf\fi} % needed ? -\def\usetypefile[#1]% recurses on path ! - {\edef\currenttypefile{\f!typeprefix#1}% - \readfile{\currenttypefile.\mksuffix}\donothing{\readfile\currenttypefile\donothing\donothing}} +% \def\usetypefile[#1]% recurses on path ! +% {\edef\currenttypefile{\f!typeprefix#1}% +% \readfile{\currenttypefile.\mksuffix}\donothing{\readfile\currenttypefile\donothing\donothing}} + +\def\usetypefile[#1]% recurses on path ! % no storage? obsolete? + {\edef\currenttypefile{#1}% + \ctxcommand{doprocesstypescriptfile("\currenttypefile")}} %D For Taco: %D @@ -539,7 +486,7 @@ \let\checkfontclass\gobbleoneargument -\fetchruntimecommand \typetypescript {\f!typeprefix\s!run.mkiv} % will become module +\fetchruntimecommand \typetypescript {\f!typeprefix\s!run} % will become module \protect \endinput |