diff options
author | Mojca Miklavec <mojca.miklavec@gmail.com> | 2012-05-14 17:38:55 +0000 |
---|---|---|
committer | Mojca Miklavec <mojca.miklavec@gmail.com> | 2012-05-14 17:38:55 +0000 |
commit | 15995e10bfc68edf79970c4ea4fbb6678566c46e (patch) | |
tree | 2de7ca2a83f2d37ef043ad7429a5cb945bb79ddb /Master/texmf-dist/tex/context/base/font-col.mkvi | |
parent | c9a39f716f1e5ec820ed3aab2c9aef25c5a9d730 (diff) |
ConTeXt 2012.05.14 16:00
git-svn-id: svn://tug.org/texlive/trunk@26371 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/context/base/font-col.mkvi')
-rw-r--r-- | Master/texmf-dist/tex/context/base/font-col.mkvi | 137 |
1 files changed, 137 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/context/base/font-col.mkvi b/Master/texmf-dist/tex/context/base/font-col.mkvi new file mode 100644 index 00000000000..030e9aef7f2 --- /dev/null +++ b/Master/texmf-dist/tex/context/base/font-col.mkvi @@ -0,0 +1,137 @@ +%D \module +%D [ file=font-col, +%D version=2008.06.11, +%D title=\CONTEXT\ Font Macros, +%D subtitle=Fallbacks (collections), +%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. + +% ! EXPERIMENTAL ! code will be made more nice +% +% actually we can now do more at the lua end + +% todo: missing only, force always, multiple fallbacks with test, scale +% +% \resetfontfallback [whatever] +% +% \definefontfallback [whatever] [Slanted] [0x0060-0x007F] [force=yes] +% \definefontfallback [whatever] [Bold] [0x0080-0x00FF,0x00A0-0x00AF] [rscale=1.2] +% \definefontfallback [whatever] [BoldSlanted] [0x00C0-0x00C7] [check=yes,force=yes] + +\writestatus{loading}{ConTeXt Font Macros / Collections} + +\registerctxluafile{font-col}{1.001} + +\unprotect + +\unexpanded\def\definefontfallback{\doquadrupleempty\font_fallbacks_define} +\unexpanded\def\resetfontfallback {\dodoubleempty \font_fallbacks_reset } + +\def\font_fallbacks_define[#name][#font][#ranges][#settings]% + {\ctxcommand{fontcollectiondefine("#name","#font",\!!bs#ranges\!!es,\!!bs#settings\!!es)}} + +\def\font_fallbacks_reset[#name][#font]% + {\ctxcommand{fontcollectionreset("#name","#font")}} + +\def\font_fallbacks_prepare#name% + {\ctxcommand{fontcollectionprepare("#name")}} % add fallbacks to last font + +% we might as well move the handling to lua but then we need to pass the +% fallbacks, skewchar etc. + +\newconditional\c_font_fallbacks_in_progress + +\def\font_fallbacks_prepare_indeed#fallbacks% + {\begingroup + \settrue\c_font_fallbacks_in_progress + \lastrawfontcall % sets current font id + \font_fallbacks_prepare#fallbacks% + \endgroup} + +\let\m_font_fallbacks\empty % set in the font-ini + +\appendtoks + \ifconditional\c_font_fallbacks_in_progress\else + \ifx\m_font_fallbacks\empty + \ifx\m_font_class_fallbacks\empty + \else + \font_fallbacks_prepare_indeed\m_font_class_fallbacks + \fi + \else + \font_fallbacks_prepare_indeed\m_font_fallbacks + \fi + \fi +\to\everydefinefont + +\def\font_fallbacks_start_cloning + {\begingroup + \let\savedfontspec\somefontspec} + +\def\font_fallbacks_stop_cloning + {\endgroup} + +\def\font_fallbacks_clone_unique#specification#scale% kind of dododefinefont + {\ctxcommand{fontcollectionreport("defining #specification (relative scale: #scale)")}% brrr + \setfalse\c_font_auto_size + \let\lastfontidentifier\s!dummy + \def\v_font_size_relative{#scale}% + \let\v_font_size_absolute\fontbody + \font_helpers_low_level_define{#specification}\v_font_identifier_basic + \csname\v_font_identifier_basic\endcsname + \setfalse\c_font_auto_size} % no \setfontcharacteristics and \the\everyfontswitch needed + +\def\font_fallbacks_clone_inherited#font% also a second argument + {\font_fallbacks_clone_unique{#font \savedfontspec}} + +\def\font_fallbacks_register_main #name{\ctxcommand{fontcollectionregister("#name")}} +\def\font_fallbacks_prepare_clone_vectors#name{\ctxcommand{fontcollectionclone("#name")}} + +% check : only replace when present in replacement font (default: no) +% force : force replacent even when basefont has glyph (default: yes) + +% \definefontfallback [whatever] [Slanted] [0x0060-0x007F] [force=yes] +% \definefontfallback [whatever] [Bold] [0x0080:0x00FF,0x00A0:0x00AF] [rscale=2.0] +% \definefontfallback [whatever] [BoldSlanted] ["00C0-"00C7] [check=yes,force=yes] +% \definefontfallback [whatever] [Mono] [latinextendeda] [force=yes] % 0x0100:0x017F +% \definefontfallback [whatever] [Mono] [latin extended a] [force=yes] % 0x0100:0x017F +% +% \definefontsynonym[SerifPlus][Serif][fallbacks=whatever] +% +% \showfont[SerifPlus][all] + +% \definefontfeature[zh][mode=node,script=hang,lang=zhs] +% \definefontfallback[serifwhatever] [lmroman10-regular] [0x0000-0x0400][force=yes] +% \definefontfallback[serifboldwhatever] [lmroman10-bold] [0x0000-0x0400][force=yes] +% \definefontfallback[serifitalicwhatever] [lmroman10-italic] [0x0000-0x0400][force=yes] +% \definefontfallback[serifbolditalicwhatever][lmroman10-bolditalic][0x0000-0x0400][force=yes] +% +% \starttypescript [serif] [zhfont] +% \definefontsynonym [zhserif] [AdobeSongStd-Light] [features=zh,fallbacks=serifwhatever] +% \definefontsynonym [zhserifbold] [AdobeHeitiStd-Regular][features=zh,fallbacks=serifboldwhatever] +% \definefontsynonym [zhserifitalic] [AdobeKaitiStd-Regular][features=zh,fallbacks=serifitalicwhatever] +% \definefontsynonym [zhserifbolditalic][AdobeHeitiStd-Regular][features=zh,fallbacks=serifbolditalicwhatever] +% \stoptypescript +% +% \starttypescript [serif][zhfont][name] +% \definefontsynonym[Serif] [zhserif] % [fallbacks=serifwhatever] +% \definefontsynonym[SerifBold] [zhserifbold] % [fallbacks=serifboldwhatever] +% \definefontsynonym[SerifItalic] [zhserifitalic] % [fallbacks=serifitalicwhatever] +% \definefontsynonym[SerifBoldItalic] [zhserifbolditalic] % [fallbacks=serifbolditalicwhatever] +% \stoptypescript +% +% \starttypescript[myfont] +% \definetypeface[myfont][rm][serif][zhfont] +% \stoptypescript +% +% \usetypescript[myfont] \setupbodyfont[myfont,rm,12pt] +% +% \starttext +% fonts {\bf fonts} {\bi fonts} {\it fonts} +% \stoptext + +\protect \endinput |