diff options
Diffstat (limited to 'Master/texmf-dist/tex/context/base/mkiv/type-ini.mklx')
-rw-r--r-- | Master/texmf-dist/tex/context/base/mkiv/type-ini.mklx | 618 |
1 files changed, 0 insertions, 618 deletions
diff --git a/Master/texmf-dist/tex/context/base/mkiv/type-ini.mklx b/Master/texmf-dist/tex/context/base/mkiv/type-ini.mklx deleted file mode 100644 index 5470c9016ce..00000000000 --- a/Master/texmf-dist/tex/context/base/mkiv/type-ini.mklx +++ /dev/null @@ -1,618 +0,0 @@ -%D \module -%D [ file=type-ini, -%D version=2001.03.05, -%D title=\CONTEXT\ Typescript Macros, -%D subtitle=Initialization, -%D author=Hans Hagen, -%D date=\currentdate, -%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] -%C -%C This module is part of the \CONTEXT\ macro||package and is -%C therefore copyrighted by \PRAGMA. See mreadme.pdf for -%C details. - -\writestatus{loading}{ConTeXt Typescript Macros / Initialization} - -\registerctxluafile{type-ini}{} - -%D The default fontclass is empty. We could demand always using fontclasses, and -%D then make the calling macros simplier (always assume fontclass) but apart from -%D downward compatibility issues, it would make global, class spanning definitions a -%D pain. Some day we will introduce a default class. -%D -%D The \type {type-ini} and \type {font-ini} modules come as a pair and have mutual -%D dependencies. -%D -%D At some point we will only store in memory so some code can go away. - -\unprotect - -\definesystemvariable {ts} % TypeScript / for the moment we keep this one - -\newcount \c_font_typescripts_n_of_preloaded -\newconditional\c_font_typescripts_quit -\newtoks \c_font_typescripts_document -\newconditional\c_font_typescripts_preload -\newconditional\c_font_typescripts_first_pass \settrue\c_font_typescripts_first_pass - -\newif \iftypescriptfound % will become a mode -\newif \iftracetypescripts - -\newtoks \everybeforedefinetypeface -\newtoks \everyafterdefinetypeface - -\let\typescriptfiles \empty -\let\currenttypescripts\empty -\let\currenttypefile \empty - -\installmacrostack\currenttypefile - -\let\typescriptone \empty % public, used in typescripts -\let\typescripttwo \empty % public, used in typescripts -\let\typescriptthree\empty % public, used in typescripts - -\installmacrostack\typescriptone -\installmacrostack\typescripttwo -\installmacrostack\typescriptthree - -\let\fontclassstyle \empty - -\installmacrostack\fontclassstyle - -\let\m_font_typescripts_one \empty -\let\m_font_typescripts_two \empty -\let\m_font_typescripts_three\empty -\let\m_font_typescripts_check\empty -\let\m_font_typescripts_match\empty - -\installmacrostack\m_font_typescripts_one -\installmacrostack\m_font_typescripts_two -\installmacrostack\m_font_typescripts_three - -\let\t_font_typescripts\relax % uses as synonym - -\installcorenamespace{typescriptcache} -\installcorenamespace{typescriptfiles} -\installcorenamespace{typescriptonce} -\installcorenamespace{typescriptsynonyms} -\installcorenamespace{typescriptprefix} -\installcorenamespace{typescriptinheritances} -\installcorenamespace{typescriptdefaultstyles} -\installcorenamespace{typescriptrelatives} - -\definesystemvariable{ts} % TypeScript - -% tricky ... here we push/pop ... so \let - -\let\typescriptmethod\plusone % 1: empty==all==true 2: empty==false -\let\typescriptstate \plustwo % 1: process 2: store - -\installmacrostack\typescriptmethod -\installmacrostack\typescriptstate - -\unexpanded\def\starttypescriptcollection - {\dosingleempty\font_typescripts_collection_start} - -\def\font_typescripts_collection_start[#tag]% - {} - -\let\stoptypescriptcollection\relax - -\unexpanded\def\usetypescriptfile[#filename]% - {\doifelse{#filename}\v!reset - {\let\typescriptfiles\empty} - {\splitfilename{#filename}% - \addtocommalist\splitoffbase\typescriptfiles}} - -\unexpanded\def\usetypescript {\dotripleempty\font_typescripts_use_one} -\unexpanded\def\usetypescriptexact{\dotripleempty\font_typescripts_use_two} - -\def\font_typescripts_use_one{\let\typescriptmethod\plusone\font_typescripts_use} -\def\font_typescripts_use_two{\let\typescriptmethod\plustwo\font_typescripts_use} - -\installmacrostack\stoptypescript - -\unexpanded\def\font_typescripts_use[#one][#two][#three]% - {\push_macro_m_font_typescripts_one - \push_macro_m_font_typescripts_two - \push_macro_m_font_typescripts_three - \edef\m_font_typescripts_one {\truetypescript{#one}}% - \edef\m_font_typescripts_two {\truetypescript{#two}}% - \edef\m_font_typescripts_three{\truetypescript{#three}}% - \push_macro_typescriptone - \push_macro_typescripttwo - \push_macro_typescriptthree - \push_macro_typescriptmethod - \push_macro_typescriptstate - \push_macro_stoptypescript - \typescriptfoundfalse - \let\typescriptstate\plusone % why - \iftracetypescripts - \writestatus\m!fonts{request: [\m_font_typescripts_one] [\m_font_typescripts_two] [\m_font_typescripts_three]}% - \fi - \ifhmode - \font_typescripts_use_inline - \else - \font_typescripts_use_display - \fi - \setfalse\c_font_typescripts_first_pass - \pop_macro_stoptypescript - \pop_macro_typescriptstate - \pop_macro_typescriptmethod - \pop_macro_typescriptthree - \pop_macro_typescripttwo - \pop_macro_typescriptone - \pop_macro_m_font_typescripts_three - \pop_macro_m_font_typescripts_two - \pop_macro_m_font_typescripts_one} - -\def\font_typescripts_use_display - {\processcommacommand[\typescriptfiles]\font_typescripts_load_file - \the\c_font_typescripts_document} - -\let\font_typescripts_use_inline\font_typescripts_use_display - -\unexpanded\def\preloadtypescripts - {\ifproductionrun\settrue\c_font_typescripts_preload\fi} - -\prependtoks - \preloadtypescripts -\to \everyjob - -\unexpanded\def\loadtypescriptfile[#1]% - {\push_macro_typescriptstate - \let\typescriptstate\plustwo % assumes 2 at the outer level - \clf_loadtypescriptfile{#1}% - \pop_macro_typescriptstate} - -\unexpanded\def\loadfoundtypescriptfile#1#2% name foundname / not a user command - {\startreadingfile - \unprotect - \pushendofline - \input{#2}% - \popendofline - \protect - \stopreadingfile} - -\unexpanded\def\quittypescriptscanning - {\settrue\c_font_typescripts_quit} % public - -\def\font_typescripts_start_store#definitions\stoptypescript - {\global\advance\c_font_typescripts_n_of_preloaded\plusone - \expandafter\normalgdef\csname\??typescriptcache\the\c_font_typescripts_n_of_preloaded\endcsname - {\starttypescript#definitions\stoptypescript}% - \gtoksapp\t_font_typescripts\expandafter - {\csname\??typescriptcache\the\c_font_typescripts_n_of_preloaded\endcsname}} - -\def\font_typescripts_collection_start_store#definitions\stoptypescriptcollection - {\global\advance\c_font_typescripts_n_of_preloaded\plusone - \expandafter\normalgdef\csname\??typescriptcache\the\c_font_typescripts_n_of_preloaded\endcsname - {\starttypescriptcollection#definitions\stoptypescriptcollection}% - \gtoksapp\t_font_typescripts\expandafter - {\csname\??typescriptcache\the\c_font_typescripts_n_of_preloaded\endcsname}} - -\def\font_typescripts_load_file#filename% - {\setfalse\c_font_typescripts_quit - \push_macro_currenttypefile - \def\currenttypefile{#filename}% - \ifconditional\c_font_typescripts_preload - \font_typescript_process_typescript_file_and_store - \else - \font_typescript_process_typescript_file - \fi - \pop_macro_currenttypefile - \ifconditional\c_font_typescripts_quit - \quitcommalist - \setfalse\c_font_typescripts_quit - \fi} - -\def\font_typescript_process_typescript_file_and_store - {\expandafter\let\expandafter\t_font_typescripts\csname\??typescriptfiles\currenttypefile\endcsname - \ifx\t_font_typescripts\relax - \font_typescript_process_typescript_store_indeed - \fi - \the\t_font_typescripts} - -\def\font_typescript_process_typescript_store_indeed - {\newtoks\t_font_typescripts % is \relaxed elsewhere - \begingroup - \let\starttypescript \font_typescripts_start_store - \let\starttypescriptcollection\font_typescripts_collection_start_store - \font_typescript_process_typescript_file - \endgroup - \expandafter\let\csname\??typescriptfiles\currenttypefile\endcsname\t_font_typescripts} - -\def\font_typescript_process_typescript_file - {\clf_doprocesstypescriptfile{\currenttypefile}} - -\unexpanded\def\usetypescriptonce - {\dotripleempty\font_typescripts_use_once} - -\def\font_typescripts_use_once[#one][#two][#three]% - {\ifcsname\??typescriptonce#one:#two:#three\endcsname - \writestatus\m!fonts{once (#one) (#two) (#three)}% - \else - \expandafter\let\csname\??typescriptonce#one:#two:#three\endcsname\relax - \font_typescripts_use[#one][#two][#three]% - \fi} - -% \definetypescriptsynonym[lbr][cmr] - -\unexpanded\def\definetypescriptsynonym - {\dodoubleempty\font_typescripts_synonym_define} - -\def\font_typescripts_synonym_define[#name][#synonym]% - {\ifsecondargument\setevalue{\??typescriptsynonyms#name}{#synonym}\fi} - -\def\truetypescript#name% recursive so no \lastnamedcs - {\ifcsname\??typescriptsynonyms#name\endcsname - %\expandafter\truetypescript\csname\??typescriptsynonyms#name\endcsname - \expandafter\truetypescript\lastnamedcs - \else - #name% - \fi} - -% script [serif] [default] [size] -% script [serif] [computer-modern] [size] -% script [serif] [computer-modern] [ec] -% script [serif] [computer-modern] [name] -% script [serif] [computer-modern] [special] - -\prependtoks - \settrue\c_font_typescripts_first_pass -\to \everyjob - -\unexpanded\def\starttypescript - {\ifcase\typescriptstate - % 0 = skip - \expandafter\font_typescripts_start_gobble - \or - % 1 = process - \expandafter\font_typescripts_start_process - \or - % 2 = store - \expandafter\font_typescripts_start_document - \else - % ? = skip - \expandafter\font_typescripts_start_gobble - \fi} - -\def\font_typescripts_start_gobble#definitions\stoptypescript{} - -\def\font_typescripts_start_document#definitions\stoptypescript - {\toksapp\c_font_typescripts_document{\starttypescript#definitions\stoptypescript}} - -\def\font_typescripts_start_process % could be a faster \doifelsenextoptionalif needed - {\let\typescriptone \m_font_typescripts_one - \let\typescripttwo \m_font_typescripts_two - \let\typescriptthree\m_font_typescripts_three - \let\m_font_typescripts_match\empty - \doifelsenextoptionalcs\font_typescripts_start_process_one\font_typescripts_start_process_all} - -\def\font_typescripts_start_process_all % could be a \let - {\ifconditional\c_font_typescripts_first_pass - \expandafter\font_typescripts_start_process_indeed - \else - % skip this since it may do unwanted resets, like - % setting symbolic font names to unknown, especially - % in run time user type scripts - \expandafter\font_typescripts_start_gobble - \fi} - -\def\font_typescripts_show_match - {\writestatus\m!fonts{match:\ifx\currenttypefile\relax\space *\fi \m_font_typescripts_match}} - -\def\font_typescripts_start_process_yes - {\ifdone - \typescriptfoundtrue - \iftracetypescripts\font_typescripts_show_match\fi - \expandafter\font_typescripts_start_process_indeed - \else - \expandafter\font_typescripts_start_gobble - \fi} - -\def\font_typescripts_start_process_one - {\font_typescripts_check\m_font_typescripts_one\typescriptone\font_typescripts_start_process_again_one} - -\def\font_typescripts_start_process_two - {\font_typescripts_check\m_font_typescripts_two\typescripttwo\font_typescripts_start_process_again_two} - -\def\font_typescripts_start_process_three - {\font_typescripts_check\m_font_typescripts_three\typescriptthree\font_typescripts_start_process_again_three} - -\def\font_typescripts_start_process_again_one - {\doifelsenextoptionalcs\font_typescripts_start_process_two\font_typescripts_start_process_yes} - -\def\font_typescripts_start_process_again_two - {\doifelsenextoptionalcs\font_typescripts_start_process_three\font_typescripts_start_process_yes} - -\let\font_typescripts_start_process_again_three\font_typescripts_start_process_yes - -\def\font_typescripts_start_process_indeed - {\push_macro_fontclass} - -\unexpanded\def\stoptypescript - {\pop_macro_fontclass} - -\def\font_typescripts_check#asked#target#followup[#value]% script use value next - {\donefalse - \edef\m_font_typescripts_check{#value}% - \ifx\m_font_typescripts_check\empty % no longer needed / met - \ifcase\typescriptmethod\or\donetrue\fi - \orelse\ifx#asked\s!all - \donetrue - \orelse\ifx\m_font_typescripts_check\s!all - \donetrue - \orelse\ifx#asked\m_font_typescripts_check % saves 10% trace so probably faster too - \donetrue - \let#target\m_font_typescripts_check - \else - \doifelsecommon\m_font_typescripts_check#asked\donetrue\donefalse - \ifdone - \let#target\commalistelement - \fi - \fi - \ifdone - \iftracetypescripts\extendtypescriptmatch\fi - \expandafter#followup% - \else - \expandafter\font_typescripts_start_gobble - \fi} - -\def\extendtypescriptmatch - {\edef\m_font_typescripts_match{\m_font_typescripts_match\space[\m_font_typescripts_check]}} - -%D Map files will go away in \LUATEX, but till that happens we use stripped down -%D support for loading them. - -\unexpanded\def\loadmapfile{\dosingleempty\font_map_load_file} -\unexpanded\def\loadmapline{\dodoubleempty\font_map_load_line} - -\def\font_map_load_file[#filename]% - {\clf_loadmapfile{#filename}} - -\def\font_map_load_line[#kind][#data]% - {\clf_loadmapline{#kind}{#data}} - -\unexpanded\def\forgetmapfiles - {\clf_resetmapfiles} - -% \prependtoks -% \loadmapfile[mkiv-base.map]% can't we preload this one? -% \to \everystarttext - -%D A handy shortcut: - -% \definetypescriptprefix[serif][Serif] -% \definetypescriptprefix[sans] [Sans] -% \definetypescriptprefix[mono] [Mono] -% -% \starttypescript [serif,sans,mono] [handling,hanging,hz] [pure,normal,hz,quality] -% \setupfontsynonym [\typescriptprefix\typescriptone] [handling=\typescriptthree] -% \stoptypescript - -\unexpanded\def\definetypescriptprefix - {\dodoubleargument\font_typescripts_define_prefix} - -\def\font_typescripts_define_prefix[#name][#prefix]% - {\setgvalue{\??typescriptprefix#name}{#prefix}} % made global - -\def\typescriptprefix#name% - %{\ifcsname\??typescriptprefix#name\endcsname\csname\??typescriptprefix#name\endcsname\else#name\fi} - {\ifcsname\??typescriptprefix#name\endcsname\lastnamedcs\else#name\fi} - -% defining typefaces: -% -% \definetypeface [joke] [rm] -% \definetypeface [joke] [rm] [settings] -% \definetypeface [joke] [rm] [serif] [lucida] -% \definetypeface [joke] [rm] [serif] [lucida] [size] -% \definetypeface [joke] [rm] [serif] [lucida] [size] [settings] -% \definetypeface [joke] [specification] - -\unexpanded\def\definetypeface - {\dosixtupleargument\font_typefaces_define} - -\appendtoks - \font_helpers_reset_fontclass_math_families\fontclass -\to \everybeforedefinetypeface - -%D This hooks into the font switcher: - -\settrue\autotypescripts - -\unexpanded\def\trycurrentfontclass#typeface% - {\ifconditional\autotypescripts - \usetypescript[#typeface]% - \ifcsname\??fontclassyes#typeface\endcsname - \edef\fontclass{#typeface}% - \else - \iftracetypescripts\writestatus\m!fonts{auto load typescript file 1: [#typeface]}\fi - \usetypescriptfile[#typeface]% - \usetypescript[#typeface]% - \ifcsname\??fontclassyes#typeface\endcsname - \edef\fontclass{#typeface}% - \else - % todo: message - \letvalueempty{\??fontclassnop#typeface}% - \fi - \fi - \else - % todo: message - \letvalueempty{\??fontclassnop#typeface}% - \fi} - -%D Now we define: - -\def\font_typefaces_define - {\iffifthargument - \expandafter\font_typefaces_define_a - \orelse\iffourthargument - \expandafter\font_typefaces_define_b - \orelse\ifthirdargument - \expandafter\font_typefaces_define_c - \else - \expandafter\font_typefaces_define_d - \fi} - -\def\font_typefaces_define_a[#name][#style][#fontshape][#fontname][#fontsize][#settings]% - {\iftracetypescripts\writestatus\m!fonts{define: [#name] [#style] [#fontshape] [#fontname]}\fi - \font_typefaces_define_indeed[#name][#style]% - \font_typefaces_defining_start{#name}{#style}{#settings}% - \font_typescripts_use_one[#fontshape][#fontname][\s!name]% [\s!name,\s!default]% - \iftypescriptfound - % we're okay - \orelse\ifconditional\autotypescripts - \iftracetypescripts\writestatus\m!fonts{auto load typescript file 2: [#fontname]}\fi - \usetypescriptfile[#fontname]% - \font_typescripts_use_one[#fontshape][#fontname][\s!name]% [\s!name,\s!default]% - \fi - \font_typescripts_use_one[#fontshape][#fontsize][\s!size]% - \font_typefaces_defining_stop} - -\def\font_typefaces_define_b[#name][#style][#fontshape][#fontname][#dummya][#dummyb]% - {\font_typefaces_define_a[#name][#style][#fontshape][#fontname][\s!default][#dummyb]} - -\def\font_typefaces_define_c[#name][#style][#dummya][#dummyb][#dummyc][#dummyd]% - {\font_typefaces_define_indeed[#name][#style]} - -\def\font_typefaces_define_d[#name][#specification][#dummya][#dummyb][#dummyc][#dummyd]% use definitions in lfg file - {\clf_definetypeface{#name}{#specification}} - -\def\font_typefaces_define_indeed[#name][#style]% saveguard against redefinition - {\doifsomething{#name} - {\ifcsname\??typescriptdefaultstyles#name\endcsname \else - \registerfontclass{#name}% - \setxvalue{\??typescriptdefaultstyles#name}{#style}% - \fi - \ifcsname#name\endcsname \else - \setugvalue{#name}{\switchtotypeface[#name][#style]}% - \fi}} - -\def\font_typefaces_defining_start#name#style#settings% - {\let\@@tsrscale \!!plusone % as we push/pop - \let\@@tsfeatures \empty - \let\@@tsfallbacks \empty - \let\@@tsgoodies \empty - \let\@@tsdirection \empty - \let\@@tsdesignsize\empty - \geteparameters[\??ts][#settings]% todo raw - \push_macro_fontclass - \push_macro_fontclassstyle - \setcurrentfontclass{#name}% - \savefontclassparameters{#style}\@@tsrscale\@@tsfeatures\@@tsfallbacks\@@tsgoodies\@@tsdesignsize\@@tsdirection - \the\everybeforedefinetypeface} - -\def\tsvar#key#default% undocumented and unofficial - {\expandafter\ifx\csname\??ts#key\endcsname\empty - #default% - \else - \csname\??ts#key\endcsname - \fi} - -\def\font_typefaces_defining_stop - {\the\everyafterdefinetypeface - \pop_macro_fontclassstyle - \pop_macro_fontclass} - -\def\dofastdefinetypeface#name#style#fontshape#fontsize#settings% called from the lua end (via case d) - {\font_typefaces_define_indeed[#name][#style]% - \font_typefaces_defining_start{#name}{#style}{#settings}% - \font_typescripts_use_one[#fontshape][#fontsize][\s!size]% - \font_typefaces_defining_stop} - -\unexpanded\def\setuptypeface% [class] [settings] - {\dodoubleempty\font_typefaces_setup} - -\unexpanded\def\switchtotypeface% [class] [settings] - {\dodoubleempty\font_typefaces_switch} - -\def\font_typefaces_setup[#class][#settings]% - {\setcurrentfontclass{#class}% - \let\globalfontclass\fontclass - \ifsecondargument - \setupbodyfont[#settings]% - \orelse\ifx\fontclass\empty - \setupbodyfont[\s!rm]% - \orelse\ifcsname\??typescriptdefaultstyles\fontclass\endcsname - %\setupbodyfont[\csname\??typescriptdefaultstyles\fontclass\endcsname]% - \expandafter\setupbodyfont\expandafter[\lastnamedcs]% - \else - \setupbodyfont[\s!rm]% - \fi - \ifmmode\mr\else\tf\fi} % needed ? - -\def\font_typefaces_switch[#class][#settings]% - {\setcurrentfontclass{#class}% - \let\globalfontclass\globalfontclass - \ifsecondargument - \switchtobodyfont[#settings]% - \orelse\ifx\fontclass\empty - \switchtobodyfont[\s!rm]% - \orelse\ifcsname\??typescriptdefaultstyles\fontclass\endcsname - %\switchtobodyfont[\csname\??typescriptdefaultstyles\fontclass\endcsname]% - \expandafter\switchtobodyfont\expandafter[\lastnamedcs]% - \else - \switchtobodyfont[\s!rm]% - \fi - \ifmmode\mr\else\tf\fi} % needed ? - -%D For Taco: -%D -%D \starttyping -%D \inherittypeface[palatino][rm][postscript] -%D \inherittypeface[palatino][rm][\fontclass] -%D \inherittypeface[palatino][rm] % == \fontclass -%D \inherittypeface[palatino] % == [rm,ss,tt,mm] -%D \stoptyping - -\unexpanded\def\inherittypeface - {\dotripleempty\font_typescripts_inherit_indeed} - -\def\font_typescripts_inherit_indeed[#name][#styles][#parentclass]% - {\doifelsenothing{#styles} - {\font_typescripts_inherit_indeed[#name][\s!rm,\s!ss,\s!tt,\s!mm][\fontclass]} - {\doifnot{#name}{#parentclass} - {\glet\font_typescripts_inherit_check\font_typescripts_inherit_check_indeed - \def\font_typescripts_inherit_check_step#style{\setevalue{\??typescriptinheritances#name:#style}{#parentclass}}% - \processcommalist[#styles]\font_typescripts_inherit_check_step}}} - -\let\font_typescripts_inherit_check_step\relax - -%D This hooks into the font mechanism with: - -\def\font_typescripts_inherit_check_indeed#name% called often - {\ifcsname\??typescriptinheritances\fontclass:#name\endcsname - %\expandafter\let\expandafter\fontclass\csname\??typescriptinheritances\fontclass:#name\endcsname - \expandafter\let\expandafter\fontclass\lastnamedcs - \fi} - -\let\font_typescripts_inherit_check\gobbleoneargument - -% not yet: -% -% \def\font_helpers_check_relative_font_id -% {\ifcsname\??typescriptrelatives\fontclass\endcsname -% \expandafter\let\expandafter\relativefontid\csname\??typescriptrelatives\fontclass\endcsname -% \else -% \expandafter\normalxdef\csname\??typescriptrelatives\fontclass\endcsname{\the\lastfontid}% -% \let\relativefontid\minusone -% \fi} - -\def\v_font_string_d % default fontstyle (expands to \s!Serif in font-ini) - {\expandafter\ifx\csname\??typescriptdefaultstyles\fontclass\endcsname\s!rm \s!Serif \else - \expandafter\ifx\csname\??typescriptdefaultstyles\fontclass\endcsname\s!ss \s!Sans \else - \expandafter\ifx\csname\??typescriptdefaultstyles\fontclass\endcsname\s!tt \s!Mono \else - \s!Serif \fi\fi\fi} - -\unexpanded\def\font_helpers_set_fontstyle_of_fontclass - {\ifx\fontclass\empty - \let\fontstyle\s!rm - \orelse\ifcsname\??typescriptdefaultstyles\fontclass\endcsname - %\edef\fontstyle{\csname\??typescriptdefaultstyles\fontclass\endcsname}% - \edef\fontstyle{\lastnamedcs}% - \else - \let\fontstyle\s!rm - \fi} - -\protect \endinput |