summaryrefslogtreecommitdiff
path: root/tex/context/base/font-xtx.mkii
diff options
context:
space:
mode:
authorMarius <mariausol@gmail.com>2010-07-15 23:20:05 +0300
committerMarius <mariausol@gmail.com>2010-07-15 23:20:05 +0300
commit83a331fff83ac18314885a39e959ca0c10f316f7 (patch)
tree12e28253c45a07c819f98513827b0b3383dd5b0a /tex/context/base/font-xtx.mkii
parentb0f61c557fa27bddb54ad085c9dc9beefc851a30 (diff)
downloadcontext-83a331fff83ac18314885a39e959ca0c10f316f7.tar.gz
beta 2010-07-15 15:05
Diffstat (limited to 'tex/context/base/font-xtx.mkii')
-rw-r--r--tex/context/base/font-xtx.mkii93
1 files changed, 91 insertions, 2 deletions
diff --git a/tex/context/base/font-xtx.mkii b/tex/context/base/font-xtx.mkii
index d6086b44e..9930124be 100644
--- a/tex/context/base/font-xtx.mkii
+++ b/tex/context/base/font-xtx.mkii
@@ -19,8 +19,95 @@
\unprotect
-%D Loading:
+%D Features:
+
+% \definefontfeature[default] [liga=yes,texligatures=yes,texquotes=yes]
+% \definefontfeature[default-caps][liga=yes,texligatures=yes,texquotes=yes,smcp=yes,script=latn]
+%
+% \starttypescript [serif] [palatino-nova-regular] [name]
+% \definefontsynonym[Serif] [palatinonova-regular][features=default]
+% \definefontsynonym[SerifCaps][palatinonova-regular][features=default-caps] % also sets Serif
+% \stoptypescript
+%
+% \starttypescript [serif] [palatino-nova-regular] [name]
+% \definefontsynonym[Serif] [palatinonova-regular*default]
+% \definefontsynonym[SerifCaps] [palatinonova-regular*default-caps]
+% \stoptypescript
+
+% \definetypeface[mainface][rm][serif][palatino-nova-regular][default] \setupbodyfont[mainface]
+%
+% \starttext
+% ``Test'' -- --- ff fi fl \sc ``Test'' -- --- ff fi fl
+% \stoptext
+
+% \starttext
+% \definefont
+% [blabla]
+% [name:Latin Modern Something]
+% \definefont
+% [blabla]
+% [file:texnansi-lmr10]
+% \blabla test
+% \definefont
+% [blabla]
+% [texnansi-lmtt10]
+% \blabla test
+% \stoptext
+
+\def\definefontfeature
+ {\dotripleargument\dodefinefontfeature}
+
+\def\dododefinefontfeature#1%
+ {\edef\!!stringa{\ifx\!!stringa\empty\else\!!stringa,\fi\executeifdefined{\??fa#1}\empty}}
+
+\def\dodefinefontfeature[#1][#2][#3]%
+ {\doifassignmentelse{#2}
+ {\setevalue{\??fa#1}{#2}}
+ {\let\!!stringa\empty
+ \processcommalist[#2]\dododefinefontfeature
+ \setevalue{\??fa#1}{\ifx\!!stringa\empty\else\!!stringa,\fi#3}}}
+
+\definefontfeature
+ [default]
+ [liga=yes,kern=yes,tlig=yes,trep=yes] % texligatures=yes,texquotes=yes
+
+\definefontfeature
+ [smallcaps]
+ [liga=yes,kern=yes,tlig=yes,trep=yes,smcp=yes] % texligatures=yes,texquotes=yes
+
+\definefontfeature
+ [oldstyle]
+ [liga=yes,kern=yes,tlig=yes,trep=yes,onum=yes] % texligatures=yes,texquotes=yes
+
+\definefontfeature % no calt
+ [arabic]
+ [language=dflt,script=arab,
+ init=yes,medi=yes,fina=yes,isol=yes,
+ liga=yes,dlig=yes,rlig=yes,clig=yes,
+ mark=yes,mkmk=yes,kern=yes,curs=yes]
+
+\definefontfeature
+ [none]
+ [features=no]
+
+%D Overloaded:
+
+\def\getfontfileparameters#1% can be simpler for mkii (no features)
+ {\edef\@@truefontname{\truefontname{#1}}%
+ \edef\currentfontfileencoding{\truefontdata\@@truefontname\s!encoding}%
+ \edef\currentfontfilemapping {\truefontdata\@@truefontname\s!mapping }%
+ \edef\currentfontfilehandling{\truefontdata\@@truefontname\s!handling}%
+ \edef\currentfontfilefeatures{\truefontdata\@@truefontname\s!features}}
+
+\def\updatefontparameters
+ {\edef\@@fontencoding{\truefontdata\fontfile \s!encoding}%
+ \edef\@@fontmapping {\truefontdata\fontfile \s!mapping }%
+ \edef\@@fonthandling{\truefontdata\somefontname\s!handling}%
+ \edef\@@fontfeatures{\truefontdata\fontfile \s!features}%
+ \edef\@@fontskewchar{\truefontdata\fontfile \s!skewchar}}
+%D Loading:
+%D
%D for some reason xetex does not support [filename] for tfm files and
%D quotes also behave kind of strange " vs ' vs [ vs ...
%D
@@ -219,7 +306,9 @@
\doifnextoptionalelse\dodefinefontsynonym\nodefinefontsynonym}
\def\nodefinefontsynonym
- {\@EA\let\csname\??ff\fontclass\@@fontname\endcsname\@@fontfile}
+ {\@EA\let\csname\??ff\fontclass\@@fontname\endcsname\@@fontfile
+% \@EA\let\csname\??ff\@@fontfile\s!features\endcsname\undefined
+}
\def\dodefinefontsynonym[#1]%
{\edef\@@fontdata{#1}%