diff options
author | Marius <mariausol@gmail.com> | 2010-12-09 15:40:15 +0200 |
---|---|---|
committer | Marius <mariausol@gmail.com> | 2010-12-09 15:40:15 +0200 |
commit | b782434a6f45ef1dd0f67bbfc8670acba6b6659a (patch) | |
tree | e8b24b10b08f984b96a6ccf7ace8819431f02fa7 /tex/context/base/font-ini.mkiv | |
parent | a0d3450a96f813449290b05e0ef5f2f6de0cbc04 (diff) | |
download | context-b782434a6f45ef1dd0f67bbfc8670acba6b6659a.tar.gz |
beta 2010.12.09 12:11
Diffstat (limited to 'tex/context/base/font-ini.mkiv')
-rw-r--r-- | tex/context/base/font-ini.mkiv | 134 |
1 files changed, 94 insertions, 40 deletions
diff --git a/tex/context/base/font-ini.mkiv b/tex/context/base/font-ini.mkiv index 326cc0d53..29b95aeb1 100644 --- a/tex/context/base/font-ini.mkiv +++ b/tex/context/base/font-ini.mkiv @@ -1737,24 +1737,23 @@ % some day we can do an auto-fam if needed -\def\checkmathbodyfont#1#2#3% style alt size / gdef % #3 can be empty - {%\message{!m #1 #2 #3!}% - % #1 #2 #3 = signal - %setugvalue {#2}{\setcurrentfontalternative {#2}}% \mr \mb - \setugvalue {#1}{\setcurrentfontstyle {#1}}}% \mm +\def\checkmathbodyfont#1#2#3% style alt size / gdef % #3 can be empty (checking needed as \bf is already defined) + {%\message{!m #1 #2 #3!}% #1 #2 #3 = signal + %ifcsname #2\endcsname\else\setugvalue {#2}{\setcurrentfontalternative {#2}}\fi % \mr \mb + \ifcsname #1\endcsname\else\setugvalue {#1}{\setcurrentfontstyle {#1}}\fi} % \mm -\def\checktextbodyfont#1#2#3% style alt size / gdef % #3 can be empty +\def\checktextbodyfont#1#2#3% style alt size / gdef % #3 can be empty (checking needed as \bf is already defined) {%\message{!t #1 #2 #3!}% - \setugvalue {#1#3}{\setcurrentfontstylesize {#1}{#3}}% \rma - \setugvalue {#2#3}{\setcurrentfontalternativesize {#2}{#3}}% \sla - \setugvalue {#1#2#3}{\setcurrentfontstylealternativesize{#1}{#2}{#3}}% \rmsla - \setugvalue {#1}{\setcurrentfontstyle {#1}}% \rm - \setugvalue {#2}{\setcurrentfontalternative {#2}}% \sl - \setugvalue {#1\c!x}{\setcurrentfontxstylealternative {#1}}% \rmx - \setugvalue{#1\c!xx}{\setcurrentfontxxstylealternative {#1}}% \rmxx - \setugvalue {#2\c!x}{\setcurrentfontxalternative {#2}}% \slx - \setugvalue{#2\c!xx}{\setcurrentfontxxalternative {#2}}% \slxx - \setugvalue {#1#2}{\setcurrentfontstylealternative {#1}{#2}}}% \rmsl + \ifcsname #1#3\endcsname\else\setugvalue {#1#3}{\setcurrentfontstylesize {#1}{#3}}\fi % \rma + \ifcsname #2#3\endcsname\else\setugvalue {#2#3}{\setcurrentfontalternativesize {#2}{#3}}\fi % \sla + \ifcsname #1#2#3\endcsname\else\setugvalue {#1#2#3}{\setcurrentfontstylealternativesize{#1}{#2}{#3}}\fi % \rmsla + \ifcsname #1\endcsname\else\setugvalue {#1}{\setcurrentfontstyle {#1}}\fi % \rm + \ifcsname #2\endcsname\else\setugvalue {#2}{\setcurrentfontalternative {#2}}\fi % \sl + \ifcsname #1\c!x\endcsname\else\setugvalue {#1\c!x}{\setcurrentfontxstylealternative {#1}}\fi % \rmx + \ifcsname#1\c!xx\endcsname\else\setugvalue{#1\c!xx}{\setcurrentfontxxstylealternative {#1}}\fi % \rmxx + \ifcsname #2\c!x\endcsname\else\setugvalue {#2\c!x}{\setcurrentfontxalternative {#2}}\fi % \slx + \ifcsname#2\c!xx\endcsname\else\setugvalue{#2\c!xx}{\setcurrentfontxxalternative {#2}}\fi % \slxx + \ifcsname #1#2\endcsname\else\setugvalue {#1#2}{\setcurrentfontstylealternative {#1}{#2}}\fi} % \rmsl \def\dodefinedefaultbodyfont[#1][#2][#3]% sizes styles identifier {\def\dododefinedefaultbodyfont##1% @@ -3226,9 +3225,6 @@ \ifx\fontalternative\c!bs \sl \else \tf \fi\fi} -\let\typeface\normaltypeface -\let\boldface\normalboldface - \unexpanded\def\swaptypeface {\relax \ifx\fontalternative\c!it \tf \else @@ -3238,6 +3234,10 @@ \ifx\fontalternative\c!bi \bf \else \emphasistypeface \fi\fi\fi\fi\fi} +\let\typeface\normaltypeface +\let\boldface\normalboldface +\let\swapface\swaptypeface + %D To be set with the default body font environment: \type %D {em} being \type {slanted} or \type {italic}. @@ -3580,36 +3580,90 @@ \let\thedefinedfont\relax -\def\symbolicsizedfont#1#2#3% - {\scaledfontsize#1% - \scaledfontsize#2\scaledfontsize - \font\thedefinedfont=\truefontname{\glyphfontfile{#3}} at \currentfontbodyscale\scaledfontsize\relax - \thedefinedfont} +% \def\symbolicsizedfont#1#2#3% +% {\scaledfontsize#1% +% \scaledfontsize#2\scaledfontsize +% \font\thedefinedfont=\truefontname{\glyphfontfile{#3}} at \currentfontbodyscale\scaledfontsize\relax +% \thedefinedfont} +% +% \def\symbolicscaledfont +% {\symbolicsizedfont\fontbody} +% +% \unexpanded\def\symbolicfont +% {\symbolicsizedfont\fontbody\plusone} +% +% \unexpanded\def\getglyph#1#2% slow, faster, much faster +% %{{\definefont[\s!dummy][\glyphfontfile{#1} sa \currentfontscale]\dummy#2}} +% %{{\definefont[\s!dummy][\glyphfontfile{#1} sa *]\dummy#2}} +% %{{\symbolicfont{#1}#2}} +% {{\symbolicfont{#1}\doifnumberelse{#2}\char\donothing#2}} +% +% \unexpanded\def\getscaledglyph#1#2#3% +% {{\symbolicscaledfont{#1}{#2}\doifnumberelse{#3}\char\donothing#3}} +% +% \unexpanded\def\getrawglyph#1#2% for simple symbols +% {{\scaledfontsize\fontbody +% \font\thedefinedfont=#1 at \currentfontbodyscale\scaledfontsize\relax +% \thedefinedfont\doifnumberelse{#2}\char\donothing#2}} +% +% \unexpanded\def\getfontchar#1#2% +% {{\symbolicfont{#1}\fontchar{#2}}} + +\def\setscaledstyledsymbolicfont#1#2#3% quite a slowdown, glyphfontfile + {\edef\askedsymbolfont{\truefontname{\glyphfontfile{#3}} at \the\dimexpr#2\dimexpr\currentfontbodyscale\dimexpr#1}% + \ifcsname\??ss->\askedsymbolfont\endcsname + \csname\??ss->\askedsymbolfont\endcsname + \else + \dodefinesymbolicfont + \fi} + +\def\setscaleddirectsymbolicfont#1#2#3% quite a slowdown, glyphfontfile + {\edef\askedsymbolfont{\truefontname{#3} at \the\dimexpr#2\dimexpr\currentfontbodyscale\dimexpr#1}% + \ifcsname\??ss->\askedsymbolfont\endcsname + \csname\??ss->\askedsymbolfont\endcsname + \else + \dodefinesymbolicfont + \fi} + +\def\setstyledsymbolicfont#1% quite a slowdown, glyphfontfile + {\edef\askedsymbolfont{\truefontname{\glyphfontfile{#1}} at \the\dimexpr\currentfontbodyscale\dimexpr\fontbody}% + \ifcsname\??ss->\askedsymbolfont\endcsname + \csname\??ss->\askedsymbolfont\endcsname + \else + \dodefinesymbolicfont + \fi} -\def\symbolicscaledfont - {\symbolicsizedfont\fontbody} +\def\setdirectsymbolicfont#1% + {\edef\askedsymbolfont{\truefontname{#1} at \the\dimexpr\currentfontbodyscale\dimexpr\fontbody}% + \ifcsname\??ss->\askedsymbolfont\endcsname + \csname\??ss->\askedsymbolfont\endcsname + \else + \dodefinesymbolicfont + \fi} -\unexpanded\def\symbolicfont - {\symbolicsizedfont\fontbody\plusone} +\def\dodefinesymbolicfont + {\definefont[currentsymbolfont][\askedsymbolfont]% + \currentsymbolfont + \global\expandafter\let\csname\??ss->\askedsymbolfont\endcsname\lastrawfontcall} -\unexpanded\def\getglyph#1#2% slow, faster, much faster - %{{\definefont[\s!dummy][\glyphfontfile{#1} sa \currentfontscale]\dummy#2}} - %{{\definefont[\s!dummy][\glyphfontfile{#1} sa *]\dummy#2}} - %{{\symbolicfont{#1}#2}} - {{\symbolicfont{#1}\doifnumberelse{#2}\char\donothing#2}} +\unexpanded\def\getnamedglyphstyled#1#2{{\setstyledsymbolicfont{#1}\ctxlua{fonts.char("#2")}}} +\unexpanded\def\getnamedglyphdirect#1#2{{\setdirectsymbolicfont{#1}\ctxlua{fonts.char("#2")}}} +\unexpanded\def\getglyphstyled #1#2{{\setstyledsymbolicfont{#1}\doifnumberelse{#2}\char\donothing#2}} +\unexpanded\def\getglyphdirect #1#2{{\setdirectsymbolicfont{#1}\doifnumberelse{#2}\char\donothing#2}} +\unexpanded\def\getscaledglyph #1#2#3{{\setscaledstyledsymbolicfont{#1}{#2}\doifnumberelse{#3}\char\donothing#3}} -\unexpanded\def\getscaledglyph#1#2#3% - {{\symbolicscaledfont{#1}{#2}\doifnumberelse{#3}\char\donothing#3}} +\let\getglyph \getglyphstyled % old +\let\getrawglyph \getglyphdirect % old +\let\symbolicsizedfont\setscaledstyledsymbolicfont % old +\let\symbolicfont \setstyledsymbolicfont % old -\unexpanded\def\getrawglyph#1#2% for simple symbols - {{\scaledfontsize\fontbody - \font\thedefinedfont=#1 at \currentfontbodyscale\scaledfontsize\relax - \thedefinedfont\doifnumberelse{#2}\char\donothing#2}} +\unexpanded\def\symbolicscaledfont{\setsscaledstyledsymbolicfont\fontbody} +\unexpanded\def\symbolicscaledfont{\setscaledstyledsymbolicfont\fontbody} %D The last implementation of \type {\getglyph} permits %D definitions like: %D -%D \starttyping +%D \starttypings %D \definefontsynonym [EuroSans] [eurose] %D \definefontsynonym [EuroSansBold] [euroseb] %D \definefontsynonym [EuroSansItalic] [eurosei] |