summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/context/base/type-ini.mkiv
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/context/base/type-ini.mkiv')
-rw-r--r--Master/texmf-dist/tex/context/base/type-ini.mkiv173
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