%D \module %D [ file=font-lib, %D version=2011.01.13, % (copied fron font-ini) %D title=\CONTEXT\ Font Macros, %D subtitle=Libraries, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %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 Font Macros / Libraries} \unprotect \newinteger\scaledfontmode \newinteger\scaledfontsize \newinteger\lastfontid \newinteger\c_font_future_glyph_scale \newinteger\c_font_scaled_font_mode_saved \newinteger\c_font_scaled_points \ifdefined\globalbodyfontsize \else \newdimension\globalbodyfontsize \fi \ifdefined\localbodyfontsize \else \newdimension\localbodyfontsize \fi \ifdefined\bodyfontsize \else \newdimension\bodyfontsize \fi \registerctxluafile{font-ini}{autosuffix} \registerctxluafile{font-log}{} \registerctxluafile{font-con}{autosuffix} % kind of early %registerctxluafile{font-cft}{} \registerctxluafile{font-enc}{} \registerctxluafile{font-fmp}{autosuffix} \registerctxluafile{font-agl}{} % if needed we can comment this and delay loading \registerctxluafile{font-cid}{} % cid maps \registerctxluafile{font-map}{} % helpers \registerctxluafile{font-otr}{} % opentype fontloader \registerctxluafile{font-web}{} % opentype fontloader \registerctxluafile{font-cff}{autosuffix} % quadratic outlines \registerctxluafile{font-ttf}{autosuffix} % cubic outlines \registerctxluafile{font-dsp}{autosuffix} \registerctxluafile{font-hsh}{autosuffix} % hashes used by context \registerctxluafile{font-vfc}{autosuffix} \registerctxluafile{font-prv}{} % needs hashes \registerctxluafile{font-vir}{} \registerctxluafile{font-nod}{} \registerctxluafile{font-oti}{} % otf initialization \registerctxluafile{font-ott}{} % otf tables (first) \registerctxluafile{font-otl}{autosuffix} \registerctxluafile{font-oto}{autosuffix} \registerctxluafile{font-otj}{autosuffix} \registerctxluafile{font-oup}{} \registerctxluafile{font-ota}{autosuffix} \registerctxluafile{font-ots}{autosuffix} \registerctxluafile{font-otd}{autosuffix} \registerctxluafile{font-otc}{} \registerctxluafile{font-oth}{} % \doifelsefileexists{font-osd-new.lmt}{ % \registerctxluafile{font-osd-new}{autosuffix} % } { \registerctxluafile{font-osd}{} % } %registerctxluafile{font-osm}{} \registerctxluafile{font-ogr}{autosuffix} % we use otf code for type one \registerctxluafile{font-onr}{autosuffix} \registerctxluafile{font-one}{autosuffix} \registerctxluafile{font-afk}{} \registerctxluafile{font-txt}{autosuffix} % tfm \registerctxluafile{font-tpk}{autosuffix} \registerctxluafile{font-tfm}{autosuffix} % name database \registerctxluafile{font-syn}{} \registerctxluafile{font-trt}{} % shapes \registerctxluafile{font-shp}{autosuffix} % so far \registerctxluafile{font-pat}{} % patchers \registerctxluafile{node-fnt}{autosuffix} % here \registerctxluafile{font-lua}{} \registerctxluafile{font-enh}{autosuffix} \registerctxluafile{good-ini}{} \registerctxluafile{good-gen}{autosuffix} \registerctxluafile{good-ctx}{} \registerctxluafile{good-mth}{autosuffix} \registerctxluafile{font-def}{autosuffix} \registerctxluafile{font-ctx}{autosuffix} % after def as it overloads % extensions, order matters \registerctxluafile{font-imp-checks}{autosuffix} \registerctxluafile{font-imp-ligatures}{autosuffix} \registerctxluafile{font-imp-tex}{} \registerctxluafile{font-imp-reorder}{} \registerctxluafile{font-imp-properties}{autosuffix} \registerctxluafile{font-imp-unicode}{} \registerctxluafile{font-imp-text}{autosuffix} \registerctxluafile{font-imp-math}{autosuffix} \registerctxluafile{font-imp-notused}{} \registerctxluafile{font-imp-effects}{autosuffix} \registerctxluafile{font-imp-quality}{autosuffix} \registerctxluafile{font-imp-italics}{autosuffix} \registerctxluafile{font-imp-dimensions}{} \registerctxluafile{font-imp-spacekerns}{} \registerctxluafile{font-imp-tweaks}{} \registerctxluafile{font-imp-combining}{} \registerctxluafile{font-imp-scripts}{autosuffix} \registerctxluafile{font-imp-sanitize}{autosuffix} % fixes for indic fonts \registerctxluafile{font-imp-digits}{autosuffix} \registerctxluafile{font-imp-tracing}{autosuffix} % comes last! \registerctxluafile{font-fbk}{autosuffix} \registerctxluafile{font-aux}{} \registerctxluafile{font-lig}{autosuffix} % only for experiments so try to avoid it %D Some low level helpers %D %D \starttyping %D \def\TestLookup#specification% %D {\dolookupfontbyspec{#specification} %D pattern: #specification, found: \dolookupnoffound %D \blank %D \dorecurse {\dolookupnoffound} {% %D \recurselevel:~\dolookupgetkeyofindex{fontname}{\recurselevel}\quad %D }% %D \blank} %D %D \TestLookup{familyname=helveticaneue} %D \TestLookup{familyname=helveticaneue,weight=bold} %D \TestLookup{familyname=helveticaneue,weight=bold,style=italic} %D \stoptyping %D We can also move the lookups to the fonts.namespace (of commands) one can also %D directly use the clf calls when speed is needed. % todo: public implementors: \permanent \def\dolookupfontbyspec #1{\clf_fontlookupinitialize{#1}} \permanent \def\dolookupnoffound {\clf_fontlookupnoffound} \permanent \def\dolookupgetkeyofindex#1#2{\clf_fontlookupgetkeyofindex{#1}\numexpr#2\relax} \permanent \def\dolookupgetkey #1{\clf_fontlookupgetkey{#1}} \permanent \def\cleanfontname #1{\clf_cleanfontname{#1}} \permanent\protected\def\setfontofid #1{\clf_setfontofid\numexpr#1\relax} %D I have to put it someplace, so here: %D %D \starttyping %D \definefontfeature[test][mode=plug,features=text] %D \definefont[FontA][Serif*test] %D \definefont[FontB][Serif*test] %D {\FontA aaa}{\FontB\glyphscale 1200 bbb} %D {\FontA aaa}{\FontB\glyphscale 1200 bbb} %D \stoptyping \protect \endinput