diff options
Diffstat (limited to 'doc/context/presentations/context/2012')
12 files changed, 1202 insertions, 0 deletions
diff --git a/doc/context/presentations/context/2012/context-2012-after-the-cleanup.pdf b/doc/context/presentations/context/2012/context-2012-after-the-cleanup.pdf Binary files differnew file mode 100644 index 000000000..dc0e85ed4 --- /dev/null +++ b/doc/context/presentations/context/2012/context-2012-after-the-cleanup.pdf diff --git a/doc/context/presentations/context/2012/context-2012-after-the-cleanup.tex b/doc/context/presentations/context/2012/context-2012-after-the-cleanup.tex new file mode 100644 index 000000000..a127ca09a --- /dev/null +++ b/doc/context/presentations/context/2012/context-2012-after-the-cleanup.tex @@ -0,0 +1,162 @@ +\usemodule[present-stepwise,present-bars,abr-01] + +\startdocument + [title=After the cleanup, + color=darkred] + +\StartSteps + +\startsubject[title=The update] + + \startitemize[packed] + + \startitem The move to \MKIV\ is more than supporting an engine. \stopitem \FlushStep + \startitem It is a complete rewrite (pruning, extending, cleaning). \stopitem \FlushStep + \startitem Although somewhat crippled by the fact that we want to remain compatible. \stopitem \FlushStep + \startitem But sometimes we sacrifice compatibility by getting rid of old stuff. \stopitem \FlushStep + + \stopitemize + +\stopsubject + +\startsubject[title=The current state] + + \startitemize[packed] + + \startitem A lot of work, more than I had thought, so it takes longer. \stopitem \FlushStep + \startitem Most \TEX\ code is done (some structure and column code left). \stopitem \FlushStep + \startitem New namespaces and helpers mostly done, but will be checked for constency. \stopitem \FlushStep + + \stopitemize + +\stopsubject + +\StopSteps + +\page + +\StartSteps + +\startsubject[title=What is there todo] + + \startitemize[packed] + + \startitem Some code might become generalized (also depends on others). \stopitem \FlushStep + \startitem Layer and positioning code might get a more extensive \LUA\ and \XML\ interface. \stopitem \FlushStep + \startitem Structure related code will support setups (some already in place). \stopitem \FlushStep + \startitem New page builder variants will be explored (anyway more column support and floats). \stopitem \FlushStep + \startitem Math domains cq.\ dictionaries (basics already in place, just needs time). \stopitem \FlushStep + \startitem Math list optimization (pet project). \stopitem \FlushStep + \startitem Generate dependecy trees (easier now) and more consistent code loading order. \stopitem \FlushStep + \startitem All error messages needs checking (some gone, some not yet translated). \stopitem \FlushStep + \startitem Update all xml definitions (work in progress, also relates to wiki). \stopitem \FlushStep + \startitem Optimize positioning system (a bit more powerful now, but also more resources). \stopitem \FlushStep + \startitem More support for css like styling (makes it easier to share code). \stopitem \FlushStep + \startitem Modules (especially those for tracing) need to be normalized. \stopitem \FlushStep + \startitem Some styles (mostly private presentation styles) needs to be fixed. \stopitem \FlushStep + \startitem Pick up the \quote {lean and mean} \CONTEXT\ variant project. \stopitem \FlushStep + \startitem Now that we have more code isolated, we can define an api. \stopitem \FlushStep + \startitem Some manuals need to be updated (most still applies). \stopitem \FlushStep + + \stopitemize + +\stopsubject + +\StopSteps + +\page + +\StartSteps + +\startsubject[title=What I have to keep in mind] + + \startitemize[packed] + + \startitem What is handy for me is not always handy for all users. \stopitem \FlushStep + + \stopitemize + +\stopsubject + +\startsubject[title=But nevertheless there will be new things] + + \startitemize[packed] + + \startitem Elements of our processing framework will show up in the distribution. \stopitem \FlushStep + \startitem It's just more convenient to have one installation for related things. \stopitem \FlushStep + \startitem This is also why support for databases has been added recently. \stopitem \FlushStep + \startitem Running (blocking) \TEX\ jobs needs special treatment (ticket management). \stopitem \FlushStep + \startitem It makes sense to use the well developed \TDS\ infrastructure. \stopitem \FlushStep + + \stopitemize + +\stopsubject + +\StopSteps + +\page + +\StartSteps + +\startsubject[title=Keep an eye on updates] + + \startitemize[packed] + + \startitem Rewriting the code base leads to bugs but these are often resolved quickly + (indeed by Wolfgang). \stopitem \FlushStep + \startitem Following the mailing list helps and nowadays the wiki is adapted close to + realtime (coordinated by Sietse). \stopitem \FlushStep + \startitem Changes in standards and related tools are supported and followed by those who + depend on them (ask Peter). \stopitem \FlushStep + \startitem Sometimes users have demands and these end up as extensions to existing + mechanisms (Aditya's elastic modules). \stopitem \FlushStep + \startitem Issues with platforms are often quickly dealt with (if Luigi doesn't know it + \unknown). \stopitem \FlushStep + \startitem And of course I add new things driven by projects, challenges (and an occasional + stack of new \CD's). \stopitem \FlushStep + \startitem New releases (and betas) are checked against a growing set of test files (Lukas + mails a report after each update). \stopitem \FlushStep + \stopitemize + +\stopsubject + +\StopSteps + +\page + +\StartSteps + +\startsubject[title=Just ask] + + \startitemize[packed] + + \startitem We started long ago with what ended up as \MKII\ and \MPII. \stopitem \FlushStep + \startitem We currently have \MKIV\ and \MPIV. \stopitem \FlushStep + \startitem It has some features that we tag as \MKVI. \stopitem \FlushStep + \startitem Recently \MKIX\ and \MKXI\ were introduced. \stopitem \FlushStep + \blank + \startitem Examples: \MKIV, \MKVI, \MKIX, \MKXI \stopitem \FlushStep + \blank + \startitem So, what should \MKIC\ provide \stopitem \FlushStep + + \stopitemize + +\stopsubject + +\startsubject[title=What I'm working on] + + \startitemize[packed] + + \startitem Proper dependency chain so that we can make small dedicated formats. \stopitem \FlushStep + \startitem Support for typesetting from databases (text, graphics). \stopitem \FlushStep + \startitem Next iteration if (job) tickets processing system cq. framework. \stopitem \FlushStep + + \stopitemize + +\stopsubject + +\StopSteps + +% show latest manuals + +\stopdocument diff --git a/doc/context/presentations/context/2012/context-2012-lexing-sources.pdf b/doc/context/presentations/context/2012/context-2012-lexing-sources.pdf Binary files differnew file mode 100644 index 000000000..be51108b3 --- /dev/null +++ b/doc/context/presentations/context/2012/context-2012-lexing-sources.pdf diff --git a/doc/context/presentations/context/2012/context-2012-lexing-sources.tex b/doc/context/presentations/context/2012/context-2012-lexing-sources.tex new file mode 100644 index 000000000..1135148e1 --- /dev/null +++ b/doc/context/presentations/context/2012/context-2012-lexing-sources.tex @@ -0,0 +1,81 @@ +\usemodule[present-stepwise,present-bars,abr-01] + +\definecolor[verydark][s=.2] + +\startdocument + [title=Lexing sources, + color=verydark] + +\StartSteps + +\startsubject[title=What is lexing] + + \startitemize[packed] + \startitem Computer languages have mandate structure. \stopitem \FlushStep + \startitem You can avoid errors by checking the input. \stopitem \FlushStep + \startitem Editors can help by coloring reserved words, concept etc. \stopitem \FlushStep + \startitem Consistency in coloring different languages makes sense. \stopitem \FlushStep + \stopitemize + +\stopsubject + +\startsubject[title=When did we start] + + \startitemize[packed] + \startitem We wrote our first editor begin 90's. \stopitem \FlushStep + \startitem An extension quickly followed when we moved to \TEX: \TEXEDIT. \stopitem \FlushStep + \startitem When \MODULA\ was no longer fashion we moved on to \PERL: \TEXWORK\ (quick demo) \stopitem \FlushStep + \startitem When we ran into \SCITE\ we start using that. \stopitem \FlushStep + \startitem I provided syntax highlighting for \TEX\ and \METAPOST\ (support for multiple formats etc.). \stopitem \FlushStep + \stopitemize + +\stopsubject + +\StopSteps + +\page + +\StartSteps + +\startsubject[title=Side effect of \MKIV] + + \startitemize[packed] + \startitem \SCITE\ got \LPEG\ based lexing (external lexing). \stopitem \FlushStep + \startitem I already had already written some lexers for the pretty printers. \stopitem \FlushStep + \startitem So I gave it a go and made some more advanced lexers. \stopitem \FlushStep + \startitem These ship with \CONTEXT: \TEX, \XML, \PDF, \LUA, \CLD, \METAPOST, text. \stopitem \FlushStep + \stopitemize + +\stopsubject + +\startsubject[title=Characteristics] + + \startitemize[packed] + \startitem The \TEX\ lexer supports nested lexing of \LUA\ and \METAPOST. \stopitem \FlushStep + \startitem Integrated spell checking is provided. \stopitem \FlushStep + \startitem Unfortunately there is no lexing for \SCITE\ on \MACOSX\ (not that I care too much nowadays). \stopitem \FlushStep + \startitem It is a pitty that we have no access to \SCITE\ internal as with the regular \LUA\ interface. \stopitem \FlushStep + \startitem On my good old machine huge files lex somewhat slow (at the end). \stopitem \FlushStep + \stopitemize + +\stopsubject + +\StopSteps + +\page + +\StartSteps + +\startsubject[title=The future] + + \startitemize[packed] + \startitem I will improve the current lexers. \stopitem \FlushStep + \startitem An \SQL\ lexer will be added at some point \stopitem \FlushStep + \startitem I might make an \HTML/\CSS\ variant that supports nexted \LMX. \stopitem \FlushStep + \stopitemize + +\stopsubject + +\StopSteps + +\stopdocument diff --git a/doc/context/presentations/context/2012/context-2012-mixed-columns.pdf b/doc/context/presentations/context/2012/context-2012-mixed-columns.pdf Binary files differnew file mode 100644 index 000000000..f2dc8ecaf --- /dev/null +++ b/doc/context/presentations/context/2012/context-2012-mixed-columns.pdf diff --git a/doc/context/presentations/context/2012/context-2012-mixed-columns.tex b/doc/context/presentations/context/2012/context-2012-mixed-columns.tex new file mode 100644 index 000000000..af35917f0 --- /dev/null +++ b/doc/context/presentations/context/2012/context-2012-mixed-columns.tex @@ -0,0 +1,79 @@ +\usemodule[present-stepwise,present-bars,abr-01] + +\startdocument + [title=The scripts, + color=darkyellow] + +\StartSteps + +\startsubject[title=Output] + + \startitemize[packed] + + \startitem \TEX\ collects content paragraph wise. \stopitem \FlushStep + \startitem In between it can trigger the so called output routine. \stopitem \FlushStep + \startitem At that moment you can do something with the result. \stopitem \FlushStep + \startitem One of the things you can do is package all collected so far in a page. \stopitem \FlushStep + + \stopitemize + +\stopsubject + +\startsubject[title=Bonus] + + \startitemize[packed] + + \startitem In \LUATEX\ we can also intercept content at more places. \stopitem \FlushStep + \startitem For instance before and after each paragraph is processed. \stopitem \FlushStep + + \stopitemize + +\stopsubject + +\StopSteps \page \StartSteps + +\startsubject[title=Columns] + + \startitemize[packed] + + \startitem \TEX\ has no concept of columns. \stopitem \FlushStep + \startitem You need to fake them by fiddling with the width and spitting boxes. \stopitem \FlushStep + \startitem Often we can use tabulate (no output routine). \stopitem \FlushStep + \startitem For some local applications we use simple columns. \stopitem \FlushStep + \startitem In for instance itemize we used a mixed one- and multi-column model. \stopitem \FlushStep + \startitem Columnsets are another (independent) mechanism, strongly grid based. \stopitem \FlushStep + \startitem Traditional multicolumns are being replaced by a new mechanism: mixed columns. \stopitem \FlushStep + + \stopitemize + +\stopsubject + +\startsubject[title=Pitfalls] + + \startitemize[packed] + + \startitem Footnotes: page, first or last column, each column (delayed, immediate). \stopitem \FlushStep + \startitem Graphics: moving floats around is more complex than in single columns. \stopitem \FlushStep + \startitem Nesting: how about columns inside columns. \stopitem \FlushStep + \startitem Balancing: can be hard taking all into account. \stopitem \FlushStep + + \stopitemize + +\stopsubject + +\StopSteps \page \StartSteps + +\startsubject[title=Questions] + + \startitemize[packed] + + \startitem Do complex column mechanisms still make sense given the move to electronic paper. \stopitem \FlushStep + \startitem If so, what functionality should be provided. \stopitem \FlushStep + + \stopitemize + +\stopsubject + +\StopSteps + +\stopdocument diff --git a/doc/context/presentations/context/2012/context-2012-the-script.pdf b/doc/context/presentations/context/2012/context-2012-the-script.pdf Binary files differnew file mode 100644 index 000000000..935e6600e --- /dev/null +++ b/doc/context/presentations/context/2012/context-2012-the-script.pdf diff --git a/doc/context/presentations/context/2012/context-2012-the-script.tex b/doc/context/presentations/context/2012/context-2012-the-script.tex new file mode 100644 index 000000000..be586e2ff --- /dev/null +++ b/doc/context/presentations/context/2012/context-2012-the-script.tex @@ -0,0 +1,453 @@ +\usemodule[present-stepwise,present-bars,abr-01] + +\startdocument + [title=The scripts, + color=darkblue] + +\StartSteps + +\startsubject[title=Some myths] + + \startitemize[packed] + + \startitem \CONTEXT\ looks al lot like plain \TEX\ and expects users to program macros. \stopitem \FlushStep + \startitem \CONTEXT\ depends on \RUBY. \stopitem \FlushStep + + \stopitemize + +\stopsubject + +\startsubject[title=The truth] + + \startitemize[packed] + + \startitem On the average users don't have to program. Configuring is not programming. \stopitem \FlushStep + \startitem As \TEX\ lacks commandline handling and job control, helpers are provided. \stopitem \FlushStep + \startitem Of course users can still program a lot, but not all need that. \stopitem \FlushStep + \startitem Of course users can directly run \CONTEXT, but why should they. \stopitem \FlushStep + + \stopitemize + +\stopsubject + +\startsubject[title=A few facts] + + \startitemize[packed] + + \startitem The \CONTEXT\ distribution provides a sort of ecosystem. \stopitem \FlushStep + \startitem In \MKII\ indeed we use \RUBY\ for some job control. \stopitem \FlushStep + \startitem But in \MKIV\ all is (of course) done in \LUA. \stopitem \FlushStep + \startitem Two scripts play an important role: mtxrun and context. \stopitem \FlushStep + + \stopitemize + +\stopsubject + +\StopSteps + +\page + +\StartSteps + +\startsubject[title=The \quote {mtxrun} script] + + \startitemize[packed] + + \startitem Locates and runs scripts, has a lot of helpers preloaded. \stopitem \FlushStep + \startitem It is in fact my \LUA\ runner on top the \TEXLUA. \stopitem \FlushStep + \startitem It knows about files and the environment we run in. \stopitem \FlushStep + \startitem It has some features that makes it easier to integrate in services. \stopitem \FlushStep + \startitem This way we don't need stubs (and avoid potential conflicts in name). \stopitem \FlushStep + + \stopitemize + +\stopsubject + +\startsubject[title=The \quote {context} script] + +\startitemize[packed] + + \startitem It runs \CONTEXT\ and keeps track of how many runs are needed. \stopitem \FlushStep + \startitem Contrary to its \MKII\ ancestor it is not needed for index sorting etc. \stopitem \FlushStep + \startitem It has a few extensions that are loaded on demand: extras \stopitem \FlushStep + +\stopitemize + +\stopsubject + +\StopSteps + +\page + +\StartSteps + +\startsubject[title=A regular run] + + \starttyping + context [--run] filename + \stoptyping \FlushStep + +\stopsubject + +\startsubject[title=Running from an editor] + + \starttyping + context --autopdf filename + \stoptyping \FlushStep + +\stopsubject + +\startsubject[title=Running from an service] + + \starttyping + mtxrun --path=somepath --script context filename + \stoptyping \FlushStep + +\stopsubject + +\StopSteps + +\page + +\StartSteps + +\startsubject[title=Controlling the rendering] + + \starttyping + --usemodule=list + --environment=list + --mode=list + --arguments=list + --path=list + \stoptyping \FlushStep + +\stopsubject + +\startsubject[title=Controlling with ctx files] + + \starttyping + --ctx=name + \stoptyping \FlushStep + +\stopsubject + +\startsubject[title=Also in preamble] + + \starttyping + <?context-directive job ctxfile m4all.ctx ?> + \stoptyping \FlushStep + +\stopsubject + +\StopSteps + +\page + +\StartSteps + +\startsubject[title=A ctx file] + +\starttyping +<?xml version='1.0' standalone='yes'?> + +<ctx:job> + <ctx:message>EPUB Formatter</ctx:message> + <ctx:flags> + <ctx:flag>purge</ctx:flag> + <ctx:flag>global</ctx:flag> + </ctx:flags> + <ctx:process> + <ctx:resources> + <ctx:module>epub-01</ctx:module> + </ctx:resources> + </ctx:process> +</ctx:job> +\stoptyping \FlushStep + +\stopsubject + +\StopSteps + +\page + +\StartSteps + +\startsubject[title=Multiple products from one source] + + \starttyping + --result=name + \stoptyping \FlushStep + +\stopsubject + +\startsubject[title=When imposition is needed] + + \starttyping + --arrange + \stoptyping \FlushStep + +\stopsubject + +\startsubject[title=Cleanup after runs] + + \starttyping + --batchmode + --purge(all) + --purgeresult + \stoptyping \FlushStep + +\stopsubject + +\StopSteps + +\page + +\StartSteps + +\startsubject[title=Sometimes faster (in services)] + + \starttyping + --once + --runs=2 + \stoptyping \FlushStep + +\stopsubject + +\startsubject[title=Normally automatically done] + + \starttyping + --make + --generate + --touch + \stoptyping \FlushStep + +\stopsubject + +\startsubject[title=Seldom used] + + \starttyping + --interface + --randomseed=number + \stoptyping \FlushStep + +\stopsubject + +\StopSteps + +\page + +\StartSteps + +\startsubject[title=Information about extra control] + + \starttyping + --trackers + --directives + --showlogcategories + --version + \stoptyping \FlushStep + +\stopsubject + +\startsubject[title=Controlling the machinery] + + \starttyping + --trackers=list + --directives=list + --silent=list + --noconsole + --nostatistics + \stoptyping \FlushStep + +\stopsubject + +\StopSteps + +\page + +\StartSteps + +\startsubject[title=When no local file is used] + + \starttyping + --global + --nofile + \stoptyping \FlushStep + +\stopsubject + +\startsubject[title=When the automatics recognition doesn't work] + + \starttyping + --forcexml + --forcecld + --forcelua + --forcemp + \stoptyping \FlushStep + +\stopsubject + +\StopSteps + +\page + +\StartSteps + +\startsubject[title=Only handy for development (or me)] + + \starttyping + --profile + --timing + \stoptyping \FlushStep + +\stopsubject + +\startsubject[title=Forget about these] + + \starttyping + --paranoid + --update + \stoptyping \FlushStep + +\stopsubject + +\startsubject[title=Some hidden treasures] + + \starttyping + --extras + --extra=name + \stoptyping \FlushStep + +\stopsubject + +\StopSteps + +\page + +\StartSteps + +\startsubject[title=Arguments can be prefixed] + + \starttyping + environment: + relative: + auto: + locate: + filename: + pathname: + home: + selfautoloc: + selfautoparent: + selfautodir: + \stoptyping \FlushStep + +\stopsubject + +\StopSteps + +\page + +\StartSteps + +\startsubject[title=Recent (probably unnoticed) change] + + \starttyping + luatex + --fmt=".../tex/texmf-cache/luatex-cache/context/.../formats/cont-en" + --lua=".../tex/texmf-cache/luatex-cache/context/.../formats/cont-en.lui" + --jobname="context-the-script" + --no-parse-first-line + --c:autopdf + --c:currentrun=1 + --c:fulljobname="./context-the-script.tex" + --c:input="./context-the-script.tex" + --c:kindofrun=1 + "cont-yes.mkiv" + \stoptyping \FlushStep + +\stopsubject + +\startsubject[title=Another change] + +\startitemize[packed] + + \startitem The (runtime generated) options file is no longer there. \stopitem \FlushStep + \startitem For as far as possible arguments are passed directly. \stopitem \FlushStep + \startitem Input files are always loaded indirectly, no more stubs. \stopitem \FlushStep + +\stopitemize + +\stopsubject + +\StopSteps + +\page + +\StartSteps + +\startsubject[title=About 30 mtx/lmx scripts] + + \starttyping + mtx-check.lua + mtx-convert.lua + mtx-epub.lua + mtx-fonts.lua + mtx-modules.lua + mtx-patterns.lua + mtx-pdf.lua + \stoptyping \FlushStep + +\stopsubject + +\startsubject[title=These are run like] + + \starttyping + mtxrun --script pdf + \stoptyping \FlushStep + +\stopsubject + +\StopSteps + +\page + +\StartSteps + +\startsubject[title=Several mtx templates] + + \starttyping + mtx-context-arrange.lua + mtx-context-combine.lua + mtx-context-listing.lua + mtx-context-select.lua + mtx-context-timing.lua + \stoptyping \FlushStep + +\stopsubject + +\startsubject[title=These are run like] + + \starttyping + context --extra=arrange [--help] ... + \stoptyping \FlushStep + +\stopsubject + +\StopSteps + +\page + +\StartSteps + +\startsubject[title=Local preferences] + + \starttyping + texmfcnf.lua + \stoptyping \FlushStep + +\stopsubject + +\StopSteps + +\stopdocument + diff --git a/doc/context/presentations/context/2012/context-2012-visual-debugging.pdf b/doc/context/presentations/context/2012/context-2012-visual-debugging.pdf Binary files differnew file mode 100644 index 000000000..879a1ff69 --- /dev/null +++ b/doc/context/presentations/context/2012/context-2012-visual-debugging.pdf diff --git a/doc/context/presentations/context/2012/context-2012-visual-debugging.tex b/doc/context/presentations/context/2012/context-2012-visual-debugging.tex new file mode 100644 index 000000000..4be8d5e72 --- /dev/null +++ b/doc/context/presentations/context/2012/context-2012-visual-debugging.tex @@ -0,0 +1,296 @@ +\usemodule[present-stepwise,present-bars,abr-01] + +\startdocument + [title=Visual debugging, + color=darkmagenta] + +\StartSteps + +\startsubject[title=How it started] + + \startitemize[packed] + + \startitem Some 15 years ago I wanted some more feedback. \stopitem \FlushStep + \startitem So I figured out a way to visualize boxes, kerns, glue, etc. \stopitem \FlushStep + \startitem Some aspects were tricky, like stretch and shrink (no \ETEX\ yet), fillers, leaders, etc. \stopitem \FlushStep + \startitem I gave some presentations and it was nice to see the puzzled faces. \stopitem \FlushStep + \startitem As unboxing does not work, it is somewhat interfering. \stopitem \FlushStep + \startitem When not enabed there is no overhead but we did disable it at some places. \stopitem \FlushStep + + \stopitemize + +\stopsubject + +\startsubject[title=Do we need it] + + \startitemize[packed] + + \startitem I wonder if anyone ever used it. \stopitem \FlushStep + \startitem Some of the helpers are quite handy, like \type {\ruledhbox}. \stopitem \FlushStep + \startitem So these had to be provided anyway, so: where to stop? \stopitem \FlushStep + + \stopitemize + +\stopsubject + +\StopSteps \page \StartSteps + +\startsubject[title=All kind of debugging] + + \startitemize[packed] + + \startitem We have more debugging, much shows up when writing new code. \stopitem \FlushStep + \startitem Think of fonts, math, graphics, characters, etc. \stopitem \FlushStep + \startitem Some make no sense in \MKIV, so they're gone, but new ones show up. \stopitem \FlushStep + \startitem In due time this will all be normalized (as most lives in modules). \stopitem \FlushStep + + \stopitemize + +\stopsubject + +\StopSteps \page \StartSteps + +\startsubject[title=Why we kept it] + + \startitemize[packed] + + \startitem When cleaning up the code I had to decide to keep it or redo it as it could be done \MKIV-ish. \stopitem \FlushStep + \startitem But as we already had some \LUA\ based extras it made sense to redo it. \stopitem \FlushStep + \startitem The old code is still there as module (also because it had some more funstuff). \stopitem \FlushStep + + \stopitemize + +\stopsubject + +\startsubject[title=How it worked] + + \startitemize[packed] + + \startitem In \MKII\ primitives are overloaded. \stopitem \FlushStep + \startitem So effectively, when enabled, \type {\hbox} cum suis become macros. \stopitem \FlushStep + \startitem We use rules (and leaders) to visualize properties. \stopitem \FlushStep + \startitem Some constructs interfere so we need to compensate side effects. \stopitem \FlushStep + + \stopitemize + +\stopsubject + +\StopSteps \page \StartSteps + +\startsubject[title=How it works] + + \startitemize[packed] + + \startitem The basics were a rather trivial quick job as we had a lot in place already. \stopitem \FlushStep + \startitem Interpreting the node list and injecting visualizers. \stopitem \FlushStep + \startitem We use colors, rules and text but much can be overlayed. \stopitem \FlushStep + \startitem Control over what gets visualized at the \TEX\ end. \stopitem \FlushStep + \startitem Control over what gets shown by using layers. \stopitem \FlushStep + \startitem As usual most time went into visualization choices and optimzation. \stopitem \FlushStep + \startitem Some visualizers interfered with (hardcoded) expectations in the backend. \stopitem \FlushStep + \startitem When I decided to use layers I had to adapt some oter code (mostly out of efficiency). \stopitem \FlushStep + \startitem There is room for more (but first I want the bitlib of \LUA\ 5.2). \stopitem \FlushStep + + \stopitemize + +\stopsubject + +\StopSteps + +\page + +\defineoverlay[invoke][\overlaybutton{NextPage}] + +\defineframed + [MyFramed] + [background=color, + backgroundcolor=yellow, + offset=overlay, + frame=off] + +\startbuffer +\ruledhbox{j} +\ruledhbox{jj} +\ruledhbox{jjj} +\ruledhbox{jjjj} +\ruledhbox{jjjjj} +\stopbuffer + +\startsubject[title=Details 1] + + \scale[width=\textwidth]{\MyFramed \bgroup + {\getbuffer}\removeunwantedspaces + \egroup} + + \typebuffer + +\stopsubject + +\page + +\startbuffer +\ruledhbox{take boxes} +\stopbuffer + +\startsubject[title=Details 2a] + + \scale[width=\textwidth]{\MyFramed \bgroup + {\getbuffer}\removeunwantedspaces + \egroup} + + \typebuffer + +\stopsubject + +\page + +\startbuffer +\ruledhbox{some depth too} +\stopbuffer + +\startsubject[title=Details 2b] + + \scale[width=\textwidth]{\MyFramed \bgroup + {\getbuffer}\removeunwantedspaces + \egroup} + + \typebuffer + +\stopsubject + +\page + +\startbuffer +\showmakeup \hbox{again an hbox} +\stopbuffer + +\startsubject[title=Details 3a] + + \scale[width=\textwidth]{\MyFramed \bgroup + {\getbuffer}\removeunwantedspaces + \egroup} + + \typebuffer + +\stopsubject + +\page + +\startbuffer +\ruledvtop{\ruledvbox{\ruledhbox{multiple boxes}}} +\stopbuffer + +\startsubject[title=Details 3b] + + \scale[width=\textwidth]{\MyFramed \bgroup + {\getbuffer}\removeunwantedspaces + \egroup} + + \typebuffer + +\stopsubject + +\page + +\startbuffer +\showmakeup \hbox{multiple boxes} +\stopbuffer + +\startsubject[title=Details 3c] + + \scale[width=\textwidth]{\MyFramed \bgroup + \hskip.5em + {\getbuffer}\removeunwantedspaces + \hskip.5em + \egroup} + + \typebuffer + +\stopsubject + +\page + +\startbuffer +\showmakeup \vbox{\hbox{multiple boxes}} +\stopbuffer + +\startsubject[title=Details 3c] + + \scale[width=\textwidth]{\MyFramed \bgroup + \hskip.5em + {\getbuffer}\removeunwantedspaces + \hskip.5em + \egroup} + + \typebuffer + +\stopsubject + +\page + +\startbuffer +\showmakeup \vtop{\vbox{\hbox{multiple boxes}}} +\stopbuffer + +\startsubject[title=Details 3d] + + \scale[width=\textwidth]{\MyFramed \bgroup + \hskip.5em + {\getbuffer}\removeunwantedspaces + \hskip.5em + \egroup} + + \typebuffer + +\stopsubject + +\page + +\startbuffer +\showstruts why \strut use \strut's +\stopbuffer + +\startsubject[title=Details 4] + + \scale[width=\textwidth]{\MyFramed \bgroup + {\getbuffer}\removeunwantedspaces + \egroup} + + \typebuffer + +\stopsubject + +\page + +\startbuffer +\showglyphs glyphs +\stopbuffer + +\startsubject[title=Details 5] + + \scale[width=\textwidth]{\MyFramed \bgroup + {\getbuffer}\removeunwantedspaces + \egroup} + + \typebuffer + +\stopsubject +\page + +\startbuffer +\enabletrackers[visualizers.whatsit]glyphs \righttoleft glyphs +\stopbuffer + +\startsubject[title=Details 6] + + \scale[width=\textwidth]{\MyFramed \bgroup + \hskip.75em + {\getbuffer}\removeunwantedspaces + \hskip.75em + \egroup} + + \typebuffer + +\stopsubject + +\stopdocument diff --git a/doc/context/presentations/context/2012/context-2012-xml-news.pdf b/doc/context/presentations/context/2012/context-2012-xml-news.pdf Binary files differnew file mode 100644 index 000000000..ddbf138d7 --- /dev/null +++ b/doc/context/presentations/context/2012/context-2012-xml-news.pdf diff --git a/doc/context/presentations/context/2012/context-2012-xml-news.tex b/doc/context/presentations/context/2012/context-2012-xml-news.tex new file mode 100644 index 000000000..c11c35d31 --- /dev/null +++ b/doc/context/presentations/context/2012/context-2012-xml-news.tex @@ -0,0 +1,131 @@ +\usemodule[present-stepwise,present-bars,abr-01] + +\startdocument + [title={Processing XML, some basics}, + color=darkcyan] + +\StartSteps + +\startsubject[title=Topics] + + \startitemize[packed] + + \startitem processing \stopitem \FlushStep + \startitem selecting \stopitem \FlushStep + \startitem flushing \stopitem \FlushStep + \startitem testing \stopitem \FlushStep + \startitem basics only \stopitem \FlushStep + + \stopitemize + +\stopsubject + +\StopSteps \page \StartSteps + +\startsubject[title=Processing] + + \starttyping + \xmlprocessfile {name} {filename} {setup} + \xmlprocessbuffer {name} {filename} {setup} + \xmlloadonly {name} {filename} {setup} + \stoptyping \FlushStep + +\stopsubject + +\startsubject[title=Loading] + + \starttyping + \xmlload {name} {filename} {setup} + \xmlloadbuffer {name} {buffername} {setup} + \stoptyping \FlushStep + +\stopsubject + +\StopSteps \page \StartSteps + +\startsubject[title=Injecting elements] + + \starttyping + \xmlall {node} {pattern} + \xmlfirst {node} {pattern} + \xmllast {node} {pattern} + \xmlflush {node} + \stoptyping \FlushStep + + \starttyping + \xmlraw {node} {pattern} + \xmlcontext {node} {pattern} + \xmlstrip {node} {pattern} + \xmltag {node} + \xmltext {node} {pattern} + \stoptyping \FlushStep + +\stopsubject + +\StopSteps \page \StartSteps + +\startsubject[title=Injecting attributes] + + \starttyping + \xmlatt {node} {name} + \xmlattdef {node} {namev {default} + \xmlattribute {node} {pattern} {name} + \xmlattributedef {node} {pattern} {name} {default} + \stoptyping \FlushStep + +\stopsubject + +\startsubject[title=Injecting properties] + + \starttyping + \xmlcount {node} {pattern} + \xmlname {node} + \xmlnamespace {node} + \stoptyping \FlushStep + +\stopsubject + +\StopSteps \page \StartSteps + +\startsubject[title=Filters] + + \starttyping + \xmlcommand {node} {pattern} {setup + \xmlfilter {node} {pattern} + \stoptyping \FlushStep + +\stopsubject + +\startsubject[title=Much more] + + \starttyping + \xmlverbatim {node} + \xmldisplayverbatim {node} + \xmlinlineverbatim {node} + \stoptyping \FlushStep + + \starttyping + \xmlinclude {node} {pattern} {attribute} + \xmlshow {node} + \stoptyping \FlushStep + +\stopsubject + +\StopSteps \page \StartSteps + +\startsubject[title=Testing] + + \starttyping + \xmldoif {node} {pattern} {true} + \xmldoifnot {node} {pattern} {true} + \xmldoifelse {node} {pattern} {true} {false} + \xmldoiftext {node} {pattern} {true} + \xmldoifnottext {node} {pattern} {true} + \xmldoifelsetext {node} {pattern} {true} {false} + \stoptyping \FlushStep + +\stopsubject + +\StopSteps + +\stopdocument |