From f210bce174e1f2f05305ab03e88e120a1cbfc4da Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Thu, 5 Mar 2020 00:48:46 +0000 Subject: context (from cont-tmf.zip of Feb 17 16:00, size 116339406) git-svn-id: svn://tug.org/texlive/trunk@54086 c570f23f-e606-0410-a88d-b1316a301751 --- .../bachotex/2017/bachotex-2017-emoji-demo.pdf | Bin 46443 -> 34029 bytes .../bachotex/2017/bachotex-2017-emoji.pdf | Bin 308972 -> 295505 bytes .../bachotex/2019/bachotex-2019-followingup.pdf | Bin 0 -> 60987 bytes .../bachotex/2019/bachotex-2019-followingup.tex | 302 +++++++++++++++++++++ .../context/2017/context-2017-css-selectors.pdf | Bin 0 -> 130327 bytes .../context/2017/context-2017-css-selectors.tex | 238 ++++++++++++++++ .../2017/context-2017-features-chaintest.pdf | Bin 0 -> 15666 bytes .../2017/context-2017-features-chaintest.tex | 49 ++++ .../2017/context-2017-features-kerntest.pdf | Bin 0 -> 15259 bytes .../2017/context-2017-features-kerntest.tex | 25 ++ .../2017/context-2017-features-pairtest.pdf | Bin 0 -> 15703 bytes .../2017/context-2017-features-pairtest.tex | 26 ++ .../2017/context-2017-features-singletest.pdf | Bin 0 -> 15672 bytes .../2017/context-2017-features-singletest.tex | 25 ++ .../2017/context-2017-features-spacetest.pdf | Bin 0 -> 15716 bytes .../2017/context-2017-features-spacetest.tex | 43 +++ .../context-2017-features-substitutiontest.pdf | Bin 0 -> 17567 bytes .../context-2017-features-substitutiontest.tex | 141 ++++++++++ .../context/2017/context-2017-features.pdf | Bin 0 -> 58197 bytes .../context/2017/context-2017-features.tex | 153 +++++++++++ .../context/2017/context-2017-performance.pdf | Bin 0 -> 51156 bytes .../context/2017/context-2017-performance.tex | 65 +++++ .../context/2017/context-2017-synctex.pdf | Bin 0 -> 58760 bytes .../context/2017/context-2017-synctex.tex | 102 +++++++ .../context/2017/context-2017-tables.pdf | Bin 0 -> 46060 bytes .../context/2017/context-2017-tables.tex | 175 ++++++++++++ .../context/2019/context-2019-lmtx.pdf | Bin 0 -> 41345 bytes .../context/2019/context-2019-lmtx.tex | 201 ++++++++++++++ 28 files changed, 1545 insertions(+) create mode 100644 Master/texmf-dist/doc/context/presentations/bachotex/2019/bachotex-2019-followingup.pdf create mode 100644 Master/texmf-dist/doc/context/presentations/bachotex/2019/bachotex-2019-followingup.tex create mode 100644 Master/texmf-dist/doc/context/presentations/context/2017/context-2017-css-selectors.pdf create mode 100644 Master/texmf-dist/doc/context/presentations/context/2017/context-2017-css-selectors.tex create mode 100644 Master/texmf-dist/doc/context/presentations/context/2017/context-2017-features-chaintest.pdf create mode 100644 Master/texmf-dist/doc/context/presentations/context/2017/context-2017-features-chaintest.tex create mode 100644 Master/texmf-dist/doc/context/presentations/context/2017/context-2017-features-kerntest.pdf create mode 100644 Master/texmf-dist/doc/context/presentations/context/2017/context-2017-features-kerntest.tex create mode 100644 Master/texmf-dist/doc/context/presentations/context/2017/context-2017-features-pairtest.pdf create mode 100644 Master/texmf-dist/doc/context/presentations/context/2017/context-2017-features-pairtest.tex create mode 100644 Master/texmf-dist/doc/context/presentations/context/2017/context-2017-features-singletest.pdf create mode 100644 Master/texmf-dist/doc/context/presentations/context/2017/context-2017-features-singletest.tex create mode 100644 Master/texmf-dist/doc/context/presentations/context/2017/context-2017-features-spacetest.pdf create mode 100644 Master/texmf-dist/doc/context/presentations/context/2017/context-2017-features-spacetest.tex create mode 100644 Master/texmf-dist/doc/context/presentations/context/2017/context-2017-features-substitutiontest.pdf create mode 100644 Master/texmf-dist/doc/context/presentations/context/2017/context-2017-features-substitutiontest.tex create mode 100644 Master/texmf-dist/doc/context/presentations/context/2017/context-2017-features.pdf create mode 100644 Master/texmf-dist/doc/context/presentations/context/2017/context-2017-features.tex create mode 100644 Master/texmf-dist/doc/context/presentations/context/2017/context-2017-performance.pdf create mode 100644 Master/texmf-dist/doc/context/presentations/context/2017/context-2017-performance.tex create mode 100644 Master/texmf-dist/doc/context/presentations/context/2017/context-2017-synctex.pdf create mode 100644 Master/texmf-dist/doc/context/presentations/context/2017/context-2017-synctex.tex create mode 100644 Master/texmf-dist/doc/context/presentations/context/2017/context-2017-tables.pdf create mode 100644 Master/texmf-dist/doc/context/presentations/context/2017/context-2017-tables.tex create mode 100644 Master/texmf-dist/doc/context/presentations/context/2019/context-2019-lmtx.pdf create mode 100644 Master/texmf-dist/doc/context/presentations/context/2019/context-2019-lmtx.tex (limited to 'Master/texmf-dist/doc/context/presentations') diff --git a/Master/texmf-dist/doc/context/presentations/bachotex/2017/bachotex-2017-emoji-demo.pdf b/Master/texmf-dist/doc/context/presentations/bachotex/2017/bachotex-2017-emoji-demo.pdf index cce61e1b3cd..0e06de65834 100644 Binary files a/Master/texmf-dist/doc/context/presentations/bachotex/2017/bachotex-2017-emoji-demo.pdf and b/Master/texmf-dist/doc/context/presentations/bachotex/2017/bachotex-2017-emoji-demo.pdf differ diff --git a/Master/texmf-dist/doc/context/presentations/bachotex/2017/bachotex-2017-emoji.pdf b/Master/texmf-dist/doc/context/presentations/bachotex/2017/bachotex-2017-emoji.pdf index d7e01f59c5a..5ee1d20c5ba 100644 Binary files a/Master/texmf-dist/doc/context/presentations/bachotex/2017/bachotex-2017-emoji.pdf and b/Master/texmf-dist/doc/context/presentations/bachotex/2017/bachotex-2017-emoji.pdf differ diff --git a/Master/texmf-dist/doc/context/presentations/bachotex/2019/bachotex-2019-followingup.pdf b/Master/texmf-dist/doc/context/presentations/bachotex/2019/bachotex-2019-followingup.pdf new file mode 100644 index 00000000000..17fdcab9379 Binary files /dev/null and b/Master/texmf-dist/doc/context/presentations/bachotex/2019/bachotex-2019-followingup.pdf differ diff --git a/Master/texmf-dist/doc/context/presentations/bachotex/2019/bachotex-2019-followingup.tex b/Master/texmf-dist/doc/context/presentations/bachotex/2019/bachotex-2019-followingup.tex new file mode 100644 index 00000000000..b7c116ab3fd --- /dev/null +++ b/Master/texmf-dist/doc/context/presentations/bachotex/2019/bachotex-2019-followingup.tex @@ -0,0 +1,302 @@ +% language=uk + +\usemodule[abbreviations-smallcaps] +\usemodule[present-luatex] + +\logo [LUAMETATEX] {LuaMeta\TeX} + +\setupbodyfont[12pt] + +\setupalign[verytolerant] + +\setupdocument + [title={The follow up}, + subtitle={\LUAMETATEX}, + location={Bacho\TeX\ May 2019}, + author={Hans & Alan}, + mp:title={\LUAMETATEX}] + +\startdocument + +\page \setupdocument[mp:subtitle={From lead to gold}] + +\startitemize + \startitem + This talk is {\bf not} about how we can use \LUATEX\ to control domotica + applications. We already discussed that. + \stopitem + \startitem + This talk is {\bf not} about how we can use \CONTEXT\ in advanced + rendering, for instance as part of web|-|based workflows. That's old + news. + \stopitem + \startitem + This talk is {\bf not} about how much fun it would be to have a + \MICROSOFT\ HoloLens and see what \CONTEXT\ and \LUATEX\ could do with + it. We just can't afford it. + \stopitem + \startitem + This talk is {\bf not} about more complexity, but it is about keeping + things simple. It's about turning a burden into a pleasure. + \stopitem + \startitem + To quote the Riverside \footnote {A Polish progrock band I recently saw + live in the Netherlands. A band related to Lunatic Soul.} frontman: I + hope you all leave here a bit younger than you felt when you came here. + This talk is about turning lead into gold. + \stopitem +\stopitemize + +\page \setupdocument[mp:subtitle={Where do we stand}] + +\startitemize + \startitem + We have the weight and experience of about 40 years of \TEX\ and its + usage on our shoulders. + \stopitem + \startitem + Good old \TEX\ got extended: \ETEX, \OMEGA\ (\ALEPH), \PDFTEX, \XETEX, + [e][u][p]\TEX\ and \LUATEX\ (& \LUAJITTEX) showed up. + \stopitem + \startitem + The \DVI\ output got complemented by \PDF. + \stopitem + \startitem + Bitmap fonts were replaced by \TYPEONE\ that itself got replaced by the + container formats \OPENTYPE\ and \TRUETYPE. Variable fonts were + introduced. + \stopitem + \startitem + Math got upgraded to \OPENTYPE\ math, thanks to \MICROSOFT. + \stopitem + \startitem + \UNICODE\ got accepted and \UTF\ is nowadays the preferred input + encoding. + \stopitem + \startitem + The community supported the development of many fonts that found their + place in distributions. + \stopitem + \startitem + Alongside plain \TEX\ the macro packages \LATEX\ and \CONTEXT\ both + evolved into large collections of resources. + \stopitem +\stopitemize + +\page \setupdocument[mp:subtitle={Are we good?}] + +\startitemize + \startitem + There is no doubt that \TEX\ is a success. We can find nice examples but + also some horrible looking documents. + \stopitem + \startitem + A large distribution is no guarantee for quality and continuous success, + nor is the number of incidental (forced) users. + \stopitem + \startitem + A \CONTEXT\ user doesn't need that much: just the \LUATEX\ binary will + do, plus a bunch of \MKIV\ macros, completed by a reasonable set of + fonts. + \stopitem + \startitem + Currently all that is embedded in a large ecosystem, although we always + use only a small, reasonable subset. + \stopitem + \startitem + Getting the whole machinery up and running from scratch (source code) is + not trivial. + \stopitem + \startitem + The source code base is rather large and compilation is complex: it builds on + decades of being nice for all platforms and fulfilling all demands. + \stopitem + \startitem + What we consider gold could also be seen as lead in disguise. Some + alchemy might be needed to go back to where we came from. + \stopitem +\stopitemize + +\page \setupdocument[mp:subtitle={The Status Quo}] + +\startitemize + \startitem + At some point you need to stabilize and for \LUATEX, version 1.10 is that + moment. + \stopitem + \startitem + But some ideas and experiments have been delayed because the engine was + already in use, also outside of \CONTEXT. + \stopitem + \startitem + Compatibility is a {\bf big} issue in the \TEX\ community (which is good) + so we're in a sort of a deadlock (which is bad). + \stopitem + \startitem + And we wanted to take a next step in \CONTEXT\ development. It's not + strictly necessary to make drastic changes, but we need to adapt. + \stopitem + \startitem + The question is how we can guarantee users a long|-|term stability of + the both macro package as well as the engine it runs on. + \stopitem +\stopitemize + +\page \setupdocument[mp:subtitle={What Is Needed}] + +\startitemize + \startitem + For \CONTEXT\ we want just one binary. We don't really need \LUAJITTEX\ + for \LUAJIT\ is not following \LUA\ anyway. + \stopitem + \startitem + We don't want (for windows) a special stub binary. After all we already + have the \type {context} job manager and \type {mtxrun} script manager. + All platforms should be treated alike. + \stopitem + \startitem + Performance should be stable and not influenced by code added to the + binary. In fact, performance should constantly improve! + \stopitem + \startitem + The engine should not depend on libraries that are floating, get updated + frequently, and can come from places out of our control (versions). + \stopitem + \startitem + The memory footprint should be acceptable for running in containers (or + small virtual machines). Energy consumption matters too. + \stopitem + \startitem + The binary should be kept small because it also serves as the \LUA\ + interpreter. + \stopitem +\stopitemize + +\page \setupdocument[mp:subtitle={How It Went}] + +\startitemize + \startitem + Around the \CONTEXT\ meeting I took \LUATEX\ 1.09.0 experimental as + starting point and began stripping. + \stopitem + \startitem + Before that, I already had written some test code to see what could be + replaced. + \stopitem + \startitem + Stepwise redundant components were removed. This took time because each + (small) step was tested on real documents, the test suite, etc. + \stopitem + \blank[2*big] + \startitem + \unknown\ maybe some examples & \type {/install-lmtx/*} \unknown + \stopitem + \blank[2*big] + \startitem + I played with some ideas that were put on hold, some were accepted and + some were rejected and more and more got in the mood. + \stopitem + \startitem + Also \LUAJIT\ was dropped, but its removal was compensated by large + performance boosts in other areas. + \stopitem + \startitem + The build was simplified (it took some time to find what was irrelevant) + and compilation now is about half a minute, or less! + \stopitem +\stopitemize + +% we found out the hard way in the past (generalizing, other use, backfire) + +\page \setupdocument[mp:subtitle={Where are we}] + +\startitemize + \startitem + We have an experimental new installer for \CONTEXT\ \LMTX\ (the new + name). It uses \HTTP: and just the engine for fetching data. Updating + goes fast. + \stopitem + \startitem + The \LMTX\ distribution is \MKIV\ only and much smaller than the full + installation. + \stopitem + \startitem + Eventually (soon) the source code of the used engine will be in the + distribution so that we have a self contained package. Users on + new or unique systems can compile. + \stopitem + \startitem + The development of the engine is under control of the \CONTEXT\ + developers: that way there is no danger that things break. We like to + have a playground. + \stopitem + \startitem + Extensions can make it into \LUATEX\ once found useful and stable as + long as they don't break \LUATEX\ upward compatibility (unlikely on the + short term). + \stopitem +\stopitemize + +\page \setupdocument[mp:subtitle={Some highlights}] + +\startitemize + \startitem + There is no backend code. We generate the \PDF\ output in \LUA\ (this was + already the case for much of it.) + \stopitem + \startitem + There is no bitmap image inclusion code present. All is done in \LUA. + \stopitem + \startitem + There is no font loading code present. This already happened mostly in + \LUA\ anyway. + \stopitem + \startitem + Some libraries have been removed and some have been simplified. A few + experimental helper libraries were added (like math). The dependencies + are minimal. + \stopitem + \startitem + The code is undergoing some restructuring but it might take some years + before I've reached the (informal) goals. + \stopitem + \startitem + Alan and I are exploring new possibilities that this setup gives + (especially in combining \TEX, \METAPOST\ and \LUA. Stay tuned. + \stopitem +\stopitemize + +\page \setupdocument[mp:subtitle={The agenda}] + +\startitemize + \startitem + As of April 1, 2019, users can test the experimental distribution. A few + were already in the loop. + \stopitem + \startitem + It looks like there are no big issues, and speed gains can be impressive. + \stopitem + \startitem + As a consequence we can start dropping in replacement code in regular \MKIV\ + some day soon too. + \stopitem + \startitem + Around the next \CONTEXT\ meeting the source code will become part of the + regular distribution (given that I'm satisfied with it). + \stopitem + \startitem + Before that we hope to have the compile farm up and running for \LUAMETATEX. + \stopitem + \startitem + From that moment on, the \CONTEXT\ users will have a self contained, archival, + independent, lean and mean installation available, which will become the + default. + \stopitem + \startitem + Because \LUAMETATEX\ is a subset of \LUATEX, there are no plans right now + for supporting plain \TEX. We'll see. (I might come up with generic + backend code some day.) + \stopitem +\stopitemize + +\stopdocument diff --git a/Master/texmf-dist/doc/context/presentations/context/2017/context-2017-css-selectors.pdf b/Master/texmf-dist/doc/context/presentations/context/2017/context-2017-css-selectors.pdf new file mode 100644 index 00000000000..d4575f0e7d1 Binary files /dev/null and b/Master/texmf-dist/doc/context/presentations/context/2017/context-2017-css-selectors.pdf differ diff --git a/Master/texmf-dist/doc/context/presentations/context/2017/context-2017-css-selectors.tex b/Master/texmf-dist/doc/context/presentations/context/2017/context-2017-css-selectors.tex new file mode 100644 index 00000000000..845206655cf --- /dev/null +++ b/Master/texmf-dist/doc/context/presentations/context/2017/context-2017-css-selectors.tex @@ -0,0 +1,238 @@ +\usemodule[present-lines] + +\definecolor[maincolor][b=.4] + +\setuppapersize[A4][A4] + +\startdocument[title=CSS selectors,subtitle={\CONTEXT\ 2017 Maibach}] + +\startbuffer[selector-001] + + + + b.one + b.two + b.one.two + b.three + b#first + c + d e + d e + d e e + d f + @foo = bar + @bar = foo + @bar = foo1 + @bar = foo2 + @bar = foo3 + @bar = foo+4 + g + g gg d + g gg f + g gg f.one + g + g gg f.two + g gg f.three + g f.one + g f.three + @whatever = four five six + +\stopbuffer + +\startbuffer[selector-002] + + + + title 1 + title 2 + title 3 + title 4 + +\stopbuffer + +\startbuffer[selector-003] + + + + title 1 + title 1.1 + title 2 + title 2.1 + title 3 + title 3.1 + title 4 + title 4.1 + +\stopbuffer + +\xmlloadbuffer{selector-001}{selector-001} +\xmlloadbuffer{selector-002}{selector-002} +\xmlloadbuffer{selector-003}{selector-003} + +\startxmlsetups xml:selector:demo + \ignorespaces\xmlverbatim{#1}\par +\stopxmlsetups + +\unexpanded\def\showCSSdemo#1#2% + {\blank + \textrule{\tttf#2} + \startlines + \dontcomplain + \tttf \obeyspaces + \xmlcommand{#1}{#2}{xml:selector:demo} + \stoplines + \blank} + +\startchapter[title=Needed or not?] + +\startitemize +\startitem + used in \HTML\ styling +\stopitem +\startitem + a bit different from the path based method +\stopitem +\startitem + shortcuts for filtering by attribute +\stopitem +\startitem + class filtering is special because it checks for list +\stopitem +\startitem + one can select more at the same time +\stopitem +\startitem + performance is okay compared to path lookup +\stopitem +\startitem + selectors go between curly braces: + \starttyping + \xmlall {#1} {{foo bar .whatever, bar foo .whatever}} + \stoptyping +\stopitem +\stopitemize + +\stopchapter + +\startchapter[title=Supported methods] + +The following methods are supported: + +\starttabulate[|T||] +\NC \type {element} \NC all tags element \NC \NR +\NC \type {element-1 > element-2} \NC all tags element-2 with parent tag element-1 \NC \NR +\NC \type {element-1 + element-2} \NC all tags element-2 preceded by tag element-1 \NC \NR +\NC \type {element-1 ~ element-2} \NC all tags element-2 preceded by tag element-1 \NC \NR +\NC \type {element-1 element-2} \NC all tags element-2 inside tag element-1 \NC \NR +\NC \type {[attribute]} \NC has attribute \NC \NR +\NC \type {[attribute=value]} \NC attribute equals value\NC \NR +\NC \type {[attribute~=value]} \NC attribute contains value (space is separator) \NC \NR +\NC \type {[attribute^="value"]} \NC attribute starts with value \NC \NR +\NC \type {[attribute$="value"]} \NC attribute ends with value \NC \NR +\NC \type {[attribute*="value"]} \NC attribute contains value \NC \NR +\NC \type {.class} \NC has class \NC \NR +\NC \expanded{\type {\letterhash id}} \NC has id \NC \NR +\NC \type {:nth-child(n)} \NC the child at index n \NC \NR +\NC \type {:nth-last-child(n)} \NC the child at index n from the end \NC \NR +\NC \type {:first-child} \NC the first child \NC \NR +\NC \type {:last-child} \NC the last child \NC \NR +\NC \type {:nth-of-type(n)} \NC the match at index n \NC \NR +\NC \type {:nth-last-of-type(n)} \NC the match at index n from the end \NC \NR +\NC \type {:first-of-type} \NC the first match \NC \NR +\NC \type {:last-of-type} \NC the last match \NC \NR +\NC \type {:only-of-type} \NC the only match or nothing \NC \NR +\NC \type {:only-child} \NC the only child or nothing \NC \NR +\NC \type {:empty} \NC only when empty \NC \NR +\NC \type {:root} \NC the whole tree \NC \NR +\stoptabulate + +\stopchapter + +\startchapter[title=Filtering classes] + +\typebuffer[selector-001] \showCSSdemo{selector-001}{{.one}} \page +\typebuffer[selector-001] \showCSSdemo{selector-001}{{.one, .two}} \page +\typebuffer[selector-001] \showCSSdemo{selector-001}{{.one, .two, \letterhash first}} \page + +\stopchapter + +\startchapter[title=Filtering attributes] + +\typebuffer[selector-001] \showCSSdemo{selector-001}{{[foo], [bar=foo]}} \page +\typebuffer[selector-001] \showCSSdemo{selector-001}{{[bar\lettertilde=foo]}} \page +\typebuffer[selector-001] \showCSSdemo{selector-001}{{[bar\letterhat="foo"]}} \page +\typebuffer[selector-001] \showCSSdemo{selector-001}{{[whatever\lettertilde="five"]}} \page + +\stopchapter + +\startchapter[title=Combining methods] + +\typebuffer[selector-001] \showCSSdemo{selector-001}{{g f .one, g f .three}} \page +\typebuffer[selector-001] \showCSSdemo{selector-001}{{g > f .one, g > f .three}} \page +\typebuffer[selector-001] \showCSSdemo{selector-001}{{d + e}} \page +\typebuffer[selector-001] \showCSSdemo{selector-001}{{d ~ e}} \page +\typebuffer[selector-001] \showCSSdemo{selector-001}{{d ~ e, g f .one, g f .three}} \page + +\stopchapter + +% \startchapter[title=Negation] + +% \typebuffer[selector-001] \showCSSdemo{selector-001}{{:not([whatever\lettertilde="five"])}} \page +% \typebuffer[selector-001] \showCSSdemo{selector-001}{{:not(d)}} \page + +\stopchapter + +\startchapter[title=Child selectors] + +\typebuffer[selector-001] \showCSSdemo{selector-001}{{a:nth-child(3)}} \page +\typebuffer[selector-001] \showCSSdemo{selector-001}{{a:nth-last-child(3)}} \page +\typebuffer[selector-001] \showCSSdemo{selector-001}{{g:nth-of-type(3)}} \page +\typebuffer[selector-001] \showCSSdemo{selector-001}{{g:nth-last-of-type(3)}} \page +\typebuffer[selector-001] \showCSSdemo{selector-001}{{a:first-child}} \page +\typebuffer[selector-001] \showCSSdemo{selector-001}{{a:last-child}} \page +\typebuffer[selector-001] \showCSSdemo{selector-001}{{e:first-of-type}} \page +\typebuffer[selector-001] \showCSSdemo{selector-001}{{gg d:only-of-type}} \page + +\stopchapter + +\startchapter[title=Simple formulas] + +\typebuffer[selector-001] \showCSSdemo{selector-001}{{a:nth-child(even)}} \page +\typebuffer[selector-001] \showCSSdemo{selector-001}{{a:nth-child(odd)}} \page +\typebuffer[selector-001] \showCSSdemo{selector-001}{{a:nth-child(3n+1)}} \page +\typebuffer[selector-001] \showCSSdemo{selector-001}{{a:nth-child(2n+3)}} \page + +\stopchapter + +\startchapter[title=Special cases] + +\typebuffer[selector-001] \showCSSdemo{selector-001}{{g:empty}} \page +\typebuffer[selector-001] \showCSSdemo{selector-001}{{g:root}} \page +\typebuffer[selector-001] \showCSSdemo{selector-001}{{*}} \page + +\stopchapter + +\startchapter[title=Combinations] + +\typebuffer[selector-001] \showCSSdemo{selector-001}{{g gg f .one}} \page +\typebuffer[selector-001] \showCSSdemo{selector-001}{g/gg/f[@class='one']} \page +\typebuffer[selector-001] \showCSSdemo{selector-001}{g/{gg f .one}} \page + +\stopchapter + +\startchapter[title=Comparison (1)] + +\typebuffer[selector-002] \showCSSdemo{selector-002}{{document title .one, document title .three}} \page +\typebuffer[selector-002] \showCSSdemo{selector-002}{/document/title[(@class='one') or (@class='three')]} \page + +\stopchapter + +\startchapter[title=Comparison (2)] + +\typebuffer[selector-003] \showCSSdemo{selector-003}{{document title .one + subtitle, document title .two + subtitle}} + +{\em A combined filter triggers a sorting pass!} + +\stopchapter + +\stopdocument diff --git a/Master/texmf-dist/doc/context/presentations/context/2017/context-2017-features-chaintest.pdf b/Master/texmf-dist/doc/context/presentations/context/2017/context-2017-features-chaintest.pdf new file mode 100644 index 00000000000..1da70b355cd Binary files /dev/null and b/Master/texmf-dist/doc/context/presentations/context/2017/context-2017-features-chaintest.pdf differ diff --git a/Master/texmf-dist/doc/context/presentations/context/2017/context-2017-features-chaintest.tex b/Master/texmf-dist/doc/context/presentations/context/2017/context-2017-features-chaintest.tex new file mode 100644 index 00000000000..58d1040f2a7 --- /dev/null +++ b/Master/texmf-dist/doc/context/presentations/context/2017/context-2017-features-chaintest.tex @@ -0,0 +1,49 @@ +\setupbodyfont[dejavu] + +\startluacode + fonts.handlers.otf.addfeature { + name = "chaintest", + type = "chainposition", + lookups = { + { + type = "pair", + data = { + A = { B = { { -30, 0, -50, 0 } } }, + B = { C = { { -30, 0, -50, 0 } } }, + }, + }, + { + type = "pair", + data = { + D = { E = { { -30, 0, -50, 0 } } }, + }, + }, + }, + data = { + rules = { + { + current = { { "A"}, { "B"}, { "C" }, { "D" }, { "E" }, { "F" } }, + lookups = { false, false, false, 2 }, + }, + { + current = { { "A" }, { "B" }, { "C" } }, + lookups = { 1, 1 }, + }, + }, + } + } +\stopluacode + +\starttext + +\definecolor[tgray][s=.5,t=.5,a=1] \showfontkerns \showglyphs + +\definefontfeature[chaintest] [mode=node,chaintest=yes] + +\definedfont[file:dejavu-serif.ttf*chaintest @ 48pt] + +\startTEXpage[offset=10pt,foregroundcolor=tgray] + ABCDEF +\stopTEXpage + +\stoptext diff --git a/Master/texmf-dist/doc/context/presentations/context/2017/context-2017-features-kerntest.pdf b/Master/texmf-dist/doc/context/presentations/context/2017/context-2017-features-kerntest.pdf new file mode 100644 index 00000000000..5a8d0d38d49 Binary files /dev/null and b/Master/texmf-dist/doc/context/presentations/context/2017/context-2017-features-kerntest.pdf differ diff --git a/Master/texmf-dist/doc/context/presentations/context/2017/context-2017-features-kerntest.tex b/Master/texmf-dist/doc/context/presentations/context/2017/context-2017-features-kerntest.tex new file mode 100644 index 00000000000..795af8b5fb0 --- /dev/null +++ b/Master/texmf-dist/doc/context/presentations/context/2017/context-2017-features-kerntest.tex @@ -0,0 +1,25 @@ +\setupbodyfont[dejavu] + +\startluacode + fonts.handlers.otf.addfeature { + name = "kerntest", + type = "kern", + data = { + A = { B = -500 }, + } + } +\stopluacode + +\starttext + +\definecolor[tgray][s=.5,t=.5,a=1] \showfontkerns \showglyphs + +\definefontfeature[kerntest] [mode=node,kerntest=yes] + +\definedfont[file:dejavu-serif.ttf*kerntest @ 48pt] + +\startTEXpage[offset=10pt,foregroundcolor=tgray] + ABCDEF +\stopTEXpage + +\stoptext diff --git a/Master/texmf-dist/doc/context/presentations/context/2017/context-2017-features-pairtest.pdf b/Master/texmf-dist/doc/context/presentations/context/2017/context-2017-features-pairtest.pdf new file mode 100644 index 00000000000..ba959e4f7a3 Binary files /dev/null and b/Master/texmf-dist/doc/context/presentations/context/2017/context-2017-features-pairtest.pdf differ diff --git a/Master/texmf-dist/doc/context/presentations/context/2017/context-2017-features-pairtest.tex b/Master/texmf-dist/doc/context/presentations/context/2017/context-2017-features-pairtest.tex new file mode 100644 index 00000000000..e84851e7d29 --- /dev/null +++ b/Master/texmf-dist/doc/context/presentations/context/2017/context-2017-features-pairtest.tex @@ -0,0 +1,26 @@ +\setupbodyfont[dejavu] + +\startluacode + fonts.handlers.otf.addfeature { + name = "pairtest", + type = "pair", + data = { + A = { B = { { -30, 50, -50, 0 } } }, + B = { C = { { -30, 0, -50, 0 } } }, + } + } +\stopluacode + +\starttext + +\definecolor[tgray][s=.5,t=.5,a=1] \showfontkerns \showglyphs + +\definefontfeature[pairtest] [mode=node,pairtest=yes] + +\definedfont[file:dejavu-serif.ttf*pairtest @ 48pt] + +\startTEXpage[offset=10pt,foregroundcolor=tgray] + ABCDEF +\stopTEXpage + +\stoptext diff --git a/Master/texmf-dist/doc/context/presentations/context/2017/context-2017-features-singletest.pdf b/Master/texmf-dist/doc/context/presentations/context/2017/context-2017-features-singletest.pdf new file mode 100644 index 00000000000..624ee547f66 Binary files /dev/null and b/Master/texmf-dist/doc/context/presentations/context/2017/context-2017-features-singletest.pdf differ diff --git a/Master/texmf-dist/doc/context/presentations/context/2017/context-2017-features-singletest.tex b/Master/texmf-dist/doc/context/presentations/context/2017/context-2017-features-singletest.tex new file mode 100644 index 00000000000..fb0326fa3ff --- /dev/null +++ b/Master/texmf-dist/doc/context/presentations/context/2017/context-2017-features-singletest.tex @@ -0,0 +1,25 @@ +\setupbodyfont[dejavu] + +\startluacode + fonts.handlers.otf.addfeature { + name = "singletest", + type = "single", + data = { + B = { -30, 0, -50, 0 }, + } + } +\stopluacode + +\starttext + +\definecolor[tgray][s=.5,t=.5,a=1] \showfontkerns \showglyphs + +\definefontfeature[singletest] [mode=node,singletest=yes] + +\definedfont[file:dejavu-serif.ttf*singletest @ 48pt] + +\startTEXpage[offset=10pt,foregroundcolor=tgray] + ABCDEF +\stopTEXpage + +\stoptext diff --git a/Master/texmf-dist/doc/context/presentations/context/2017/context-2017-features-spacetest.pdf b/Master/texmf-dist/doc/context/presentations/context/2017/context-2017-features-spacetest.pdf new file mode 100644 index 00000000000..9a2c7b012f5 Binary files /dev/null and b/Master/texmf-dist/doc/context/presentations/context/2017/context-2017-features-spacetest.pdf differ diff --git a/Master/texmf-dist/doc/context/presentations/context/2017/context-2017-features-spacetest.tex b/Master/texmf-dist/doc/context/presentations/context/2017/context-2017-features-spacetest.tex new file mode 100644 index 00000000000..48ad4e32f8c --- /dev/null +++ b/Master/texmf-dist/doc/context/presentations/context/2017/context-2017-features-spacetest.tex @@ -0,0 +1,43 @@ +\setupbodyfont[dejavu] + +\startluacode + + -- we could populate this one mostly automatic if needed + -- but also expect a font to have such kerns + + local kern = -50 + local pair = { [32] = kern } + + fonts.handlers.otf.addfeature { + name = "kern", -- spacekerns assume kern (for now) + type = "kern", + data = { + D = pair, + E = pair, + F = pair, + [32] = { + D = kern, + E = kern, + F = kern, + }, + } + } + +\stopluacode + +\starttext + +\enabledirectives[fonts.injections.useitalics] % use italic kerns for tracing + +\definecolor[tgray][s=.5,t=.5,a=1] \showfontkerns \showfontitalics \showglyphs + +\definefontfeature[kern] [mode=node,kern=yes,spacekerns=yes] + +\definedfont[file:dejavu-serif.ttf*kern @ 48pt] +\definedfont[file:dejavu-serif.ttf*default @ 48pt] + +\startTEXpage[offset=10pt,foregroundcolor=tgray] + A B C D E F G H +\stopTEXpage + +\stoptext diff --git a/Master/texmf-dist/doc/context/presentations/context/2017/context-2017-features-substitutiontest.pdf b/Master/texmf-dist/doc/context/presentations/context/2017/context-2017-features-substitutiontest.pdf new file mode 100644 index 00000000000..b95e531ecc4 Binary files /dev/null and b/Master/texmf-dist/doc/context/presentations/context/2017/context-2017-features-substitutiontest.pdf differ diff --git a/Master/texmf-dist/doc/context/presentations/context/2017/context-2017-features-substitutiontest.tex b/Master/texmf-dist/doc/context/presentations/context/2017/context-2017-features-substitutiontest.tex new file mode 100644 index 00000000000..9e2657a6ec1 --- /dev/null +++ b/Master/texmf-dist/doc/context/presentations/context/2017/context-2017-features-substitutiontest.tex @@ -0,0 +1,141 @@ +\startluacode + fonts.handlers.otf.addfeature { + name = "singlesubstitution", + type = "substitution", + data = { + a = "X", + b = "P", + } + } +\stopluacode + +\startluacode + fonts.handlers.otf.addfeature { + name = "alternatesubstitution", + type = "alternate", + data = { + a = { "X", "Y" }, + b = { "P", "Q" }, + } + } +\stopluacode + +\startluacode + fonts.handlers.otf.addfeature { + name = "multiplesubstitution", + type = "multiple", + data = { + a = { "X", "Y" }, + b = { "P", "Q" }, + } + } +\stopluacode + +\startluacode + fonts.handlers.otf.addfeature { + name = "ligaturesubstitution", + type = "ligature", + data = { + ['1'] = { "a", "b" }, + ['2'] = { "d", "a" }, + } + } +\stopluacode + +\startluacode + fonts.handlers.otf.addfeature { + name = "chainsubstitution-1", + type = "chainsubstitution", + -- flags = { false, false, false, false }, + lookups = { + { + type = "substitution", + data = { + ["b"] = "B", + ["c"] = "C", + }, + }, + }, + -- steps = { + -- { + -- rules = { + -- { + -- before = { { "a" } }, + -- current = { { "b", "c" } }, + -- lookups = { 1 }, + -- }, + -- }, + -- }, + -- }, + data = { + rules = { + { + before = { { "a" } }, + current = { { "b", "c" } }, + lookups = { 1 }, + }, + }, + }, + } +\stopluacode + +\startluacode + fonts.handlers.otf.addfeature { + name = "chainsubstitution-2", + type = "chainsubstitution", + prepend = 1, + lookups = { + { + type = "multiple", + data = { + ["f"] = { "f", 0x200C }, + }, + }, + { + type = "substitution", + data = { + ["a"] = "1", + ["b"] = "2", + ["c"] = "3", + }, + }, + }, + data = { + rules = { + { + current = { { "f" }, { "f" } }, + lookups = { 1 }, + }, + { + current = { { "a" }, { "b" }, { "c" } }, + lookups = { 2, false, 2 }, + }, + }, + } + } +\stopluacode + +\definefontfeature[singlesubstitution] [singlesubstitution=yes] +\definefontfeature[alternatesubstitution][alternatesubstitution=2] +\definefontfeature[multiplesubstitution] [multiplesubstitution=yes] +\definefontfeature[ligaturesubstitution] [ligaturesubstitution=yes] +\definefontfeature[chainsubstitution-1] [chainsubstitution-1=yes] +\definefontfeature[chainsubstitution-2] [chainsubstitution-2=yes] + +\setupbodyfont[dejavu] + +\starttext + +\definedfont[Serif*default] \showfontkerns \showfontitalics \showglyphs + +\startTEXpage + abracadabra\par + {\addff {singlesubstitution}abracadabra\par} + {\addff{alternatesubstitution}abracadabra\par} + {\addff {multiplesubstitution}abracadabra\par} + {\addff {ligaturesubstitution}abracadabra\par} + {\addff {chainsubstitution-1}abracadabra\par} + {\addff {chainsubstitution-2}effe abcdef !f\par} +\stopTEXpage + +\stoptext diff --git a/Master/texmf-dist/doc/context/presentations/context/2017/context-2017-features.pdf b/Master/texmf-dist/doc/context/presentations/context/2017/context-2017-features.pdf new file mode 100644 index 00000000000..e70afbed7d3 Binary files /dev/null and b/Master/texmf-dist/doc/context/presentations/context/2017/context-2017-features.pdf differ diff --git a/Master/texmf-dist/doc/context/presentations/context/2017/context-2017-features.tex b/Master/texmf-dist/doc/context/presentations/context/2017/context-2017-features.tex new file mode 100644 index 00000000000..772de4ff6e3 --- /dev/null +++ b/Master/texmf-dist/doc/context/presentations/context/2017/context-2017-features.tex @@ -0,0 +1,153 @@ +\usemodule[present-lines] + +\definecolor[maincolor][r=.4,g=.4] + +\startdocument[title=Font features,subtitle={\CONTEXT\ 2017 Maibach}] + +\startchapter[title=What are they] + +\startitemize + \startitem + built in substitution that is often optional like ligatures but for some + languages mandate + \stopitem + \startitem + built in positioning that is assumed to be applied like kerning, mark + anchoring cursive + \stopitem + \startitem + external properties like coloring, spacing, fallback combinations + \stopitem + \startitem + engine related tricks like expansion and protrusion + \stopitem + \startitem + tracing options + \stopitem + \startitem + whatever you like \unknown\ so let me know + \stopitem + \blank[2*big] + \startitem + so in \CONTEXT\ we have font features (driven by font) and pseudo + features (driven by additional needs) + \stopitem +\stopitemize + +\stopchapter + +\startchapter[title=Substitution] + +\startitemize + \startitem + single: replace one by another + \stopitem + \startitem + alternate: replace one by one of a set + \stopitem + \startitem + multiple: replace one by multiple others + \stopitem + \startitem + ligature: replace multiple by one shape + \stopitem + \blank[2*big] + \startitem + contextual lookups and replacements with look back and look ahead + \stopitem +\stopitemize + +\stopchapter + +\startchapter[title=Positioning] + +\startitemize + \startitem + single: repositioning a glyph (with optional marks), this includes + traditional kerning + \stopitem + \startitem + pairwise: repositioning two adjacent glyphs (with optional marks) + \stopitem + \startitem + anchoring: often used for marks to base glyphs, ligatures and other marks + \stopitem + \startitem + attachment: often used for cursive scripts, pasting glyphs in a word together + \stopitem + \blank[2*big] + \startitem + contextual lookups and positioning with look back and look ahead + \stopitem +\stopitemize + +\stopchapter + +\startchapter[title=Related] + +\startitemize + \startitem + analyze: needed for dealing with features that need information about + initial, medial, final and isolated properties + \stopitem + \startitem + reordering: needed for script like devanagari + \stopitem + \startitem + spacing: deals with for positioning glyphs and spaces + \stopitem +\stopitemize + +\stopchapter + +\startchapter[title=Pitfalls] + +\startitemize + \startitem + solutions for similar tasks can be quite different which makes tracing + or checking sometimes hard (many ways to make ligatures) + \stopitem + \startitem + order matters and demands careful font design but it is hard to predict + all cases + \stopitem + \startitem + a sloppy font design can result in a performance hit or huge fonts + \stopitem + \startitem + features can be bugged and fonts vendors seldom have an update policy + \stopitem + \startitem + shapers can differ due to assumptions, heuristics, interpreting + specifications, bugs, \unknown + \stopitem +\stopitemize + +\stopchapter + +\startchapter[title=Examples] + \startitem + all kind of substitutions: \type {2017-features-substitutiontest.tex} + \stopitem + \startitem + simple inter character kerns: \type {2017-features-kerntest.tex} + \stopitem + \startitem + single character positioning: \type {2017-features-singletest.tex} + \stopitem + \startitem + pairwise character positioning: \type {2017-features-pairtest.tex} + \stopitem + \startitem + contextual positioning: \type {2017-features-contexttest.tex} + \stopitem + \startitem + kerning with space (glue): \type {2017-features-spacetest.tex} + \stopitem +\startitemize + +\stopitemize + +\stopchapter + +\stopdocument diff --git a/Master/texmf-dist/doc/context/presentations/context/2017/context-2017-performance.pdf b/Master/texmf-dist/doc/context/presentations/context/2017/context-2017-performance.pdf new file mode 100644 index 00000000000..9656e2f0ef8 Binary files /dev/null and b/Master/texmf-dist/doc/context/presentations/context/2017/context-2017-performance.pdf differ diff --git a/Master/texmf-dist/doc/context/presentations/context/2017/context-2017-performance.tex b/Master/texmf-dist/doc/context/presentations/context/2017/context-2017-performance.tex new file mode 100644 index 00000000000..458a051a553 --- /dev/null +++ b/Master/texmf-dist/doc/context/presentations/context/2017/context-2017-performance.tex @@ -0,0 +1,65 @@ +\usemodule[present-lines] + +\definecolor[maincolor][g=.4,b=.4] + +\startdocument[title=Performance,subtitle={\CONTEXT\ 2017 Maibach}] + +\startchapter[title=Why bother] + +\startitemize + \startitem because we don't want to waste time waiting \stopitem + \startitem because I get tired of ignorance related complaints \stopitem + \startitem because it (sometimes) can be a nice puzzle to improve performance \stopitem + \startitem because it occasionally reviewing makes code better \stopitem +\stopitemize + +\stopchapter + +\startchapter[title=Possible bottlenecks] + +\startitemize + \startitem starting up \stopitem + \startitem loading fonts \stopitem + \startitem processing features \stopitem + \startitem applying trickery \stopitem + \startitem enabling tracing \stopitem + \blank[2*big] + \startitem fonts \stopitem + \startitem \LUA \stopitem + \startitem images \stopitem +\stopitemize + +\stopchapter + +\startchapter[title=Measurements] + +\startitemize + \startitem how long does a run take \stopitem + \startitem how does the number of pages matter \stopitem + \startitem how many runs are needed \stopitem + \blank[2*big] + \startitem start-up time \stopitem + \startitem processing pages \stopitem + \startitem finishing the document \stopitem + \startitem the console used \stopitem +\stopitemize + +\stopchapter + +\startchapter[title=Examples] + +\startitemize +\startitem + see \goto{onandon-performance.pdf}[file(onandon-performance.pdf)] for timings +\stopitem +\startitem + you can try \type {--timing} to see where \LUA\ spends it time +\stopitem +\startitem + analyzing with \type {--profile} can give some indication (but is slow) +\stopitem +\stopitemize + +\stopchapter + +\stopdocument diff --git a/Master/texmf-dist/doc/context/presentations/context/2017/context-2017-synctex.pdf b/Master/texmf-dist/doc/context/presentations/context/2017/context-2017-synctex.pdf new file mode 100644 index 00000000000..d5b39f095b8 Binary files /dev/null and b/Master/texmf-dist/doc/context/presentations/context/2017/context-2017-synctex.pdf differ diff --git a/Master/texmf-dist/doc/context/presentations/context/2017/context-2017-synctex.tex b/Master/texmf-dist/doc/context/presentations/context/2017/context-2017-synctex.tex new file mode 100644 index 00000000000..0ca6dfd0ea9 --- /dev/null +++ b/Master/texmf-dist/doc/context/presentations/context/2017/context-2017-synctex.tex @@ -0,0 +1,102 @@ +% \setupsynctex +% [state=start] + +% \enabletrackers +% [system.synctex.visualize] + +\usemodule[present-lines] + +\definecolor[maincolor][r=.6] + +\startdocument[title=\SYNCTEX,subtitle={\CONTEXT\ 2017 Maibach}] + +\startchapter[title=What is \SYNCTEX] + +\startitemize + \startitem it is a mechanism for going back from viewer to editor \stopitem + \startitem it uses an extra (zipped) output file \stopitem + \startitem it adds an overhead of 5 to 15 percent runtime \stopitem + \startitem it is designed with a specific macro package in mind \stopitem + \startitem the rather generic approach works okay for simple document layouts \stopitem + \startitem but it often fails for projects that use multiple files\stopitem + \startitem and that moves information around like \XML\ encoded files \stopitem +\stopitemize + +\startchapter[title=Disclaimer] + +\startitemize + \startitem till recently it was supported in \CONTEXT\ as-it-was \stopitem + \startitem there were no compliants, so it must have worked ok for most users \stopitem + \startitem we never used it ourselves because of mentioned reasons \stopitem + \startitem we only wanted to support it when it works ok in projects \stopitem + \startitem (think of thousands of \XML\ with deeply nested inclusions in one document) \stopitem + \startitem but what we support now is purely based on personal experiences \stopitem + \startitem we don't use it ourselves so feedback is welcome \stopitem +\stopitemize + +\stopchapter + +\startchapter[title=What we do] + +\startitemize + \startitem the normal \SYNCTEX\ mechanism is disabled \stopitem + \startitem when told so, \CONTEXT\ will kick in its own code \stopitem + \startitem this is done by using \LUA\ code to set the right information \stopitem + \startitem only source files that make sense are dealt with \stopitem + \startitem this protects the styles from unwanted changes \stopitem + \startitem within reasonable bounds \XML\ is supported \stopitem + \startitem this also includes nested documents \stopitem +\stopitemize + +\stopchapter + +\startchapter[title=How it works] + +\startitemize + \startitem we only mark text and don't bother about the rest \stopitem + \startitem we collapse information about whole stretches \stopitem + \startitem the extra file is therefore not that large \stopitem + \startitem so we can do without compression \stopitem + \startitem some care is needed to avoid interference with the editors parser \stopitem + \startitem (read: we need to get rid of the rather complex and heuristics) \stopitem + \startitem (read: it would be nice to have a simple robust parser option) \stopitem + \startitem there are flaws but I will look into them when motivated \stopitem +\stopitemize + +\stopchapter + +\startchapter[title=What the user gets] + +\startitemize + \startitem a way to turn it on: + \starttyping + \setupsynctex[state=start] + \stoptyping + \stopitem + \startitem control over methods: + \starttyping + \setupsynctex[method=max] + \stoptyping + \stopitem + \startitem visual tracing: + \starttyping + \enabletrackers[system.synctex.visualize] + \stoptyping + \stopitem + \startitem some low level commands: + \starttyping + \synctexblockfilename{filename} + \synctexsetfilename {filename} + \synctexresetfilename + \synctexpause + \synctexresume + \stoptyping + \stopitem +\stopitemize + +% \enabletrackers[system.synctex.xml] +% \enabledirectives[system.synctex.details] + +\stopchapter + +\stopdocument diff --git a/Master/texmf-dist/doc/context/presentations/context/2017/context-2017-tables.pdf b/Master/texmf-dist/doc/context/presentations/context/2017/context-2017-tables.pdf new file mode 100644 index 00000000000..299c21f3938 Binary files /dev/null and b/Master/texmf-dist/doc/context/presentations/context/2017/context-2017-tables.pdf differ diff --git a/Master/texmf-dist/doc/context/presentations/context/2017/context-2017-tables.tex b/Master/texmf-dist/doc/context/presentations/context/2017/context-2017-tables.tex new file mode 100644 index 00000000000..6f28226688b --- /dev/null +++ b/Master/texmf-dist/doc/context/presentations/context/2017/context-2017-tables.tex @@ -0,0 +1,175 @@ +\usemodule[present-lines] + +\definecolor[maincolor][r=.4,b=.4] + +\startdocument[title=Tables,subtitle={\CONTEXT\ 2017 Maibach}] + +\startchapter[title=Variants] + +\startitemize + \startitem + Good old \TABLE, a wrapper about \TEX's alignment. + \stopitem + \startitem + Running text, break across pages tabulates. + \stopitem + \startitem + Tables that behave like \HTML\ tables therefore called + natural tables. + \stopitem + \startitem + A variant on this that is more easy to extend, tagged + extreme tables. + \stopitem + \startitem + A low profile linetable mechanism that can span pages + and breaks well. + \stopitem + \startitem + A way to make huge tables without overflowing \TEX\ too + soon. + \stopitem +\stopitemize + +\stopchapter + +\startchapter[title=\TABLE] + +\startitemize + \startitem + Based on the \TABLE\ macro package. + \stopitem + \startitem + Detailed control over spacing. + \stopitem + \startitem + Somewhat inconsistent spacing out of the box. + \stopitem + \startitem + Extended with extra features. + \stopitem + \startitem + Mostly rewritten but within the original concept. + \stopitem +\stopitemize + +\stopchapter + +\startchapter[title=Tabulate] + +\startitemize + \startitem + Mostly meant for tables that are part of the text flow. + \stopitem + \startitem + Breaks paragraphs across pages. + \stopitem + \startitem + Sort of compatible in control with \TABLE. + \stopitem + \startitem + The system that I used most often. + \stopitem + \startitem + It uses multiple passes if needed. + \stopitem +\stopitemize + +\stopchapter + +\startchapter[title=Natural tables] + +\startitemize + \startitem + Modelled after \HTML\ tables. + \stopitem + \startitem + Often used in \XML\ workflows, possibly as cals tables. + \stopitem + \startitem + To some extend automatic spans horizontally and vertically. + \stopitem + \startitem + There are a couple of (undocumented and obscure) flags that can control + behaviour. + \stopitem + \startitem + They can break cross pages if needed. + \stopitem + \startitem + Tables, rows and cells have framed like properties. + \stopitem + \startitem + Not the fastest mechanism as it used several passes (for which it + stores all cells). + \stopitem +\stopitemize + +\stopchapter + +\startchapter[title=Extreme tables] + +\startitemize + \startitem + Again modelled after \HTML\ tables. + \stopitem + \startitem + A few less options but also some more than natural tables. + \stopitem + \startitem + Most work is delegated to \LUA. + \stopitem + \startitem + Uses buffers and therefore nesting is (as with natural tables) + possible but with care. + \stopitem +\stopitemize + +\stopchapter + +\startchapter[title=Line tables] + +\startitemize + \startitem + Written for and used in a project long ago. + \stopitem + \startitem + Meant for huge tables that span multiple pages horizontally + and vertically. + \stopitem + \startitem + It only can have simple colored backgrounds. + \stopitem + \startitem + Hardly used. + \stopitem + \startitem + I need to redo (or check) the implementation some day. + \stopitem +\stopitemize + +\startchapter[title=Frame tables] + +\startitemize + \startitem + Written for and used for Thomas who needs real huge tables + generated from \XML. + \stopitem + \startitem + It's a single pass mechanism. + \stopitem + \startitem + Each cell is a framed. + \stopitem + \startitem + Dimensions need to be adapted when you want predictable output. + \stopitem + \startitem + I might extend it but within reasonable bounds. + \stopitem +\stopitemize + +\stopchapter + + +\stopdocument diff --git a/Master/texmf-dist/doc/context/presentations/context/2019/context-2019-lmtx.pdf b/Master/texmf-dist/doc/context/presentations/context/2019/context-2019-lmtx.pdf new file mode 100644 index 00000000000..7cf25734729 Binary files /dev/null and b/Master/texmf-dist/doc/context/presentations/context/2019/context-2019-lmtx.pdf differ diff --git a/Master/texmf-dist/doc/context/presentations/context/2019/context-2019-lmtx.tex b/Master/texmf-dist/doc/context/presentations/context/2019/context-2019-lmtx.tex new file mode 100644 index 00000000000..62dd915adac --- /dev/null +++ b/Master/texmf-dist/doc/context/presentations/context/2019/context-2019-lmtx.tex @@ -0,0 +1,201 @@ +% macros=mkvi + +\usemodule[abbreviations-smallcaps] +\usemodule[present-luatex] + +\logo [LUAMETATEX] {LuaMeta\TeX} + +\setupbodyfont[12pt] + +\setupalign[verytolerant] + +\setupdocument + [title={Lean and mean}, + subtitle={\LUAMETATEX}, + location={\ConTeXt\ meeting, September 2019}, + author={Hans & Alan}, + mp:title={\LUAMETATEX}] + +\startdocument + +\setupitemize[headintext] +\setupitemize[headstyle=bold] + +\page \setupdocument[mp:subtitle={How it became}] + +\startitemize + \starthead {interferences:} + \CONTEXT, plain \TEX\ and \LATEX\ all have different demands (we want to + experiment and move on and users pick up fast) + \stophead + \starthead {complexity:} + the source tree is way too complex as is the build (we only need \LUATEX) + \stophead + \starthead {distributions:} + no one can guarantee stability for \CONTEXT\ (being a minor player but + often a bit ahead) + \stophead + \starthead {annoyances:} + experimental codes leads to usage outside \CONTEXT\ and that triggers + complaints + \stophead + \starthead {motivation:} + running into folks who love to stress \quotation {huge bugs} and + \quotation {much instability} wastes energy + \stophead + \starthead {arguments:} + I got tired of \quotation {you need to support this because \unknown} + blabla + \stophead + \starthead {nagging:} + like \quotation {the manual \unknown} is becoming too tiresome, so best + keep experiments within the \CONTEXT\ bubble + \stophead +\stopitemize + +\page \setupdocument[mp:subtitle={What it is}] + +\startitemize + \starthead {simplification:} + we don't need all what is currently in the \LUATEX\ engine as we don't + use it + \stophead + \starthead {source:} + there is much less of it and we can get rid of \WEB\ artifacts + \stophead + \starthead {compilation:} + there was much more going on than was needed and only a few knew those + details + \stophead + \starthead {consistency:} + to guarantee consistency with \CONTEXT\ the source code will be part of + the source distribution (once I'm satisfied) + \stophead + \starthead {marketing:} + this way the relation with \CONTEXT\ and its user base is more clear + \stophead + \starthead {playground:} + we can move forward and experiment without the danger of running into + problems with non \CONTEXT\ users: \quotation {use it at your own risk} + \stophead + \starthead {possibilities:} + playing a bit more with the bits and pieces that are reponsible for most + (interfering) issues, like the the (asynchronous) page builder + \stophead +\stopitemize + +\page \setupdocument[mp:subtitle={Implications}] + +\startitemize + \starthead {binary:} + there is only one relatively small binary needed (that does all things + needed) + \stophead + \starthead {code base:} + there comes an extra source tree, but it's small (compresses to around 2 + MB) + \stophead + \starthead {user control:} + if needed users can compile the program so we're self contained + \stophead + \starthead {future safe:} + we can move forward and improve + \stophead + \starthead {modern:} + a code base with the latest \LUATEX, \MPLIB\ and \LUA + \stopitem + \starthead {side effect:} + we drop \LUAJIT\ as it doesn't keep up (and benefits are too small) + \stophead + \starthead {design:} + we have a better separation between the Knuthian front- and output format + driven backend + \stophead + \starthead {independent:} + there is no dependency on external libraries, we keep all we need in the + code base (we only use a few small third party libraries) + \stophead +\stopitemize + +\page \setupdocument[mp:subtitle={A few notes}] + +\startitemize + \starthead {hobyism} + we don't need to carry the burden of everything (unless paid for it's + only fun and users that drives development) + \stophead + \starthead {convenience:} + the faster compilation makes reworking and experimenting reasonable + \stophead + \starthead {stepwise:} + I take my time an do string stepswise because things should not break + without fast recovery + \stophead + \starthead {feelgood:} + this all fits well into the good old \TEX\ extension model + \stophead + \starthead {eventually:} + when proven useful we can always push code upstream into \LUATEX + \stophead +\stopitemize + +\page \setupdocument[mp:subtitle={Bits and pieces}] + +\startitemize + \starthead {original:} + the starting point is \LUATEX, original \WEB\ code, already \CWEB\ code + \stophead + \starthead {stability:} + after a initial stage \LUATEX\ was stepwise extended till version one + a few years ago + \stophead + \starthead {frozen:} + there were only a few changes after that but no real conceptual ones + \stophead + \starthead {engine:} + what is now called \LUAMETATEX\ is a reworked code base + \stophead + \starthead {graphics:} + also \MPLIB\ has been reworked a bit and some extensions were added + \stophead + \starthead {libraries:} + there are a few extra (small) helper libs, but all in the source tree + \stophead + \starthead {pplib:} + we already use the next version of pplib + \stophead + \starthead {pruning:} + and best of all, quite some not used code could go + \stophead +\stopitemize + +\page \setupdocument[mp:subtitle={Some details}] + +\startitemize + \starthead {source tree:} + the code base has been regrouped, globals became more local (work in + progress), header files were added + \stophead + \starthead {source files:} + there is hardly any font related code, languages were kept, and the + backend code is dropped: show files + \stophead + \starthead {libraries:} + a few libs were added and dropped: show some + \stophead + \starthead {cmake:} + compilation is different: work in progress + \stophead + \starthead {mkxl:} + there are new files in \CONTEXT: \type {driv}, \type {lpdf}, \type {.mkxl} + and expect more + \stophead + \starthead {binary:} + there is only one stub for all + \stophead +\stopitemize + +{\infofont during presentation: show the source tree as well as the binary directory} + +\stopdocument + -- cgit v1.2.3