diff options
author | Hans Hagen <pragma@wxs.nl> | 2019-02-22 20:29:46 +0100 |
---|---|---|
committer | Context Git Mirror Bot <phg@phi-gamma.net> | 2019-02-22 20:29:46 +0100 |
commit | 7b271baae19db1528fbe6621bdf50af89a5a336b (patch) | |
tree | 4fc24a8f2be20aa90e90f6e1bcb62d69f4946235 /tex/context/base/mkiv/symb-ini.mkiv | |
parent | 67b9965fe473d18f13ed4c40f1e4e008eb870322 (diff) | |
download | context-7b271baae19db1528fbe6621bdf50af89a5a336b.tar.gz |
2019-02-22 19:43:00
Diffstat (limited to 'tex/context/base/mkiv/symb-ini.mkiv')
-rw-r--r-- | tex/context/base/mkiv/symb-ini.mkiv | 76 |
1 files changed, 70 insertions, 6 deletions
diff --git a/tex/context/base/mkiv/symb-ini.mkiv b/tex/context/base/mkiv/symb-ini.mkiv index e4950e09d..abf857675 100644 --- a/tex/context/base/mkiv/symb-ini.mkiv +++ b/tex/context/base/mkiv/symb-ini.mkiv @@ -45,6 +45,7 @@ \installcorenamespace{symbol} \installcorenamespace{symbolset} +\installcorenamespace{symboldefault} \let\currentsymbol \empty \let\currentsymbolset\empty @@ -95,8 +96,9 @@ % Test test \symbol[whatever]\ test \symbol[whatever]. % Test test \symbol{whatever} test \symbol{whatever}. -\unexpanded\def\symbol % This one always gobbles spaces, - {\dodoubleempty\symb_place} % so never change it again! +\unexpanded\def\symbol + {\dontleavehmode % so we can start a paragraph with it + \dodoubleempty\symb_place} \def\symb_place % so we also handle \symbol{name} {\iffirstargument % which is nicer with following spaces @@ -112,13 +114,23 @@ \expandafter\symb_place_normal_b \fi} +% \def\symb_place_normal_a[#1][#2]% +% {\edef\currentsymbol{#2}% +% \ifcsname\??symbol#1:#2\endcsname +% \symb_place_indeed{#1:#2}% +% \else +% \symb_place_normal_c +% \fi} + \def\symb_place_normal_a[#1][#2]% {\edef\currentsymbol{#2}% \ifcsname\??symbol#1:#2\endcsname - \symb_place_indeed{#1:#2}% + \symb_place_indeed{#1:#2}% maybe use \lastnamescs + \else\ifcsname\??symboldefault#1\endcsname + \symb_place_named{#1}% maybe use \lastnamescs \else \symb_place_normal_c - \fi} + \fi\fi} \def\symb_place_normal_b[#1][#2]% {\edef\currentsymbol{#1}% @@ -160,11 +172,47 @@ \expandafter\symb_fetch_indeed \fi} +% \def\symb_fetch_indeed#1% +% {\ifcsname\??symbol#1:\currentsymbol\endcsname +% \symb_place_indeed{#1:\currentsymbol}% +% \fi} + \def\symb_fetch_indeed#1% {\ifcsname\??symbol#1:\currentsymbol\endcsname \symb_place_indeed{#1:\currentsymbol}% + \else\ifcsname\??symboldefault#1\endcsname + \symb_place_named{#1}% + \fi\fi} + +\def\symb_place_named#1% \relax's prevent lookahead problems + {\begingroup + \setbox\scratchbox\hbox\bgroup + \the\everysymbol + \getglyphstyled + {\csname\??symboldefault#1\endcsname}% + {\tochar{n:\currentsymbol}}% + \relax + \egroup + \ifdim\wd\scratchbox>\zeropoint + \unhbox\scratchbox + \endgroup + \setxvalue{\??symbol#1:\currentsymbol}% + {\symb_place_named_indeed{#1}{\currentsymbol}}% + \settrue\c_symb_found + \else + \endgroup \fi} +\unexpanded\def\symb_place_named_indeed#1#2% \relax's prevent lookahead problems + {\settrue\c_symb_found + \begingroup + \the\everysymbol + \getglyphstyled + {\csname\??symboldefault#1\endcsname}% + {\tochar{n:#2}}% + \relax + \endgroup} + \def\symb_place_retry#1% {\ifcsname\??symbol:#1\endcsname \symb_place_indeed{:#1}% @@ -273,9 +321,25 @@ \installcorenamespace{symbolsets} -\unexpanded\def\startsymbolset[#1]% +% \unexpanded\def\startsymbolset[#1]% +% {\pushmacro\m_symb_current_set +% \def\m_symb_current_set{#1}} + +% maybe a parameterhandler: + +\unexpanded\def\startsymbolset + {\dodoubleargument\symb_start_set} + +\def\symb_start_set[#1][#2]% {\pushmacro\m_symb_current_set - \def\m_symb_current_set{#1}} + \def\m_symb_current_set{#1}% + \ifsecondargument + \getdummyparameters[\s!font=,#2]% + \edef\p_font{\dummyparameter\s!font}% + \ifx\p_font\empty\else + \letvalue{\??symboldefault#1}\p_font + \fi + \fi} \unexpanded\def\stopsymbolset {\popmacro\m_symb_current_set} |