diff options
Diffstat (limited to 'doc/context/presentations/bachotex/2017')
-rw-r--r-- | doc/context/presentations/bachotex/2017/bachotex-2017-emoji-demo.pdf | bin | 0 -> 46443 bytes | |||
-rw-r--r-- | doc/context/presentations/bachotex/2017/bachotex-2017-emoji-demo.tex | 26 | ||||
-rw-r--r-- | doc/context/presentations/bachotex/2017/bachotex-2017-emoji.pdf | bin | 0 -> 308972 bytes | |||
-rw-r--r-- | doc/context/presentations/bachotex/2017/bachotex-2017-emoji.tex | 374 | ||||
-rw-r--r-- | doc/context/presentations/bachotex/2017/bachotex-2017-variablefonts-demo.pdf | bin | 0 -> 219237 bytes | |||
-rw-r--r-- | doc/context/presentations/bachotex/2017/bachotex-2017-variablefonts-demo.tex | 44 | ||||
-rw-r--r-- | doc/context/presentations/bachotex/2017/bachotex-2017-variablefonts.pdf | bin | 0 -> 251093 bytes | |||
-rw-r--r-- | doc/context/presentations/bachotex/2017/bachotex-2017-variablefonts.tex | 500 |
8 files changed, 944 insertions, 0 deletions
diff --git a/doc/context/presentations/bachotex/2017/bachotex-2017-emoji-demo.pdf b/doc/context/presentations/bachotex/2017/bachotex-2017-emoji-demo.pdf Binary files differnew file mode 100644 index 000000000..cce61e1b3 --- /dev/null +++ b/doc/context/presentations/bachotex/2017/bachotex-2017-emoji-demo.pdf diff --git a/doc/context/presentations/bachotex/2017/bachotex-2017-emoji-demo.tex b/doc/context/presentations/bachotex/2017/bachotex-2017-emoji-demo.tex new file mode 100644 index 000000000..ada27160b --- /dev/null +++ b/doc/context/presentations/bachotex/2017/bachotex-2017-emoji-demo.tex @@ -0,0 +1,26 @@ +\starttext + +\definefontfeature + [seguiemj-cl] + [default] + [colr=yes, + ccmp=yes, + dist=yes] + +\definefont + [MyEmoji] + [seguiemj*seguiemj-cl] + +\typefile{emoji-demo-001.tex} + +\showotfcomposition + {seguiemj*seguiemj-cl} + {1} + {\resolvedemoji + {family + man light skin tone + woman dark skin tone + girl medium skin tone + boy medium skin tone}} + +\stoptext diff --git a/doc/context/presentations/bachotex/2017/bachotex-2017-emoji.pdf b/doc/context/presentations/bachotex/2017/bachotex-2017-emoji.pdf Binary files differnew file mode 100644 index 000000000..d7e01f59c --- /dev/null +++ b/doc/context/presentations/bachotex/2017/bachotex-2017-emoji.pdf diff --git a/doc/context/presentations/bachotex/2017/bachotex-2017-emoji.tex b/doc/context/presentations/bachotex/2017/bachotex-2017-emoji.tex new file mode 100644 index 000000000..c6deb3873 --- /dev/null +++ b/doc/context/presentations/bachotex/2017/bachotex-2017-emoji.tex @@ -0,0 +1,374 @@ +% language=uk + +\setuppapersize + [S6] + +\setupbackgrounds + [page] + [background=color, + backgroundcolor=darkgray] + +\setuplayout + [backspace=24pt, + topspace=20pt, + bottomspace=8pt, + width=middle, + height=middle, + footerdistance=8pt, + footer=8pt, + header=0pt] + +\setupcolors + [textcolor=white] + +\setupbodyfont + [dejavu,14.4pt] + +\definecolor[trace:o] [s=1] +\definecolor[trace:r] [s=1] +\definecolor[trace:do][s=1] +\definecolor[trace:dr][s=1] + +\usemodule[abr-03] + +\definefontfeature[noligatures][liga=no] + +\setuphead + [section] + [page=yes, + style=\bfb, + after={\blank[3*medium]}] + +\setuphead + [subsection] + [page=no, + style=\bf\addfeature{noligatures}, + before={\blank[3*medium]}, + after={\blank}] + +\setupfooter + [strut=no, + style=\bf] + +\startdocument + [title={Picture Fonts}, + subtitle={welcome to a (beautiful) mess}, + author={Hans Hagen}, + occasion={BachoTUG 2017}] + +\startstandardmakeup + \vskip32pt + \bfd \setupinterlinespace + \documentvariable{title} + \crlf + \bfb \setupinterlinespace + \vskip12pt + \documentvariable{subtitle} + \vfill + \bfb \setupinterlinespace + \documentvariable{author} + \crlf + \documentvariable{occasion} +\stopstandardmakeup + +\startsubject[title=A Summary] + +\startitemize +\startitem + {\bf the macro package's view:} just a font like any other but it needs to configure + some extra color related properties +\stopitem +\startitem + {\bf the engine's view:} depending on the technology a normal font that needs a bit + special treatment or needs to be dealt with as collection of graphics +\stopitem +\startitem + {\bf the viewer's view:} regular outline glyphs or images tagged as kind of + characters so that their unicode representation can be cut and paste +\stopitem +\startitem + {\bf the user's view:} more pictures than glyphs although some people one can + communicate using them +\stopitem +\stopitemize + +So, in practice, for most \TEX\ users it's probably not a high priority font but more a fun +one. + +\stopsubject + +\startsubject[title=Technologies] + +As each vendor came up with something, we have to deal with a all kinds of formats. And or +course, as eagerness pushes things on the market before it's perfect we now have to deal +with all of them. + +\startitemize +\startitem + {\bf overlapping glyphs:} this technique uses the \type {colr} and \type {cpal} tables + and is actually a quite clean technology, you can combine in different ways +\stopitem +\startitem + {\bf svg graphics:} this technique uses the \type {svg} table that contains a svg vector + image +\stopitem +\startitem + {\bf bitmap graphics:} this technique uses for instance \type {sbix} tables that can have + various graphic images +\stopitem +\stopitemize + +The first two are already supported in the \CONTEXT\ font loader and processor +for a while, the last one was added recently. + +\blank + +Only the overlapping method is useable for the tens of thousands of skin tone combinations of +families, (kissing) couples, and professions. + +\stopsubject + +\startsubject[title=Preparation] + +For now one has to enable the feature: + +\startbuffer +\definefontfeature[overlay][default][ccmp=yes,colr=yes,dist=yes] +\definefontfeature[svg] [default][svg=yes] +\definefontfeature[bitmap] [default][sbix=yes] + +\definefontfeature [colored] [default] + [cmcp=yes,dist=yes, + colr=yes,svg=yes,sbix=yes] +\stopbuffer + +\typebuffer \getbuffer + +Defining a font is not different from others + +\starttyping +\definefont[MyEmojiFont] [seguiemj*overlay] +\definefontsynonym[emoji][seguiemj*overlay] +\stoptyping + +As is using: + +\starttyping +{\MyEmojiFont\resolvedemoji{woman}} +\emoji{woman} +\stoptyping + +\stopsubject + +\startsubject[title=Accessing shapes] + +\startbuffer +\definesymbol[man] [\emoji{man}] +\definesymbol[woman][\emoji{woman}] +\definesymbol[girl] [\emoji{girl}] +\definesymbol[boy] [\emoji{boy}] + +\definesymbol[family][\emoji{family man woman girl boy}] +\stopbuffer + +\typebuffer \getbuffer + +\starttyping +\definefontsynonym[emoji][file:seguiemj.ttf*default,overlay] + +\symbol[boy] \symbol[girl] \symbol[man] \symbol[woman] + +\symbol[family] +\stoptyping + +\stopsubject + +\startsubject[title=Different fonts] + +\def\ShowThem#1#2#3% + {\NC #1 + \NC default + \NC \definefontsynonym[emoji][#3*default]\symbol[boy] \symbol[girl] \symbol[man] \symbol[woman] + \NC \definefontsynonym[emoji][#3*default]\symbol[family] + \NC \NR + \NC + \NC #2 + \NC \definefontsynonym[emoji][#3*#2]\symbol[boy] \symbol[girl] \symbol[man] \symbol[woman] + \NC \definefontsynonym[emoji][#3*#2]\symbol[family] + \NC \NR} + +\starttabulate[|T|T|||] + \ShowThem{seguiemj} {overlay}{file:seguiemj.ttf} + \ShowThem{emojionecolor-svginot}{svg} {file:emojionecolor-svginot.ttf} + \ShowThem{emojionemozilla} {overlay}{file:emojionemozilla.ttf} + \ShowThem{applecoloremoji} {bitmap} {file:applecoloremoji.ttc} +\stoptabulate + +\stopsubject + +\startsubject[title=Ligatures] + +\definefontfeature[seguiemj-cl][default][colr=yes,ccmp=yes,dist=yes] +\definefontfeature[seguiemj-bw][default][ccmp=yes] + +% \definefont[MyEmoji][emojionecolor-svginot*default,svg] +% \definefont[MyEmoji][seguiemj*seguiemj-bw] +\definefont[MyEmoji][seguiemj*seguiemj-cl] +% \definefont[MyEmoji][emojionemozilla*default,overlay] +% \definefont[MyEmoji][applecoloremoji*default,bitmap] + +{\MyEmoji 👨🏽🌾 👨🏽🍳 👨🏽🎓 👨🏽🎤 👨🏽🎨 👨🏽🏫 👨🏽🏭 👨🏽💻 👨🏽💼 👨🏽🔧 👨🏽🔬 👨🏽🚀} + +\starttabulate[|T|T||] +\NC character \NC 1F477 \NC \MyEmoji \utfchar{"1F477} \NC \NR % construction worker +\NC skin modifier \NC 1F3FE \NC \MyEmoji \utfchar{"1F3FE} \NC \NR % medium dark skin +\NC ligature \NC 1F477 1F3FE \NC \MyEmoji \utfchar{"1F477}% + \utfchar{"1F3FE} \NC \NR +\NC zero width joiner \NC 0200D \NC \MyEmoji \utfchar{"0200D} \NC \NR +\NC female modifier \NC 02640 0FE0F \NC \MyEmoji \utfchar{"02640}% + \utfchar{"0FE0F} \NC \NR +\NC the whole lot \NC \NC \MyEmoji \utfchar{"1F477}% + \utfchar{"1F3FE}% + \utfchar{"0200D}% + \utfchar{"02640}% + \utfchar{"0FE0F} \NC \NR +\stoptabulate + +\starttabulate[|T|T||] +\NC 1F468 1F3FD 200D 1F33E \NC \MyEmoji 👨🏽🌾 \NC man farmer medium skin tone \NC \NR +\NC 1F468 1F3FD 200D 1F373 \NC \MyEmoji 👨🏽🍳 \NC man cook medium skin tone \NC \NR +\NC 1F468 1F3FD 200D 1F393 \NC \MyEmoji 👨🏽🎓 \NC man student medium skin tone \NC \NR +\NC 1F468 1F3FD 200D 1F3A4 \NC \MyEmoji 👨🏽🎤 \NC man singer medium skin tone \NC \NR +\NC 1F468 1F3FD 200D 1F3A8 \NC \MyEmoji 👨🏽🎨 \NC man artist medium skin tone \NC \NR +\NC 1F468 1F3FD 200D 1F3EB \NC \MyEmoji 👨🏽🏫 \NC man teacher medium skin tone \NC \NR +\NC 1F468 1F3FD 200D 1F3ED \NC \MyEmoji 👨🏽🏭 \NC man factory worker medium skin tone \NC \NR +\NC 1F468 1F3FD 200D 1F4BB \NC \MyEmoji 👨🏽💻 \NC man technologist medium skin tone \NC \NR +\NC 1F468 1F3FD 200D 1F4BC \NC \MyEmoji 👨🏽💼 \NC man office worker medium skin tone \NC \NR +\NC 1F468 1F3FD 200D 1F527 \NC \MyEmoji 👨🏽🔧 \NC man mechanic medium skin tone \NC \NR +\NC 1F468 1F3FD 200D 1F52C \NC \MyEmoji 👨🏽🔬 \NC man scientist medium skin tone \NC \NR +\NC 1F468 1F3FD 200D 1F680 \NC \MyEmoji 👨🏽🚀 \NC man astronaut medium skin tone \NC \NR +\stoptabulate + +\stopsubject + +\usemodule[fonts-emoji] + +\startsubject[title=Snippets] + +\start + + \definedfont[seguiemj*seguiemj-cl @ 32pt] + + \ShowEmojiSnippets + [family man light skin tone woman dark skin tone girl medium skin tone boy medium skin tone] + + \vskip1ex + + \ShowEmojiSnippetsOverlay + [family man light skin tone woman dark skin tone girl medium skin tone boy medium skin tone] + + \vskip1ex + + \ShowEmojiGlyphs + [family man light skin tone woman dark skin tone girl medium skin tone boy medium skin tone] + +\stop + +\stopsubject + +\startsubject[title=Using \type{\ShowEmoji[^man]}] + +\start + + \MyEmoji + + \ShowEmoji[^man] + +\stop + +\stopsubject + +\startsubject[title=Recoloring Seguiem] + +\start + +\definecolor[emoji-red] [r=.4] +\definecolor[emoji-blue] [b=.4] +\definecolor[emoji-yellow][y=.4] +\definecolor[emoji-gray] [s=.5,t=.5,a=1] + +\definefontcolorpalette + [emoji-red] + [emoji-red,emoji-gray] + +\definefontcolorpalette + [emoji-blue] + [emoji-blue,emoji-gray] + +\definefontcolorpalette + [emoji-yellow] + [emoji-yellow,emoji-gray] + +\definefontfeature[seguiemj-r][default][ccmp=yes,dist=yes,colr=emoji-red] +\definefontfeature[seguiemj-b][default][ccmp=yes,dist=yes,colr=emoji-blue] +\definefontfeature[seguiemj-y][default][ccmp=yes,dist=yes,colr=emoji-yellow] + +\definefont[MyColoredEmojiR][seguiemj*seguiemj-r @ 80pt] +\definefont[MyColoredEmojiB][seguiemj*seguiemj-b @ 80pt] +\definefont[MyColoredEmojiY][seguiemj*seguiemj-y @ 80pt] + +\MyColoredEmojiR + \resolvedemoji{man} + \resolvedemoji{woman} + \resolvedemoji{baby} + +\vskip24pt + +\MyColoredEmojiB + \resolvedemoji{triangular ruler} + \resolvedemoji{rabbit face} + \resolvedemoji{family man woman girl boy} + +\vskip24pt + +\MyColoredEmojiY + \resolvedemoji{triangular ruler} + \resolvedemoji{rabbit face} + \resolvedemoji{family man woman girl boy} + +\stop + +\page + +\starttyping +\definecolor [emoji-red] [r=.4] +\definecolor [emoji-gray] [s=.5,t=.5,a=1] + +\definefontcolorpalette + [emoji-red] + [emoji-red,emoji-gray] + +\definefontfeature + [seguiemj-r] + [default] + [ccmp=yes,dist=yes,colr=emoji-red] + +\definefont + [MyColoredEmojiR] + [seguiemj*seguiemj-r @ 80pt] + +\MyColoredEmojiR + \emoji{man} + \emoji{woman} + \emoji{baby} +\stoptyping + +\stopsubject + +\startsubject[title=Pallet \type{\ShowEmojiPalettes[1]}] + +{\MyEmoji \ShowEmojiPalettes[1]} + +\stopsubject + +\stopdocument diff --git a/doc/context/presentations/bachotex/2017/bachotex-2017-variablefonts-demo.pdf b/doc/context/presentations/bachotex/2017/bachotex-2017-variablefonts-demo.pdf Binary files differnew file mode 100644 index 000000000..bac8d54c1 --- /dev/null +++ b/doc/context/presentations/bachotex/2017/bachotex-2017-variablefonts-demo.pdf diff --git a/doc/context/presentations/bachotex/2017/bachotex-2017-variablefonts-demo.tex b/doc/context/presentations/bachotex/2017/bachotex-2017-variablefonts-demo.tex new file mode 100644 index 000000000..e9543a30a --- /dev/null +++ b/doc/context/presentations/bachotex/2017/bachotex-2017-variablefonts-demo.tex @@ -0,0 +1,44 @@ +% macros=mkvi + +\usemodule[art-01] \dontcomplain + +\starttexdefinition unexpanded TestFont #font#variant#size + \bgroup + \definedfont[name:#font#variant*default @ #size] + \setupinterlinespace + % \showstruts + % \strut + \samplefile{tufte} + \par + \egroup +\stoptexdefinition + +\starttext + +\dorecurse {5} { + + \dostepwiserecurse {8} {14} {1} { % 30 fonts + \TestFont {adobevariablefontprototype} {extralight} {##1pt} + \TestFont {adobevariablefontprototype} {light} {##1pt} + \TestFont {adobevariablefontprototype} {regular} {##1pt} + \TestFont {adobevariablefontprototype} {semibold} {##1pt} + \TestFont {adobevariablefontprototype} {bold} {##1pt} + \TestFont {adobevariablefontprototype} {black} {##1pt} + } + + \page + + % \dostepwiserecurse {8} {14} {1} { % 40 fonts + % \TestFont {avenirnextvariable} {regular} {##1pt} + % \TestFont {avenirnextvariable} {medium} {##1pt} + % \TestFont {avenirnextvariable} {bold} {##1pt} + % \TestFont {avenirnextvariable} {heavy } {##1pt} + % \TestFont {avenirnextvariable} {condensed} {##1pt} + % \TestFont {avenirnextvariable} {medium condensed} {##1pt} + % \TestFont {avenirnextvariable} {bold condensed} {##1pt} + % \TestFont {avenirnextvariable} {heavy condensed} {##1pt} + % } + +} + +\stoptext diff --git a/doc/context/presentations/bachotex/2017/bachotex-2017-variablefonts.pdf b/doc/context/presentations/bachotex/2017/bachotex-2017-variablefonts.pdf Binary files differnew file mode 100644 index 000000000..ee3537bd2 --- /dev/null +++ b/doc/context/presentations/bachotex/2017/bachotex-2017-variablefonts.pdf diff --git a/doc/context/presentations/bachotex/2017/bachotex-2017-variablefonts.tex b/doc/context/presentations/bachotex/2017/bachotex-2017-variablefonts.tex new file mode 100644 index 000000000..08050a57d --- /dev/null +++ b/doc/context/presentations/bachotex/2017/bachotex-2017-variablefonts.tex @@ -0,0 +1,500 @@ +% language=uk + +\setuppapersize + [S6] + +\setupbackgrounds + [page] + [background=color, + backgroundcolor=darkblue] + +\setuplayout + [backspace=24pt, + topspace=20pt, + bottomspace=8pt, + width=middle, + height=middle, + footerdistance=8pt, + footer=8pt, + header=0pt] + +\setupcolors + [textcolor=white] + +\setupbodyfont + [dejavu,14.4pt] + +\definecolor[trace:o] [s=1] +\definecolor[trace:r] [s=1] +\definecolor[trace:do][s=1] +\definecolor[trace:dr][s=1] + +\usemodule[abr-03] + +\definefontfeature[noligatures][liga=no] + +\setuphead + [section] + [page=yes, + style=\bfb, + after={\blank[3*medium]}] + +\setuphead + [subsection] + [page=no, + style=\bf\addfeature{noligatures}, + before={\blank[3*medium]}, + after={\blank}] + +\setupfooter + [strut=no, + style=\bf] + +\startuseMPgraphic{pagenumber} + if LastPageNumber > 0 : + draw outlinetext.f + (decimal RealPageNumber) + (withcolor "darkgray") + xysized ((RealPageNumber/LastPageNumber) * TextWidth/2,FooterHeight) ; + fi ; +\stopuseMPgraphic + +\setupfootertexts + [\useMPgraphic{pagenumber}] + +\startdocument + [title={Variable Fonts}, + subtitle={we're ready for them}, + author={Hans Hagen}, + occasion={BachoTUG 2017}] + +\startstandardmakeup + \vskip32pt + \bfd \setupinterlinespace + \documentvariable{title} + \crlf + \bfb \setupinterlinespace + \vskip12pt + \documentvariable{subtitle} + \vfill + \bfb \setupinterlinespace + \documentvariable{author} + \crlf + \documentvariable{occasion} +\stopstandardmakeup + +\startsubject[title=A Summary] + +\startitemize +\startitem + {\bf the macro package's view:} just a font but with many possible variations + in shapes (width, weight, slope, etc) and therefore a bit more complex user + interface +\stopitem +\startitem + {\bf the engine's view:} an abstraction not different from other fonts but + that needs a special treatment in the backend +\stopitem +\startitem + {\bf the viewer's view:} a font to be displayed like any other with outlines + in cff of ttf format +\stopitem +\startitem + {\bf the user's view:} an opentype font with possibly surprising shapes of + which you need to know a bit more than usual if you want to profit from it +\stopitem +\stopitemize + +So, in practice, for most \TEX\ users it's just a font that has to be supported by +\TEX\ and friends. + +\stopsubject + +\startsubject[title=Starting point] + +\startitemize +\startitem + The OpenType 1.8 specification at the MicroSoft website defined the extra + tables and explains bits and pieces. +\stopitem +\startitem + There a few fonts that have relevant tables (not all) and implement variants + as well as features. +\stopitem +\startitem + There are some posts on the internet that show a bit about axis and other things + that go on in these fonts. +\stopitem +\startitem + Luckily we have ways (in \CONTEXT) to explore what goes on in these fonts and + how they could look. +\stopitem +\startitem + Condition: no tricks, no fuzzy heuristics, just the specification should be + enough. +\stopitem +\stopitemize + +\stopsubject + +\startsubject[title=Implementation steps] + +\startitemize +\startitem + First try to render variants in order to see what we're dealing with. This was not too + hard (starting with cff) because we have already virtual font support. +\stopitem +\startitem + Next try to load the relevant tables and figure out what these deltas and such really + mean and how axis and regions and \unknown\ have to be applied. +\stopitem +\startitem + Try to make it all work on a real piece of text, so not only shapes but also features + and dimensions. +\stopitem +\startitem + Finally make sure that the font can get embedded as a normal font and not as inline + (tagged) graphic. +\stopitem +\startitem + Also, try to generalize the helpers and methods in such ways that we can experiment + with additional tricks (after all, \TEX\ is about control). +\stopitem +\startitem + Todo: once there are more fonts (with the right data tables), check the code with the + specification. +\stopitem +\stopitemize + +\stopsubject + +\setupTABLE[c][1][style=tttf,align={flushleft,lohi}] + +\startsubject[title=Adobe Variable Font Prototype (cff)] + +\unexpanded\def\SampleFont#1#2% weight / contrast + {\definedfont[name:adobevariablefontprototype#1*default at 32pt]It looks like this!} + +\bTABLE[distance=2em,frame=off] +\bTR \bTD extralight 0/0 \eTD \bTD \SampleFont {extralight} \eTD \eTR +\bTR \bTD light 150/0 \eTD \bTD \SampleFont {light} \eTD \eTR +\bTR \bTD regular 394/0 \eTD \bTD \SampleFont {regular} \eTD \eTR +\bTR \bTD semibold 600/0 \eTD \bTD \SampleFont {semibold} \eTD \eTR +\bTR \bTD bold 824/0 \eTD \bTD \SampleFont {bold} \eTD \eTR +\bTR \bTD black high contrast 1000/100 \eTD \bTD \SampleFont {blackhighcontrast} \eTD \eTR +\bTR \bTD black medium contrast 1000/50 \eTD \bTD \SampleFont {blackmediumcontrast} \eTD \eTR +\bTR \bTD black 1000/0 \eTD \bTD \SampleFont {black} \eTD \eTR +\eTABLE + +\stopsubject + +% \starttyping +% \definefont +% [MyLightFont] +% [name:adobevariablefontprototypelight*default] +% \stoptyping + +\unexpanded\def\SampleFont#1#2% weight / width + {\definedfont[name:avenirnextvariable#1*default at 32pt]It looks like this!} + +\startsubject[title=Avenir Next Variable (ttf)] + +\bTABLE[distance=2em,frame=off] +\bTR \bTD regular 400/100 \eTD \bTD \SampleFont {regular} \eTD \eTR +\bTR \bTD medium 500/100 \eTD \bTD \SampleFont {medium} \eTD \eTR +\bTR \bTD bold 700/100 \eTD \bTD \SampleFont {bold} \eTD \eTR +\bTR \bTD heavy 900/100 \eTD \bTD \SampleFont {heavy} \eTD \eTR +\bTR \bTD condensed 400/75 \eTD \bTD \SampleFont {condensed} \eTD \eTR +\bTR \bTD medium condensed 500/75 \eTD \bTD \SampleFont {mediumcondensed} \eTD \eTR +\bTR \bTD bold condensed 700/75 \eTD \bTD \SampleFont {boldcondensed} \eTD \eTR +\bTR \bTD heavy condensed 900/75 \eTD \bTD \SampleFont {heavycondensed} \eTD \eTR +\eTABLE + +\stopsubject + +\startbuffer[both] +\vfill +\startMPcode + draw outlinetext.b + ("\getbuffer[a]") + (withcolor "white") + (withcolor "red" withpen pencircle scaled 1/10) + xsized .9TextWidth ; +\stopMPcode +\vfill +\startMPcode + draw outlinetext.b + ("\getbuffer[b]") + (withcolor "white") + (withcolor "red" withpen pencircle scaled 1/10) + xsized .9TextWidth ; +\stopMPcode +\vfill +\startMPcode + draw outlinetext.b + ("\getbuffer[c]") + (withcolor "white") + (withcolor "red" withpen pencircle scaled 1/10) + xsized .90TextWidth ; +\stopMPcode +\vfill +\stopbuffer + +\startbuffer[fill] +\vfill +\startMPcode + draw outlinetext.f + ("\getbuffer[a]") + (withcolor "white") + xsized .9TextWidth ; +\stopMPcode +\vfill +\startMPcode + draw outlinetext.f + ("\getbuffer[b]") + (withcolor "white") + xsized .9TextWidth ; +\stopMPcode +\vfill +\startMPcode + draw outlinetext.f + ("\getbuffer[c]") + (withcolor "white") + xsized .9TextWidth ; +\stopMPcode +\vfill +\stopbuffer + +\startbuffer[draw] +\vfill +\startMPcode + draw outlinetext.d + ("\getbuffer[a]") + (withcolor "white" withpen pencircle scaled 1/10) + xsized .9TextWidth ; +\stopMPcode +\vfill +\startMPcode + draw outlinetext.d + ("\getbuffer[b]") + (withcolor "white" withpen pencircle scaled 1/10) + xsized .9TextWidth ; +\stopMPcode +\vfill +\startMPcode + draw outlinetext.d + ("\getbuffer[c]") + (withcolor "white" withpen pencircle scaled 1/10) + xsized .9TextWidth ; +\stopMPcode +\vfill +\stopbuffer + +\startbuffer[overlay] +\startoverlay{% +\startMPcode + draw outlinetext.d + ("\getbuffer[a]") + (withcolor "green" withtransparency (3,0.5) withpen pencircle scaled 1/10) + xsized .9TextWidth ; +\stopMPcode +}{% +\startMPcode + draw outlinetext.d + ("\getbuffer[b]") + (withcolor "yellow" withtransparency (3,0.5) withpen pencircle scaled 1/10) + xsized .9TextWidth ; +\stopMPcode +}{% +\startMPcode + draw outlinetext.d + ("\getbuffer[c]") + (withcolor "red" withtransparency (3,0.5) withpen pencircle scaled 1/10) + xsized .9TextWidth ; +\stopMPcode +} +\stopoverlay +\stopbuffer + +\startbuffer[a] +\definedfont[name:adobevariablefontprototypeextralight]bachotex% +\stopbuffer + +\startbuffer[b] +\definedfont[name:adobevariablefontprototypelight]bachotex% +\stopbuffer + +\startbuffer[c] +\definedfont[name:adobevariablefontprototypebold]bachotex% +\stopbuffer + +\startsubject[title=Metafontisch overlap (1)] + \getbuffer[both] +\stopsubject + +\startbuffer[a] +\definefontfeature[whatever][axis={weight:50}]% +\definedfont[name:adobevariablefontprototype*whatever]bachotex% +\stopbuffer + +\startbuffer[b] +\definefontfeature[whatever][axis={weight:300}]% +\definedfont[name:adobevariablefontprototype*whatever]bachotex% +\stopbuffer + +\startbuffer[c] +\definefontfeature[whatever][axis={weight:700}]% +\definedfont[name:adobevariablefontprototype*whatever]bachotex% +\stopbuffer + +\startsubject[title=Metafontisch overlap (2)] + \getbuffer[both] +\stopsubject +\startsubject[title=Fills hide the details] + \getbuffer[fill] +\stopsubject +\startsubject[title=Unsuitable outlines] + \getbuffer[draw] +\stopsubject + +\startbuffer[a] +\definefontfeature[whatever][axis={weight:100,contrast:0}]% +\definedfont[name:adobevariablefontprototype*whatever]bachotex% +\stopbuffer + +\startbuffer[b] +\definefontfeature[whatever][axis={weight:200,contrast:20}]% +\definedfont[name:adobevariablefontprototype*whatever]bachotex% +\stopbuffer + +\startbuffer[c] +\definefontfeature[whatever][axis={weight:200,contrast:50}]% +\definedfont[name:adobevariablefontprototype*whatever]bachotex% +\stopbuffer + +\startsubject[title=Stay within specification] + \getbuffer[draw] +\stopsubject + +\startsubject[title=Subjective choices] + \getbuffer[fill] +\stopsubject + +\startbuffer[a] +\definefontfeature[whatever][axis={weight:100,contrast:0}]% +\definedfont[name:adobevariablefontprototype*whatever]tex% +\stopbuffer + +\startbuffer[b] +\definefontfeature[whatever][axis={weight:200,contrast:20}]% +\definedfont[name:adobevariablefontprototype*whatever]tex% +\stopbuffer + +\startbuffer[c] +\definefontfeature[whatever][axis={weight:200,contrast:50}]% +\definedfont[name:adobevariablefontprototype*whatever]tex% +\stopbuffer + +\startsubject[title=Difficult choices] + \getbuffer[overlay] +\stopsubject + +\startsubject[title=Definitions (1)] + +\startbuffer +\definefontfeature + [default:shaped] + [default] + [axis={width:10}] + +\definefont + [SomeFont] + [file:avenirnextvariable*default:shaped] +\stopbuffer + +\typebuffer \getbuffer + +\start \setupinterlinespace \showglyphs \showfontkerns \SomeFont \input zapf \wordright{Hermann Zapf}\par \stop + +\stopsubject + +\startsubject[title=Definitions (2)] + +\startbuffer +\definefontfeature + [default:shaped] + [default] + [axis={width:100,weight=200}] + +\definefont + [SomeFont] + [file:avenirnextvariable*default:shaped @ 12pt] +\stopbuffer + +\typebuffer \getbuffer + +\start \setupinterlinespace \showglyphs \showfontkerns \SomeFont \input zapf \wordright{Hermann Zapf}\par \stop + +\stopsubject + +\startsubject[title=Transformations] + +\subsubject{correction:} + +\startformula + x^\prime = x + + s_{x1} \cdot x_1 + + s_{x2} \cdot x_2 + + s_{x3} \cdot x_3 + + s_{x4} \cdot x_4 +\stopformula + +\startformula + y^\prime = y + + s_{y1} \cdot y_1 + + s_{y2} \cdot y_2 + + s_{y3} \cdot y_3 + + s_{y4} \cdot y_4 +\stopformula + +\subsubject{internal cff:} + +\starttyping +1 <setvstore> +120 [10 -30 40 -60] 1 <blend> ... <operator> +100 120 [10 -30 40 -60] [30 -10 -30 20] 2 <blend> .. <operator> +\stoptyping + +\subsubject{external ttf:} + +\starttyping +apply x deltas [10 -30 40 -60] to x 120 +apply y deltas [30 -10 -30 20] to y 100 +\stoptyping + +\stopsubject + +\startsubject[title=Follow up] + +\startitemize +\startitem + Performance is quite okay because we cache instances. I might come up with an + alternative way but there is not much to gain. +\stopitem +\startitem + Once fonts show up alternative interfaces to axis and scaling can be explored + and provided. +\stopitem +\startitem + I will look into ways to do all the backend font code in \CONTEXT\ in \LUA\ + (easier to update and more flexible). +\stopitem +\startitem + Luigi and I will play with variable fonts defined in the traditional meta tools + that come with \TEX. +\stopitem +\stopitemize + +\stopsubject + +\stopdocument |