summaryrefslogtreecommitdiff
path: root/tex/context/base/font-ini.mkiv
diff options
context:
space:
mode:
authorMarius <mariausol@gmail.com>2011-09-08 22:40:15 +0300
committerMarius <mariausol@gmail.com>2011-09-08 22:40:15 +0300
commita1edc418e36206150ae285d16e492bceaacdb7fc (patch)
tree1603ae7bccd6d5e03b094b160d863083953c4101 /tex/context/base/font-ini.mkiv
parent3953a443f750b4cd90f0b0a906c98ca5642be22a (diff)
downloadcontext-a1edc418e36206150ae285d16e492bceaacdb7fc.tar.gz
beta 2011.09.08 21:29
Diffstat (limited to 'tex/context/base/font-ini.mkiv')
-rw-r--r--tex/context/base/font-ini.mkiv69
1 files changed, 30 insertions, 39 deletions
diff --git a/tex/context/base/font-ini.mkiv b/tex/context/base/font-ini.mkiv
index 67932657e..807b73647 100644
--- a/tex/context/base/font-ini.mkiv
+++ b/tex/context/base/font-ini.mkiv
@@ -1513,13 +1513,14 @@
\let\fontalternativelist\empty
\let\fontstylelist \empty
+\def\docheckfontnamecombinations#1%
+ {\def\dodocheckfontnamecombinations##1%
+ {\def\dododocheckfontnamecombinations####1{\checkbodyfont{####1}{##1}{#1}}%
+ \processcommacommand[\fontstylelist]\dododocheckfontnamecombinations}%
+ \processcommacommand[\fontalternativelist]\dodocheckfontnamecombinations}
+
\def\checkfontnamecombinations % we need to split math and text here ... todo (math only has mr and mb)
- {\def\docommand##1%
- {\def\dodocommand####1%
- {\def\dododocommand########1{\checkbodyfont{########1}{####1}{##1}}%
- \processcommacommand[\fontstylelist]\dododocommand}%
- \processcommacommand[\fontalternativelist]\dodocommand}%
- \processcommacommand[\fontsizelist]\docommand}
+ {\processcommacommand[\fontsizelist]\docheckfontnamecombinations}
\unexpanded\def\definefontsize[#1]% sneller met toks
{\addtocommalist{#1}\fontsizelist
@@ -1708,7 +1709,7 @@
\the\everyendfontdef
\fi}
-%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%% todo: inheritance with parent
\unexpanded\def\definebodyfontenvironment
{\dotripleempty\dodefinebodyfontenvironment}
@@ -1739,13 +1740,13 @@
\else
% speeding this up saves 0.01 sec on a run (tested 20100817)
% but some day we will clean this up anyway
- \def\docommand##1%
+ \def\dodododefinebodyfontenvironment##1%
{\scratchdimen\csname\??ft\s!default##1\endcsname\dimexpr#1\relax
\edef\tempbodyfontsize{\thenormalizedbodyfontsize\scratchdimen}%
\letvalue{\??ft#2#1##1}\tempbodyfontsize}%
- \processcommacommand[\fontrelativesizelist]\docommand
+ \processcommacommand[\fontrelativesizelist]\dodododefinebodyfontenvironment
\copyparameters
- [\??ft#2#1][\??ft\s!default]
+ [\??ft#2#1][\??ft\s!default]%
[\c!interlinespace,\c!em]%
\fi
\getparameters[\??ft#2#1][#3]%
@@ -1802,18 +1803,19 @@
{\ifcsname\??ft #1\c!em\endcsname\else\docheckbodyfontenvironment\empty {#1}\fi
\ifcsname\??ft\fontclass#1\c!em\endcsname\else\docheckbodyfontenvironment\fontclass{#1}\fi}
+\def\dodocheckbodyfontenvironment#1#2% text script scriptscript x xx big small
+ {\setevalue{\??ft#1\tempbodyfontsize#2}%
+ {\thenormalizedbodyfontsize{\csname\??ft\s!default#2\endcsname\dimexpr\tempbodyfontsize\relax}}}
+
\def\docheckbodyfontenvironment#1#2% class size (simplified version of definebodyfontenvironment)
{\@@beginfontdef
\edef\tempbodyfontsize{\thenormalizedbodyfontsize{#2}}%
\addtocommalist\tempbodyfontsize\bodyfontenvironmentlist
- \def\docommand##1% text script scriptscript x xx big small
- {\setevalue{\??ft#1\tempbodyfontsize##1}%
- {\thenormalizedbodyfontsize{\csname\??ft\s!default##1\endcsname\dimexpr\tempbodyfontsize\relax}}}%
- \processcommacommand[\fontrelativesizelist]\docommand
+ \processcommacommand[\fontrelativesizelist]{\dodocheckbodyfontenvironment{#1}}%
\copyparameters % can inherit
[\??ft#1\tempbodyfontsize][\??ft\s!default]
[\c!interlinespace,\c!em]%
-% \ifproductionrun
+ %\ifproductionrun
\ifcsname\@size@\tempbodyfontsize\endcsname \else
\letvalueempty{\@size@\tempbodyfontsize}% prevent loop
\pushmacro\fontclass
@@ -1821,7 +1823,7 @@
\normalexpanded{\defineunknownfont{\tempbodyfontsize}}% we can also inherit here
\popmacro\fontclass
\fi
-% \fi
+ %\fi
\setevalue{\@size@#1}{\noexpand\docompletefontswitch[#1]}%
\@@endfontdef}
@@ -2937,17 +2939,13 @@
%D \definefontstyle [sansserif,ss] [ss]
%D \stoptyping
+\def\dododefinefontstyle#1#2%
+ {\setvalue{\@shortstyle@#2}{#1}%
+ \setvalue{\@style@#2}{\csname#1\endcsname}}
+
\def\dodefinefontstyle[#1][#2]%
- {\rawdoifinsetelse{#2}{\fontstylelist}
- {%\debuggerinfo\m!fonts{unknown style #2}%
- }
- {%\debuggerinfo\m!fonts8{#2\space (#1)}%
- \addtocommalist{#2}\fontstylelist}%
- % check kan hier
- \def\docommand##1%
- {\setvalue{\@shortstyle@##1}{#2}%
- \setvalue{\@style@##1}{\csname#2\endcsname}}%
- \processcommalist[#1]\docommand}
+ {\rawdoifinsetelse{#2}{\fontstylelist}{}{\addtocommalist{#2}\fontstylelist}%
+ \processcommalist[#1]{\dododefinefontstyle{#2}}}
\unexpanded\def\definefontstyle
{\dodoubleargument\dodefinefontstyle}
@@ -3330,8 +3328,8 @@
%D because \PLAIN\ \TEX\ is english anyway.
\def\dodefinebodyfontswitch[#1][#2]%
- {\def\docommand##1{\setvalue{##1}{\switchtobodyfont[#2]}}%
- \processcommalist[#1]\docommand}
+ {\def\dododefinebodyfontswitch##1{\setvalue{##1}{\switchtobodyfont[#2]}}%
+ \processcommalist[#1]\dododefinebodyfontswitch}
\unexpanded\def\definebodyfontswitch
{\dodoubleargument\dodefinebodyfontswitch}
@@ -3472,13 +3470,6 @@
%D text and headings, which is accomplished by assigning both
%D arguments.
-% \def\dodefinealternativestyle[#1][#2][#3]%
-% {\def\docommand##1%
-% {\ifcsname##1\endcsname\else\setuvalue{##1}{\groupedcommand{#2}{}}\fi
-% \setvalue{\@letter@ ##1}{#2}%
-% \setvalue{\@noletter@##1}{#3}}%
-% \processcommalist[#1]\docommand}
-
\setnewconstant \currentalternativestyleindex \plusone
\def\dododefinealternativestyle#1#2#3%
@@ -4545,10 +4536,10 @@
\def\dodefinestylecollection[#1]%
{\iffirstargument
\setuvalue{#1}{\styleinstance[#1]}%
- \def\docommand##1%
- {\def\dodocommand####1{\letbeundefined{\??sx#1:##1:####1}}%
- \processcommacommand[\fontalternativelist,\s!default]\dodocommand}%
- \processcommacommand[\fontstylelist,\s!default]\docommand
+ \def\dododefinestylecollection##1%
+ {\def\dodododefinestylecollection####1{\letbeundefined{\??sx#1:##1:####1}}%
+ \processcommacommand[\fontalternativelist,\s!default]\dodododefinestylecollection}%
+ \processcommacommand[\fontstylelist,\s!default]\dododefinestylecollection
\fi}
\unexpanded\def\definestyleinstance