summaryrefslogtreecommitdiff
path: root/doc/context/presentations/bachotex/2017/bachotex-2017-emoji.tex
diff options
context:
space:
mode:
Diffstat (limited to 'doc/context/presentations/bachotex/2017/bachotex-2017-emoji.tex')
-rw-r--r--doc/context/presentations/bachotex/2017/bachotex-2017-emoji.tex374
1 files changed, 374 insertions, 0 deletions
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