summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/context/base/typo-krn.mkiv
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/context/base/typo-krn.mkiv')
-rw-r--r--Master/texmf-dist/tex/context/base/typo-krn.mkiv59
1 files changed, 59 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/context/base/typo-krn.mkiv b/Master/texmf-dist/tex/context/base/typo-krn.mkiv
new file mode 100644
index 00000000000..e2f10d8066a
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/typo-krn.mkiv
@@ -0,0 +1,59 @@
+%D \module
+%D [ file=typo-krn,
+%D version=2009.03.27, % code moved from core-spa.mkiv
+%D title=\CONTEXT\ Typesetting Macros,
+%D subtitle=Spacing,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=\PRAGMA]
+%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 Typesetting Macros / Kerning}
+
+\unprotect
+
+\registerctxluafile{typo-krn}{1.001}
+
+\definesystemattribute[kern]
+
+% more
+%
+% {\setcharacterkerning[extrakerning]\input davis\relax}
+
+\newcount \maxcharacterkerningid
+
+\def\definecharacterkerning
+ {\dosingleargument\dodefinecharacterkerning}
+
+\def\dodefinecharacterkerning[#1]%
+ {\ifcsname\??ck#1\endcsname \else
+ \global\advance\maxcharacterkerningid\plusone
+ \setxvalue{\??ck:#1}{\the\maxcharacterkerningid}%
+ \fi}
+
+\def\setupcharacterkerning
+ {\dodoubleargument\dosetupcharacterkerning}
+
+\def\dosetupcharacterkerning[#1][#2]%
+ {\ifcsname\??ck:#1\endcsname
+ \begingroup
+ \getparameters[\??ck][\c!factor=0,#2]%
+ \ctxlua{kerns.setspacing(\getvalue{\??ck:#1},\@@ckfactor)}%
+ \endgroup
+ \fi}
+
+\def\setcharacterkerning
+ {\ctxlua{kerns.enabled=true}%
+ \gdef\setcharacterkerning[##1]{\dosetattribute{kern}{\csname\??ck:##1\endcsname}}%
+ \setcharacterkerning}
+
+\letvalue{\??ck:\s!reset}\attributeunsetvalue
+
+\definecharacterkerning[extrakerning]
+
+\setupcharacterkerning[extrakerning][\c!factor=.125]
+
+\protect \endinput