%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 \registerctxluafile{font-ini}{} \registerctxluafile{font-log}{} \registerctxluafile{font-con}{} \registerctxluafile{font-cft}{} \registerctxluafile{font-enc}{} \registerctxluafile{font-agl}{} % if needed we can comment this and delay loading \registerctxluafile{font-cid}{} % cid maps \registerctxluafile{font-map}{optimize} % the otf font loader: % helpers \registerctxluafile{font-otr}{optimize} % opentype fontloader \registerctxluafile{font-web}{} % opentype fontloader \registerctxluafile{font-cff}{optimize} % quadratic outlines \registerctxluafile{font-ttf}{optimize} % cubic outlines \registerctxluafile{font-dsp}{optimize} % ... for this one \registerctxluafile{font-hsh}{} % hashes used by context \registerctxluafile{font-vfc}{} \registerctxluafile{font-prv}{} % needs hashes \registerctxluafile{font-nod}{optimize} \registerctxluafile{font-oti}{} % otf initialization \registerctxluafile{font-ott}{} % otf tables (first) \registerctxluafile{font-otl}{} \registerctxluafile{font-oto}{} \registerctxluafile{font-otj}{optimize} \registerctxluafile{font-oup}{} \registerctxluafile{font-ota}{} \registerctxluafile{font-ots}{optimize} \registerctxluafile{font-otd}{optimize} \registerctxluafile{font-otc}{} \registerctxluafile{font-oth}{} \registerctxluafile{font-osd}{} %registerctxluafile{font-osm}{} \ifcase\contextlmtxmode \ifnum\luatexversion>111 \doifelsefileexists{font-ocm.lua} {\registerctxluafile{font-ocm}{}} % mkiv new {\registerctxluafile{font-ocl}{}} \else \registerctxluafile{font-ocl}{} % generic (will become luatex-fonts-ocl) \fi \else \registerctxluafile{font-ogr}{} % lmtx \fi % we use otf code for type one \registerctxluafile{font-onr}{optimize} \registerctxluafile{font-one}{optimize} \registerctxluafile{font-afk}{} % tfm \registerctxluafile{font-tpk}{optimize} \registerctxluafile{font-tfm}{} % name database \registerctxluafile{font-syn}{} \registerctxluafile{font-trt}{} % shapes \registerctxluafile{font-shp}{} % so far \registerctxluafile{font-pat}{} % patchers \registerctxluafile{node-fnt}{} % here \registerctxluafile{font-mps}{} % outline fun \registerctxluafile{font-lua}{} \registerctxluafile{font-vir}{} \registerctxluafile{font-enh}{} \registerctxluafile{good-ini}{} \registerctxluafile{good-gen}{} \registerctxluafile{good-ctx}{} \registerctxluafile{good-mth}{} \registerctxluafile{font-def}{} \registerctxluafile{font-ctx}{} % after def as it overloads % extensions, order matters \registerctxluafile{font-imp-ligatures}{} \registerctxluafile{font-imp-tex}{} \registerctxluafile{font-imp-reorder}{} \registerctxluafile{font-imp-properties}{} \registerctxluafile{font-imp-unicode}{} \registerctxluafile{font-imp-math}{} \registerctxluafile{font-imp-notused}{} \registerctxluafile{font-imp-effects}{} \registerctxluafile{font-imp-quality}{} \registerctxluafile{font-imp-italics}{} \registerctxluafile{font-imp-dimensions}{} \registerctxluafile{font-imp-spacekerns}{} \doifelsefileexists{font-imp-scripts.lua} { \registerctxluafile{font-imp-scripts}{} } { % not yet, lmtx feature } \registerctxluafile{font-imp-tracing}{} % comes last! \registerctxluafile{font-fbk}{} \registerctxluafile{font-aux}{} \registerctxluafile{font-lig}{} % 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 % we can also move the lookups to the fonts.namespace (of commands) % one can also directly use the clf calls when speed is needed \def\dolookupfontbyspec #1{\clf_fontlookupinitialize{#1}} \def\dolookupnoffound {\clf_fontlookupnoffound} \def\dolookupgetkeyofindex#1#2{\clf_fontlookupgetkeyofindex{#1}\numexpr#2\relax} \def\dolookupgetkey #1{\clf_fontlookupgetkey{#1}} \def\cleanfontname #1{\clf_cleanfontname{#1}} \unexpanded\def\setfontofid #1{\clf_setfontofid\numexpr#1\relax} % this is an ugly hack needed for postponed inclusion stuff ... don't try % to understand this ... these are kind of old mkiv solutions \unexpanded\def\typethreefont#1{\setfontid#1\relax} \unexpanded\def\typethreechar#1{\char#1\hskip-\fontcharwd\font#1\relax} \unexpanded\def\typethreelast#1{\char#1\relax} \unexpanded\def\typethreecode#1{\pdfliteral direct {#1}} \newtoks\typethreetoks \let \typethreemacro\empty \typethreetoks {% \setbox\zerocount\hpack{\typethreemacro}% \setbox\zerocount\hpack{\raise\dp\zerocount\box\zerocount}% } \protect \endinput